Index: chrome/browser/policy/device_token_fetcher.cc |
diff --git a/chrome/browser/policy/device_token_fetcher.cc b/chrome/browser/policy/device_token_fetcher.cc |
index 8c9497ed27e54367f9f8f7507317439bd1dff714..ce7ee4ba563b5322447e9de7452e9234e5a76019 100644 |
--- a/chrome/browser/policy/device_token_fetcher.cc |
+++ b/chrome/browser/policy/device_token_fetcher.cc |
@@ -57,6 +57,31 @@ namespace policy { |
namespace em = enterprise_management; |
+DeviceTokenFetcher::ObserverRegistrar::ObserverRegistrar() {} |
+ |
+DeviceTokenFetcher::ObserverRegistrar::~ObserverRegistrar() { |
+ RemoveAll(); |
+} |
+ |
+void DeviceTokenFetcher::ObserverRegistrar::Init( |
+ DeviceTokenFetcher* token_fetcher) { |
+ token_fetcher_ = token_fetcher; |
+} |
+ |
+void DeviceTokenFetcher::ObserverRegistrar::AddObserver( |
+ DeviceTokenFetcher::Observer* observer) { |
+ observers_.push_back(observer); |
+ token_fetcher_->AddObserver(observer); |
+} |
+ |
+void DeviceTokenFetcher::ObserverRegistrar::RemoveAll() { |
+ for (std::vector<DeviceTokenFetcher::Observer*>::iterator it = |
+ observers_.begin(); it != observers_.end(); ++it) { |
+ token_fetcher_->RemoveObserver(*it); |
+ } |
+ observers_.clear(); |
+} |
+ |
DeviceTokenFetcher::DeviceTokenFetcher( |
DeviceManagementBackend* backend, |
Profile* profile, |
@@ -88,6 +113,8 @@ DeviceTokenFetcher::DeviceTokenFetcher( |
#endif |
} |
+DeviceTokenFetcher::~DeviceTokenFetcher() {} |
+ |
void DeviceTokenFetcher::Observe(NotificationType type, |
const NotificationSource& source, |
const NotificationDetails& details) { |