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 |