diff options
Diffstat (limited to 'chrome/browser/automation/automation_provider.cc')
-rw-r--r-- | chrome/browser/automation/automation_provider.cc | 22 |
1 files changed, 8 insertions, 14 deletions
diff --git a/chrome/browser/automation/automation_provider.cc b/chrome/browser/automation/automation_provider.cc index ff96f55f0..ec31959 100644 --- a/chrome/browser/automation/automation_provider.cc +++ b/chrome/browser/automation/automation_provider.cc @@ -29,6 +29,7 @@ #include "chrome/browser/views/bookmark_bar_view.h" #include "chrome/browser/views/location_bar_view.h" #include "chrome/common/chrome_paths.h" +#include "chrome/common/notification_registrar.h" #include "chrome/common/pref_service.h" #include "chrome/test/automation/automation_messages.h" #include "chrome/views/app_modal_dialog_delegate.h" @@ -45,30 +46,21 @@ class InitialLoadObserver : public NotificationObserver { automation_(automation) { if (outstanding_tab_count_ > 0) { NotificationService* service = NotificationService::current(); - service->AddObserver(this, NOTIFY_LOAD_START, - NotificationService::AllSources()); - service->AddObserver(this, NOTIFY_LOAD_STOP, - NotificationService::AllSources()); + registrar_.Add(this, NOTIFY_LOAD_START, + NotificationService::AllSources()); + registrar_.Add(this, NOTIFY_LOAD_STOP, + NotificationService::AllSources()); } } ~InitialLoadObserver() { - Unregister(); } void ConditionMet() { - Unregister(); + registrar_.RemoveAll(); automation_->Send(new AutomationMsg_InitialLoadsComplete(0)); } - void Unregister() { - NotificationService* service = NotificationService::current(); - service->RemoveObserver(this, NOTIFY_LOAD_START, - NotificationService::AllSources()); - service->RemoveObserver(this, NOTIFY_LOAD_STOP, - NotificationService::AllSources()); - } - virtual void Observe(NotificationType type, const NotificationSource& source, const NotificationDetails& details) { @@ -90,6 +82,8 @@ class InitialLoadObserver : public NotificationObserver { private: typedef std::set<uintptr_t> TabSet; + NotificationRegistrar registrar_; + AutomationProvider* automation_; size_t outstanding_tab_count_; TabSet loading_tabs_; |