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

Unified Diff: chrome/browser/profiles/profile_impl.cc

Issue 11415094: Split UserCloudPolicyManager implementation. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Bring back ProxyPolicyProvider, fix local_state policy provider, fix Joao's fine CloudPolicyTest. Created 8 years, 1 month 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 side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698