| Index: chrome/browser/policy/cloud_policy_controller.h
|
| diff --git a/chrome/browser/policy/cloud_policy_controller.h b/chrome/browser/policy/cloud_policy_controller.h
|
| deleted file mode 100644
|
| index 888499130f7b5eaf1bb39ecae3786fac7f8e8f76..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/policy/cloud_policy_controller.h
|
| +++ /dev/null
|
| @@ -1,149 +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_POLICY_CONTROLLER_H_
|
| -#define CHROME_BROWSER_POLICY_CLOUD_POLICY_CONTROLLER_H_
|
| -
|
| -#include "base/basictypes.h"
|
| -#include "base/memory/scoped_ptr.h"
|
| -#include "base/time.h"
|
| -#include "chrome/browser/policy/cloud_policy_constants.h"
|
| -#include "chrome/browser/policy/cloud_policy_data_store.h"
|
| -
|
| -namespace enterprise_management {
|
| -class DeviceManagementResponse;
|
| -}
|
| -
|
| -namespace policy {
|
| -
|
| -class CloudPolicyCacheBase;
|
| -class DelayedWorkScheduler;
|
| -class DeviceManagementRequestJob;
|
| -class DeviceManagementService;
|
| -class DeviceTokenFetcher;
|
| -class PolicyNotifier;
|
| -
|
| -// Coordinates the actions of DeviceTokenFetcher, CloudPolicyDataStore,
|
| -// and CloudPolicyCache: calls their methods and listens to their
|
| -// callbacks/notifications.
|
| -class CloudPolicyController : public CloudPolicyDataStore::Observer {
|
| - public:
|
| - // All parameters are weak pointers.
|
| - CloudPolicyController(DeviceManagementService* service,
|
| - CloudPolicyCacheBase* cache,
|
| - DeviceTokenFetcher* token_fetcher,
|
| - CloudPolicyDataStore* data_store,
|
| - PolicyNotifier* notifier);
|
| - virtual ~CloudPolicyController();
|
| -
|
| - // Sets the refresh rate at which to re-fetch policy information.
|
| - void SetRefreshRate(int64 refresh_rate_milliseconds);
|
| -
|
| - // Triggers an immediate retry of the current operation.
|
| - void Retry();
|
| -
|
| - // Stops any pending activity and resets the controller to unenrolled state.
|
| - void Reset();
|
| -
|
| - // Attempts to fetch policies again, if possible. The cache is notified that
|
| - // a fetch was attempted. If there is no DMToken yet and no material to fetch
|
| - // it, the cache is immediately notified that a fetch was attempted unless
|
| - // |wait_for_auth_token| is true. In that case, an asynchronous auth token
|
| - // fetch should be in progress that will eventually make the controller retry.
|
| - void RefreshPolicies(bool wait_for_auth_token);
|
| -
|
| - // Policy request response handler.
|
| - void OnPolicyFetchCompleted(
|
| - DeviceManagementStatus status,
|
| - const enterprise_management::DeviceManagementResponse& response);
|
| -
|
| - // CloudPolicyDataStore::Observer implementation:
|
| - virtual void OnDeviceTokenChanged() OVERRIDE;
|
| - virtual void OnCredentialsChanged() OVERRIDE;
|
| -
|
| - private:
|
| - // Indicates the current state the controller is in.
|
| - enum ControllerState {
|
| - // The controller is initializing, policy information not yet available.
|
| - STATE_TOKEN_UNAVAILABLE,
|
| - // The device is not managed. Should retry fetching the token after delay.
|
| - STATE_TOKEN_UNMANAGED,
|
| - // The token is not valid and should be refetched with exponential back-off.
|
| - STATE_TOKEN_ERROR,
|
| - // The token is valid, but policy is yet to be fetched.
|
| - STATE_TOKEN_VALID,
|
| - // Policy information is available and valid.
|
| - STATE_POLICY_VALID,
|
| - // The service returned an error when requesting policy, will retry.
|
| - STATE_POLICY_ERROR,
|
| - // The service returned an error that is not going to go away soon.
|
| - STATE_POLICY_UNAVAILABLE
|
| - };
|
| -
|
| - friend class CloudPolicyControllerTest;
|
| - friend class TestingCloudPolicySubsystem;
|
| -
|
| - // More configurable constructor for use by test cases.
|
| - // Takes ownership of |scheduler|; the other parameters are weak pointers.
|
| - CloudPolicyController(DeviceManagementService* service,
|
| - CloudPolicyCacheBase* cache,
|
| - DeviceTokenFetcher* token_fetcher,
|
| - CloudPolicyDataStore* data_store,
|
| - PolicyNotifier* notifier,
|
| - DelayedWorkScheduler* scheduler);
|
| -
|
| - // Called by constructors to perform shared initialization.
|
| - void Initialize(DeviceManagementService* service,
|
| - CloudPolicyCacheBase* cache,
|
| - DeviceTokenFetcher* token_fetcher,
|
| - CloudPolicyDataStore* data_store,
|
| - PolicyNotifier* notifier,
|
| - DelayedWorkScheduler* scheduler);
|
| -
|
| - // Checks if the controller is ready to fetch the DMToken.
|
| - bool ReadyToFetchToken();
|
| -
|
| - // Asks the token fetcher to fetch a new token.
|
| - void FetchToken();
|
| -
|
| - // Sends a request to the device management backend to fetch policy if one
|
| - // isn't already outstanding.
|
| - void SendPolicyRequest();
|
| -
|
| - // Called back from |scheduler_|.
|
| - // Performs whatever action is required in the current state,
|
| - // e.g. refreshing policy.
|
| - void DoWork();
|
| -
|
| - // Switches to a new state and triggers any appropriate actions.
|
| - void SetState(ControllerState new_state);
|
| -
|
| - // Computes the policy refresh delay to use.
|
| - base::TimeDelta GetRefreshDelay();
|
| -
|
| - // Schedules a DoWork() invocation |delay| time units later.
|
| - void ScheduleDelayedWorkTask(const base::TimeDelta& delay);
|
| -
|
| - // Gets the last refresh time, defaulting to |now| if there is none.
|
| - base::Time GetLastRefreshTime(const base::Time& now);
|
| -
|
| - DeviceManagementService* service_;
|
| - CloudPolicyCacheBase* cache_;
|
| - CloudPolicyDataStore* data_store_;
|
| - DeviceTokenFetcher* token_fetcher_;
|
| - scoped_ptr<DeviceManagementRequestJob> request_job_;
|
| - ControllerState state_;
|
| - PolicyNotifier* notifier_;
|
| -
|
| - int64 policy_refresh_rate_ms_;
|
| - int64 effective_policy_refresh_error_delay_ms_;
|
| -
|
| - scoped_ptr<DelayedWorkScheduler> scheduler_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(CloudPolicyController);
|
| -};
|
| -
|
| -} // namespace policy
|
| -
|
| -#endif // CHROME_BROWSER_POLICY_CLOUD_POLICY_CONTROLLER_H_
|
|
|