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 3d73182c2a98314a27662689aa32c583bb4d7efa..e5de8e9039f3486790dbed85457e36bfc83a4968 100644 |
--- a/chrome/browser/policy/configuration_policy_pref_store.cc |
+++ b/chrome/browser/policy/configuration_policy_pref_store.cc |
@@ -31,28 +31,36 @@ |
namespace policy { |
-// Manages the lifecycle of the shared platform-specific policy providers |
-// for managed and recommended policy. Instantiated as a Singleton. |
+// Manages the lifecycle of the shared platform-specific policy providers for |
+// managed platform, device management and recommended policy. Instantiated as a |
+// Singleton. |
class ConfigurationPolicyProviderKeeper { |
public: |
ConfigurationPolicyProviderKeeper() |
- : managed_provider_(CreateManagedProvider()), |
+ : managed_platform_provider_(CreateManagedPlatformProvider()), |
+ device_management_provider_(CreateDeviceManagementProvider()), |
recommended_provider_(CreateRecommendedProvider()) {} |
virtual ~ConfigurationPolicyProviderKeeper() {} |
- ConfigurationPolicyProvider* managed_provider() const { |
- return managed_provider_.get(); |
+ ConfigurationPolicyProvider* managed_platform_provider() const { |
+ return managed_platform_provider_.get(); |
} |
- ConfigurationPolicyProvider* recommended_provider() const { |
+ ConfigurationPolicyProvider* device_management_provider() const { |
+ return device_management_provider_.get(); |
+ } |
+ |
+ConfigurationPolicyProvider* recommended_provider() const { |
return recommended_provider_.get(); |
} |
private: |
- scoped_ptr<ConfigurationPolicyProvider> managed_provider_; |
+ scoped_ptr<ConfigurationPolicyProvider> managed_platform_provider_; |
+ scoped_ptr<ConfigurationPolicyProvider> device_management_provider_; |
scoped_ptr<ConfigurationPolicyProvider> recommended_provider_; |
- static ConfigurationPolicyProvider* CreateManagedProvider(); |
+ static ConfigurationPolicyProvider* CreateManagedPlatformProvider(); |
+ static ConfigurationPolicyProvider* CreateDeviceManagementProvider(); |
static ConfigurationPolicyProvider* CreateRecommendedProvider(); |
DISALLOW_COPY_AND_ASSIGN(ConfigurationPolicyProviderKeeper); |
@@ -60,18 +68,21 @@ class ConfigurationPolicyProviderKeeper { |
ConfigurationPolicyProvider* |
- ConfigurationPolicyProviderKeeper::CreateManagedProvider() { |
+ ConfigurationPolicyProviderKeeper::CreateDeviceManagementProvider() { |
const ConfigurationPolicyProvider::PolicyDefinitionList* policy_list = |
ConfigurationPolicyPrefStore::GetChromePolicyDefinitionList(); |
-#ifndef NDEBUG |
- // TODO(danno): This is a temporary solution only, the PrefValueStore needs to |
- // be changed to support two managed PrefStores, the local managed store and |
- // the device management policy store. |
if (CommandLine::ForCurrentProcess()->HasSwitch( |
switches::kDeviceManagementUrl)) { |
return new DeviceManagementPolicyProvider(policy_list); |
+ } else { |
+ return new DummyConfigurationPolicyProvider(policy_list); |
} |
-#endif |
+} |
+ |
+ConfigurationPolicyProvider* |
+ ConfigurationPolicyProviderKeeper::CreateManagedPlatformProvider() { |
+ const ConfigurationPolicyProvider::PolicyDefinitionList* policy_list = |
+ ConfigurationPolicyPrefStore::GetChromePolicyDefinitionList(); |
#if defined(OS_WIN) |
return new ConfigurationPolicyProviderWin(policy_list); |
#elif defined(OS_MACOSX) |
@@ -330,10 +341,19 @@ void ConfigurationPolicyPrefStore::Apply(ConfigurationPolicyType policy, |
// static |
ConfigurationPolicyPrefStore* |
-ConfigurationPolicyPrefStore::CreateManagedPolicyPrefStore() { |
+ConfigurationPolicyPrefStore::CreateManagedPlatformPolicyPrefStore() { |
+ ConfigurationPolicyProviderKeeper* keeper = |
+ Singleton<ConfigurationPolicyProviderKeeper>::get(); |
+ return new ConfigurationPolicyPrefStore(keeper->managed_platform_provider()); |
+} |
+ |
+// static |
+ConfigurationPolicyPrefStore* |
+ConfigurationPolicyPrefStore::CreateDeviceManagementPolicyPrefStore() { |
ConfigurationPolicyProviderKeeper* keeper = |
Singleton<ConfigurationPolicyProviderKeeper>::get(); |
- return new ConfigurationPolicyPrefStore(keeper->managed_provider()); |
+ return new ConfigurationPolicyPrefStore( |
+ keeper->device_management_provider()); |
} |
// static |