Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(131)

Side by Side Diff: chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos.h

Issue 19733003: Implement cloud policy invalidations using the invalidation service framework. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 7 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 class Profile;
23 24
24 namespace net { 25 namespace net {
25 class URLRequestContextGetter; 26 class URLRequestContextGetter;
26 } 27 }
27 28
28 namespace policy { 29 namespace policy {
29 30
30 class DeviceManagementService; 31 class DeviceManagementService;
31 class ResourceCache; 32 class ResourceCache;
32 class PolicyOAuth2TokenFetcher; 33 class PolicyOAuth2TokenFetcher;
33 34
34 // UserCloudPolicyManagerChromeOS implements logic for initializing user policy 35 // UserCloudPolicyManagerChromeOS implements logic for initializing user policy
35 // on Chrome OS. 36 // on Chrome OS.
36 class UserCloudPolicyManagerChromeOS 37 class UserCloudPolicyManagerChromeOS
37 : public CloudPolicyManager, 38 : public CloudPolicyManager,
38 public CloudPolicyClient::Observer, 39 public CloudPolicyClient::Observer,
39 public CloudPolicyService::Observer, 40 public CloudPolicyService::Observer,
40 public ComponentCloudPolicyService::Delegate, 41 public ComponentCloudPolicyService::Delegate,
41 public BrowserContextKeyedService { 42 public BrowserContextKeyedService {
42 public: 43 public:
43 // If |wait_for_policy_fetch| is true, IsInitializationComplete() will return 44 // If |wait_for_policy_fetch| is true, IsInitializationComplete() will return
44 // false as long as there hasn't been a successful policy fetch. 45 // false as long as there hasn't been a successful policy fetch.
45 UserCloudPolicyManagerChromeOS( 46 UserCloudPolicyManagerChromeOS(
47 Profile* profile,
46 scoped_ptr<CloudPolicyStore> store, 48 scoped_ptr<CloudPolicyStore> store,
47 scoped_ptr<ResourceCache> resource_cache, 49 scoped_ptr<ResourceCache> resource_cache,
48 bool wait_for_policy_fetch); 50 bool wait_for_policy_fetch);
49 virtual ~UserCloudPolicyManagerChromeOS(); 51 virtual ~UserCloudPolicyManagerChromeOS();
50 52
51 // Initializes the cloud connection. |local_state| and 53 // Initializes the cloud connection. |local_state| and
52 // |device_management_service| must stay valid until this object is deleted. 54 // |device_management_service| must stay valid until this object is deleted.
53 void Connect(PrefService* local_state, 55 void Connect(PrefService* local_state,
54 DeviceManagementService* device_management_service, 56 DeviceManagementService* device_management_service,
55 scoped_refptr<net::URLRequestContextGetter> request_context, 57 scoped_refptr<net::URLRequestContextGetter> request_context,
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
102 // successful. 104 // successful.
103 void OnInitialPolicyFetchComplete(bool success); 105 void OnInitialPolicyFetchComplete(bool success);
104 106
105 // Cancels waiting for the policy fetch and flags the 107 // Cancels waiting for the policy fetch and flags the
106 // ConfigurationPolicyProvider ready (assuming all other initialization tasks 108 // ConfigurationPolicyProvider ready (assuming all other initialization tasks
107 // have completed). 109 // have completed).
108 void CancelWaitForPolicyFetch(); 110 void CancelWaitForPolicyFetch();
109 111
110 void StartRefreshScheduler(); 112 void StartRefreshScheduler();
111 113
114 // The profile this instance belongs to.
115 Profile* profile_;
116
112 // Owns the store, note that CloudPolicyManager just keeps a plain pointer. 117 // Owns the store, note that CloudPolicyManager just keeps a plain pointer.
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
123 // The pref service to pass to the refresh scheduler on initialization. 128 // The pref service to pass to the refresh scheduler on initialization.
124 PrefService* local_state_; 129 PrefService* local_state_;
125 130
126 // Used to fetch the policy OAuth token, when necessary. This object holds 131 // 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. 132 // a callback with an unretained reference to the manager, when it exists.
128 scoped_ptr<PolicyOAuth2TokenFetcher> token_fetcher_; 133 scoped_ptr<PolicyOAuth2TokenFetcher> token_fetcher_;
129 134
130 // The OAuth2 login tokens fetched by the |token_fetcher_|, which can be 135 // The OAuth2 login tokens fetched by the |token_fetcher_|, which can be
131 // retrieved using oauth2_tokens(). 136 // retrieved using oauth2_tokens().
132 GaiaAuthConsumer::ClientOAuthResult oauth2_login_tokens_; 137 GaiaAuthConsumer::ClientOAuthResult oauth2_login_tokens_;
133 138
134 DISALLOW_COPY_AND_ASSIGN(UserCloudPolicyManagerChromeOS); 139 DISALLOW_COPY_AND_ASSIGN(UserCloudPolicyManagerChromeOS);
135 }; 140 };
136 141
137 } // namespace policy 142 } // namespace policy
138 143
139 #endif // CHROME_BROWSER_CHROMEOS_POLICY_USER_CLOUD_POLICY_MANAGER_CHROMEOS_H_ 144 #endif // CHROME_BROWSER_CHROMEOS_POLICY_USER_CLOUD_POLICY_MANAGER_CHROMEOS_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698