diff options
author | mnissler@chromium.org <mnissler@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-07-14 07:45:59 +0000 |
---|---|---|
committer | mnissler@chromium.org <mnissler@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-07-14 07:45:59 +0000 |
commit | d3b98c88fa50c3b6bf4644570220cf93f8ca9bea (patch) | |
tree | e2fdf54cee2d8546526ed9aca724e9f957d0fb2b /chrome/browser/configuration_policy_pref_store.cc | |
parent | 9473a8d2db6780ecac153c65ba8200cdb0eeb1bd (diff) | |
download | chromium_src-d3b98c88fa50c3b6bf4644570220cf93f8ca9bea.zip chromium_src-d3b98c88fa50c3b6bf4644570220cf93f8ca9bea.tar.gz chromium_src-d3b98c88fa50c3b6bf4644570220cf93f8ca9bea.tar.bz2 |
Implement support for disabling sync through configuration management.
BUG=45316
TEST=Configure SyncDisabled policy and check the UI.
Review URL: http://codereview.chromium.org/2905003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@52288 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/configuration_policy_pref_store.cc')
-rw-r--r-- | chrome/browser/configuration_policy_pref_store.cc | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/chrome/browser/configuration_policy_pref_store.cc b/chrome/browser/configuration_policy_pref_store.cc index d2ada7c..43c9caa 100644 --- a/chrome/browser/configuration_policy_pref_store.cc +++ b/chrome/browser/configuration_policy_pref_store.cc @@ -224,6 +224,19 @@ bool ConfigurationPolicyPrefStore::ApplyProxyPolicy(PolicyType policy, return result; } +bool ConfigurationPolicyPrefStore::ApplySyncPolicy(PolicyType policy, + Value* value) { + if (policy == ConfigurationPolicyStore::kPolicySyncDisabled) { + bool disable_sync; + if (value->GetAsBoolean(&disable_sync) && disable_sync) + prefs_->Set(prefs::kSyncManaged, value); + else + delete value; + return true; + } + return false; +} + bool ConfigurationPolicyPrefStore::ApplyPolicyFromMap(PolicyType policy, Value* value, const PolicyToPreferenceMapEntry map[], int size) { const PolicyToPreferenceMapEntry* end = map + size; @@ -242,6 +255,9 @@ void ConfigurationPolicyPrefStore::Apply(PolicyType policy, Value* value) { if (ApplyProxyPolicy(policy, value)) return; + if (ApplySyncPolicy(policy, value)) + return; + if (ApplyPolicyFromMap(policy, value, simple_policy_map_, arraysize(simple_policy_map_))) return; @@ -249,4 +265,3 @@ void ConfigurationPolicyPrefStore::Apply(PolicyType policy, Value* value) { // Other policy implementations go here. NOTIMPLEMENTED(); } - |