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_BROWSER_POLICY_CONNECTOR_H_ | 5 #ifndef CHROME_BROWSER_POLICY_BROWSER_POLICY_CONNECTOR_H_ |
6 #define CHROME_BROWSER_POLICY_BROWSER_POLICY_CONNECTOR_H_ | 6 #define CHROME_BROWSER_POLICY_BROWSER_POLICY_CONNECTOR_H_ |
7 | 7 |
8 #include <string> | 8 #include <string> |
9 | 9 |
10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
(...skipping 30 matching lines...) Expand all Loading... |
41 // Builds an uninitialized BrowserPolicyConnector, suitable for testing. | 41 // Builds an uninitialized BrowserPolicyConnector, suitable for testing. |
42 // Init() should be called to create and start the policy machinery. | 42 // Init() should be called to create and start the policy machinery. |
43 BrowserPolicyConnector(); | 43 BrowserPolicyConnector(); |
44 virtual ~BrowserPolicyConnector(); | 44 virtual ~BrowserPolicyConnector(); |
45 | 45 |
46 // Creates the policy providers and finalizes the initialization of the | 46 // Creates the policy providers and finalizes the initialization of the |
47 // connector. This call can be skipped on tests that don't require the full | 47 // connector. This call can be skipped on tests that don't require the full |
48 // policy system running. | 48 // policy system running. |
49 void Init(); | 49 void Init(); |
50 | 50 |
| 51 // Creates a UserCloudPolicyManager for the given profile, or returns NULL if |
| 52 // it is not supported on this platform. Ownership is transferred to the |
| 53 // caller. |
| 54 scoped_ptr<UserCloudPolicyManager> CreateCloudPolicyManager(Profile* profile); |
| 55 |
51 // Creates a new policy service for the given profile, or a global one if | 56 // Creates a new policy service for the given profile, or a global one if |
52 // it is NULL. Ownership is transferred to the caller. | 57 // it is NULL. Ownership is transferred to the caller. |
53 PolicyService* CreatePolicyService(Profile* profile); | 58 scoped_ptr<PolicyService> CreatePolicyService(Profile* profile); |
54 | 59 |
55 // Returns a weak pointer to the CloudPolicySubsystem corresponding to the | 60 // Returns a weak pointer to the CloudPolicySubsystem corresponding to the |
56 // device policy managed by this policy connector, or NULL if no such | 61 // device policy managed by this policy connector, or NULL if no such |
57 // subsystem exists (i.e. when running outside ChromeOS). | 62 // subsystem exists (i.e. when running outside ChromeOS). |
58 CloudPolicySubsystem* device_cloud_policy_subsystem() { | 63 CloudPolicySubsystem* device_cloud_policy_subsystem() { |
59 #if defined(OS_CHROMEOS) | 64 #if defined(OS_CHROMEOS) |
60 return device_cloud_policy_subsystem_.get(); | 65 return device_cloud_policy_subsystem_.get(); |
61 #else | 66 #else |
62 return NULL; | 67 return NULL; |
63 #endif | 68 #endif |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
133 CloudPolicyDataStore* GetUserCloudPolicyDataStore(); | 138 CloudPolicyDataStore* GetUserCloudPolicyDataStore(); |
134 | 139 |
135 const ConfigurationPolicyHandlerList* GetHandlerList() const; | 140 const ConfigurationPolicyHandlerList* GetHandlerList() const; |
136 | 141 |
137 // Works out the user affiliation by checking the given |user_name| against | 142 // Works out the user affiliation by checking the given |user_name| against |
138 // the installation attributes. | 143 // the installation attributes. |
139 UserAffiliation GetUserAffiliation(const std::string& user_name); | 144 UserAffiliation GetUserAffiliation(const std::string& user_name); |
140 | 145 |
141 AppPackUpdater* GetAppPackUpdater(); | 146 AppPackUpdater* GetAppPackUpdater(); |
142 | 147 |
| 148 DeviceManagementService* device_management_service() { |
| 149 return device_management_service_.get(); |
| 150 } |
| 151 |
143 // Sets a |provider| that will be included in PolicyServices returned by | 152 // Sets a |provider| that will be included in PolicyServices returned by |
144 // CreatePolicyService. This is a static method because local state is | 153 // CreatePolicyService. This is a static method because local state is |
145 // created immediately after the connector, and tests don't have a chance to | 154 // created immediately after the connector, and tests don't have a chance to |
146 // inject the provider otherwise. |provider| must outlive the connector, and | 155 // inject the provider otherwise. |provider| must outlive the connector, and |
147 // its ownership is not taken. | 156 // its ownership is not taken. |
148 static void SetPolicyProviderForTesting( | 157 static void SetPolicyProviderForTesting( |
149 ConfigurationPolicyProvider* provider); | 158 ConfigurationPolicyProvider* provider); |
150 | 159 |
| 160 // Gets the URL of the DM server (either the default or a URL provided via the |
| 161 // command line). |
| 162 static std::string GetDeviceManagementUrl(); |
| 163 |
151 private: | 164 private: |
152 // content::NotificationObserver method overrides: | 165 // content::NotificationObserver method overrides: |
153 virtual void Observe(int type, | 166 virtual void Observe(int type, |
154 const content::NotificationSource& source, | 167 const content::NotificationSource& source, |
155 const content::NotificationDetails& details) OVERRIDE; | 168 const content::NotificationDetails& details) OVERRIDE; |
156 | 169 |
157 // Initializes the device cloud policy infrasturcture. | 170 // Initializes the device cloud policy infrasturcture. |
158 void InitializeDevicePolicy(); | 171 void InitializeDevicePolicy(); |
159 | 172 |
160 // Complete initialization once the message loops are running and the | 173 // Complete initialization once the message loops are running and the |
(...skipping 22 matching lines...) Expand all Loading... |
183 scoped_ptr<UserPolicyTokenCache> user_policy_token_cache_; | 196 scoped_ptr<UserPolicyTokenCache> user_policy_token_cache_; |
184 scoped_ptr<CloudPolicyDataStore> user_data_store_; | 197 scoped_ptr<CloudPolicyDataStore> user_data_store_; |
185 scoped_ptr<CloudPolicySubsystem> user_cloud_policy_subsystem_; | 198 scoped_ptr<CloudPolicySubsystem> user_cloud_policy_subsystem_; |
186 | 199 |
187 // Components of the new-style cloud policy implementation. | 200 // Components of the new-style cloud policy implementation. |
188 // TODO(mnissler): Remove the old-style components above once we have | 201 // TODO(mnissler): Remove the old-style components above once we have |
189 // completed the switch to the new cloud policy implementation. | 202 // completed the switch to the new cloud policy implementation. |
190 scoped_ptr<DeviceManagementService> device_management_service_; | 203 scoped_ptr<DeviceManagementService> device_management_service_; |
191 | 204 |
192 ProxyPolicyProvider user_cloud_policy_provider_; | 205 ProxyPolicyProvider user_cloud_policy_provider_; |
193 scoped_ptr<UserCloudPolicyManager> user_cloud_policy_manager_; | |
194 | 206 |
195 // Used to initialize the device policy subsystem once the message loops | 207 // Used to initialize the device policy subsystem once the message loops |
196 // are spinning. | 208 // are spinning. |
197 base::WeakPtrFactory<BrowserPolicyConnector> weak_ptr_factory_; | 209 base::WeakPtrFactory<BrowserPolicyConnector> weak_ptr_factory_; |
198 | 210 |
199 // Registers the provider for notification of successful Gaia logins. | 211 // Registers the provider for notification of successful Gaia logins. |
200 content::NotificationRegistrar registrar_; | 212 content::NotificationRegistrar registrar_; |
201 | 213 |
202 // Weak reference to the TokenService we are listening to for user cloud | 214 // Weak reference to the TokenService we are listening to for user cloud |
203 // policy authentication tokens. | 215 // policy authentication tokens. |
204 TokenService* token_service_; | 216 TokenService* token_service_; |
205 | 217 |
206 #if defined(OS_CHROMEOS) | 218 #if defined(OS_CHROMEOS) |
207 scoped_ptr<AppPackUpdater> app_pack_updater_; | 219 scoped_ptr<AppPackUpdater> app_pack_updater_; |
208 #endif | 220 #endif |
209 | 221 |
210 DISALLOW_COPY_AND_ASSIGN(BrowserPolicyConnector); | 222 DISALLOW_COPY_AND_ASSIGN(BrowserPolicyConnector); |
211 }; | 223 }; |
212 | 224 |
213 } // namespace policy | 225 } // namespace policy |
214 | 226 |
215 #endif // CHROME_BROWSER_POLICY_BROWSER_POLICY_CONNECTOR_H_ | 227 #endif // CHROME_BROWSER_POLICY_BROWSER_POLICY_CONNECTOR_H_ |
OLD | NEW |