Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4551)

Unified Diff: chrome/browser/policy/cloud_policy_provider.cc

Issue 10386097: Refactored ConfigurationPolicyProvider to provide PolicyBundles instead of PolicyMaps. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Addressed comments Created 8 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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..c28bba9d612871b69bbdd24929df86247e6913f2 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,16 @@ 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);
+ UpdatePolicy(bundle.Pass());
}
} // namespace policy
« no previous file with comments | « chrome/browser/policy/cloud_policy_provider.h ('k') | chrome/browser/policy/configuration_policy_pref_store.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698