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

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

Issue 72793003: ComponentCloudPolicyService tracks the signin state. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 7 years, 1 month 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 | Annotate | Revision Log
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 #include "chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos.h" 5 #include "chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/bind_helpers.h" 8 #include "base/bind_helpers.h"
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
11 #include "base/message_loop/message_loop_proxy.h" 11 #include "base/message_loop/message_loop_proxy.h"
12 #include "base/metrics/histogram.h" 12 #include "base/metrics/histogram.h"
13 #include "base/metrics/sparse_histogram.h" 13 #include "base/metrics/sparse_histogram.h"
14 #include "base/sequenced_task_runner.h" 14 #include "base/sequenced_task_runner.h"
15 #include "chrome/browser/browser_process.h" 15 #include "chrome/browser/browser_process.h"
16 #include "chrome/browser/chromeos/policy/policy_oauth2_token_fetcher.h" 16 #include "chrome/browser/chromeos/policy/policy_oauth2_token_fetcher.h"
17 #include "chrome/browser/chromeos/policy/user_cloud_policy_manager_factory_chrom eos.h" 17 #include "chrome/browser/chromeos/policy/user_cloud_policy_manager_factory_chrom eos.h"
18 #include "chrome/browser/chromeos/profiles/profile_helper.h" 18 #include "chrome/browser/chromeos/profiles/profile_helper.h"
19 #include "chrome/browser/policy/cloud/cloud_external_data_manager.h" 19 #include "chrome/browser/policy/cloud/cloud_external_data_manager.h"
20 #include "chrome/browser/policy/cloud/cloud_policy_refresh_scheduler.h" 20 #include "chrome/browser/policy/cloud/cloud_policy_refresh_scheduler.h"
21 #include "chrome/browser/policy/cloud/resource_cache.h" 21 #include "chrome/browser/policy/cloud/resource_cache.h"
22 #include "chrome/browser/policy/policy_bundle.h" 22 #include "chrome/browser/policy/policy_bundle.h"
23 #include "chrome/common/chrome_switches.h"
24 #include "components/policy/core/common/policy_pref_names.h" 23 #include "components/policy/core/common/policy_pref_names.h"
24 #include "components/policy/core/common/policy_switches.h"
25 #include "content/public/browser/browser_thread.h" 25 #include "content/public/browser/browser_thread.h"
26 #include "net/url_request/url_request_context_getter.h" 26 #include "net/url_request/url_request_context_getter.h"
27 27
28 namespace em = enterprise_management; 28 namespace em = enterprise_management;
29 29
30 namespace policy { 30 namespace policy {
31 31
32 namespace { 32 namespace {
33 33
34 // UMA histogram names. 34 // UMA histogram names.
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after
225 void UserCloudPolicyManagerChromeOS::OnClientError( 225 void UserCloudPolicyManagerChromeOS::OnClientError(
226 CloudPolicyClient* cloud_policy_client) { 226 CloudPolicyClient* cloud_policy_client) {
227 DCHECK_EQ(client(), cloud_policy_client); 227 DCHECK_EQ(client(), cloud_policy_client);
228 if (wait_for_policy_fetch_) { 228 if (wait_for_policy_fetch_) {
229 UMA_HISTOGRAM_SPARSE_SLOWLY(kUMAInitialFetchClientError, 229 UMA_HISTOGRAM_SPARSE_SLOWLY(kUMAInitialFetchClientError,
230 cloud_policy_client->status()); 230 cloud_policy_client->status());
231 } 231 }
232 CancelWaitForPolicyFetch(); 232 CancelWaitForPolicyFetch();
233 } 233 }
234 234
235 void UserCloudPolicyManagerChromeOS::OnComponentCloudPolicyRefreshNeeded() {
236 core()->RefreshSoon();
237 }
238
239 void UserCloudPolicyManagerChromeOS::OnComponentCloudPolicyUpdated() { 235 void UserCloudPolicyManagerChromeOS::OnComponentCloudPolicyUpdated() {
240 CheckAndPublishPolicy(); 236 CheckAndPublishPolicy();
241 StartRefreshSchedulerIfReady(); 237 StartRefreshSchedulerIfReady();
242 } 238 }
243 239
244 void UserCloudPolicyManagerChromeOS::CreateComponentCloudPolicyService( 240 void UserCloudPolicyManagerChromeOS::CreateComponentCloudPolicyService(
245 const scoped_refptr<net::URLRequestContextGetter>& request_context) { 241 const scoped_refptr<net::URLRequestContextGetter>& request_context) {
246 // Init() must have been called. 242 // Init() must have been called.
247 DCHECK(schema_registry()); 243 DCHECK(schema_registry());
248 // Called at most once. 244 // Called at most once.
249 DCHECK(!component_policy_service_); 245 DCHECK(!component_policy_service_);
250 246
251 if (!CommandLine::ForCurrentProcess()->HasSwitch( 247 if (!CommandLine::ForCurrentProcess()->HasSwitch(
252 switches::kEnableComponentCloudPolicy)) { 248 switches::kEnableComponentCloudPolicy)) {
253 return; 249 return;
254 } 250 }
255 251
256 // TODO(joaodasilva): Move the |backend_task_runner| to the blocking pool. 252 // TODO(joaodasilva): Move the |backend_task_runner| to the blocking pool.
257 // Currently it's not possible because the ComponentCloudPolicyStore is 253 // Currently it's not possible because the ComponentCloudPolicyStore is
258 // NonThreadSafe and doesn't support getting calls from different threads. 254 // NonThreadSafe and doesn't support getting calls from different threads.
259 scoped_refptr<base::SequencedTaskRunner> backend_task_runner = 255 scoped_refptr<base::SequencedTaskRunner> backend_task_runner =
260 content::BrowserThread::GetMessageLoopProxyForThread( 256 content::BrowserThread::GetMessageLoopProxyForThread(
261 content::BrowserThread::FILE); 257 content::BrowserThread::FILE);
262 scoped_ptr<ResourceCache> resource_cache( 258 scoped_ptr<ResourceCache> resource_cache(
263 new ResourceCache(resource_cache_dir_, backend_task_runner)); 259 new ResourceCache(resource_cache_dir_, backend_task_runner));
264 component_policy_service_.reset(new ComponentCloudPolicyService( 260 component_policy_service_.reset(new ComponentCloudPolicyService(
265 this, 261 this,
266 schema_registry(), 262 schema_registry(),
267 store_.get(), 263 core(),
268 resource_cache.Pass(), 264 resource_cache.Pass(),
269 client(),
270 request_context, 265 request_context,
271 backend_task_runner, 266 backend_task_runner,
272 content::BrowserThread::GetMessageLoopProxyForThread( 267 content::BrowserThread::GetMessageLoopProxyForThread(
273 content::BrowserThread::IO))); 268 content::BrowserThread::IO)));
274 } 269 }
275 270
276 void UserCloudPolicyManagerChromeOS::FetchPolicyOAuthTokenUsingSigninProfile() { 271 void UserCloudPolicyManagerChromeOS::FetchPolicyOAuthTokenUsingSigninProfile() {
277 scoped_refptr<net::URLRequestContextGetter> signin_context; 272 scoped_refptr<net::URLRequestContextGetter> signin_context;
278 Profile* signin_profile = chromeos::ProfileHelper::GetSigninProfile(); 273 Profile* signin_profile = chromeos::ProfileHelper::GetSigninProfile();
279 if (signin_profile) 274 if (signin_profile)
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
362 // OnComponentCloudPolicyUpdated() once it's ready. 357 // OnComponentCloudPolicyUpdated() once it's ready.
363 return; 358 return;
364 } 359 }
365 360
366 core()->StartRefreshScheduler(); 361 core()->StartRefreshScheduler();
367 core()->TrackRefreshDelayPref(local_state_, 362 core()->TrackRefreshDelayPref(local_state_,
368 policy_prefs::kUserPolicyRefreshRate); 363 policy_prefs::kUserPolicyRefreshRate);
369 } 364 }
370 365
371 } // namespace policy 366 } // namespace policy
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698