OLD | NEW |
---|---|
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef CHROME_BROWSER_POLICY_CLOUD_CLOUD_POLICY_INVALIDATOR_H_ | 5 #ifndef CHROME_BROWSER_POLICY_CLOUD_CLOUD_POLICY_INVALIDATOR_H_ |
6 #define CHROME_BROWSER_POLICY_CLOUD_CLOUD_POLICY_INVALIDATOR_H_ | 6 #define CHROME_BROWSER_POLICY_CLOUD_CLOUD_POLICY_INVALIDATOR_H_ |
7 | 7 |
8 #include <string> | 8 #include <string> |
9 | 9 |
10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
(...skipping 30 matching lines...) Expand all Loading... | |
41 | 41 |
42 // The default, min and max values for max_fetch_delay_. | 42 // The default, min and max values for max_fetch_delay_. |
43 static const int kMaxFetchDelayDefault; | 43 static const int kMaxFetchDelayDefault; |
44 static const int kMaxFetchDelayMin; | 44 static const int kMaxFetchDelayMin; |
45 static const int kMaxFetchDelayMax; | 45 static const int kMaxFetchDelayMax; |
46 | 46 |
47 // The grace period, in seconds, to allow for invalidations to be received | 47 // The grace period, in seconds, to allow for invalidations to be received |
48 // once the invalidation service starts up. | 48 // once the invalidation service starts up. |
49 static const int kInvalidationGracePeriod; | 49 static const int kInvalidationGracePeriod; |
50 | 50 |
51 // Time, in seconds, for which unknown version invalidations are ignored after | |
52 // fetching a policy. | |
53 static const int kUnknownVersionIgnorePeriod; | |
54 | |
55 // The max tolerated discrepancy, in minutes, between policy timestamps and | |
56 // invalidation timestamps when determining if an invalidation is expired. | |
57 static const int kMaxInvalidationTimeDelta; | |
Joao da Silva
2014/04/08 12:31:59
I'd suggest having both times in seconds, up to yo
Steve Condie
2014/04/08 18:09:39
Done.
| |
58 | |
51 // |core| is the cloud policy core which connects the various policy objects. | 59 // |core| is the cloud policy core which connects the various policy objects. |
52 // It must remain valid until Shutdown is called. | 60 // It must remain valid until Shutdown is called. |
53 // |task_runner| is used for scheduling delayed tasks. It must post tasks to | 61 // |task_runner| is used for scheduling delayed tasks. It must post tasks to |
54 // the main policy thread. | 62 // the main policy thread. |
55 // |clock| is used to get the current time. | 63 // |clock| is used to get the current time. |
56 CloudPolicyInvalidator( | 64 CloudPolicyInvalidator( |
57 CloudPolicyCore* core, | 65 CloudPolicyCore* core, |
58 const scoped_refptr<base::SequencedTaskRunner>& task_runner, | 66 const scoped_refptr<base::SequencedTaskRunner>& task_runner, |
59 scoped_ptr<base::Clock> clock); | 67 scoped_ptr<base::Clock> clock); |
60 virtual ~CloudPolicyInvalidator(); | 68 virtual ~CloudPolicyInvalidator(); |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
117 // response to an invalidation with a missing payload. | 125 // response to an invalidation with a missing payload. |
118 void RefreshPolicy(bool is_missing_payload); | 126 void RefreshPolicy(bool is_missing_payload); |
119 | 127 |
120 // Acknowledge the latest invalidation. | 128 // Acknowledge the latest invalidation. |
121 void AcknowledgeInvalidation(); | 129 void AcknowledgeInvalidation(); |
122 | 130 |
123 // Determines if the given policy is different from the policy passed in the | 131 // Determines if the given policy is different from the policy passed in the |
124 // previous call. | 132 // previous call. |
125 bool IsPolicyChanged(const enterprise_management::PolicyData* policy); | 133 bool IsPolicyChanged(const enterprise_management::PolicyData* policy); |
126 | 134 |
135 // Determine if an invalidation has expired. | |
136 // |version| is the version of the invalidation, or zero for unknown. | |
137 bool IsInvalidationExpired(int64 version); | |
138 | |
127 // Get the kMetricPolicyRefresh histogram metric which should be incremented | 139 // Get the kMetricPolicyRefresh histogram metric which should be incremented |
128 // when a policy is stored. | 140 // when a policy is stored. |
129 int GetPolicyRefreshMetric(bool policy_changed); | 141 int GetPolicyRefreshMetric(bool policy_changed); |
130 | 142 |
143 // Get the kMetricPolicyInvalidations histogram metric which should be | |
144 // incremented when an invalidation is received. | |
145 int GetInvalidationMetric(bool is_missing_payload, bool is_expired); | |
146 | |
131 // Determine if invalidations have been enabled longer than the grace period. | 147 // Determine if invalidations have been enabled longer than the grace period. |
132 bool GetInvalidationsEnabled(); | 148 bool GetInvalidationsEnabled(); |
133 | 149 |
134 // The state of the object. | 150 // The state of the object. |
135 enum State { | 151 enum State { |
136 UNINITIALIZED, | 152 UNINITIALIZED, |
137 STOPPED, | 153 STOPPED, |
138 STARTED, | 154 STARTED, |
139 SHUT_DOWN | 155 SHUT_DOWN |
140 }; | 156 }; |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
201 // A thread checker to make sure that callbacks are invoked on the correct | 217 // A thread checker to make sure that callbacks are invoked on the correct |
202 // thread. | 218 // thread. |
203 base::ThreadChecker thread_checker_; | 219 base::ThreadChecker thread_checker_; |
204 | 220 |
205 DISALLOW_COPY_AND_ASSIGN(CloudPolicyInvalidator); | 221 DISALLOW_COPY_AND_ASSIGN(CloudPolicyInvalidator); |
206 }; | 222 }; |
207 | 223 |
208 } // namespace policy | 224 } // namespace policy |
209 | 225 |
210 #endif // CHROME_BROWSER_POLICY_CLOUD_CLOUD_POLICY_INVALIDATOR_H_ | 226 #endif // CHROME_BROWSER_POLICY_CLOUD_CLOUD_POLICY_INVALIDATOR_H_ |
OLD | NEW |