diff options
author | dmazzoni@chromium.org <dmazzoni@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-09-23 01:54:12 +0000 |
---|---|---|
committer | dmazzoni@chromium.org <dmazzoni@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-09-23 01:54:12 +0000 |
commit | 7fc33d53b6bf0404bd3d0a8e2b0b0fda450ef423 (patch) | |
tree | 862efcedae71b08965e658662948da5495984785 | |
parent | d33e7cc3d6195681decd0787db8131eb614e7594 (diff) | |
download | chromium_src-7fc33d53b6bf0404bd3d0a8e2b0b0fda450ef423.zip chromium_src-7fc33d53b6bf0404bd3d0a8e2b0b0fda450ef423.tar.gz chromium_src-7fc33d53b6bf0404bd3d0a8e2b0b0fda450ef423.tar.bz2 |
Initialize ExtensionAccessibilityEventRouter earlier.
On Chrome OS it needs to be initialized during the OOBE, and on other
platforms there's no harm in allowing it to initialize itself in its
constructor rather than waiting until a profile is loaded.
BUG=97614
TEST=manual testing
Review URL: http://codereview.chromium.org/8002001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@102422 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/browser/extensions/extension_accessibility_api.cc | 58 | ||||
-rw-r--r-- | chrome/browser/extensions/extension_accessibility_api.h | 3 | ||||
-rw-r--r-- | chrome/browser/extensions/extension_service.cc | 1 |
3 files changed, 26 insertions, 36 deletions
diff --git a/chrome/browser/extensions/extension_accessibility_api.cc b/chrome/browser/extensions/extension_accessibility_api.cc index 80dde89..3568a00 100644 --- a/chrome/browser/extensions/extension_accessibility_api.cc +++ b/chrome/browser/extensions/extension_accessibility_api.cc @@ -41,44 +41,38 @@ ExtensionAccessibilityEventRouter* } ExtensionAccessibilityEventRouter::ExtensionAccessibilityEventRouter() - : enabled_(false) {} + : enabled_(false) { + registrar_.Add(this, + chrome::NOTIFICATION_ACCESSIBILITY_WINDOW_OPENED, + NotificationService::AllSources()); + registrar_.Add(this, + chrome::NOTIFICATION_ACCESSIBILITY_WINDOW_CLOSED, + NotificationService::AllSources()); + registrar_.Add(this, + chrome::NOTIFICATION_ACCESSIBILITY_CONTROL_FOCUSED, + NotificationService::AllSources()); + registrar_.Add(this, + chrome::NOTIFICATION_ACCESSIBILITY_CONTROL_ACTION, + NotificationService::AllSources()); + registrar_.Add(this, + chrome::NOTIFICATION_ACCESSIBILITY_TEXT_CHANGED, + NotificationService::AllSources()); + registrar_.Add(this, + chrome::NOTIFICATION_ACCESSIBILITY_MENU_OPENED, + NotificationService::AllSources()); + registrar_.Add(this, + chrome::NOTIFICATION_ACCESSIBILITY_MENU_CLOSED, + NotificationService::AllSources()); + registrar_.Add(this, + chrome::NOTIFICATION_ACCESSIBILITY_VOLUME_CHANGED, + NotificationService::AllSources()); +} ExtensionAccessibilityEventRouter::~ExtensionAccessibilityEventRouter() { STLDeleteElements(&on_enabled_listeners_); STLDeleteElements(&on_disabled_listeners_); } -void ExtensionAccessibilityEventRouter::ObserveProfile(Profile* profile) { - last_focused_control_dict_.Clear(); - - if (registrar_.IsEmpty()) { - registrar_.Add(this, - chrome::NOTIFICATION_ACCESSIBILITY_WINDOW_OPENED, - NotificationService::AllSources()); - registrar_.Add(this, - chrome::NOTIFICATION_ACCESSIBILITY_WINDOW_CLOSED, - NotificationService::AllSources()); - registrar_.Add(this, - chrome::NOTIFICATION_ACCESSIBILITY_CONTROL_FOCUSED, - NotificationService::AllSources()); - registrar_.Add(this, - chrome::NOTIFICATION_ACCESSIBILITY_CONTROL_ACTION, - NotificationService::AllSources()); - registrar_.Add(this, - chrome::NOTIFICATION_ACCESSIBILITY_TEXT_CHANGED, - NotificationService::AllSources()); - registrar_.Add(this, - chrome::NOTIFICATION_ACCESSIBILITY_MENU_OPENED, - NotificationService::AllSources()); - registrar_.Add(this, - chrome::NOTIFICATION_ACCESSIBILITY_MENU_CLOSED, - NotificationService::AllSources()); - registrar_.Add(this, - chrome::NOTIFICATION_ACCESSIBILITY_VOLUME_CHANGED, - NotificationService::AllSources()); - } -} - void ExtensionAccessibilityEventRouter::Observe( int type, const NotificationSource& source, diff --git a/chrome/browser/extensions/extension_accessibility_api.h b/chrome/browser/extensions/extension_accessibility_api.h index d5dafcd..7e3a735 100644 --- a/chrome/browser/extensions/extension_accessibility_api.h +++ b/chrome/browser/extensions/extension_accessibility_api.h @@ -25,9 +25,6 @@ class ExtensionAccessibilityEventRouter : public NotificationObserver { // Single instance of the event router. static ExtensionAccessibilityEventRouter* GetInstance(); - // Safe to call multiple times. - void ObserveProfile(Profile* profile); - // Get the dict representing the last control that received an // OnControlFocus event. DictionaryValue* last_focused_control_dict() { diff --git a/chrome/browser/extensions/extension_service.cc b/chrome/browser/extensions/extension_service.cc index d18e004..d8b7f5f 100644 --- a/chrome/browser/extensions/extension_service.cc +++ b/chrome/browser/extensions/extension_service.cc @@ -704,7 +704,6 @@ void ExtensionService::InitEventRouters() { downloads_event_router_.reset(new ExtensionDownloadsEventRouter(profile_)); history_event_router_.reset(new ExtensionHistoryEventRouter()); history_event_router_->ObserveProfile(profile_); - ExtensionAccessibilityEventRouter::GetInstance()->ObserveProfile(profile_); browser_event_router_.reset(new ExtensionBrowserEventRouter(profile_)); browser_event_router_->Init(); preference_event_router_.reset(new ExtensionPreferenceEventRouter(profile_)); |