| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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_SUBSYSTEM_H_ | 5 #ifndef CHROME_BROWSER_POLICY_CLOUD_POLICY_SUBSYSTEM_H_ |
| 6 #define CHROME_BROWSER_POLICY_CLOUD_POLICY_SUBSYSTEM_H_ | 6 #define CHROME_BROWSER_POLICY_CLOUD_POLICY_SUBSYSTEM_H_ |
| 7 | 7 |
| 8 #include "base/memory/scoped_ptr.h" | 8 #include "base/memory/scoped_ptr.h" |
| 9 #include "base/prefs/public/pref_change_registrar.h" | 9 #include "base/prefs/public/pref_change_registrar.h" |
| 10 #include "content/public/browser/notification_observer.h" | 10 #include "base/prefs/public/pref_observer.h" |
| 11 #include "net/base/network_change_notifier.h" | 11 #include "net/base/network_change_notifier.h" |
| 12 | 12 |
| 13 class PrefService; | 13 class PrefService; |
| 14 | 14 |
| 15 namespace policy { | 15 namespace policy { |
| 16 | 16 |
| 17 class CloudPolicyCacheBase; | 17 class CloudPolicyCacheBase; |
| 18 class CloudPolicyController; | 18 class CloudPolicyController; |
| 19 class CloudPolicyDataStore; | 19 class CloudPolicyDataStore; |
| 20 class DeviceManagementService; | 20 class DeviceManagementService; |
| 21 class DeviceTokenFetcher; | 21 class DeviceTokenFetcher; |
| 22 class PolicyNotifier; | 22 class PolicyNotifier; |
| 23 | 23 |
| 24 // This class is a container for the infrastructure required to support cloud | 24 // This class is a container for the infrastructure required to support cloud |
| 25 // policy. It glues together the backend, the policy controller and manages the | 25 // policy. It glues together the backend, the policy controller and manages the |
| 26 // life cycle of the policy providers. | 26 // life cycle of the policy providers. |
| 27 class CloudPolicySubsystem | 27 class CloudPolicySubsystem |
| 28 : public content::NotificationObserver, | 28 : public PrefObserver, |
| 29 public net::NetworkChangeNotifier::IPAddressObserver { | 29 public net::NetworkChangeNotifier::IPAddressObserver { |
| 30 public: | 30 public: |
| 31 enum PolicySubsystemState { | 31 enum PolicySubsystemState { |
| 32 UNENROLLED, // No enrollment attempt has been performed yet. | 32 UNENROLLED, // No enrollment attempt has been performed yet. |
| 33 BAD_GAIA_TOKEN, // The server rejected the GAIA auth token. | 33 BAD_GAIA_TOKEN, // The server rejected the GAIA auth token. |
| 34 UNMANAGED, // This device is unmanaged. | 34 UNMANAGED, // This device is unmanaged. |
| 35 NETWORK_ERROR, // A network error occurred, retrying makes sense. | 35 NETWORK_ERROR, // A network error occurred, retrying makes sense. |
| 36 LOCAL_ERROR, // Retrying is futile. | 36 LOCAL_ERROR, // Retrying is futile. |
| 37 TOKEN_FETCHED, // Device has been successfully registered. | 37 TOKEN_FETCHED, // Device has been successfully registered. |
| 38 SUCCESS // Policy has been fetched successfully and is in effect. | 38 SUCCESS // Policy has been fetched successfully and is in effect. |
| (...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 124 | 124 |
| 125 // Returns a weak pointer to this subsystem's PolicyNotifier. | 125 // Returns a weak pointer to this subsystem's PolicyNotifier. |
| 126 PolicyNotifier* notifier() { | 126 PolicyNotifier* notifier() { |
| 127 return notifier_.get(); | 127 return notifier_.get(); |
| 128 } | 128 } |
| 129 | 129 |
| 130 // Factory methods that may be overridden in tests. | 130 // Factory methods that may be overridden in tests. |
| 131 virtual void CreateDeviceTokenFetcher(); | 131 virtual void CreateDeviceTokenFetcher(); |
| 132 virtual void CreateCloudPolicyController(); | 132 virtual void CreateCloudPolicyController(); |
| 133 | 133 |
| 134 // content::NotificationObserver overrides. | 134 // PrefObserver overrides. |
| 135 virtual void Observe(int type, | 135 virtual void OnPreferenceChanged(PrefServiceBase* service, |
| 136 const content::NotificationSource& source, | 136 const std::string& pref_name) OVERRIDE; |
| 137 const content::NotificationDetails& details) OVERRIDE; | |
| 138 | 137 |
| 139 // net::NetworkChangeNotifier::IPAddressObserver: | 138 // net::NetworkChangeNotifier::IPAddressObserver: |
| 140 virtual void OnIPAddressChanged() OVERRIDE; | 139 virtual void OnIPAddressChanged() OVERRIDE; |
| 141 | 140 |
| 142 // Name of the preference to read the refresh rate from. | 141 // Name of the preference to read the refresh rate from. |
| 143 const char* refresh_pref_name_; | 142 const char* refresh_pref_name_; |
| 144 | 143 |
| 145 PrefChangeRegistrar pref_change_registrar_; | 144 PrefChangeRegistrar pref_change_registrar_; |
| 146 | 145 |
| 147 CloudPolicyDataStore* data_store_; | 146 CloudPolicyDataStore* data_store_; |
| 148 | 147 |
| 149 // Cloud policy infrastructure stuff. | 148 // Cloud policy infrastructure stuff. |
| 150 scoped_ptr<PolicyNotifier> notifier_; | 149 scoped_ptr<PolicyNotifier> notifier_; |
| 151 scoped_ptr<DeviceManagementService> device_management_service_; | 150 scoped_ptr<DeviceManagementService> device_management_service_; |
| 152 scoped_ptr<DeviceTokenFetcher> device_token_fetcher_; | 151 scoped_ptr<DeviceTokenFetcher> device_token_fetcher_; |
| 153 scoped_ptr<CloudPolicyCacheBase> cloud_policy_cache_; | 152 scoped_ptr<CloudPolicyCacheBase> cloud_policy_cache_; |
| 154 scoped_ptr<CloudPolicyController> cloud_policy_controller_; | 153 scoped_ptr<CloudPolicyController> cloud_policy_controller_; |
| 155 | 154 |
| 156 std::string device_management_url_; | 155 std::string device_management_url_; |
| 157 | 156 |
| 158 DISALLOW_COPY_AND_ASSIGN(CloudPolicySubsystem); | 157 DISALLOW_COPY_AND_ASSIGN(CloudPolicySubsystem); |
| 159 }; | 158 }; |
| 160 | 159 |
| 161 } // namespace policy | 160 } // namespace policy |
| 162 | 161 |
| 163 #endif // CHROME_BROWSER_POLICY_CLOUD_POLICY_SUBSYSTEM_H_ | 162 #endif // CHROME_BROWSER_POLICY_CLOUD_POLICY_SUBSYSTEM_H_ |
| OLD | NEW |