| Index: chrome/browser/policy/configuration_policy_pref_store.cc
|
| diff --git a/chrome/browser/policy/configuration_policy_pref_store.cc b/chrome/browser/policy/configuration_policy_pref_store.cc
|
| index 8336a5d616fb38e1a7fc820c41ae96ac3daa8b39..83916e89490f748b4c22978cfd81132881a21a64 100644
|
| --- a/chrome/browser/policy/configuration_policy_pref_store.cc
|
| +++ b/chrome/browser/policy/configuration_policy_pref_store.cc
|
| @@ -12,6 +12,7 @@
|
| #include "base/string_util.h"
|
| #include "base/utf_string_conversions.h"
|
| #include "base/values.h"
|
| +#include "chrome/browser/profile.h"
|
| #include "chrome/browser/policy/configuration_policy_provider.h"
|
| #if defined(OS_WIN)
|
| #include "chrome/browser/policy/configuration_policy_provider_win.h"
|
| @@ -50,7 +51,7 @@ class ConfigurationPolicyProviderKeeper {
|
| return device_management_provider_.get();
|
| }
|
|
|
| -ConfigurationPolicyProvider* recommended_provider() const {
|
| + ConfigurationPolicyProvider* recommended_provider() const {
|
| return recommended_provider_.get();
|
| }
|
|
|
| @@ -66,19 +67,6 @@ ConfigurationPolicyProvider* recommended_provider() const {
|
| DISALLOW_COPY_AND_ASSIGN(ConfigurationPolicyProviderKeeper);
|
| };
|
|
|
| -
|
| -ConfigurationPolicyProvider*
|
| - ConfigurationPolicyProviderKeeper::CreateDeviceManagementProvider() {
|
| - const ConfigurationPolicyProvider::PolicyDefinitionList* policy_list =
|
| - ConfigurationPolicyPrefStore::GetChromePolicyDefinitionList();
|
| - if (CommandLine::ForCurrentProcess()->HasSwitch(
|
| - switches::kDeviceManagementUrl)) {
|
| - return new DeviceManagementPolicyProvider(policy_list);
|
| - } else {
|
| - return new DummyConfigurationPolicyProvider(policy_list);
|
| - }
|
| -}
|
| -
|
| ConfigurationPolicyProvider*
|
| ConfigurationPolicyProviderKeeper::CreateManagedPlatformProvider() {
|
| const ConfigurationPolicyProvider::PolicyDefinitionList* policy_list =
|
| @@ -102,6 +90,12 @@ ConfigurationPolicyProvider*
|
| }
|
|
|
| ConfigurationPolicyProvider*
|
| + ConfigurationPolicyProviderKeeper::CreateDeviceManagementProvider() {
|
| + return new DummyConfigurationPolicyProvider(
|
| + ConfigurationPolicyPrefStore::GetChromePolicyDefinitionList());
|
| +}
|
| +
|
| +ConfigurationPolicyProvider*
|
| ConfigurationPolicyProviderKeeper::CreateRecommendedProvider() {
|
| const ConfigurationPolicyProvider::PolicyDefinitionList* policy_list =
|
| ConfigurationPolicyPrefStore::GetChromePolicyDefinitionList();
|
| @@ -374,11 +368,16 @@ ConfigurationPolicyPrefStore::CreateManagedPlatformPolicyPrefStore() {
|
|
|
| // static
|
| ConfigurationPolicyPrefStore*
|
| -ConfigurationPolicyPrefStore::CreateDeviceManagementPolicyPrefStore() {
|
| +ConfigurationPolicyPrefStore::CreateDeviceManagementPolicyPrefStore(
|
| + Profile* profile) {
|
| ConfigurationPolicyProviderKeeper* keeper =
|
| Singleton<ConfigurationPolicyProviderKeeper>::get();
|
| - return new ConfigurationPolicyPrefStore(
|
| - keeper->device_management_provider());
|
| + ConfigurationPolicyProvider* provider = NULL;
|
| + if (profile)
|
| + provider = profile->GetDeviceManagementPolicyProvider();
|
| + if (!provider)
|
| + provider = keeper->device_management_provider();
|
| + return new ConfigurationPolicyPrefStore(provider);
|
| }
|
|
|
| // static
|
|
|