Index: chrome/browser/policy/profile_policy_connector.cc |
diff --git a/chrome/browser/policy/profile_policy_connector.cc b/chrome/browser/policy/profile_policy_connector.cc |
index ce589a0bc1c9bb56b57a87d49b0dd40de77c059e..7a17d8154504344204e086525c8a1008d5ce20c2 100644 |
--- a/chrome/browser/policy/profile_policy_connector.cc |
+++ b/chrome/browser/policy/profile_policy_connector.cc |
@@ -19,6 +19,12 @@ |
#include "chrome/common/chrome_switches.h" |
#include "chrome/common/pref_names.h" |
+#if defined(OS_CHROMEOS) |
+#include "chrome/browser/chromeos/cros/cros_library.h" |
+#include "chrome/browser/policy/cros_user_policy_cache.h" |
+#include "chrome/browser/policy/cros_user_policy_identity_strategy.h" |
+#endif |
+ |
namespace { |
const FilePath::CharType kPolicyDir[] = FILE_PATH_LITERAL("Device Management"); |
@@ -38,12 +44,23 @@ ProfilePolicyConnector::ProfilePolicyConnector(Profile* profile) |
FilePath policy_cache_dir(profile_->GetPath()); |
policy_cache_dir = policy_cache_dir.Append(kPolicyDir); |
+#if defined(OS_CHROMEOS) |
+ CrosUserPolicyIdentityStrategy* identity_strategy = |
+ new CrosUserPolicyIdentityStrategy(profile_); |
+ CloudPolicyCacheBase* policy_cache = |
+ new CrosUserPolicyCache(chromeos::CrosLibrary::Get()->GetLoginLibrary(), |
+ identity_strategy, |
+ policy_cache_dir.Append(kTokenCacheFile)); |
+ identity_strategy_.reset(identity_strategy); |
+#else |
identity_strategy_.reset(new UserPolicyIdentityStrategy( |
profile_, |
policy_cache_dir.Append(kTokenCacheFile))); |
- cloud_policy_subsystem_.reset(new CloudPolicySubsystem( |
- identity_strategy_.get(), |
- new UserPolicyCache(policy_cache_dir.Append(kPolicyCacheFile)))); |
+ CloudPolicyCacheBase* policy_cache = |
+ new UserPolicyCache(policy_cache_dir.Append(kPolicyCacheFile)) |
+#endif |
+ cloud_policy_subsystem_.reset( |
+ new CloudPolicySubsystem(identity_strategy_.get(), policy_cache)); |
BrowserPolicyConnector* browser_connector = |
g_browser_process->browser_policy_connector(); |