Index: chrome/browser/policy/cloud_policy_cache_base.h |
diff --git a/chrome/browser/policy/cloud_policy_cache_base.h b/chrome/browser/policy/cloud_policy_cache_base.h |
deleted file mode 100644 |
index 6b5cfbf7f4e95fb1942ed88ee7b9f5ee1a804082..0000000000000000000000000000000000000000 |
--- a/chrome/browser/policy/cloud_policy_cache_base.h |
+++ /dev/null |
@@ -1,171 +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_CACHE_BASE_H_ |
-#define CHROME_BROWSER_POLICY_CLOUD_POLICY_CACHE_BASE_H_ |
- |
-#include "base/observer_list.h" |
-#include "base/threading/non_thread_safe.h" |
-#include "base/time.h" |
-#include "chrome/browser/policy/cloud_policy_subsystem.h" |
-#include "chrome/browser/policy/policy_map.h" |
-#include "chrome/browser/policy/proto/device_management_backend.pb.h" |
- |
-namespace policy { |
- |
-class PolicyNotifier; |
- |
-// Caches policy information, as set by calls to |SetPolicy()|, persists |
-// it to disk or session_manager (depending on subclass implementation), |
-// and makes it available via policy providers. |
-class CloudPolicyCacheBase : public base::NonThreadSafe { |
- public: |
- class Observer { |
- public: |
- virtual ~Observer() {} |
- virtual void OnCacheUpdate(CloudPolicyCacheBase*) = 0; |
- }; |
- |
- CloudPolicyCacheBase(); |
- virtual ~CloudPolicyCacheBase(); |
- |
- void set_policy_notifier(PolicyNotifier* notifier) { |
- notifier_ = notifier; |
- } |
- |
- // Loads persisted policy information. |
- virtual void Load() = 0; |
- |
- // Resets the policy information. Returns true if |policy| was accepted and |
- // stored. |
- virtual bool SetPolicy( |
- const enterprise_management::PolicyFetchResponse& policy) = 0; |
- |
- virtual void SetUnmanaged() = 0; |
- |
- // Invoked whenever an attempt to fetch policy has been completed. The fetch |
- // may or may not have suceeded. This can be triggered by failed attempts to |
- // fetch oauth tokens, register with dmserver or fetch policy. |
- virtual void SetFetchingDone(); |
- |
- bool is_unmanaged() const { |
- return is_unmanaged_; |
- } |
- |
- // Returns the time at which the policy was last fetched. |
- base::Time last_policy_refresh_time() const { |
- return last_policy_refresh_time_; |
- } |
- |
- bool machine_id_missing() const { |
- return machine_id_missing_; |
- } |
- |
- // Get the version of the encryption key currently used for decoding policy. |
- // Returns true if the version is available, in which case |version| is filled |
- // in. |
- bool GetPublicKeyVersion(int* version); |
- |
- void AddObserver(Observer* observer); |
- void RemoveObserver(Observer* observer); |
- |
- // Accessor for the underlying PolicyMap. |
- const PolicyMap* policy() { return &policies_; } |
- |
- // Resets the cache, clearing the policy currently stored in memory and the |
- // last refresh time. |
- void Reset(); |
- |
- // true if the cache contains data that is ready to be served as policies. |
- // This usually means that the local policy storage has been loaded. |
- // Note that Profile creation will block until the cache is ready. |
- // On enrolled devices and for users of the enrolled domain, the cache only |
- // becomes ready after a user policy fetch is completed. |
- bool IsReady(); |
- |
- protected: |
- // Wraps public key version and validity. |
- struct PublicKeyVersion { |
- int version; |
- bool valid; |
- }; |
- |
- // Decodes the given |policy| using |DecodePolicyResponse()|, applies the |
- // contents to |policies_|, and notifies observers. |
- // |timestamp| returns the timestamp embedded in |policy|, callers can pass |
- // NULL if they don't care. |check_for_timestamp_validity| tells this method |
- // to discard policy data with a timestamp from the future. |
- // Returns true upon success. |
- bool SetPolicyInternal( |
- const enterprise_management::PolicyFetchResponse& policy, |
- base::Time* timestamp, |
- bool check_for_timestamp_validity); |
- |
- void SetUnmanagedInternal(const base::Time& timestamp); |
- |
- // Indicates that initialization is now complete. Observers will be notified. |
- void SetReady(); |
- |
- // Decodes |policy_data|, populating |mandatory| and |recommended| with |
- // the results. |
- virtual bool DecodePolicyData( |
- const enterprise_management::PolicyData& policy_data, |
- PolicyMap* policies) = 0; |
- |
- // Decodes a PolicyFetchResponse into two PolicyMaps and a timestamp. |
- // Also performs verification, returns NULL if any check fails. |
- bool DecodePolicyResponse( |
- const enterprise_management::PolicyFetchResponse& policy_response, |
- PolicyMap* policies, |
- base::Time* timestamp, |
- PublicKeyVersion* public_key_version); |
- |
- // Notifies observers if the cache IsReady(). |
- void NotifyObservers(); |
- |
- void InformNotifier(CloudPolicySubsystem::PolicySubsystemState state, |
- CloudPolicySubsystem::ErrorDetails error_details); |
- |
- void set_last_policy_refresh_time(base::Time timestamp) { |
- last_policy_refresh_time_ = timestamp; |
- } |
- |
- private: |
- friend class DevicePolicyCacheTest; |
- friend class UserPolicyCacheTest; |
- friend class MockCloudPolicyCache; |
- |
- // Policy key-value information. |
- PolicyMap policies_; |
- |
- PolicyNotifier* notifier_; |
- |
- // The time at which the policy was last refreshed. Is updated both upon |
- // successful and unsuccessful refresh attempts. |
- base::Time last_policy_refresh_time_; |
- |
- // Whether initialization has been completed. This is the case when we have |
- // valid policy, learned that the device is unmanaged or ran into |
- // unrecoverable errors. |
- bool initialization_complete_; |
- |
- // Whether the the server has indicated this device is unmanaged. |
- bool is_unmanaged_; |
- |
- // Flag indicating whether the server claims that a valid machine identifier |
- // is missing on the server side. Read directly from the policy blob. |
- bool machine_id_missing_; |
- |
- // Currently used public key version, if available. |
- PublicKeyVersion public_key_version_; |
- |
- // Cache observers that are registered with this cache. |
- ObserverList<Observer, true> observer_list_; |
- |
- DISALLOW_COPY_AND_ASSIGN(CloudPolicyCacheBase); |
-}; |
- |
-} // namespace policy |
- |
-#endif // CHROME_BROWSER_POLICY_CLOUD_POLICY_CACHE_BASE_H_ |