Index: chrome/browser/policy/cloud/cloud_policy_manager.h |
diff --git a/chrome/browser/policy/cloud/cloud_policy_manager.h b/chrome/browser/policy/cloud/cloud_policy_manager.h |
index 34be652e8e2a0fd8524a0a9f259c018900ee4ed0..08252b7a3483b430a9e42302504f7ef9cd5ea5e4 100644 |
--- a/chrome/browser/policy/cloud/cloud_policy_manager.h |
+++ b/chrome/browser/policy/cloud/cloud_policy_manager.h |
@@ -12,6 +12,7 @@ |
#include "base/prefs/pref_member.h" |
#include "chrome/browser/policy/cloud/cloud_policy_constants.h" |
#include "chrome/browser/policy/cloud/cloud_policy_core.h" |
+#include "chrome/browser/policy/cloud/cloud_policy_invalidator.h" |
#include "chrome/browser/policy/cloud/cloud_policy_store.h" |
#include "chrome/browser/policy/configuration_policy_provider.h" |
@@ -27,7 +28,8 @@ class PolicyBundle; |
// functionality specific to user-level and device-level cloud policy, such as |
// blocking on initial user policy fetch or device enrollment. |
class CloudPolicyManager : public ConfigurationPolicyProvider, |
- public CloudPolicyStore::Observer { |
+ public CloudPolicyStore::Observer, |
+ public CloudPolicyInvalidationHandler { |
public: |
CloudPolicyManager(const PolicyNamespaceKey& policy_ns_key, |
CloudPolicyStore* cloud_policy_store); |
@@ -45,11 +47,23 @@ class CloudPolicyManager : public ConfigurationPolicyProvider, |
virtual void OnStoreLoaded(CloudPolicyStore* cloud_policy_store) OVERRIDE; |
virtual void OnStoreError(CloudPolicyStore* cloud_policy_store) OVERRIDE; |
+ // CloudPolicyInvalidationHandler: |
+ virtual void SetInvalidationInfo( |
+ int64 version, |
+ const std::string& payload) OVERRIDE; |
+ virtual void InvalidatePolicy() OVERRIDE; |
+ virtual void OnInvalidatorStateChanged(bool invalidations_enabled) OVERRIDE; |
+ |
protected: |
// Check whether fully initialized and if so, publish policy by calling |
// ConfigurationPolicyStore::UpdatePolicy(). |
void CheckAndPublishPolicy(); |
+ // Starts the policy refresh scheduler. This must be called instead of calling |
+ // enabling the scheduler on core() directly so that invalidations received |
+ // before the refresh scheduler is started are handled correctly. |
+ void StartRefreshScheduler(); |
+ |
// Called by CheckAndPublishPolicy() to create a bundle with the current |
// policies. |
virtual scoped_ptr<PolicyBundle> CreatePolicyBundle(); |
@@ -72,6 +86,11 @@ class CloudPolicyManager : public ConfigurationPolicyProvider, |
// policy update notifications are deferred until after it completes. |
bool waiting_for_policy_refresh_; |
+ // Replays the latest invalidation that occurred before the refresh |
+ // scheduler was started. Without storing the information, invalidations |
+ // generated before the refresh scheduler started would be lost. |
+ CloudPolicyInvalidationReplayer invalidation_replayer_; |
rlarocque
2013/07/25 19:23:40
Are you sure this is necessary? The InvalidationS
Steve Condie
2013/07/26 01:39:25
With the new way of managing the lifetime of the U
Steve Condie
2013/07/26 08:47:27
After thinking about it more, there is a fairly st
|
+ |
DISALLOW_COPY_AND_ASSIGN(CloudPolicyManager); |
}; |