| 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_CHROMEOS_POLICY_USER_CLOUD_POLICY_MANAGER_CHROMEOS_H_ | 5 #ifndef CHROME_BROWSER_CHROMEOS_POLICY_USER_CLOUD_POLICY_MANAGER_CHROMEOS_H_ |
| 6 #define CHROME_BROWSER_CHROMEOS_POLICY_USER_CLOUD_POLICY_MANAGER_CHROMEOS_H_ | 6 #define CHROME_BROWSER_CHROMEOS_POLICY_USER_CLOUD_POLICY_MANAGER_CHROMEOS_H_ |
| 7 | 7 |
| 8 #include <string> | 8 #include <string> |
| 9 | 9 |
| 10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
| 11 #include "base/compiler_specific.h" | 11 #include "base/compiler_specific.h" |
| 12 #include "base/memory/ref_counted.h" | 12 #include "base/memory/ref_counted.h" |
| 13 #include "base/memory/scoped_ptr.h" | 13 #include "base/memory/scoped_ptr.h" |
| 14 #include "chrome/browser/policy/cloud/cloud_policy_client.h" | 14 #include "chrome/browser/policy/cloud/cloud_policy_client.h" |
| 15 #include "chrome/browser/policy/cloud/cloud_policy_constants.h" | 15 #include "chrome/browser/policy/cloud/cloud_policy_constants.h" |
| 16 #include "chrome/browser/policy/cloud/cloud_policy_manager.h" | 16 #include "chrome/browser/policy/cloud/cloud_policy_manager.h" |
| 17 #include "chrome/browser/policy/cloud/cloud_policy_service.h" | 17 #include "chrome/browser/policy/cloud/cloud_policy_service.h" |
| 18 #include "chrome/browser/policy/cloud/component_cloud_policy_service.h" | 18 #include "chrome/browser/policy/cloud/component_cloud_policy_service.h" |
| 19 #include "components/browser_context_keyed_service/browser_context_keyed_service
.h" | 19 #include "components/browser_context_keyed_service/browser_context_keyed_service
.h" |
| 20 #include "google_apis/gaia/gaia_auth_consumer.h" | 20 #include "google_apis/gaia/gaia_auth_consumer.h" |
| 21 | 21 |
| 22 class PrefService; | 22 class PrefService; |
| 23 | 23 |
| 24 namespace invalidation { |
| 25 class InvalidationService; |
| 26 } |
| 27 |
| 24 namespace net { | 28 namespace net { |
| 25 class URLRequestContextGetter; | 29 class URLRequestContextGetter; |
| 26 } | 30 } |
| 27 | 31 |
| 28 namespace policy { | 32 namespace policy { |
| 29 | 33 |
| 30 class DeviceManagementService; | 34 class DeviceManagementService; |
| 31 class ResourceCache; | 35 class ResourceCache; |
| 32 class PolicyOAuth2TokenFetcher; | 36 class PolicyOAuth2TokenFetcher; |
| 33 | 37 |
| 34 // UserCloudPolicyManagerChromeOS implements logic for initializing user policy | 38 // UserCloudPolicyManagerChromeOS implements logic for initializing user policy |
| 35 // on Chrome OS. | 39 // on Chrome OS. |
| 36 class UserCloudPolicyManagerChromeOS | 40 class UserCloudPolicyManagerChromeOS |
| 37 : public CloudPolicyManager, | 41 : public CloudPolicyManager, |
| 38 public CloudPolicyClient::Observer, | 42 public CloudPolicyClient::Observer, |
| 39 public CloudPolicyService::Observer, | 43 public CloudPolicyService::Observer, |
| 40 public ComponentCloudPolicyService::Delegate, | 44 public ComponentCloudPolicyService::Delegate, |
| 41 public BrowserContextKeyedService { | 45 public BrowserContextKeyedService { |
| 42 public: | 46 public: |
| 43 // If |wait_for_policy_fetch| is true, IsInitializationComplete() will return | 47 // If |wait_for_policy_fetch| is true, IsInitializationComplete() will return |
| 44 // false as long as there hasn't been a successful policy fetch. | 48 // false as long as there hasn't been a successful policy fetch. |
| 45 UserCloudPolicyManagerChromeOS( | 49 UserCloudPolicyManagerChromeOS( |
| 46 scoped_ptr<CloudPolicyStore> store, | 50 scoped_ptr<CloudPolicyStore> store, |
| 47 scoped_ptr<ResourceCache> resource_cache, | 51 scoped_ptr<ResourceCache> resource_cache, |
| 48 bool wait_for_policy_fetch); | 52 bool wait_for_policy_fetch, |
| 53 invalidation::InvalidationService* invalidation_service); |
| 49 virtual ~UserCloudPolicyManagerChromeOS(); | 54 virtual ~UserCloudPolicyManagerChromeOS(); |
| 50 | 55 |
| 51 // Initializes the cloud connection. |local_state| and | 56 // Initializes the cloud connection. |local_state| and |
| 52 // |device_management_service| must stay valid until this object is deleted. | 57 // |device_management_service| must stay valid until this object is deleted. |
| 53 void Connect(PrefService* local_state, | 58 void Connect(PrefService* local_state, |
| 54 DeviceManagementService* device_management_service, | 59 DeviceManagementService* device_management_service, |
| 55 scoped_refptr<net::URLRequestContextGetter> request_context, | 60 scoped_refptr<net::URLRequestContextGetter> request_context, |
| 56 UserAffiliation user_affiliation); | 61 UserAffiliation user_affiliation); |
| 57 | 62 |
| 58 // The OAuth2 login |refresh_token| can be used to obtain a policy OAuth2 | 63 // The OAuth2 login |refresh_token| can be used to obtain a policy OAuth2 |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 113 scoped_ptr<CloudPolicyStore> store_; | 118 scoped_ptr<CloudPolicyStore> store_; |
| 114 | 119 |
| 115 // Handles fetching and storing cloud policy for components. It uses the | 120 // Handles fetching and storing cloud policy for components. It uses the |
| 116 // |store_|, so destroy it first. | 121 // |store_|, so destroy it first. |
| 117 scoped_ptr<ComponentCloudPolicyService> component_policy_service_; | 122 scoped_ptr<ComponentCloudPolicyService> component_policy_service_; |
| 118 | 123 |
| 119 // Whether to wait for a policy fetch to complete before reporting | 124 // Whether to wait for a policy fetch to complete before reporting |
| 120 // IsInitializationComplete(). | 125 // IsInitializationComplete(). |
| 121 bool wait_for_policy_fetch_; | 126 bool wait_for_policy_fetch_; |
| 122 | 127 |
| 128 // The invalidation service which provides invalidations to policy objects. |
| 129 invalidation::InvalidationService* invalidation_service_; |
| 130 |
| 123 // The pref service to pass to the refresh scheduler on initialization. | 131 // The pref service to pass to the refresh scheduler on initialization. |
| 124 PrefService* local_state_; | 132 PrefService* local_state_; |
| 125 | 133 |
| 126 // Used to fetch the policy OAuth token, when necessary. This object holds | 134 // Used to fetch the policy OAuth token, when necessary. This object holds |
| 127 // a callback with an unretained reference to the manager, when it exists. | 135 // a callback with an unretained reference to the manager, when it exists. |
| 128 scoped_ptr<PolicyOAuth2TokenFetcher> token_fetcher_; | 136 scoped_ptr<PolicyOAuth2TokenFetcher> token_fetcher_; |
| 129 | 137 |
| 130 // The OAuth2 login tokens fetched by the |token_fetcher_|, which can be | 138 // The OAuth2 login tokens fetched by the |token_fetcher_|, which can be |
| 131 // retrieved using oauth2_tokens(). | 139 // retrieved using oauth2_tokens(). |
| 132 GaiaAuthConsumer::ClientOAuthResult oauth2_login_tokens_; | 140 GaiaAuthConsumer::ClientOAuthResult oauth2_login_tokens_; |
| 133 | 141 |
| 134 DISALLOW_COPY_AND_ASSIGN(UserCloudPolicyManagerChromeOS); | 142 DISALLOW_COPY_AND_ASSIGN(UserCloudPolicyManagerChromeOS); |
| 135 }; | 143 }; |
| 136 | 144 |
| 137 } // namespace policy | 145 } // namespace policy |
| 138 | 146 |
| 139 #endif // CHROME_BROWSER_CHROMEOS_POLICY_USER_CLOUD_POLICY_MANAGER_CHROMEOS_H_ | 147 #endif // CHROME_BROWSER_CHROMEOS_POLICY_USER_CLOUD_POLICY_MANAGER_CHROMEOS_H_ |
| OLD | NEW |