Chromium Code Reviews| 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( |
|
markusheintz_
2010/11/18 15:42:33
Do you really want to create a DummyConfigurationP
Mattias Nissler (ping if slow)
2010/11/18 16:06:38
No. The factory method (see below) will only fall
markusheintz_
2010/11/19 11:00:46
I see. Sry I thought this was the factory method b
|
| + 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 |