summaryrefslogtreecommitdiffstats
path: root/chrome/browser/policy
diff options
context:
space:
mode:
authormarkusheintz@chromium.org <markusheintz@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-17 12:49:17 +0000
committermarkusheintz@chromium.org <markusheintz@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-17 12:49:17 +0000
commitbe1c6e92c11b1662693274ec4150715faee682cb (patch)
treefe7b7a658e4cbc5547c1fd25b297229c550900dc /chrome/browser/policy
parent5cbd52d5debcd972cad244d8035f7faac051a4e3 (diff)
downloadchromium_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.cc52
-rw-r--r--chrome/browser/policy/configuration_policy_pref_store.h8
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();