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

Side by Side Diff: chrome/browser/policy/browser_policy_connector.cc

Issue 7233006: Store/Retrieve CrOS user policy in session_manager. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 8 years, 8 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 | 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/policy/browser_policy_connector.h" 5 #include "chrome/browser/policy/browser_policy_connector.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/file_path.h" 10 #include "base/file_path.h"
11 #include "base/path_service.h" 11 #include "base/path_service.h"
12 #include "chrome/browser/browser_process.h" 12 #include "chrome/browser/browser_process.h"
13 #include "chrome/browser/policy/cloud_policy_provider.h" 13 #include "chrome/browser/policy/cloud_policy_provider.h"
14 #include "chrome/browser/policy/cloud_policy_subsystem.h" 14 #include "chrome/browser/policy/cloud_policy_subsystem.h"
15 #include "chrome/browser/policy/configuration_policy_provider.h" 15 #include "chrome/browser/policy/configuration_policy_provider.h"
16 #include "chrome/browser/policy/policy_service_impl.h" 16 #include "chrome/browser/policy/policy_service_impl.h"
17 #include "chrome/browser/policy/user_policy_cache.h" 17 #include "chrome/browser/policy/user_policy_cache.h"
18 #include "chrome/browser/policy/user_policy_token_cache.h" 18 #include "chrome/browser/policy/user_policy_token_cache.h"
19 #include "chrome/browser/signin/token_service.h" 19 #include "chrome/browser/signin/token_service.h"
20 #include "chrome/common/chrome_notification_types.h" 20 #include "chrome/common/chrome_notification_types.h"
21 #include "chrome/common/chrome_paths.h" 21 #include "chrome/common/chrome_paths.h"
22 #include "chrome/common/chrome_switches.h" 22 #include "chrome/common/chrome_switches.h"
23 #include "chrome/common/net/gaia/gaia_constants.h" 23 #include "chrome/common/net/gaia/gaia_constants.h"
24 #include "chrome/common/pref_names.h" 24 #include "chrome/common/pref_names.h"
25 #include "chromeos/dbus/dbus_thread_manager.h"
25 #include "content/public/browser/notification_details.h" 26 #include "content/public/browser/notification_details.h"
26 #include "content/public/browser/notification_source.h" 27 #include "content/public/browser/notification_source.h"
27 #include "grit/generated_resources.h" 28 #include "grit/generated_resources.h"
28 #include "policy/policy_constants.h" 29 #include "policy/policy_constants.h"
29 30
30 #if defined(OS_WIN) 31 #if defined(OS_WIN)
31 #include "chrome/browser/policy/configuration_policy_provider_win.h" 32 #include "chrome/browser/policy/configuration_policy_provider_win.h"
32 #elif defined(OS_MACOSX) 33 #elif defined(OS_MACOSX)
33 #include "chrome/browser/policy/configuration_policy_provider_mac.h" 34 #include "chrome/browser/policy/configuration_policy_provider_mac.h"
34 #elif defined(OS_POSIX) 35 #elif defined(OS_POSIX)
35 #include "chrome/browser/policy/config_dir_policy_provider.h" 36 #include "chrome/browser/policy/config_dir_policy_provider.h"
36 #endif 37 #endif
37 38
38 #if defined(OS_CHROMEOS) 39 #if defined(OS_CHROMEOS)
39 #include "chrome/browser/chromeos/cros/cros_library.h" 40 #include "chrome/browser/chromeos/cros/cros_library.h"
40 #include "chrome/browser/chromeos/system/statistics_provider.h" 41 #include "chrome/browser/chromeos/system/statistics_provider.h"
41 #include "chrome/browser/policy/app_pack_updater.h" 42 #include "chrome/browser/policy/app_pack_updater.h"
43 #include "chrome/browser/policy/cros_user_policy_cache.h"
42 #include "chrome/browser/policy/device_policy_cache.h" 44 #include "chrome/browser/policy/device_policy_cache.h"
43 #include "chrome/browser/policy/network_configuration_updater.h" 45 #include "chrome/browser/policy/network_configuration_updater.h"
44 #endif 46 #endif
45 47
46 using content::BrowserThread; 48 using content::BrowserThread;
47 49
48 namespace policy { 50 namespace policy {
49 51
50 namespace { 52 namespace {
51 53
(...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after
304 bool wait_for_policy_fetch) { 306 bool wait_for_policy_fetch) {
305 // Throw away the old backend. 307 // Throw away the old backend.
306 user_cloud_policy_subsystem_.reset(); 308 user_cloud_policy_subsystem_.reset();
307 user_policy_token_cache_.reset(); 309 user_policy_token_cache_.reset();
308 user_data_store_.reset(); 310 user_data_store_.reset();
309 token_service_ = NULL; 311 token_service_ = NULL;
310 registrar_.RemoveAll(); 312 registrar_.RemoveAll();
311 313
312 CommandLine* command_line = CommandLine::ForCurrentProcess(); 314 CommandLine* command_line = CommandLine::ForCurrentProcess();
313 315
314 FilePath policy_dir; 316 if (command_line->HasSwitch(switches::kDeviceManagementUrl)) {
315 PathService::Get(chrome::DIR_USER_DATA, &policy_dir); 317 user_data_store_.reset(CloudPolicyDataStore::CreateForUserPolicies());
318
319 FilePath profile_dir;
320 PathService::Get(chrome::DIR_USER_DATA, &profile_dir);
316 #if defined(OS_CHROMEOS) 321 #if defined(OS_CHROMEOS)
317 policy_dir = policy_dir.Append( 322 profile_dir = profile_dir.Append(
318 command_line->GetSwitchValuePath(switches::kLoginProfile)); 323 command_line->GetSwitchValuePath(switches::kLoginProfile));
319 #endif 324 #endif
325 const FilePath policy_dir = profile_dir.Append(kPolicyDir);
326 const FilePath policy_cache_file = policy_dir.Append(kPolicyCacheFile);
327 const FilePath token_cache_file = policy_dir.Append(kTokenCacheFile);
328 CloudPolicyCacheBase* user_policy_cache = NULL;
320 329
321 if (command_line->HasSwitch(switches::kDeviceManagementUrl)) { 330 #if defined(OS_CHROMEOS)
322 FilePath policy_cache_dir = policy_dir.Append(kPolicyDir); 331 user_policy_cache =
332 new CrosUserPolicyCache(
333 chromeos::DBusThreadManager::Get()->GetSessionManagerClient(),
334 user_data_store_.get(),
335 wait_for_policy_fetch,
336 token_cache_file,
337 policy_cache_file);
338 #else
339 user_policy_cache = new UserPolicyCache(policy_cache_file,
340 wait_for_policy_fetch);
341 user_policy_token_cache_.reset(
342 new UserPolicyTokenCache(user_data_store_.get(), token_cache_file));
323 343
324 UserPolicyCache* user_policy_cache = 344 // Initiate the DM-Token load.
325 new UserPolicyCache(policy_cache_dir.Append(kPolicyCacheFile), 345 user_policy_token_cache_->Load();
326 wait_for_policy_fetch); 346 #endif
327 user_data_store_.reset(CloudPolicyDataStore::CreateForUserPolicies());
328 user_policy_token_cache_.reset(
329 new UserPolicyTokenCache(user_data_store_.get(),
330 policy_cache_dir.Append(kTokenCacheFile)));
331 347
332 managed_cloud_provider_->SetUserPolicyCache(user_policy_cache); 348 managed_cloud_provider_->SetUserPolicyCache(user_policy_cache);
333 recommended_cloud_provider_->SetUserPolicyCache(user_policy_cache); 349 recommended_cloud_provider_->SetUserPolicyCache(user_policy_cache);
334 user_cloud_policy_subsystem_.reset(new CloudPolicySubsystem( 350 user_cloud_policy_subsystem_.reset(new CloudPolicySubsystem(
335 user_data_store_.get(), 351 user_data_store_.get(),
336 user_policy_cache)); 352 user_policy_cache));
337 353
338 // Initiate the DM-Token load.
339 user_policy_token_cache_->Load();
340
341 user_data_store_->set_user_name(user_name); 354 user_data_store_->set_user_name(user_name);
342 user_data_store_->set_user_affiliation(GetUserAffiliation(user_name)); 355 user_data_store_->set_user_affiliation(GetUserAffiliation(user_name));
343 356
344 int64 delay = 357 int64 delay =
345 wait_for_policy_fetch ? 0 : kServiceInitializationStartupDelay; 358 wait_for_policy_fetch ? 0 : kServiceInitializationStartupDelay;
346 user_cloud_policy_subsystem_->CompleteInitialization( 359 user_cloud_policy_subsystem_->CompleteInitialization(
347 prefs::kUserPolicyRefreshRate, 360 prefs::kUserPolicyRefreshRate,
348 delay); 361 delay);
349 } 362 }
350 } 363 }
(...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after
564 config_dir_path.Append(FILE_PATH_LITERAL("recommended"))); 577 config_dir_path.Append(FILE_PATH_LITERAL("recommended")));
565 } else { 578 } else {
566 return NULL; 579 return NULL;
567 } 580 }
568 #else 581 #else
569 return NULL; 582 return NULL;
570 #endif 583 #endif
571 } 584 }
572 585
573 } // namespace policy 586 } // namespace policy
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/login/login_utils_browsertest.cc ('k') | chrome/browser/policy/cros_user_policy_cache.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698