Index: chrome/browser/policy/cloud/cloud_policy_manager.cc |
diff --git a/chrome/browser/policy/cloud/cloud_policy_manager.cc b/chrome/browser/policy/cloud/cloud_policy_manager.cc |
index 59fcc735805e8d8c7089a4d35663cc23ac49dbb8..098a8d18755ea1a95047b667c2466313a43e04e3 100644 |
--- a/chrome/browser/policy/cloud/cloud_policy_manager.cc |
+++ b/chrome/browser/policy/cloud/cloud_policy_manager.cc |
@@ -8,6 +8,7 @@ |
#include "base/bind_helpers.h" |
#include "base/logging.h" |
#include "base/prefs/pref_service.h" |
+#include "chrome/browser/policy/cloud/cloud_policy_refresh_scheduler.h" |
#include "chrome/browser/policy/cloud/cloud_policy_service.h" |
#include "chrome/browser/policy/policy_bundle.h" |
#include "chrome/browser/policy/policy_map.h" |
@@ -30,6 +31,17 @@ CloudPolicyManager::CloudPolicyManager(const PolicyNamespaceKey& policy_ns_key, |
CloudPolicyManager::~CloudPolicyManager() {} |
+void CloudPolicyManager::EnableInvalidations( |
+ const base::Closure& initialize_invalidator) { |
Joao da Silva
2013/07/29 19:44:32
DCHECK(!initialize_invalidator.is_null());
DCHECK(
Steve Condie
2013/07/29 20:44:51
Done.
|
+ // If the refresh scheduler is already running, initialize the invalidator |
+ // right away. Otherwise, store the closure so it can be invoked when the |
+ // refresh scheduler starts. |
+ if (core()->refresh_scheduler()) |
+ initialize_invalidator.Run(); |
+ else |
+ initialize_invalidator_ = initialize_invalidator; |
+} |
+ |
void CloudPolicyManager::Shutdown() { |
core_.Disconnect(); |
store()->RemoveObserver(this); |
@@ -66,6 +78,24 @@ void CloudPolicyManager::OnStoreError(CloudPolicyStore* cloud_policy_store) { |
CheckAndPublishPolicy(); |
} |
+void CloudPolicyManager::SetInvalidationInfo( |
+ int64 version, |
+ const std::string& payload) { |
+ DCHECK(core()->client()); |
+ core()->client()->SetInvalidationInfo(version, payload); |
+} |
+ |
+void CloudPolicyManager::InvalidatePolicy() { |
+ DCHECK(core()->refresh_scheduler()); |
+ core()->refresh_scheduler()->RefreshSoon(); |
+} |
+ |
+void CloudPolicyManager::OnInvalidatorStateChanged(bool invalidations_enabled) { |
+ DCHECK(core()->refresh_scheduler()); |
+ core()->refresh_scheduler()->SetInvalidationServiceAvailability( |
+ invalidations_enabled); |
+} |
+ |
void CloudPolicyManager::CheckAndPublishPolicy() { |
if (IsInitializationComplete(POLICY_DOMAIN_CHROME) && |
!waiting_for_policy_refresh_) { |
@@ -73,6 +103,14 @@ void CloudPolicyManager::CheckAndPublishPolicy() { |
} |
} |
+void CloudPolicyManager::StartRefreshScheduler() { |
+ DCHECK(!core()->refresh_scheduler()); |
+ core()->StartRefreshScheduler(); |
+ // Initialize the invalidator if EnableInvalidations has been called. |
+ if (!initialize_invalidator_.is_null()) |
+ initialize_invalidator_.Run(); |
+} |
+ |
scoped_ptr<PolicyBundle> CloudPolicyManager::CreatePolicyBundle() { |
scoped_ptr<PolicyBundle> bundle(new PolicyBundle); |
bundle->Get(PolicyNamespace(POLICY_DOMAIN_CHROME, std::string())) |