| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
auto is_any_a11y_feature_enabled = [](PrefService* prefs) -> bool {
return prefs->GetBoolean(prefs::kAccessibilityStickyKeysEnabled) ||
prefs->GetBoolean(prefs::kAccessibilityLargeCursorEnabled) ||
prefs->GetBoolean(::prefs::kLiveCaptionEnabled) ||
prefs->GetBoolean(prefs::kAccessibilitySpokenFeedbackEnabled) ||
prefs->GetBoolean(prefs::kAccessibilitySelectToSpeakEnabled) ||
prefs->GetBoolean(prefs::kAccessibilitySwitchAccessEnabled) ||
prefs->GetBoolean(prefs::kAccessibilityHighContrastEnabled) ||
prefs->GetBoolean(prefs::kAccessibilityAutoclickEnabled) ||
prefs->GetBoolean(prefs::kShouldAlwaysShowAccessibilityMenu) ||
prefs->GetBoolean(prefs::kAccessibilityScreenMagnifierEnabled) ||
prefs->GetBoolean(prefs::kAccessibilityVirtualKeyboardEnabled) ||
prefs->GetBoolean(prefs::kAccessibilityMonoAudioEnabled) ||
prefs->GetBoolean(prefs::kAccessibilityCaretHighlightEnabled) ||
prefs->GetBoolean(prefs::kAccessibilityCursorHighlightEnabled) ||
prefs->GetBoolean(prefs::kAccessibilityFocusHighlightEnabled) ||
prefs->GetBoolean(prefs::kAccessibilityDictationEnabled) ||
prefs->GetBoolean(prefs::kDockedMagnifierEnabled) ||
prefs->GetBoolean(prefs::kAccessibilityColorCorrectionEnabled) ||
prefs->GetBoolean(prefs::kAccessibilityBounceKeysEnabled) ||
prefs->GetBoolean(prefs::kAccessibilitySlowKeysEnabled);
};nit/style: nice to make a standalone function.
Profile* signin_profile = Profile::FromBrowserContext(Maybe we want to avoid using Profile at all?
https://source.chromium.org/chromium/chromium/src/+/main:components/user_prefs/user_prefs.h;l=31
if (is_any_a11y_feature_enabled(signin_profile->GetPrefs())) {Could you check if we do not need to handle other special profiles in ChromeOS system?
https://source.chromium.org/chromium/chromium/src/+/main:chromeos/ash/components/browser_context_helper/browser_context_types.h;l=38
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
auto is_any_a11y_feature_enabled = [](PrefService* prefs) -> bool {
return prefs->GetBoolean(prefs::kAccessibilityStickyKeysEnabled) ||
prefs->GetBoolean(prefs::kAccessibilityLargeCursorEnabled) ||
prefs->GetBoolean(::prefs::kLiveCaptionEnabled) ||
prefs->GetBoolean(prefs::kAccessibilitySpokenFeedbackEnabled) ||
prefs->GetBoolean(prefs::kAccessibilitySelectToSpeakEnabled) ||
prefs->GetBoolean(prefs::kAccessibilitySwitchAccessEnabled) ||
prefs->GetBoolean(prefs::kAccessibilityHighContrastEnabled) ||
prefs->GetBoolean(prefs::kAccessibilityAutoclickEnabled) ||
prefs->GetBoolean(prefs::kShouldAlwaysShowAccessibilityMenu) ||
prefs->GetBoolean(prefs::kAccessibilityScreenMagnifierEnabled) ||
prefs->GetBoolean(prefs::kAccessibilityVirtualKeyboardEnabled) ||
prefs->GetBoolean(prefs::kAccessibilityMonoAudioEnabled) ||
prefs->GetBoolean(prefs::kAccessibilityCaretHighlightEnabled) ||
prefs->GetBoolean(prefs::kAccessibilityCursorHighlightEnabled) ||
prefs->GetBoolean(prefs::kAccessibilityFocusHighlightEnabled) ||
prefs->GetBoolean(prefs::kAccessibilityDictationEnabled) ||
prefs->GetBoolean(prefs::kDockedMagnifierEnabled) ||
prefs->GetBoolean(prefs::kAccessibilityColorCorrectionEnabled) ||
prefs->GetBoolean(prefs::kAccessibilityBounceKeysEnabled) ||
prefs->GetBoolean(prefs::kAccessibilitySlowKeysEnabled);
};nit/style: nice to make a standalone function.
Done
Maybe we want to avoid using Profile at all?
https://source.chromium.org/chromium/chromium/src/+/main:components/user_prefs/user_prefs.h;l=31
Thank you for the suggestion. I didn't know this API. Done.
if (is_any_a11y_feature_enabled(signin_profile->GetPrefs())) {Could you check if we do not need to handle other special profiles in ChromeOS system?
https://source.chromium.org/chromium/chromium/src/+/main:chromeos/ash/components/browser_context_helper/browser_context_types.h;l=38
I confirmed that lock-screen browser context is not needed for this case.
For shimless-rma, I think we can also ignore it unless `AccessibilityController::OnActiveUserPrefServiceChanged` is called with its prefs. Also, I manually confirmed that shelf and the quick settings are not displayed for Shimless RMA mode.
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
| Code-Review | +1 |
bool IsAnyAccessibilityFeatureEnabled(PrefService* prefs) {Nit/optional: `PrefService& prefs` if this cannot be nullptr? (So CHECK_DEREF in the caller).
if (is_any_a11y_feature_enabled(signin_profile->GetPrefs())) {Jun IshiguroCould you check if we do not need to handle other special profiles in ChromeOS system?
https://source.chromium.org/chromium/chromium/src/+/main:chromeos/ash/components/browser_context_helper/browser_context_types.h;l=38
I confirmed that lock-screen browser context is not needed for this case.
For shimless-rma, I think we can also ignore it unless `AccessibilityController::OnActiveUserPrefServiceChanged` is called with its prefs. Also, I manually confirmed that shelf and the quick settings are not displayed for Shimless RMA mode.
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
| Commit-Queue | +2 |
bool IsAnyAccessibilityFeatureEnabled(PrefService* prefs) {Nit/optional: `PrefService& prefs` if this cannot be nullptr? (So CHECK_DEREF in the caller).
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
4 is the latest approved patch-set.
The change was submitted with unreviewed changes in the following files:
```
The name of the file: chrome/browser/ash/accessibility/accessibility_manager.cc
Insertions: 25, Deletions: 25.
@@ -376,28 +376,27 @@
return data;
}
-bool IsAnyAccessibilityFeatureEnabled(PrefService* prefs) {
- CHECK(prefs);
- return prefs->GetBoolean(prefs::kAccessibilityStickyKeysEnabled) ||
- prefs->GetBoolean(prefs::kAccessibilityLargeCursorEnabled) ||
- prefs->GetBoolean(::prefs::kLiveCaptionEnabled) ||
- prefs->GetBoolean(prefs::kAccessibilitySpokenFeedbackEnabled) ||
- prefs->GetBoolean(prefs::kAccessibilitySelectToSpeakEnabled) ||
- prefs->GetBoolean(prefs::kAccessibilitySwitchAccessEnabled) ||
- prefs->GetBoolean(prefs::kAccessibilityHighContrastEnabled) ||
- prefs->GetBoolean(prefs::kAccessibilityAutoclickEnabled) ||
- prefs->GetBoolean(prefs::kShouldAlwaysShowAccessibilityMenu) ||
- prefs->GetBoolean(prefs::kAccessibilityScreenMagnifierEnabled) ||
- prefs->GetBoolean(prefs::kAccessibilityVirtualKeyboardEnabled) ||
- prefs->GetBoolean(prefs::kAccessibilityMonoAudioEnabled) ||
- prefs->GetBoolean(prefs::kAccessibilityCaretHighlightEnabled) ||
- prefs->GetBoolean(prefs::kAccessibilityCursorHighlightEnabled) ||
- prefs->GetBoolean(prefs::kAccessibilityFocusHighlightEnabled) ||
- prefs->GetBoolean(prefs::kAccessibilityDictationEnabled) ||
- prefs->GetBoolean(prefs::kDockedMagnifierEnabled) ||
- prefs->GetBoolean(prefs::kAccessibilityColorCorrectionEnabled) ||
- prefs->GetBoolean(prefs::kAccessibilityBounceKeysEnabled) ||
- prefs->GetBoolean(prefs::kAccessibilitySlowKeysEnabled);
+bool IsAnyAccessibilityFeatureEnabled(const PrefService& prefs) {
+ return prefs.GetBoolean(prefs::kAccessibilityStickyKeysEnabled) ||
+ prefs.GetBoolean(prefs::kAccessibilityLargeCursorEnabled) ||
+ prefs.GetBoolean(::prefs::kLiveCaptionEnabled) ||
+ prefs.GetBoolean(prefs::kAccessibilitySpokenFeedbackEnabled) ||
+ prefs.GetBoolean(prefs::kAccessibilitySelectToSpeakEnabled) ||
+ prefs.GetBoolean(prefs::kAccessibilitySwitchAccessEnabled) ||
+ prefs.GetBoolean(prefs::kAccessibilityHighContrastEnabled) ||
+ prefs.GetBoolean(prefs::kAccessibilityAutoclickEnabled) ||
+ prefs.GetBoolean(prefs::kShouldAlwaysShowAccessibilityMenu) ||
+ prefs.GetBoolean(prefs::kAccessibilityScreenMagnifierEnabled) ||
+ prefs.GetBoolean(prefs::kAccessibilityVirtualKeyboardEnabled) ||
+ prefs.GetBoolean(prefs::kAccessibilityMonoAudioEnabled) ||
+ prefs.GetBoolean(prefs::kAccessibilityCaretHighlightEnabled) ||
+ prefs.GetBoolean(prefs::kAccessibilityCursorHighlightEnabled) ||
+ prefs.GetBoolean(prefs::kAccessibilityFocusHighlightEnabled) ||
+ prefs.GetBoolean(prefs::kAccessibilityDictationEnabled) ||
+ prefs.GetBoolean(prefs::kDockedMagnifierEnabled) ||
+ prefs.GetBoolean(prefs::kAccessibilityColorCorrectionEnabled) ||
+ prefs.GetBoolean(prefs::kAccessibilityBounceKeysEnabled) ||
+ prefs.GetBoolean(prefs::kAccessibilitySlowKeysEnabled);
}
} // namespace
@@ -675,14 +674,15 @@
// at the login screen the menu will show even if the user has no features
// enabled inside the session. http://crbug.com/755631
- if (IsAnyAccessibilityFeatureEnabled(user_prefs::UserPrefs::Get(
- BrowserContextHelper::Get()->GetSigninBrowserContext()))) {
+ if (IsAnyAccessibilityFeatureEnabled(CHECK_DEREF(user_prefs::UserPrefs::Get(
+ BrowserContextHelper::Get()->GetSigninBrowserContext())))) {
return true;
}
for (const auto& user :
user_manager::UserManager::Get()->GetLoggedInUsers()) {
- if (IsAnyAccessibilityFeatureEnabled(user->GetProfilePrefs())) {
+ if (IsAnyAccessibilityFeatureEnabled(
+ CHECK_DEREF(user->GetProfilePrefs()))) {
return true;
}
}
```
Remove dependency on ProfileManager from ash::AccessibilityManager
This CL replaces a ProfileManager::GetLoadedProfiles() call with
UserManager::GetLoggedInUsers() in
AccessibilityManager::ShouldShowAccessibilityMenu.
The method also depends on the sign-in profile prefs, so the new
implementation explicitly checks both the sign-in profile prefs and all
of signed-in users' prefs.
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |