Index: chrome/browser/policy/browser_policy_connector.cc |
diff --git a/chrome/browser/policy/browser_policy_connector.cc b/chrome/browser/policy/browser_policy_connector.cc |
index de17f0d298d1e5b8c8dce5c1b32a990fb4fad1fe..b01447203c20f0ac81761371fbb0c3956dbc74c3 100644 |
--- a/chrome/browser/policy/browser_policy_connector.cc |
+++ b/chrome/browser/policy/browser_policy_connector.cc |
@@ -10,6 +10,7 @@ |
#include "base/file_path.h" |
#include "base/path_service.h" |
#include "chrome/browser/browser_process.h" |
+#include "chrome/browser/chromeos/dbus/dbus_thread_manager.h" |
#include "chrome/browser/policy/cloud_policy_provider.h" |
#include "chrome/browser/policy/cloud_policy_subsystem.h" |
#include "chrome/browser/policy/configuration_policy_provider.h" |
@@ -39,6 +40,7 @@ |
#include "chrome/browser/chromeos/cros/cros_library.h" |
#include "chrome/browser/chromeos/system/statistics_provider.h" |
#include "chrome/browser/policy/app_pack_updater.h" |
+#include "chrome/browser/policy/cros_user_policy_cache.h" |
#include "chrome/browser/policy/device_policy_cache.h" |
#include "chrome/browser/policy/network_configuration_updater.h" |
#endif |
@@ -310,23 +312,37 @@ void BrowserPolicyConnector::InitializeUserPolicy( |
CommandLine* command_line = CommandLine::ForCurrentProcess(); |
- FilePath policy_dir; |
- PathService::Get(chrome::DIR_USER_DATA, &policy_dir); |
+ if (command_line->HasSwitch(switches::kDeviceManagementUrl)) { |
+ user_data_store_.reset(CloudPolicyDataStore::CreateForUserPolicies()); |
+ |
+ FilePath profile_dir; |
+ PathService::Get(chrome::DIR_USER_DATA, &profile_dir); |
#if defined(OS_CHROMEOS) |
- policy_dir = policy_dir.Append( |
- command_line->GetSwitchValuePath(switches::kLoginProfile)); |
+ profile_dir = profile_dir.Append( |
+ command_line->GetSwitchValuePath(switches::kLoginProfile)); |
#endif |
+ const FilePath policy_dir = profile_dir.Append(kPolicyDir); |
+ const FilePath policy_cache_file = policy_dir.Append(kPolicyCacheFile); |
+ const FilePath token_cache_file = policy_dir.Append(kTokenCacheFile); |
+ CloudPolicyCacheBase* user_policy_cache = NULL; |
- if (command_line->HasSwitch(switches::kDeviceManagementUrl)) { |
- FilePath policy_cache_dir = policy_dir.Append(kPolicyDir); |
- |
- UserPolicyCache* user_policy_cache = |
- new UserPolicyCache(policy_cache_dir.Append(kPolicyCacheFile), |
- wait_for_policy_fetch); |
- user_data_store_.reset(CloudPolicyDataStore::CreateForUserPolicies()); |
+#if defined(OS_CHROMEOS) |
+ user_policy_cache = |
+ new CrosUserPolicyCache( |
+ chromeos::DBusThreadManager::Get()->GetSessionManagerClient(), |
+ user_data_store_.get(), |
+ wait_for_policy_fetch, |
+ token_cache_file, |
+ policy_cache_file); |
+#else |
+ user_policy_cache = new UserPolicyCache(policy_cache_file, |
+ wait_for_policy_fetch); |
user_policy_token_cache_.reset( |
- new UserPolicyTokenCache(user_data_store_.get(), |
- policy_cache_dir.Append(kTokenCacheFile))); |
+ new UserPolicyTokenCache(user_data_store_.get(), token_cache_file)); |
+ |
+ // Initiate the DM-Token load. |
+ user_policy_token_cache_->Load(); |
+#endif |
managed_cloud_provider_->SetUserPolicyCache(user_policy_cache); |
recommended_cloud_provider_->SetUserPolicyCache(user_policy_cache); |
@@ -334,9 +350,6 @@ void BrowserPolicyConnector::InitializeUserPolicy( |
user_data_store_.get(), |
user_policy_cache)); |
- // Initiate the DM-Token load. |
- user_policy_token_cache_->Load(); |
- |
user_data_store_->set_user_name(user_name); |
user_data_store_->set_user_affiliation(GetUserAffiliation(user_name)); |