| 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 99a15aeadfacf6ff84d8462a7e56f8bea89f77da..ff913b3e587059a9dae9ca1ac2d262c641e94ca8 100644
|
| --- a/chrome/browser/policy/configuration_policy_pref_store.cc
|
| +++ b/chrome/browser/policy/configuration_policy_pref_store.cc
|
| @@ -112,6 +112,10 @@ class ConfigurationPolicyPrefKeeper
|
| // the function takes ownership of |value|.
|
| bool ApplyIncognitoModePolicy(ConfigurationPolicyType policy, Value* value);
|
|
|
| + // Processes a policy that can disable the bookmarks bar. It can also affect
|
| + // other preferences.
|
| + bool ApplyBookmarksPolicy(ConfigurationPolicyType policy, Value* value);
|
| +
|
| // Make sure that the |path| if present in |prefs_|. If not, set it to
|
| // a blank string.
|
| void EnsureStringPrefExists(const std::string& path);
|
| @@ -283,15 +287,12 @@ const ConfigurationPolicyPrefKeeper::PolicyToPreferenceMapEntry
|
| { Value::TYPE_BOOLEAN, kPolicyCloudPrintProxyEnabled,
|
| prefs::kCloudPrintProxyEnabled },
|
| { Value::TYPE_BOOLEAN, kPolicyTranslateEnabled, prefs::kEnableTranslate },
|
| - { Value::TYPE_BOOLEAN, kPolicyBookmarkBarEnabled, prefs::kEnableBookmarkBar },
|
| { Value::TYPE_BOOLEAN, kPolicyAllowOutdatedPlugins,
|
| prefs::kPluginsAllowOutdated },
|
| { Value::TYPE_BOOLEAN, kPolicyAlwaysAuthorizePlugins,
|
| prefs::kPluginsAlwaysAuthorize },
|
| { Value::TYPE_BOOLEAN, kPolicyEditBookmarksEnabled,
|
| prefs::kEditBookmarksEnabled },
|
| - { Value::TYPE_BOOLEAN, kPolicyAllowFileSelectionDialogs,
|
| - prefs::kAllowFileSelectionDialogs },
|
| { Value::TYPE_INTEGER, kPolicyMaxConnectionsPerProxy,
|
| prefs::kMaxConnectionsPerProxy },
|
|
|
| @@ -361,31 +362,16 @@ void ConfigurationPolicyPrefKeeper::GetDifferingPrefPaths(
|
|
|
| void ConfigurationPolicyPrefKeeper::Apply(ConfigurationPolicyType policy,
|
| Value* value) {
|
| - if (ApplyProxyPolicy(policy, value))
|
| - return;
|
| -
|
| - if (ApplySyncPolicy(policy, value))
|
| - return;
|
| -
|
| - if (ApplyAutofillPolicy(policy, value))
|
| - return;
|
| -
|
| - if (ApplyDownloadDirPolicy(policy, value))
|
| - return;
|
| -
|
| - if (ApplyDiskCacheDirPolicy(policy, value))
|
| - return;
|
| -
|
| - if (ApplyFileSelectionDialogsPolicy(policy, value))
|
| - return;
|
| -
|
| - if (ApplyDefaultSearchPolicy(policy, value))
|
| - return;
|
| -
|
| - if (ApplyIncognitoModePolicy(policy, value))
|
| - return;
|
| -
|
| - if (ApplyPolicyFromMap(policy, value, kSimplePolicyMap,
|
| + if (ApplyProxyPolicy(policy, value) ||
|
| + ApplySyncPolicy(policy, value) ||
|
| + ApplyAutofillPolicy(policy, value) ||
|
| + ApplyDownloadDirPolicy(policy, value) ||
|
| + ApplyDiskCacheDirPolicy(policy, value) ||
|
| + ApplyFileSelectionDialogsPolicy(policy, value) ||
|
| + ApplyDefaultSearchPolicy(policy, value) ||
|
| + ApplyIncognitoModePolicy(policy, value) ||
|
| + ApplyBookmarksPolicy(policy, value) ||
|
| + ApplyPolicyFromMap(policy, value, kSimplePolicyMap,
|
| arraysize(kSimplePolicyMap)))
|
| return;
|
|
|
| @@ -603,6 +589,21 @@ bool ConfigurationPolicyPrefKeeper::ApplyIncognitoModePolicy(
|
| return false;
|
| }
|
|
|
| +bool ConfigurationPolicyPrefKeeper::ApplyBookmarksPolicy(
|
| + ConfigurationPolicyType policy,
|
| + Value* value) {
|
| + if (policy != kPolicyBookmarkBarEnabled)
|
| + return false;
|
| + DCHECK_EQ(Value::TYPE_BOOLEAN, value->GetType());
|
| + prefs_.SetValue(prefs::kEnableBookmarkBar, value);
|
| + // kShowBookmarkBar is not managed directly by a policy, but when
|
| + // kEnableBookmarkBar is managed, kShowBookmarkBar should be false so that
|
| + // the bookmarks bar either is completely disabled or only shows on the NTP.
|
| + // This also disables the checkbox for this preference in the prefs UI.
|
| + prefs_.SetValue(prefs::kShowBookmarkBar, Value::CreateBooleanValue(false));
|
| + return true;
|
| +}
|
| +
|
| void ConfigurationPolicyPrefKeeper::EnsureStringPrefExists(
|
| const std::string& path) {
|
| std::string value;
|
|
|