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

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

Issue 166273014: Remove dependency on NotificationService for cros a11y settings. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Merge ToT. Created 6 years, 10 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 b2f3ed5f7e064d822acc5d3fe1c571a5ef89cd88..aa7a0437d13f8278f9592306a2ee2a4dcb70ccf3 100644
--- a/chrome/browser/chromeos/accessibility/accessibility_manager.cc
+++ b/chrome/browser/chromeos/accessibility/accessibility_manager.cc
@@ -209,17 +209,21 @@ void UnloadChromeVoxExtension(Profile* profile) {
// AccessibilityStatusEventDetails
AccessibilityStatusEventDetails::AccessibilityStatusEventDetails(
+ AccessibilityNotificationType notification_type,
bool enabled,
ash::AccessibilityNotificationVisibility notify)
- : enabled(enabled),
+ : notification_type(notification_type),
+ enabled(enabled),
magnifier_type(ash::kDefaultMagnifierType),
notify(notify) {}
AccessibilityStatusEventDetails::AccessibilityStatusEventDetails(
+ AccessibilityNotificationType notification_type,
bool enabled,
ash::MagnifierType magnifier_type,
ash::AccessibilityNotificationVisibility notify)
- : enabled(enabled),
+ : notification_type(notification_type),
+ enabled(enabled),
magnifier_type(magnifier_type),
notify(notify) {}
@@ -334,6 +338,11 @@ AccessibilityManager::AccessibilityManager()
AccessibilityManager::~AccessibilityManager() {
CHECK(this == g_accessibility_manager);
+ AccessibilityStatusEventDetails details(
+ ACCESSIBILITY_MANAGER_SHUTDOWN,
+ false,
+ ash::A11Y_NOTIFICATION_NONE);
+ NotifyAccessibilityStatusChanged(details);
}
bool AccessibilityManager::ShouldShowAccessibilityMenu() {
@@ -394,11 +403,12 @@ void AccessibilityManager::UpdateLargeCursorFromPref() {
large_cursor_enabled_ = enabled;
- AccessibilityStatusEventDetails details(enabled, ash::A11Y_NOTIFICATION_NONE);
- content::NotificationService::current()->Notify(
- chrome::NOTIFICATION_CROS_ACCESSIBILITY_TOGGLE_LARGE_CURSOR,
- content::NotificationService::AllSources(),
- content::Details<AccessibilityStatusEventDetails>(&details));
+ AccessibilityStatusEventDetails details(
+ ACCESSIBILITY_TOGGLE_LARGE_CURSOR,
+ enabled,
+ ash::A11Y_NOTIFICATION_NONE);
+
+ NotifyAccessibilityStatusChanged(details);
#if defined(USE_ASH)
// Large cursor is implemented only in ash.
@@ -486,12 +496,12 @@ void AccessibilityManager::UpdateSpokenFeedbackFromPref() {
ExtensionAccessibilityEventRouter::GetInstance()->
SetAccessibilityEnabled(enabled);
- AccessibilityStatusEventDetails details(enabled,
- spoken_feedback_notification_);
- content::NotificationService::current()->Notify(
- chrome::NOTIFICATION_CROS_ACCESSIBILITY_TOGGLE_SPOKEN_FEEDBACK,
- content::NotificationService::AllSources(),
- content::Details<AccessibilityStatusEventDetails>(&details));
+ AccessibilityStatusEventDetails details(
+ ACCESSIBILITY_TOGGLE_SPOKEN_FEEDBACK,
+ enabled,
+ spoken_feedback_notification_);
+
+ NotifyAccessibilityStatusChanged(details);
if (enabled) {
LoadChromeVox();
@@ -601,11 +611,12 @@ void AccessibilityManager::UpdateHighContrastFromPref() {
high_contrast_enabled_ = enabled;
- AccessibilityStatusEventDetails detail(enabled, ash::A11Y_NOTIFICATION_NONE);
- content::NotificationService::current()->Notify(
- chrome::NOTIFICATION_CROS_ACCESSIBILITY_TOGGLE_HIGH_CONTRAST_MODE,
- content::NotificationService::AllSources(),
- content::Details<AccessibilityStatusEventDetails>(&detail));
+ AccessibilityStatusEventDetails details(
+ ACCESSIBILITY_TOGGLE_HIGH_CONTRAST_MODE,
+ enabled,
+ ash::A11Y_NOTIFICATION_NONE);
+
+ NotifyAccessibilityStatusChanged(details);
#if defined(USE_ASH)
ash::Shell::GetInstance()->high_contrast_controller()->SetEnabled(enabled);
@@ -712,11 +723,12 @@ void AccessibilityManager::UpdateVirtualKeyboardFromPref() {
return;
virtual_keyboard_enabled_ = enabled;
- AccessibilityStatusEventDetails detail(enabled, ash::A11Y_NOTIFICATION_NONE);
- content::NotificationService::current()->Notify(
- chrome::NOTIFICATION_CROS_ACCESSIBILITY_TOGGLE_VIRTUAL_KEYBOARD,
- content::NotificationService::AllSources(),
- content::Details<AccessibilityStatusEventDetails>(&detail));
+ AccessibilityStatusEventDetails details(
+ ACCESSIBILITY_TOGGLE_VIRTUAL_KEYBOARD,
+ enabled,
+ ash::A11Y_NOTIFICATION_NONE);
+
+ NotifyAccessibilityStatusChanged(details);
#if defined(USE_ASH)
keyboard::SetAccessibilityKeyboardEnabled(enabled);
@@ -842,6 +854,17 @@ void AccessibilityManager::InjectChromeVox(RenderViewHost* render_view_host) {
LoadChromeVoxExtension(profile_, render_view_host);
}
+scoped_ptr<AccessibilityStatusSubscription>
+ AccessibilityManager::RegisterCallback(
+ const AccessibilityStatusCallback& cb) {
+ return callback_list_.Add(cb);
+}
+
+void AccessibilityManager::NotifyAccessibilityStatusChanged(
+ AccessibilityStatusEventDetails& details) {
+ callback_list_.Notify(details);
+}
+
void AccessibilityManager::UpdateChromeOSAccessibilityHistograms() {
UMA_HISTOGRAM_BOOLEAN("Accessibility.CrosSpokenFeedback",
IsSpokenFeedbackEnabled());

Powered by Google App Engine
This is Rietveld 408576698