Index: chrome/browser/policy/cloud/cloud_policy_refresh_scheduler.h |
diff --git a/chrome/browser/policy/cloud/cloud_policy_refresh_scheduler.h b/chrome/browser/policy/cloud/cloud_policy_refresh_scheduler.h |
deleted file mode 100644 |
index a3d121b246356816ed501125f7bcaad75999142c..0000000000000000000000000000000000000000 |
--- a/chrome/browser/policy/cloud/cloud_policy_refresh_scheduler.h |
+++ /dev/null |
@@ -1,155 +0,0 @@ |
-// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#ifndef CHROME_BROWSER_POLICY_CLOUD_CLOUD_POLICY_REFRESH_SCHEDULER_H_ |
-#define CHROME_BROWSER_POLICY_CLOUD_CLOUD_POLICY_REFRESH_SCHEDULER_H_ |
- |
-#include "base/basictypes.h" |
-#include "base/cancelable_callback.h" |
-#include "base/memory/ref_counted.h" |
-#include "base/time/time.h" |
-#include "chrome/browser/policy/cloud/cloud_policy_client.h" |
-#include "chrome/browser/policy/cloud/cloud_policy_store.h" |
-#include "chrome/browser/policy/cloud/rate_limiter.h" |
-#include "net/base/network_change_notifier.h" |
- |
-namespace base { |
-class SequencedTaskRunner; |
-} |
- |
-namespace policy { |
- |
-// Observes CloudPolicyClient and CloudPolicyStore to trigger periodic policy |
-// fetches and issue retries on error conditions. |
-class CloudPolicyRefreshScheduler |
- : public CloudPolicyClient::Observer, |
- public CloudPolicyStore::Observer, |
- public net::NetworkChangeNotifier::IPAddressObserver { |
- public: |
- // Refresh constants. |
- static const int64 kDefaultRefreshDelayMs; |
- static const int64 kUnmanagedRefreshDelayMs; |
- static const int64 kWithInvalidationsRefreshDelayMs; |
- static const int64 kInitialErrorRetryDelayMs; |
- |
- // Refresh delay bounds. |
- static const int64 kRefreshDelayMinMs; |
- static const int64 kRefreshDelayMaxMs; |
- |
- // |client| and |store| pointers must stay valid throughout the |
- // lifetime of CloudPolicyRefreshScheduler. |
- CloudPolicyRefreshScheduler( |
- CloudPolicyClient* client, |
- CloudPolicyStore* store, |
- const scoped_refptr<base::SequencedTaskRunner>& task_runner); |
- virtual ~CloudPolicyRefreshScheduler(); |
- |
- base::Time last_refresh() const { return last_refresh_; } |
- int64 refresh_delay() const { return refresh_delay_ms_; } |
- |
- // Sets the refresh delay to |refresh_delay| (subject to min/max clamping). |
- void SetRefreshDelay(int64 refresh_delay); |
- |
- // Requests a policy refresh to be performed soon. This may apply throttling, |
- // and the request may not be immediately sent. |
- void RefreshSoon(); |
- |
- // The refresh scheduler starts by assuming that invalidations are not |
- // available. This call can be used to signal whether the invalidations |
- // service is available or not, and can be called multiple times. |
- // When the invalidations service is available then the refresh rate is much |
- // lower. |
- void SetInvalidationServiceAvailability(bool is_available); |
- |
- // Whether the invalidations service is available and receiving notifications |
- // of policy updates. |
- bool invalidations_available() { |
- return invalidations_available_; |
- } |
- |
- // CloudPolicyClient::Observer: |
- virtual void OnPolicyFetched(CloudPolicyClient* client) OVERRIDE; |
- virtual void OnRegistrationStateChanged(CloudPolicyClient* client) OVERRIDE; |
- virtual void OnClientError(CloudPolicyClient* client) OVERRIDE; |
- |
- // CloudPolicyStore::Observer: |
- virtual void OnStoreLoaded(CloudPolicyStore* store) OVERRIDE; |
- virtual void OnStoreError(CloudPolicyStore* store) OVERRIDE; |
- |
- // net::NetworkChangeNotifier::IPAddressObserver: |
- virtual void OnIPAddressChanged() OVERRIDE; |
- |
- private: |
- // Initializes |last_refresh_| to the policy timestamp from |store_| in case |
- // there is policy present that indicates this client is not managed. This |
- // results in policy fetches only to occur after the entire unmanaged refresh |
- // delay expires, even over restarts. For managed clients, we want to trigger |
- // a refresh on every restart. |
- void UpdateLastRefreshFromPolicy(); |
- |
- // Schedules a refresh to be performed immediately. |
- void RefreshNow(); |
- |
- // Evaluates when the next refresh is pending and updates the callback to |
- // execute that refresh at the appropriate time. |
- void ScheduleRefresh(); |
- |
- // Triggers a policy refresh. |
- void PerformRefresh(); |
- |
- // Schedules a policy refresh to happen after |delta_ms| milliseconds, |
- // relative to |last_refresh_|. |
- void RefreshAfter(int delta_ms); |
- |
- // Sets the |wait_for_invalidations_timeout_callback_| and schedules it. |
- void WaitForInvalidationService(); |
- |
- // Callback for |wait_for_invalidations_timeout_callback_|. |
- void OnWaitForInvalidationServiceTimeout(); |
- |
- // Returns true if the refresh scheduler is currently waiting for the |
- // availability of the invalidations service. |
- bool WaitingForInvalidationService() const; |
- |
- CloudPolicyClient* client_; |
- CloudPolicyStore* store_; |
- |
- // For scheduling delayed tasks. |
- const scoped_refptr<base::SequencedTaskRunner> task_runner_; |
- |
- // The delayed refresh callback. |
- base::CancelableClosure refresh_callback_; |
- |
- // The last time a refresh callback completed. |
- base::Time last_refresh_; |
- |
- // Error retry delay in milliseconds. |
- int64 error_retry_delay_ms_; |
- |
- // The refresh delay. |
- int64 refresh_delay_ms_; |
- |
- // Used to limit the rate at which refreshes are scheduled. |
- RateLimiter rate_limiter_; |
- |
- // Whether the invalidations service is available and receiving notifications |
- // of policy updates. |
- bool invalidations_available_; |
- |
- // The refresh scheduler waits some seconds for the invalidations service |
- // before starting to issue refresh requests. If the invalidations service |
- // doesn't become available during this time then the refresh scheduler will |
- // use the polling refresh rate. |
- base::CancelableClosure wait_for_invalidations_timeout_callback_; |
- |
- // Used to measure how long it took for the invalidations service to report |
- // its initial status. |
- base::Time creation_time_; |
- |
- DISALLOW_COPY_AND_ASSIGN(CloudPolicyRefreshScheduler); |
-}; |
- |
-} // namespace policy |
- |
-#endif // CHROME_BROWSER_POLICY_CLOUD_CLOUD_POLICY_REFRESH_SCHEDULER_H_ |