summaryrefslogtreecommitdiffstats
path: root/chrome/browser/automation/automation_provider.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/automation/automation_provider.cc')
-rw-r--r--chrome/browser/automation/automation_provider.cc22
1 files changed, 14 insertions, 8 deletions
diff --git a/chrome/browser/automation/automation_provider.cc b/chrome/browser/automation/automation_provider.cc
index ec31959..ff96f55f0 100644
--- a/chrome/browser/automation/automation_provider.cc
+++ b/chrome/browser/automation/automation_provider.cc
@@ -29,7 +29,6 @@
#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"
@@ -46,21 +45,30 @@ class InitialLoadObserver : public NotificationObserver {
automation_(automation) {
if (outstanding_tab_count_ > 0) {
NotificationService* service = NotificationService::current();
- registrar_.Add(this, NOTIFY_LOAD_START,
- NotificationService::AllSources());
- registrar_.Add(this, NOTIFY_LOAD_STOP,
- NotificationService::AllSources());
+ service->AddObserver(this, NOTIFY_LOAD_START,
+ NotificationService::AllSources());
+ service->AddObserver(this, NOTIFY_LOAD_STOP,
+ NotificationService::AllSources());
}
}
~InitialLoadObserver() {
+ Unregister();
}
void ConditionMet() {
- registrar_.RemoveAll();
+ Unregister();
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) {
@@ -82,8 +90,6 @@ class InitialLoadObserver : public NotificationObserver {
private:
typedef std::set<uintptr_t> TabSet;
- NotificationRegistrar registrar_;
-
AutomationProvider* automation_;
size_t outstanding_tab_count_;
TabSet loading_tabs_;