Add a SupervisedUserServiceObserver.
For now, this is used in the SupervisedUserInterstitial instead of listening to pref changes manually.
More clients will follow in later CLs.
BUG=
Review URL: https://codereview.chromium.org/597573002
Cr-Commit-Position: refs/heads/master@{#296412}
diff --git a/chrome/browser/supervised_user/supervised_user_service.h b/chrome/browser/supervised_user/supervised_user_service.h
index 2d5caa16..2c60d77 100644
--- a/chrome/browser/supervised_user/supervised_user_service.h
+++ b/chrome/browser/supervised_user/supervised_user_service.h
@@ -13,6 +13,7 @@
#include "base/callback.h"
#include "base/gtest_prod_util.h"
#include "base/memory/scoped_ptr.h"
+#include "base/observer_list.h"
#include "base/prefs/pref_change_registrar.h"
#include "base/scoped_observer.h"
#include "base/strings/string16.h"
@@ -35,6 +36,7 @@
class PermissionRequestCreator;
class Profile;
class SupervisedUserRegistrationUtility;
+class SupervisedUserServiceObserver;
class SupervisedUserSettingsService;
class SupervisedUserSiteList;
class SupervisedUserURLFilter;
@@ -166,6 +168,9 @@
void AddNavigationBlockedCallback(const NavigationBlockedCallback& callback);
void DidBlockNavigation(content::WebContents* web_contents);
+ void AddObserver(SupervisedUserServiceObserver* observer);
+ void RemoveObserver(SupervisedUserServiceObserver* observer);
+
#if defined(ENABLE_EXTENSIONS)
// extensions::ManagementPolicy::Provider implementation:
virtual std::string GetDebugPolicyProviderName() const OVERRIDE;
@@ -326,6 +331,8 @@
// Used to create permission requests.
scoped_ptr<PermissionRequestCreator> permissions_creator_;
+ ObserverList<SupervisedUserServiceObserver> observer_list_;
+
base::WeakPtrFactory<SupervisedUserService> weak_ptr_factory_;
};