summaryrefslogtreecommitdiffstats
path: root/chrome/browser/policy/asynchronous_policy_provider.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/policy/asynchronous_policy_provider.cc')
-rw-r--r--chrome/browser/policy/asynchronous_policy_provider.cc15
1 files changed, 10 insertions, 5 deletions
diff --git a/chrome/browser/policy/asynchronous_policy_provider.cc b/chrome/browser/policy/asynchronous_policy_provider.cc
index 87b94a6..e697b05 100644
--- a/chrome/browser/policy/asynchronous_policy_provider.cc
+++ b/chrome/browser/policy/asynchronous_policy_provider.cc
@@ -13,17 +13,12 @@ AsynchronousPolicyProvider::AsynchronousPolicyProvider(
scoped_refptr<AsynchronousPolicyLoader> loader)
: ConfigurationPolicyProvider(policy_list),
loader_(loader) {
- // TODO(danno): This explicit registration of the provider shouldn't be
- // necessary. Instead, the PrefStore should explicitly observe preference
- // changes that are reported during the policy change.
- loader_->SetProvider(this);
loader_->Init();
}
AsynchronousPolicyProvider::~AsynchronousPolicyProvider() {
DCHECK(CalledOnValidThread());
loader_->Stop();
- loader_->SetProvider(NULL);
}
bool AsynchronousPolicyProvider::Provide(
@@ -34,6 +29,16 @@ bool AsynchronousPolicyProvider::Provide(
return true;
}
+void AsynchronousPolicyProvider::AddObserver(
+ ConfigurationPolicyProvider::Observer* observer) {
+ loader_->AddObserver(observer);
+}
+
+void AsynchronousPolicyProvider::RemoveObserver(
+ ConfigurationPolicyProvider::Observer* observer) {
+ loader_->RemoveObserver(observer);
+}
+
scoped_refptr<AsynchronousPolicyLoader> AsynchronousPolicyProvider::loader() {
return loader_;
}