Index: chrome/browser/profiles/profile_impl.cc |
diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/profile_impl.cc |
index 0e03dbe5355b85a731a3e41ba2516da121ff3f61..b0ef7f24541634cfb19d2fe89dbb47b9d2abe918 100644 |
--- a/chrome/browser/profiles/profile_impl.cc |
+++ b/chrome/browser/profiles/profile_impl.cc |
@@ -56,6 +56,7 @@ |
#include "chrome/browser/net/url_fixer_upper.h" |
#include "chrome/browser/plugin_prefs.h" |
#include "chrome/browser/policy/policy_service.h" |
+#include "chrome/browser/policy/user_cloud_policy_manager.h" |
#include "chrome/browser/prefs/browser_prefs.h" |
#include "chrome/browser/prefs/scoped_user_pref_update.h" |
#include "chrome/browser/prerender/prerender_manager_factory.h" |
@@ -285,10 +286,17 @@ ProfileImpl::ProfileImpl(const FilePath& path, |
session_restore_enabled_ = |
!command_line->HasSwitch(switches::kDisableRestoreSessionState); |
#if defined(ENABLE_CONFIGURATION_POLICY) |
- policy_service_.reset( |
- g_browser_process->browser_policy_connector()->CreatePolicyService(this)); |
+ // TODO(atwilson): Change these to ProfileKeyedServices once PrefService is |
+ // a ProfileKeyedService (policy must be initialized before PrefService |
+ // because PrefService depends on policy loading to get overridden pref |
+ // values). |
+ cloud_policy_manager_ = |
+ g_browser_process->browser_policy_connector()->CreateCloudPolicyManager( |
+ this); |
+ policy_service_ = |
+ g_browser_process->browser_policy_connector()->CreatePolicyService(this); |
#else |
- policy_service_.reset(new policy::PolicyServiceStub()); |
+ policy_service_.reset(new policy::PolicyServiceStub()); |
#endif |
if (create_mode == CREATE_MODE_ASYNCHRONOUS) { |
prefs_.reset(PrefService::CreatePrefService( |
@@ -643,6 +651,10 @@ bool ProfileImpl::WasCreatedByVersionOrLater(const std::string& version) { |
return (profile_version.CompareTo(arg_version) >= 0); |
} |
+policy::UserCloudPolicyManager* ProfileImpl::GetUserCloudPolicyManager() { |
+ return cloud_policy_manager_.get(); |
+} |
+ |
policy::PolicyService* ProfileImpl::GetPolicyService() { |
DCHECK(policy_service_.get()); // Should explicitly be initialized. |
return policy_service_.get(); |