| Index: chrome/browser/policy/cloud_policy_client.h
|
| diff --git a/chrome/browser/policy/cloud_policy_client.h b/chrome/browser/policy/cloud_policy_client.h
|
| deleted file mode 100644
|
| index 9ebafc5a983cd1845e9a63afea4704fca54e9141..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/policy/cloud_policy_client.h
|
| +++ /dev/null
|
| @@ -1,222 +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_CLIENT_H_
|
| -#define CHROME_BROWSER_POLICY_CLOUD_POLICY_CLIENT_H_
|
| -
|
| -#include <map>
|
| -#include <set>
|
| -#include <string>
|
| -
|
| -#include "base/basictypes.h"
|
| -#include "base/memory/scoped_ptr.h"
|
| -#include "base/observer_list.h"
|
| -#include "base/time.h"
|
| -#include "chrome/browser/policy/cloud_policy_constants.h"
|
| -#include "chrome/browser/policy/proto/device_management_backend.pb.h"
|
| -
|
| -namespace policy {
|
| -
|
| -class DeviceManagementRequestJob;
|
| -class DeviceManagementService;
|
| -
|
| -// Implements the core logic required to talk to the device management service.
|
| -// Also keeps track of the current state of the association with the service,
|
| -// such as whether there is a valid registration (DMToken is present in that
|
| -// case) and whether and what errors occurred in the latest request.
|
| -//
|
| -// Note that CloudPolicyClient doesn't do any validation of policy responses
|
| -// such as signature and time stamp checks. These happen once the policy gets
|
| -// installed in the cloud policy cache.
|
| -class CloudPolicyClient {
|
| - public:
|
| - // Maps a PolicyNamespaceKey to its corresponding PolicyFetchResponse.
|
| - typedef std::map<PolicyNamespaceKey,
|
| - enterprise_management::PolicyFetchResponse*> ResponseMap;
|
| -
|
| - // Observer interface for state and policy changes.
|
| - class Observer {
|
| - public:
|
| - virtual ~Observer();
|
| -
|
| - // Called when a policy fetch completes successfully. If a policy fetch
|
| - // triggers an error, OnClientError() will fire.
|
| - virtual void OnPolicyFetched(CloudPolicyClient* client) = 0;
|
| -
|
| - // Called upon registration state changes. This callback is invoked for
|
| - // successful completion of registration and unregistration requests.
|
| - virtual void OnRegistrationStateChanged(CloudPolicyClient* client) = 0;
|
| -
|
| - // Indicates there's been an error in a previously-issued request.
|
| - virtual void OnClientError(CloudPolicyClient* client) = 0;
|
| - };
|
| -
|
| - // Delegate interface for supplying status information to upload to the server
|
| - // as part of the policy fetch request.
|
| - class StatusProvider {
|
| - public:
|
| - virtual ~StatusProvider();
|
| -
|
| - // Retrieves status information to send with the next policy fetch.
|
| - // Implementations must return true if status information was filled in.
|
| - virtual bool GetDeviceStatus(
|
| - enterprise_management::DeviceStatusReportRequest* status) = 0;
|
| - virtual bool GetSessionStatus(
|
| - enterprise_management::SessionStatusReportRequest* status) = 0;
|
| -
|
| - // Called after the status information has successfully been submitted to
|
| - // the server.
|
| - virtual void OnSubmittedSuccessfully() = 0;
|
| - };
|
| -
|
| - // |provider| and |service| are weak pointers and it's the caller's
|
| - // responsibility to keep them valid for the lifetime of CloudPolicyClient.
|
| - CloudPolicyClient(const std::string& machine_id,
|
| - const std::string& machine_model,
|
| - UserAffiliation user_affiliation,
|
| - StatusProvider* provider,
|
| - DeviceManagementService* service);
|
| - virtual ~CloudPolicyClient();
|
| -
|
| - // Sets the DMToken, thereby establishing a registration with the server. A
|
| - // policy fetch is not automatically issued but can be requested by calling
|
| - // FetchPolicy().
|
| - virtual void SetupRegistration(const std::string& dm_token,
|
| - const std::string& client_id);
|
| -
|
| - // Attempts to register with the device management service. Results in a
|
| - // registration change or error notification.
|
| - virtual void Register(
|
| - enterprise_management::DeviceRegisterRequest::Type registration_type,
|
| - const std::string& auth_token,
|
| - const std::string& client_id,
|
| - bool is_auto_enrollment);
|
| -
|
| - // Requests a policy fetch. The client being registered is a prerequisite to
|
| - // this operation and this call will CHECK if the client is not in registered
|
| - // state. FetchPolicy() triggers a policy fetch from the cloud. A policy
|
| - // change notification is reported to the observers and the new policy blob
|
| - // can be retrieved once the policy fetch operation completes. In case of
|
| - // multiple requests to fetch policy, new requests will cancel any pending
|
| - // requests and the latest request will eventually trigger notifications.
|
| - virtual void FetchPolicy();
|
| -
|
| - // Sends an unregistration request to the server.
|
| - virtual void Unregister();
|
| -
|
| - // Adds an observer to be called back upon policy and state changes.
|
| - void AddObserver(Observer* observer);
|
| -
|
| - // Removes the specified observer.
|
| - void RemoveObserver(Observer* observer);
|
| -
|
| - void set_submit_machine_id(bool submit_machine_id) {
|
| - submit_machine_id_ = submit_machine_id;
|
| - }
|
| -
|
| - void set_last_policy_timestamp(const base::Time& timestamp) {
|
| - last_policy_timestamp_ = timestamp;
|
| - }
|
| -
|
| - void set_public_key_version(int public_key_version) {
|
| - public_key_version_ = public_key_version;
|
| - public_key_version_valid_ = true;
|
| - }
|
| -
|
| - void clear_public_key_version() {
|
| - public_key_version_valid_ = false;
|
| - }
|
| -
|
| - // FetchPolicy() calls will request this policy namespace.
|
| - void AddNamespaceToFetch(const PolicyNamespaceKey& policy_ns_key);
|
| -
|
| - // FetchPolicy() calls won't request the given policy namespace anymore.
|
| - void RemoveNamespaceToFetch(const PolicyNamespaceKey& policy_ns_key);
|
| -
|
| - // Whether the client is registered with the device management service.
|
| - bool is_registered() const { return !dm_token_.empty(); }
|
| -
|
| - const std::string& dm_token() const { return dm_token_; }
|
| -
|
| - // The device mode as received in the registration request.
|
| - DeviceMode device_mode() const { return device_mode_; }
|
| -
|
| - // The policy responses as obtained by the last request to the cloud. These
|
| - // policies haven't gone through verification, so their contents cannot be
|
| - // trusted. Use CloudPolicyStore::policy() and CloudPolicyStore::policy_map()
|
| - // instead for making policy decisions.
|
| - const ResponseMap& responses() const {
|
| - return responses_;
|
| - }
|
| -
|
| - // Returns the policy response for |policy_ns_key|, if found in |responses()|;
|
| - // otherwise returns NULL.
|
| - const enterprise_management::PolicyFetchResponse* GetPolicyFor(
|
| - const PolicyNamespaceKey& policy_ns_key) const;
|
| -
|
| - DeviceManagementStatus status() const {
|
| - return status_;
|
| - }
|
| -
|
| - protected:
|
| - // A set of PolicyNamespaceKeys to fetch.
|
| - typedef std::set<PolicyNamespaceKey> NamespaceSet;
|
| -
|
| - // Callback for retries of registration requests.
|
| - void OnRetryRegister(DeviceManagementRequestJob* job);
|
| -
|
| - // Callback for registration requests.
|
| - void OnRegisterCompleted(
|
| - DeviceManagementStatus status,
|
| - const enterprise_management::DeviceManagementResponse& response);
|
| -
|
| - // Callback for policy fetch requests.
|
| - void OnPolicyFetchCompleted(
|
| - DeviceManagementStatus status,
|
| - const enterprise_management::DeviceManagementResponse& response);
|
| -
|
| - // Callback for unregistration requests.
|
| - void OnUnregisterCompleted(
|
| - DeviceManagementStatus status,
|
| - const enterprise_management::DeviceManagementResponse& response);
|
| -
|
| - // Observer notification helpers.
|
| - void NotifyPolicyFetched();
|
| - void NotifyRegistrationStateChanged();
|
| - void NotifyClientError();
|
| -
|
| - // Data necessary for constructing policy requests.
|
| - const std::string machine_id_;
|
| - const std::string machine_model_;
|
| - const UserAffiliation user_affiliation_;
|
| - NamespaceSet namespaces_to_fetch_;
|
| -
|
| - std::string dm_token_;
|
| - DeviceMode device_mode_;
|
| - std::string client_id_;
|
| - bool submit_machine_id_;
|
| - base::Time last_policy_timestamp_;
|
| - int public_key_version_;
|
| - bool public_key_version_valid_;
|
| -
|
| - // Used for issuing requests to the cloud.
|
| - DeviceManagementService* service_;
|
| - scoped_ptr<DeviceManagementRequestJob> request_job_;
|
| -
|
| - // Status upload data is produced by |status_provider_|.
|
| - StatusProvider* status_provider_;
|
| -
|
| - // The policy responses returned by the last policy fetch operation.
|
| - ResponseMap responses_;
|
| - DeviceManagementStatus status_;
|
| -
|
| - ObserverList<Observer, true> observers_;
|
| -
|
| - private:
|
| - DISALLOW_COPY_AND_ASSIGN(CloudPolicyClient);
|
| -};
|
| -
|
| -} // namespace policy
|
| -
|
| -#endif // CHROME_BROWSER_POLICY_CLOUD_POLICY_CLIENT_H_
|
|
|