From 12bc9314be7c075516ce92ca1711669d3d5aa892 Mon Sep 17 00:00:00 2001 From: "evan@chromium.org" Date: Fri, 22 May 2009 02:27:51 +0000 Subject: Revert "Revert "Use a NotificationRegistrar to listen for notifications."" This re-applies r16709. git-svn-id: svn://svn.chromium.org/chrome/trunk/src@16711 0039d316-1c4b-4281-b951-d872f2087c98 --- chrome/browser/browser_accessibility_manager.cc | 8 ++------ chrome/browser/browser_accessibility_manager.h | 4 +++- 2 files changed, 5 insertions(+), 7 deletions(-) (limited to 'chrome') diff --git a/chrome/browser/browser_accessibility_manager.cc b/chrome/browser/browser_accessibility_manager.cc index 0930024..5190870 100644 --- a/chrome/browser/browser_accessibility_manager.cc +++ b/chrome/browser/browser_accessibility_manager.cc @@ -22,17 +22,13 @@ BrowserAccessibilityManager* BrowserAccessibilityManager::GetInstance() { } BrowserAccessibilityManager::BrowserAccessibilityManager() { - NotificationService::current()->AddObserver(this, - NotificationType::RENDERER_PROCESS_TERMINATED, - NotificationService::AllSources()); + registrar_.Add(this, NotificationType::RENDERER_PROCESS_TERMINATED, + NotificationService::AllSources()); } BrowserAccessibilityManager::~BrowserAccessibilityManager() { // Clear hashmap. render_process_host_map_.clear(); - - // We don't remove ourselves as an observer because we are a Singleton object, - // and NotifcationService is likely gone by this point. } STDMETHODIMP BrowserAccessibilityManager::CreateAccessibilityInstance( diff --git a/chrome/browser/browser_accessibility_manager.h b/chrome/browser/browser_accessibility_manager.h index 081f978..4af1363 100644 --- a/chrome/browser/browser_accessibility_manager.h +++ b/chrome/browser/browser_accessibility_manager.h @@ -8,7 +8,7 @@ #include #include "base/singleton.h" -#include "chrome/common/notification_observer.h" +#include "chrome/common/notification_registrar.h" #include "webkit/glue/webaccessibility.h" class BrowserAccessibility; @@ -81,6 +81,8 @@ class BrowserAccessibilityManager : public NotificationObserver { typedef std::multimap RenderProcessHostMap; typedef std::pair MapEntry; + NotificationRegistrar registrar_; + // Mapping to track which RenderProcessHosts ids are active. If a // RenderProcessHost is found to be terminated, its id (key) should be removed // from this mapping, and the connected BrowserAccessibility ids/instances -- cgit v1.1