diff options
author | markusheintz@chromium.org <markusheintz@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-11-17 12:49:17 +0000 |
---|---|---|
committer | markusheintz@chromium.org <markusheintz@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-11-17 12:49:17 +0000 |
commit | be1c6e92c11b1662693274ec4150715faee682cb (patch) | |
tree | fe7b7a658e4cbc5547c1fd25b297229c550900dc /chrome/browser/policy | |
parent | 5cbd52d5debcd972cad244d8035f7faac051a4e3 (diff) | |
download | chromium_src-be1c6e92c11b1662693274ec4150715faee682cb.zip chromium_src-be1c6e92c11b1662693274ec4150715faee682cb.tar.gz chromium_src-be1c6e92c11b1662693274ec4150715faee682cb.tar.bz2 |
Create additional PrefStore for Device Management policy.
BUG=62478
TEST=PrefValueStore*:PrefService*
Committing for danno@chromium.org
Review URL: http://codereview.chromium.org/4876002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@66426 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/policy')
-rw-r--r-- | chrome/browser/policy/configuration_policy_pref_store.cc | 52 | ||||
-rw-r--r-- | chrome/browser/policy/configuration_policy_pref_store.h | 8 |
2 files changed, 42 insertions, 18 deletions
diff --git a/chrome/browser/policy/configuration_policy_pref_store.cc b/chrome/browser/policy/configuration_policy_pref_store.cc index 67294c7..8336a5d 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) @@ -355,10 +366,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 diff --git a/chrome/browser/policy/configuration_policy_pref_store.h b/chrome/browser/policy/configuration_policy_pref_store.h index 9eb8128f..e4792c6 100644 --- a/chrome/browser/policy/configuration_policy_pref_store.h +++ b/chrome/browser/policy/configuration_policy_pref_store.h @@ -38,8 +38,12 @@ class ConfigurationPolicyPrefStore : public PrefStore, // ConfigurationPolicyStore methods: virtual void Apply(ConfigurationPolicyType setting, Value* value); - // Creates a ConfigurationPolicyPrefStore that reads managed policy. - static ConfigurationPolicyPrefStore* CreateManagedPolicyPrefStore(); + // Creates a ConfigurationPolicyPrefStore that reads managed platform policy. + static ConfigurationPolicyPrefStore* CreateManagedPlatformPolicyPrefStore(); + + // Creates a ConfigurationPolicyPrefStore that supplies policy from + // the device management server. + static ConfigurationPolicyPrefStore* CreateDeviceManagementPolicyPrefStore(); // Creates a ConfigurationPolicyPrefStore that reads recommended policy. static ConfigurationPolicyPrefStore* CreateRecommendedPolicyPrefStore(); |