Chromium Code Reviews| Index: chrome/browser/policy/cloud_policy_provider.cc |
| diff --git a/chrome/browser/policy/cloud_policy_provider.cc b/chrome/browser/policy/cloud_policy_provider.cc |
| index be91926c3294d20e21b287328ff2ef6fe6ddabc0..228ace51d73ba4cb23c61b4515b890f50c52b0ea 100644 |
| --- a/chrome/browser/policy/cloud_policy_provider.cc |
| +++ b/chrome/browser/policy/cloud_policy_provider.cc |
| @@ -4,7 +4,10 @@ |
| #include "chrome/browser/policy/cloud_policy_provider.h" |
| +#include "base/memory/scoped_ptr.h" |
| #include "chrome/browser/policy/browser_policy_connector.h" |
| +#include "chrome/browser/policy/policy_bundle.h" |
| +#include "chrome/browser/policy/policy_map.h" |
| namespace policy { |
| @@ -43,11 +46,6 @@ void CloudPolicyProvider::SetDevicePolicyCache(CloudPolicyCacheBase* cache) { |
| } |
| #endif |
| -bool CloudPolicyProvider::ProvideInternal(PolicyMap* result) { |
| - result->CopyFrom(combined_); |
| - return true; |
| -} |
| - |
| bool CloudPolicyProvider::IsInitializationComplete() const { |
| return initialization_complete_; |
| } |
| @@ -58,14 +56,15 @@ void CloudPolicyProvider::RefreshPolicies() { |
| pending_updates_.insert(caches_[i]); |
| } |
| if (pending_updates_.empty()) |
| - NotifyPolicyUpdated(); |
| + Merge(); |
| else |
| browser_policy_connector_->FetchCloudPolicy(); |
| } |
| void CloudPolicyProvider::OnCacheUpdate(CloudPolicyCacheBase* cache) { |
| pending_updates_.erase(cache); |
| - Merge(); |
| + if (pending_updates_.empty()) |
| + Merge(); |
| } |
| void CloudPolicyProvider::OnCacheGoingAway(CloudPolicyCacheBase* cache) { |
| @@ -93,17 +92,17 @@ void CloudPolicyProvider::Merge() { |
| } |
| } |
| - combined_.Clear(); |
| + PolicyMap combined; |
| for (size_t i = 0; i < CACHE_SIZE; ++i) { |
| if (caches_[i] && caches_[i]->IsReady()) |
| - combined_.MergeFrom(*caches_[i]->policy()); |
| + combined.MergeFrom(*caches_[i]->policy()); |
| } |
| - FixDeprecatedPolicies(&combined_); |
| - combined_.FilterLevel(level_); |
| + combined.FilterLevel(level_); |
| - // Trigger a notification. |
| - if (pending_updates_.empty()) |
| - NotifyPolicyUpdated(); |
| + scoped_ptr<PolicyBundle> bundle(new PolicyBundle()); |
| + bundle->Get(POLICY_DOMAIN_CHROME, std::string()).Swap(&combined); |
| + |
|
Mattias Nissler (ping if slow)
2012/05/14 09:07:21
remove newline?
Joao da Silva
2012/05/14 09:39:17
Done.
|
| + UpdateProviderPolicy(bundle.Pass()); |
| } |
| } // namespace policy |