OLD | NEW |
---|---|
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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_REFRESH_SCHEDULER_H_ | 5 #ifndef CHROME_BROWSER_POLICY_CLOUD_CLOUD_POLICY_REFRESH_SCHEDULER_H_ |
6 #define CHROME_BROWSER_POLICY_CLOUD_CLOUD_POLICY_REFRESH_SCHEDULER_H_ | 6 #define CHROME_BROWSER_POLICY_CLOUD_CLOUD_POLICY_REFRESH_SCHEDULER_H_ |
7 | 7 |
8 #include "base/basictypes.h" | 8 #include "base/basictypes.h" |
9 #include "base/cancelable_callback.h" | 9 #include "base/cancelable_callback.h" |
10 #include "base/memory/ref_counted.h" | 10 #include "base/memory/ref_counted.h" |
(...skipping 18 matching lines...) Expand all Loading... | |
29 public: | 29 public: |
30 // Refresh constants. | 30 // Refresh constants. |
31 static const int64 kDefaultRefreshDelayMs; | 31 static const int64 kDefaultRefreshDelayMs; |
32 static const int64 kUnmanagedRefreshDelayMs; | 32 static const int64 kUnmanagedRefreshDelayMs; |
33 static const int64 kInitialErrorRetryDelayMs; | 33 static const int64 kInitialErrorRetryDelayMs; |
34 | 34 |
35 // Refresh delay bounds. | 35 // Refresh delay bounds. |
36 static const int64 kRefreshDelayMinMs; | 36 static const int64 kRefreshDelayMinMs; |
37 static const int64 kRefreshDelayMaxMs; | 37 static const int64 kRefreshDelayMaxMs; |
38 | 38 |
39 // The minimum amount of delay that should occur before the first refresh in | |
40 // milliseconds. This delay is intended to allow the CloudPolicyInvalidator to | |
41 // receive policy invalidations before a policy is automatically fetched on | |
42 // sign-in. The delay is only enforced if policy invalidations are enabled. | |
43 static const int64 kFirstRefreshDelayMs; | |
44 | |
39 // |client|, |store| and |prefs| pointers must stay valid throughout the | 45 // |client|, |store| and |prefs| pointers must stay valid throughout the |
40 // lifetime of CloudPolicyRefreshScheduler. | 46 // lifetime of CloudPolicyRefreshScheduler. |
41 CloudPolicyRefreshScheduler( | 47 CloudPolicyRefreshScheduler( |
42 CloudPolicyClient* client, | 48 CloudPolicyClient* client, |
43 CloudPolicyStore* store, | 49 CloudPolicyStore* store, |
44 const scoped_refptr<base::SequencedTaskRunner>& task_runner); | 50 const scoped_refptr<base::SequencedTaskRunner>& task_runner, |
51 bool invalidations_enabled); | |
Joao da Silva
2013/07/23 20:44:47
As discussed offline, you can revert the changes t
Steve Condie
2013/07/24 01:42:04
Done.
| |
45 virtual ~CloudPolicyRefreshScheduler(); | 52 virtual ~CloudPolicyRefreshScheduler(); |
46 | 53 |
47 base::Time last_refresh() const { return last_refresh_; } | 54 base::Time last_refresh() const { return last_refresh_; } |
48 int64 refresh_delay() const { return refresh_delay_ms_; } | 55 int64 refresh_delay() const { return refresh_delay_ms_; } |
49 | 56 |
50 // Sets the refresh delay to |refresh_delay| (subject to min/max clamping). | 57 // Sets the refresh delay to |refresh_delay| (subject to min/max clamping). |
51 void SetRefreshDelay(int64 refresh_delay); | 58 void SetRefreshDelay(int64 refresh_delay); |
52 | 59 |
53 // Requests a policy refresh to be performed soon. This may apply throttling, | 60 // Requests a policy refresh to be performed soon. This may apply throttling, |
54 // and the request may not be immediately sent. | 61 // and the request may not be immediately sent. |
55 void RefreshSoon(); | 62 void RefreshSoon(); |
56 | 63 |
64 // Requests a policy refresh to be performed immediately due to a policy | |
65 // invalidation being received. Unlike RefreshSoon, throttling is not | |
66 // applied. | |
67 void RefreshForInvalidation(); | |
68 | |
57 // CloudPolicyClient::Observer: | 69 // CloudPolicyClient::Observer: |
58 virtual void OnPolicyFetched(CloudPolicyClient* client) OVERRIDE; | 70 virtual void OnPolicyFetched(CloudPolicyClient* client) OVERRIDE; |
59 virtual void OnRegistrationStateChanged(CloudPolicyClient* client) OVERRIDE; | 71 virtual void OnRegistrationStateChanged(CloudPolicyClient* client) OVERRIDE; |
60 virtual void OnClientError(CloudPolicyClient* client) OVERRIDE; | 72 virtual void OnClientError(CloudPolicyClient* client) OVERRIDE; |
61 | 73 |
62 // CloudPolicyStore::Observer: | 74 // CloudPolicyStore::Observer: |
63 virtual void OnStoreLoaded(CloudPolicyStore* store) OVERRIDE; | 75 virtual void OnStoreLoaded(CloudPolicyStore* store) OVERRIDE; |
64 virtual void OnStoreError(CloudPolicyStore* store) OVERRIDE; | 76 virtual void OnStoreError(CloudPolicyStore* store) OVERRIDE; |
65 | 77 |
66 // net::NetworkChangeNotifier::IPAddressObserver: | 78 // net::NetworkChangeNotifier::IPAddressObserver: |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
102 | 114 |
103 // Error retry delay in milliseconds. | 115 // Error retry delay in milliseconds. |
104 int64 error_retry_delay_ms_; | 116 int64 error_retry_delay_ms_; |
105 | 117 |
106 // The refresh delay. | 118 // The refresh delay. |
107 int64 refresh_delay_ms_; | 119 int64 refresh_delay_ms_; |
108 | 120 |
109 // Used to limit the rate at which refreshes are scheduled. | 121 // Used to limit the rate at which refreshes are scheduled. |
110 RateLimiter rate_limiter_; | 122 RateLimiter rate_limiter_; |
111 | 123 |
124 // The time at which the first refresh can begin. This is used to introduce a | |
125 // small delay before a refresh can occur to allow policy invalidations to | |
126 // occur before automatically refreshing after login. | |
127 base::Time first_refresh_; | |
128 | |
112 DISALLOW_COPY_AND_ASSIGN(CloudPolicyRefreshScheduler); | 129 DISALLOW_COPY_AND_ASSIGN(CloudPolicyRefreshScheduler); |
113 }; | 130 }; |
114 | 131 |
115 } // namespace policy | 132 } // namespace policy |
116 | 133 |
117 #endif // CHROME_BROWSER_POLICY_CLOUD_CLOUD_POLICY_REFRESH_SCHEDULER_H_ | 134 #endif // CHROME_BROWSER_POLICY_CLOUD_CLOUD_POLICY_REFRESH_SCHEDULER_H_ |
OLD | NEW |