Index: chrome/browser/profiles/profile_impl.cc |
diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/profile_impl.cc |
index 67784b386725663850042fb74120477775ff3b6a..a3defb2a78aa7c43de19041694feef7114042e80 100644 |
--- a/chrome/browser/profiles/profile_impl.cc |
+++ b/chrome/browser/profiles/profile_impl.cc |
@@ -93,6 +93,7 @@ |
#include "chrome/browser/policy/browser_policy_connector.h" |
#include "chrome/browser/policy/managed_mode_policy_provider.h" |
#include "chrome/browser/policy/user_cloud_policy_manager.h" |
+#include "chrome/browser/policy/user_cloud_policy_store.h" |
Joao da Silva
2012/11/21 17:06:34
These 2 are excluded from gyp when OS_CHROMEOS
Mattias Nissler (ping if slow)
2012/11/22 20:51:59
Thanks, this comment uncovered a deeper issue: Rem
|
#else |
#include "chrome/browser/policy/policy_service_stub.h" |
#endif // defined(ENABLE_CONFIGURATION_POLICY) |
@@ -340,25 +341,33 @@ ProfileImpl::ProfileImpl( |
g_browser_process->profile_manager() == NULL); |
#if defined(ENABLE_CONFIGURATION_POLICY) |
- // 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). |
- policy::BrowserPolicyConnector* connector = |
- g_browser_process->browser_policy_connector(); |
// If we are creating the profile synchronously, then we should load the |
// policy data immediately. |
bool force_immediate_policy_load = (create_mode == CREATE_MODE_SYNCHRONOUS); |
- cloud_policy_manager_ = |
- connector->CreateCloudPolicyManager(this, force_immediate_policy_load); |
- if (cloud_policy_manager_) |
+ |
+ // TODO(atwilson): Change |cloud_policy_manager_| and |
+ // |managed_mode_policy_provider_| to ProfileKeyedServices once PrefService is |
+ // a ProfileKeyedService (policy must be initialized before PrefService |
+ // because PrefService depends on policy loading to get overridden pref |
+ // values). |
+#if !defined(OS_CHROMEOS) |
+ if (command_line->HasSwitch(switches::kLoadCloudPolicyOnSignin)) { |
+ scoped_ptr<policy::UserCloudPolicyStore> store( |
+ policy::UserCloudPolicyStore::Create(this)); |
Andrew T Wilson (Slow)
2012/11/21 17:34:24
Hmmm. Do we like exposing this code to Profile() a
Mattias Nissler (ping if slow)
2012/11/22 20:51:59
Fair. Changed.
|
+ if (force_immediate_policy_load) |
+ store->LoadImmediately(); |
+ cloud_policy_manager_.reset( |
+ new policy::UserCloudPolicyManager(store.Pass())); |
cloud_policy_manager_->Init(); |
+ } |
+#endif |
managed_mode_policy_provider_ = |
policy::ManagedModePolicyProvider::Create(this, |
sequenced_task_runner, |
force_immediate_policy_load); |
managed_mode_policy_provider_->Init(); |
- policy_service_ = connector->CreatePolicyService(this); |
+ policy_service_ = |
+ g_browser_process->browser_policy_connector()->CreatePolicyService(this); |
#else |
policy_service_.reset(new policy::PolicyServiceStub()); |
#endif |