Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(929)

Unified Diff: chrome/browser/chromeos/accessibility/accessibility_manager.cc

Issue 1785833002: Add 5 experimental accessibility features on Chrome OS. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Change option_name to option-name Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/chromeos/accessibility/accessibility_manager.cc
diff --git a/chrome/browser/chromeos/accessibility/accessibility_manager.cc b/chrome/browser/chromeos/accessibility/accessibility_manager.cc
index add91d40a295f9362093301de01a59d080a562c7..1ea9351304a3af65f6e3a8b3b2596d3e17a2c9af 100644
--- a/chrome/browser/chromeos/accessibility/accessibility_manager.cc
+++ b/chrome/browser/chromeos/accessibility/accessibility_manager.cc
@@ -399,6 +399,12 @@ AccessibilityManager::AccessibilityManager()
autoclick_delay_pref_handler_(prefs::kAccessibilityAutoclickDelayMs),
virtual_keyboard_pref_handler_(
prefs::kAccessibilityVirtualKeyboardEnabled),
+ caret_highlight_pref_handler_(prefs::kAccessibilityCaretHighlightEnabled),
+ cursor_highlight_pref_handler_(
+ prefs::kAccessibilityCursorHighlightEnabled),
+ focus_highlight_pref_handler_(prefs::kAccessibilityFocusHighlightEnabled),
+ select_to_speak_pref_handler_(prefs::kAccessibilitySelectToSpeakEnabled),
+ switch_access_pref_handler_(prefs::kAccessibilitySwitchAccessEnabled),
large_cursor_enabled_(false),
sticky_keys_enabled_(false),
spoken_feedback_enabled_(false),
@@ -406,6 +412,11 @@ AccessibilityManager::AccessibilityManager()
autoclick_enabled_(false),
autoclick_delay_ms_(ash::AutoclickController::kDefaultAutoclickDelayMs),
virtual_keyboard_enabled_(false),
+ caret_highlight_enabled_(false),
+ cursor_highlight_enabled_(false),
+ focus_highlight_enabled_(false),
+ select_to_speak_enabled_(false),
+ switch_access_enabled_(false),
spoken_feedback_notification_(ui::A11Y_NOTIFICATION_NONE),
should_speak_chrome_vox_announcements_on_user_screen_(true),
system_sounds_enabled_(false),
@@ -866,6 +877,142 @@ void AccessibilityManager::UpdateVirtualKeyboardFromPref() {
NotifyAccessibilityStatusChanged(details);
}
+void AccessibilityManager::SetCaretHighlightEnabled(bool enabled) {
+ if (!profile_)
+ return;
+
+ PrefService* pref_service = profile_->GetPrefs();
+ pref_service->SetBoolean(prefs::kAccessibilityCaretHighlightEnabled, enabled);
+ pref_service->CommitPendingWrite();
+}
+
+bool AccessibilityManager::IsCaretHighlightEnabled() const {
+ return caret_highlight_enabled_;
+}
+
+void AccessibilityManager::UpdateCaretHighlightFromPref() {
+ if (!profile_)
+ return;
+
+ const bool enabled = profile_->GetPrefs()->GetBoolean(
+ prefs::kAccessibilityCaretHighlightEnabled);
+
+ if (caret_highlight_enabled_ == enabled)
+ return;
+ caret_highlight_enabled_ = enabled;
+
+ // TODO(dmazzoni): implement feature here.
+}
+
+void AccessibilityManager::SetCursorHighlightEnabled(bool enabled) {
+ if (!profile_)
+ return;
+
+ PrefService* pref_service = profile_->GetPrefs();
+ pref_service->SetBoolean(prefs::kAccessibilityCursorHighlightEnabled,
+ enabled);
+ pref_service->CommitPendingWrite();
+}
+
+bool AccessibilityManager::IsCursorHighlightEnabled() const {
+ return cursor_highlight_enabled_;
+}
+
+void AccessibilityManager::UpdateCursorHighlightFromPref() {
+ if (!profile_)
+ return;
+
+ const bool enabled = profile_->GetPrefs()->GetBoolean(
+ prefs::kAccessibilityCursorHighlightEnabled);
+
+ if (cursor_highlight_enabled_ == enabled)
+ return;
+ cursor_highlight_enabled_ = enabled;
+
+ // TODO(dmazzoni): implement feature here.
+}
+
+void AccessibilityManager::SetFocusHighlightEnabled(bool enabled) {
+ if (!profile_)
+ return;
+
+ PrefService* pref_service = profile_->GetPrefs();
+ pref_service->SetBoolean(prefs::kAccessibilityFocusHighlightEnabled, enabled);
+ pref_service->CommitPendingWrite();
+}
+
+bool AccessibilityManager::IsFocusHighlightEnabled() const {
+ return focus_highlight_enabled_;
+}
+
+void AccessibilityManager::UpdateFocusHighlightFromPref() {
+ if (!profile_)
+ return;
+
+ const bool enabled = profile_->GetPrefs()->GetBoolean(
+ prefs::kAccessibilityFocusHighlightEnabled);
+
+ if (focus_highlight_enabled_ == enabled)
+ return;
+ focus_highlight_enabled_ = enabled;
+
+ // TODO(dmazzoni): implement feature here.
+}
+
+void AccessibilityManager::SetSelectToSpeakEnabled(bool enabled) {
+ if (!profile_)
+ return;
+
+ PrefService* pref_service = profile_->GetPrefs();
+ pref_service->SetBoolean(prefs::kAccessibilitySelectToSpeakEnabled, enabled);
+ pref_service->CommitPendingWrite();
+}
+
+bool AccessibilityManager::IsSelectToSpeakEnabled() const {
+ return select_to_speak_enabled_;
+}
+
+void AccessibilityManager::UpdateSelectToSpeakFromPref() {
+ if (!profile_)
+ return;
+
+ const bool enabled = profile_->GetPrefs()->GetBoolean(
+ prefs::kAccessibilitySelectToSpeakEnabled);
+
+ if (select_to_speak_enabled_ == enabled)
+ return;
+ select_to_speak_enabled_ = enabled;
+
+ // TODO(dmazzoni): implement feature here.
+}
+
+void AccessibilityManager::SetSwitchAccessEnabled(bool enabled) {
+ if (!profile_)
+ return;
+
+ PrefService* pref_service = profile_->GetPrefs();
+ pref_service->SetBoolean(prefs::kAccessibilitySwitchAccessEnabled, enabled);
+ pref_service->CommitPendingWrite();
+}
+
+bool AccessibilityManager::IsSwitchAccessEnabled() const {
+ return switch_access_enabled_;
+}
+
+void AccessibilityManager::UpdateSwitchAccessFromPref() {
+ if (!profile_)
+ return;
+
+ const bool enabled = profile_->GetPrefs()->GetBoolean(
+ prefs::kAccessibilitySwitchAccessEnabled);
+
+ if (switch_access_enabled_ == enabled)
+ return;
+ switch_access_enabled_ = enabled;
+
+ // TODO(dmazzoni): implement feature here.
+}
+
bool AccessibilityManager::IsBrailleDisplayConnected() const {
return braille_display_connected_;
}
@@ -965,6 +1112,26 @@ void AccessibilityManager::SetProfile(Profile* profile) {
prefs::kAccessibilityVirtualKeyboardEnabled,
base::Bind(&AccessibilityManager::UpdateVirtualKeyboardFromPref,
base::Unretained(this)));
+ pref_change_registrar_->Add(
+ prefs::kAccessibilityCaretHighlightEnabled,
+ base::Bind(&AccessibilityManager::UpdateCaretHighlightFromPref,
+ base::Unretained(this)));
+ pref_change_registrar_->Add(
+ prefs::kAccessibilityCursorHighlightEnabled,
+ base::Bind(&AccessibilityManager::UpdateCursorHighlightFromPref,
+ base::Unretained(this)));
+ pref_change_registrar_->Add(
+ prefs::kAccessibilityFocusHighlightEnabled,
+ base::Bind(&AccessibilityManager::UpdateFocusHighlightFromPref,
+ base::Unretained(this)));
+ pref_change_registrar_->Add(
+ prefs::kAccessibilitySelectToSpeakEnabled,
+ base::Bind(&AccessibilityManager::UpdateSelectToSpeakFromPref,
+ base::Unretained(this)));
+ pref_change_registrar_->Add(
+ prefs::kAccessibilitySwitchAccessEnabled,
+ base::Bind(&AccessibilityManager::UpdateSwitchAccessFromPref,
+ base::Unretained(this)));
local_state_pref_change_registrar_.reset(new PrefChangeRegistrar);
local_state_pref_change_registrar_->Init(g_browser_process->local_state());
@@ -985,6 +1152,11 @@ void AccessibilityManager::SetProfile(Profile* profile) {
autoclick_pref_handler_.HandleProfileChanged(profile_, profile);
autoclick_delay_pref_handler_.HandleProfileChanged(profile_, profile);
virtual_keyboard_pref_handler_.HandleProfileChanged(profile_, profile);
+ caret_highlight_pref_handler_.HandleProfileChanged(profile_, profile);
+ cursor_highlight_pref_handler_.HandleProfileChanged(profile_, profile);
+ focus_highlight_pref_handler_.HandleProfileChanged(profile_, profile);
+ select_to_speak_pref_handler_.HandleProfileChanged(profile_, profile);
+ switch_access_pref_handler_.HandleProfileChanged(profile_, profile);
bool had_profile = (profile_ != NULL);
profile_ = profile;
@@ -1000,6 +1172,11 @@ void AccessibilityManager::SetProfile(Profile* profile) {
UpdateAutoclickFromPref();
UpdateAutoclickDelayFromPref();
UpdateVirtualKeyboardFromPref();
+ UpdateCaretHighlightFromPref();
+ UpdateCursorHighlightFromPref();
+ UpdateFocusHighlightFromPref();
+ UpdateSelectToSpeakFromPref();
+ UpdateSwitchAccessFromPref();
}
void AccessibilityManager::ActiveUserChanged(const AccountId& account_id) {
@@ -1088,6 +1265,16 @@ void AccessibilityManager::UpdateChromeOSAccessibilityHistograms() {
50);
}
}
+ UMA_HISTOGRAM_BOOLEAN("Accessibility.CrosCaretHighlight",
+ IsCaretHighlightEnabled());
+ UMA_HISTOGRAM_BOOLEAN("Accessibility.CrosCursorHighlight",
+ IsCursorHighlightEnabled());
+ UMA_HISTOGRAM_BOOLEAN("Accessibility.CrosFocusHighlight",
+ IsFocusHighlightEnabled());
+ UMA_HISTOGRAM_BOOLEAN("Accessibility.CrosSelectToSpeak",
+ IsSelectToSpeakEnabled());
+ UMA_HISTOGRAM_BOOLEAN("Accessibility.CrosSwitchAccess",
+ IsSwitchAccessEnabled());
}
void AccessibilityManager::Observe(
« no previous file with comments | « chrome/browser/chromeos/accessibility/accessibility_manager.h ('k') | chrome/browser/chromeos/extensions/info_private_api.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698