| Index: chrome/browser/policy/profile_policy_connector_factory.cc
|
| diff --git a/chrome/browser/policy/profile_policy_connector_factory.cc b/chrome/browser/policy/profile_policy_connector_factory.cc
|
| index e5ec872b53680c03e51665bcc701bfb776b2968c..9c91e00654ac1cce22610b63540d519e5d532a4c 100644
|
| --- a/chrome/browser/policy/profile_policy_connector_factory.cc
|
| +++ b/chrome/browser/policy/profile_policy_connector_factory.cc
|
| @@ -9,10 +9,12 @@
|
| #include "chrome/browser/policy/profile_policy_connector.h"
|
| #include "chrome/browser/profiles/profile.h"
|
| #include "components/keyed_service/content/browser_context_dependency_manager.h"
|
| +#include "components/policy/core/common/policy_service.h"
|
|
|
| #if defined(ENABLE_CONFIGURATION_POLICY)
|
| #include "chrome/browser/policy/schema_registry_service.h"
|
| #include "chrome/browser/policy/schema_registry_service_factory.h"
|
| +#include "components/policy/core/common/policy_service_impl.h"
|
| #if defined(OS_CHROMEOS)
|
| #include "chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos.h"
|
| #include "chrome/browser/chromeos/policy/user_cloud_policy_manager_factory_chromeos.h"
|
| @@ -52,6 +54,13 @@ void ProfilePolicyConnectorFactory::SetServiceForTesting(
|
| map_entry = connector;
|
| }
|
|
|
| +#if defined(ENABLE_CONFIGURATION_POLICY)
|
| +void ProfilePolicyConnectorFactory::PushProviderForTesting(
|
| + ConfigurationPolicyProvider* provider) {
|
| + test_providers_.push_back(provider);
|
| +}
|
| +#endif
|
| +
|
| ProfilePolicyConnectorFactory::ProfilePolicyConnectorFactory()
|
| : BrowserContextKeyedBaseFactory(
|
| "ProfilePolicyConnector",
|
| @@ -108,12 +117,26 @@ ProfilePolicyConnectorFactory::CreateForProfileInternal(
|
| #endif // defined(ENABLE_CONFIGURATION_POLICY)
|
|
|
| ProfilePolicyConnector* connector = new ProfilePolicyConnector();
|
| - connector->Init(force_immediate_load,
|
| -#if defined(ENABLE_CONFIGURATION_POLICY) && defined(OS_CHROMEOS)
|
| - user,
|
| +
|
| +#if defined(ENABLE_CONFIGURATION_POLICY)
|
| + if (test_providers_.empty()) {
|
| + connector->Init(force_immediate_load,
|
| +#if defined(OS_CHROMEOS)
|
| + user,
|
| #endif
|
| - schema_registry,
|
| - user_cloud_policy_manager);
|
| + schema_registry,
|
| + user_cloud_policy_manager);
|
| + } else {
|
| + PolicyServiceImpl::Providers providers;
|
| + providers.push_back(test_providers_.front());
|
| + test_providers_.pop_front();
|
| + scoped_ptr<PolicyService> service(new PolicyServiceImpl(providers));
|
| + connector->InitForTesting(service.Pass());
|
| + }
|
| +#else
|
| + connector->Init(false, NULL, NULL);
|
| +#endif
|
| +
|
| connectors_[profile] = connector;
|
| return make_scoped_ptr(connector);
|
| }
|
|
|