Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2254)

Unified Diff: chrome/browser/policy/cloud/cloud_policy_refresh_scheduler.h

Issue 109743002: Move policy code into components/policy. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: moar fixes Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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_

Powered by Google App Engine
This is Rietveld 408576698