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

Unified Diff: chrome/browser/policy/cloud/cloud_policy_store.cc

Issue 19462006: Implement fetching, caching and retrieval of external policy data (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebased. Created 7 years, 4 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/cloud_policy_store.cc
diff --git a/chrome/browser/policy/cloud/cloud_policy_store.cc b/chrome/browser/policy/cloud/cloud_policy_store.cc
index 472c97d6ebb02508c0c4a7c5ce2ceebbd554b7dc..50085c00383442dae6acf8d8a4e9f4d477a8cf0b 100644
--- a/chrome/browser/policy/cloud/cloud_policy_store.cc
+++ b/chrome/browser/policy/cloud/cloud_policy_store.cc
@@ -5,6 +5,8 @@
#include "chrome/browser/policy/cloud/cloud_policy_store.h"
#include "base/hash.h"
+#include "base/logging.h"
+#include "chrome/browser/policy/cloud/cloud_external_data_manager.h"
namespace policy {
@@ -45,6 +47,12 @@ void CloudPolicyStore::NotifyStoreLoaded() {
hash_value_ = new_hash_value;
is_initialized_ = true;
+ // The |external_data_manager_| must be notified first so that when other
+ // observers are informed about the changed policies and try to fetch external
+ // data referenced by these, the |external_data_manager_| has the required
+ // metadata already.
+ if (external_data_manager_)
+ external_data_manager_->OnPolicyStoreLoaded();
FOR_EACH_OBSERVER(Observer, observers_, OnStoreLoaded(this));
}
@@ -53,4 +61,12 @@ void CloudPolicyStore::NotifyStoreError() {
FOR_EACH_OBSERVER(Observer, observers_, OnStoreError(this));
}
+void CloudPolicyStore::SetExternalDataManager(
+ base::WeakPtr<CloudExternalDataManager> external_data_manager) {
+ DCHECK(!external_data_manager_);
+ external_data_manager_ = external_data_manager;
+ if (is_initialized_)
+ external_data_manager_->OnPolicyStoreLoaded();
+}
+
} // namespace policy
« no previous file with comments | « chrome/browser/policy/cloud/cloud_policy_store.h ('k') | chrome/browser/policy/cloud/user_cloud_policy_store_base.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698