OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef CHROME_BROWSER_POLICY_CLOUD_POLICY_CACHE_BASE_H_ | 5 #ifndef CHROME_BROWSER_POLICY_CLOUD_POLICY_CACHE_BASE_H_ |
6 #define CHROME_BROWSER_POLICY_CLOUD_POLICY_CACHE_BASE_H_ | 6 #define CHROME_BROWSER_POLICY_CLOUD_POLICY_CACHE_BASE_H_ |
7 #pragma once | 7 #pragma once |
8 | 8 |
9 #include "base/observer_list.h" | 9 #include "base/observer_list.h" |
10 #include "base/threading/non_thread_safe.h" | 10 #include "base/threading/non_thread_safe.h" |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
46 notifier_ = notifier; | 46 notifier_ = notifier; |
47 } | 47 } |
48 | 48 |
49 // Loads persisted policy information. | 49 // Loads persisted policy information. |
50 virtual void Load() = 0; | 50 virtual void Load() = 0; |
51 | 51 |
52 // Resets the policy information. | 52 // Resets the policy information. |
53 virtual void SetPolicy(const em::PolicyFetchResponse& policy) = 0; | 53 virtual void SetPolicy(const em::PolicyFetchResponse& policy) = 0; |
54 | 54 |
55 virtual void SetUnmanaged() = 0; | 55 virtual void SetUnmanaged() = 0; |
| 56 |
| 57 // Invoked whenever an attempt to fetch policy has been completed. The fetch |
| 58 // may or may not have suceeded. This can be triggered by failed attempts to |
| 59 // fetch oauth tokens, register with dmserver or fetch policy. |
| 60 virtual void SetFetchingDone() = 0; |
| 61 |
56 bool is_unmanaged() const { | 62 bool is_unmanaged() const { |
57 return is_unmanaged_; | 63 return is_unmanaged_; |
58 } | 64 } |
59 | 65 |
60 // Returns the time at which the policy was last fetched. | 66 // Returns the time at which the policy was last fetched. |
61 base::Time last_policy_refresh_time() const { | 67 base::Time last_policy_refresh_time() const { |
62 return last_policy_refresh_time_; | 68 return last_policy_refresh_time_; |
63 } | 69 } |
64 | 70 |
65 // Get the version of the encryption key currently used for decoding policy. | 71 // Get the version of the encryption key currently used for decoding policy. |
66 // Returns true if the version is available, in which case |version| is filled | 72 // Returns true if the version is available, in which case |version| is filled |
67 // in. | 73 // in. |
68 bool GetPublicKeyVersion(int* version); | 74 bool GetPublicKeyVersion(int* version); |
69 | 75 |
70 void AddObserver(Observer* observer); | 76 void AddObserver(Observer* observer); |
71 void RemoveObserver(Observer* observer); | 77 void RemoveObserver(Observer* observer); |
72 | 78 |
73 // Accessor for the underlying PolicyMaps. | 79 // Accessor for the underlying PolicyMaps. |
74 const PolicyMap* policy(PolicyLevel level); | 80 const PolicyMap* policy(PolicyLevel level); |
75 | 81 |
76 // Resets the cache, clearing the policy currently stored in memory and the | 82 // Resets the cache, clearing the policy currently stored in memory and the |
77 // last refresh time. | 83 // last refresh time. |
78 void Reset(); | 84 void Reset(); |
79 | 85 |
80 // true if the cache contains data that is ready to be served as policies. | 86 // true if the cache contains data that is ready to be served as policies. |
81 // This should mean that this method turns true as soon as a round-trip to | 87 // This usually means that the local policy storage has been loaded. |
82 // the local policy storage is complete. The creation of the Profile is | 88 // Note that Profile creation will block until the cache is ready. |
83 // blocked on this method, so we shouldn't wait for successful network | 89 // On enrolled devices and for users of the enrolled domain, the cache only |
84 // round trips. | 90 // becomes ready after a user policy fetch is completed. |
85 bool IsReady(); | 91 bool IsReady(); |
86 | 92 |
87 protected: | 93 protected: |
88 // Wraps public key version and validity. | 94 // Wraps public key version and validity. |
89 struct PublicKeyVersion { | 95 struct PublicKeyVersion { |
90 int version; | 96 int version; |
91 bool valid; | 97 bool valid; |
92 }; | 98 }; |
93 | 99 |
94 // Decodes the given |policy| using |DecodePolicyResponse()|, applies the | 100 // Decodes the given |policy| using |DecodePolicyResponse()|, applies the |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
158 | 164 |
159 // Cache observers that are registered with this cache. | 165 // Cache observers that are registered with this cache. |
160 ObserverList<Observer, true> observer_list_; | 166 ObserverList<Observer, true> observer_list_; |
161 | 167 |
162 DISALLOW_COPY_AND_ASSIGN(CloudPolicyCacheBase); | 168 DISALLOW_COPY_AND_ASSIGN(CloudPolicyCacheBase); |
163 }; | 169 }; |
164 | 170 |
165 } // namespace policy | 171 } // namespace policy |
166 | 172 |
167 #endif // CHROME_BROWSER_POLICY_CLOUD_POLICY_CACHE_BASE_H_ | 173 #endif // CHROME_BROWSER_POLICY_CLOUD_POLICY_CACHE_BASE_H_ |
OLD | NEW |