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

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/chromeos/dbus/dbus_thread_manager.h"
13 #include "chrome/browser/policy/cloud_policy_provider.h" 14 #include "chrome/browser/policy/cloud_policy_provider.h"
14 #include "chrome/browser/policy/cloud_policy_subsystem.h" 15 #include "chrome/browser/policy/cloud_policy_subsystem.h"
15 #include "chrome/browser/policy/configuration_policy_provider.h" 16 #include "chrome/browser/policy/configuration_policy_provider.h"
16 #include "chrome/browser/policy/policy_service_impl.h" 17 #include "chrome/browser/policy/policy_service_impl.h"
17 #include "chrome/browser/policy/user_policy_cache.h" 18 #include "chrome/browser/policy/user_policy_cache.h"
18 #include "chrome/browser/policy/user_policy_token_cache.h" 19 #include "chrome/browser/policy/user_policy_token_cache.h"
19 #include "chrome/browser/signin/token_service.h" 20 #include "chrome/browser/signin/token_service.h"
20 #include "chrome/common/chrome_notification_types.h" 21 #include "chrome/common/chrome_notification_types.h"
21 #include "chrome/common/chrome_paths.h" 22 #include "chrome/common/chrome_paths.h"
22 #include "chrome/common/chrome_switches.h" 23 #include "chrome/common/chrome_switches.h"
23 #include "chrome/common/net/gaia/gaia_constants.h" 24 #include "chrome/common/net/gaia/gaia_constants.h"
24 #include "chrome/common/pref_names.h" 25 #include "chrome/common/pref_names.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 251 matching lines...) Expand 10 before | Expand all | Expand 10 after
303 bool wait_for_policy_fetch) { 305 bool wait_for_policy_fetch) {
304 // Throw away the old backend. 306 // Throw away the old backend.
305 user_cloud_policy_subsystem_.reset(); 307 user_cloud_policy_subsystem_.reset();
306 user_policy_token_cache_.reset(); 308 user_policy_token_cache_.reset();
307 user_data_store_.reset(); 309 user_data_store_.reset();
308 token_service_ = NULL; 310 token_service_ = NULL;
309 registrar_.RemoveAll(); 311 registrar_.RemoveAll();
310 312
311 CommandLine* command_line = CommandLine::ForCurrentProcess(); 313 CommandLine* command_line = CommandLine::ForCurrentProcess();
312 314
313 FilePath policy_dir; 315 if (command_line->HasSwitch(switches::kDeviceManagementUrl)) {
314 PathService::Get(chrome::DIR_USER_DATA, &policy_dir); 316 user_data_store_.reset(CloudPolicyDataStore::CreateForUserPolicies());
317
318 FilePath profile_dir;
319 PathService::Get(chrome::DIR_USER_DATA, &profile_dir);
315 #if defined(OS_CHROMEOS) 320 #if defined(OS_CHROMEOS)
316 policy_dir = policy_dir.Append( 321 profile_dir = profile_dir.Append(
317 command_line->GetSwitchValuePath(switches::kLoginProfile)); 322 command_line->GetSwitchValuePath(switches::kLoginProfile));
318 #endif 323 #endif
324 const FilePath policy_dir = profile_dir.Append(kPolicyDir);
325 const FilePath policy_cache_file = policy_dir.Append(kPolicyCacheFile);
326 const FilePath token_cache_file = policy_dir.Append(kTokenCacheFile);
327 CloudPolicyCacheBase* user_policy_cache = NULL;
319 328
320 if (command_line->HasSwitch(switches::kDeviceManagementUrl)) { 329 #if defined(OS_CHROMEOS)
321 FilePath policy_cache_dir = policy_dir.Append(kPolicyDir); 330 user_policy_cache =
331 new CrosUserPolicyCache(
332 chromeos::DBusThreadManager::Get()->GetSessionManagerClient(),
333 user_data_store_.get(),
334 wait_for_policy_fetch,
335 token_cache_file,
336 policy_cache_file);
337 #else
338 user_policy_cache = new UserPolicyCache(policy_cache_file,
339 wait_for_policy_fetch);
340 user_policy_token_cache_.reset(
341 new UserPolicyTokenCache(user_data_store_.get(), token_cache_file));
322 342
323 UserPolicyCache* user_policy_cache = 343 // Initiate the DM-Token load.
324 new UserPolicyCache(policy_cache_dir.Append(kPolicyCacheFile), 344 user_policy_token_cache_->Load();
325 wait_for_policy_fetch); 345 #endif
326 user_data_store_.reset(CloudPolicyDataStore::CreateForUserPolicies());
327 user_policy_token_cache_.reset(
328 new UserPolicyTokenCache(user_data_store_.get(),
329 policy_cache_dir.Append(kTokenCacheFile)));
330 346
331 managed_cloud_provider_->SetUserPolicyCache(user_policy_cache); 347 managed_cloud_provider_->SetUserPolicyCache(user_policy_cache);
332 recommended_cloud_provider_->SetUserPolicyCache(user_policy_cache); 348 recommended_cloud_provider_->SetUserPolicyCache(user_policy_cache);
333 user_cloud_policy_subsystem_.reset(new CloudPolicySubsystem( 349 user_cloud_policy_subsystem_.reset(new CloudPolicySubsystem(
334 user_data_store_.get(), 350 user_data_store_.get(),
335 user_policy_cache)); 351 user_policy_cache));
336 352
337 // Initiate the DM-Token load.
338 user_policy_token_cache_->Load();
339
340 user_data_store_->set_user_name(user_name); 353 user_data_store_->set_user_name(user_name);
341 user_data_store_->set_user_affiliation(GetUserAffiliation(user_name)); 354 user_data_store_->set_user_affiliation(GetUserAffiliation(user_name));
342 355
343 int64 delay = 356 int64 delay =
344 wait_for_policy_fetch ? 0 : kServiceInitializationStartupDelay; 357 wait_for_policy_fetch ? 0 : kServiceInitializationStartupDelay;
345 user_cloud_policy_subsystem_->CompleteInitialization( 358 user_cloud_policy_subsystem_->CompleteInitialization(
346 prefs::kUserPolicyRefreshRate, 359 prefs::kUserPolicyRefreshRate,
347 delay); 360 delay);
348 } 361 }
349 } 362 }
(...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after
563 config_dir_path.Append(FILE_PATH_LITERAL("recommended"))); 576 config_dir_path.Append(FILE_PATH_LITERAL("recommended")));
564 } else { 577 } else {
565 return NULL; 578 return NULL;
566 } 579 }
567 #else 580 #else
568 return NULL; 581 return NULL;
569 #endif 582 #endif
570 } 583 }
571 584
572 } // namespace policy 585 } // namespace policy
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/policy/cros_user_policy_cache.h » ('j') | chrome/browser/policy/cros_user_policy_cache.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698