diff options
| author | joaodasilva@chromium.org <joaodasilva@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-09-29 15:08:33 +0000 |
|---|---|---|
| committer | joaodasilva@chromium.org <joaodasilva@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-09-29 15:08:33 +0000 |
| commit | b6e695a9c6fa185592c01bd16fcbd7b95296e571 (patch) | |
| tree | 10349ec3142cca9f7dcb01f6d519c7964a90d899 /chrome/browser/policy/asynchronous_policy_provider.cc | |
| parent | 8373335453c1100bcaa43f070b30a00217bd3216 (diff) | |
| download | chromium_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.cc | 20 |
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_; } |
