summaryrefslogtreecommitdiffstats
path: root/chrome/browser/policy/asynchronous_policy_provider.cc
diff options
context:
space:
mode:
authorjoaodasilva@chromium.org <joaodasilva@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-09-29 15:08:33 +0000
committerjoaodasilva@chromium.org <joaodasilva@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-09-29 15:08:33 +0000
commitb6e695a9c6fa185592c01bd16fcbd7b95296e571 (patch)
tree10349ec3142cca9f7dcb01f6d519c7964a90d899 /chrome/browser/policy/asynchronous_policy_provider.cc
parent8373335453c1100bcaa43f070b30a00217bd3216 (diff)
downloadchromium_src-b6e695a9c6fa185592c01bd16fcbd7b95296e571.zip
chromium_src-b6e695a9c6fa185592c01bd16fcbd7b95296e571.tar.gz
chromium_src-b6e695a9c6fa185592c01bd16fcbd7b95296e571.tar.bz2
Move observers to ConfigurationPolicyProvider.
Share more code for ConfigurationPolicyProviders at the base class. Removed the DummyConfigurationPolicyProvider. Removed the DummyCloudPolicyProvider. Moved ApplyPolicyValueTree to PolicyMap. BUG=chromium-os:17309 TEST=Everything works as before Review URL: http://codereview.chromium.org/8059029 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@103274 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/policy/asynchronous_policy_provider.cc')
-rw-r--r--chrome/browser/policy/asynchronous_policy_provider.cc20
1 files changed, 8 insertions, 12 deletions
diff --git a/chrome/browser/policy/asynchronous_policy_provider.cc b/chrome/browser/policy/asynchronous_policy_provider.cc
index 38b00e5..403d08e 100644
--- a/chrome/browser/policy/asynchronous_policy_provider.cc
+++ b/chrome/browser/policy/asynchronous_policy_provider.cc
@@ -4,7 +4,9 @@
#include "chrome/browser/policy/asynchronous_policy_provider.h"
+#include "base/bind.h"
#include "chrome/browser/policy/asynchronous_policy_loader.h"
+#include "chrome/browser/policy/policy_map.h"
namespace policy {
@@ -13,31 +15,25 @@ AsynchronousPolicyProvider::AsynchronousPolicyProvider(
scoped_refptr<AsynchronousPolicyLoader> loader)
: ConfigurationPolicyProvider(policy_list),
loader_(loader) {
- loader_->Init();
+ loader_->Init(
+ base::Bind(&AsynchronousPolicyProvider::NotifyPolicyUpdated,
+ base::Unretained(this)));
}
AsynchronousPolicyProvider::~AsynchronousPolicyProvider() {
DCHECK(CalledOnValidThread());
+ // |loader_| won't invoke its callback anymore after Stop(), therefore
+ // Unretained(this) is safe in the ctor.
loader_->Stop();
}
bool AsynchronousPolicyProvider::Provide(PolicyMap* map) {
DCHECK(CalledOnValidThread());
DCHECK(loader_->policy());
- ApplyPolicyValueTree(loader_->policy(), map);
+ map->LoadFrom(loader_->policy(), policy_definition_list());
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_;
}