| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/policy/configuration_policy_pref_store.h" | 5 #include "chrome/browser/policy/configuration_policy_pref_store.h" |
| 6 | 6 |
| 7 #include <map> | 7 #include <map> |
| 8 #include <string> | 8 #include <string> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 99 // Processes default search provider policies. Returns true if the specified | 99 // Processes default search provider policies. Returns true if the specified |
| 100 // policy is a default search provider related policy. In that case, | 100 // policy is a default search provider related policy. In that case, |
| 101 // ApplyDefaultSearchPolicy takes ownership of |value|. | 101 // ApplyDefaultSearchPolicy takes ownership of |value|. |
| 102 bool ApplyDefaultSearchPolicy(ConfigurationPolicyType policy, Value* value); | 102 bool ApplyDefaultSearchPolicy(ConfigurationPolicyType policy, Value* value); |
| 103 | 103 |
| 104 // Processes incognito mode availability related policies. Returns true if the | 104 // Processes incognito mode availability related policies. Returns true if the |
| 105 // specified policy is pertinent to incognito mode availability. In that case, | 105 // specified policy is pertinent to incognito mode availability. In that case, |
| 106 // the function takes ownership of |value|. | 106 // the function takes ownership of |value|. |
| 107 bool ApplyIncognitoModePolicy(ConfigurationPolicyType policy, Value* value); | 107 bool ApplyIncognitoModePolicy(ConfigurationPolicyType policy, Value* value); |
| 108 | 108 |
| 109 // Processes a policy that can disable the bookmarks bar. It can also affect | |
| 110 // other preferences. | |
| 111 bool ApplyBookmarksPolicy(ConfigurationPolicyType policy, Value* value); | |
| 112 | |
| 113 // Make sure that the |path| if present in |prefs_|. If not, set it to | 109 // Make sure that the |path| if present in |prefs_|. If not, set it to |
| 114 // a blank string. | 110 // a blank string. |
| 115 void EnsureStringPrefExists(const std::string& path); | 111 void EnsureStringPrefExists(const std::string& path); |
| 116 | 112 |
| 117 // If the required entries for default search are specified and valid, | 113 // If the required entries for default search are specified and valid, |
| 118 // finalizes the policy-specified configuration by initializing the | 114 // finalizes the policy-specified configuration by initializing the |
| 119 // unspecified map entries. Otherwise wipes all default search related | 115 // unspecified map entries. Otherwise wipes all default search related |
| 120 // map entries from |prefs_|. | 116 // map entries from |prefs_|. |
| 121 void FinalizeDefaultSearchPolicySettings(); | 117 void FinalizeDefaultSearchPolicySettings(); |
| 122 | 118 |
| (...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 284 prefs::kRemoteAccessClientFirewallTraversal }, | 280 prefs::kRemoteAccessClientFirewallTraversal }, |
| 285 { Value::TYPE_BOOLEAN, kPolicyRemoteAccessHostFirewallTraversal, | 281 { Value::TYPE_BOOLEAN, kPolicyRemoteAccessHostFirewallTraversal, |
| 286 prefs::kRemoteAccessHostFirewallTraversal }, | 282 prefs::kRemoteAccessHostFirewallTraversal }, |
| 287 { Value::TYPE_BOOLEAN, kPolicyCloudPrintProxyEnabled, | 283 { Value::TYPE_BOOLEAN, kPolicyCloudPrintProxyEnabled, |
| 288 prefs::kCloudPrintProxyEnabled }, | 284 prefs::kCloudPrintProxyEnabled }, |
| 289 { Value::TYPE_BOOLEAN, kPolicyTranslateEnabled, prefs::kEnableTranslate }, | 285 { Value::TYPE_BOOLEAN, kPolicyTranslateEnabled, prefs::kEnableTranslate }, |
| 290 { Value::TYPE_BOOLEAN, kPolicyAllowOutdatedPlugins, | 286 { Value::TYPE_BOOLEAN, kPolicyAllowOutdatedPlugins, |
| 291 prefs::kPluginsAllowOutdated }, | 287 prefs::kPluginsAllowOutdated }, |
| 292 { Value::TYPE_BOOLEAN, kPolicyAlwaysAuthorizePlugins, | 288 { Value::TYPE_BOOLEAN, kPolicyAlwaysAuthorizePlugins, |
| 293 prefs::kPluginsAlwaysAuthorize }, | 289 prefs::kPluginsAlwaysAuthorize }, |
| 290 { Value::TYPE_BOOLEAN, kPolicyBookmarkBarEnabled, |
| 291 prefs::kShowBookmarkBar }, |
| 294 { Value::TYPE_BOOLEAN, kPolicyEditBookmarksEnabled, | 292 { Value::TYPE_BOOLEAN, kPolicyEditBookmarksEnabled, |
| 295 prefs::kEditBookmarksEnabled }, | 293 prefs::kEditBookmarksEnabled }, |
| 296 { Value::TYPE_BOOLEAN, kPolicyAllowFileSelectionDialogs, | 294 { Value::TYPE_BOOLEAN, kPolicyAllowFileSelectionDialogs, |
| 297 prefs::kAllowFileSelectionDialogs }, | 295 prefs::kAllowFileSelectionDialogs }, |
| 298 { Value::TYPE_BOOLEAN, kPolicyImportBookmarks, | 296 { Value::TYPE_BOOLEAN, kPolicyImportBookmarks, |
| 299 prefs::kImportBookmarks}, | 297 prefs::kImportBookmarks}, |
| 300 { Value::TYPE_BOOLEAN, kPolicyImportHistory, | 298 { Value::TYPE_BOOLEAN, kPolicyImportHistory, |
| 301 prefs::kImportHistory}, | 299 prefs::kImportHistory}, |
| 302 { Value::TYPE_BOOLEAN, kPolicyImportHomepage, | 300 { Value::TYPE_BOOLEAN, kPolicyImportHomepage, |
| 303 prefs::kImportHomepage}, | 301 prefs::kImportHomepage}, |
| (...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 388 // policy settings. | 386 // policy settings. |
| 389 Value* value = current->second->DeepCopy(); | 387 Value* value = current->second->DeepCopy(); |
| 390 if (ApplyProxyPolicy(current->first, value) || | 388 if (ApplyProxyPolicy(current->first, value) || |
| 391 ApplySyncPolicy(current->first, value) || | 389 ApplySyncPolicy(current->first, value) || |
| 392 ApplyAutofillPolicy(current->first, value) || | 390 ApplyAutofillPolicy(current->first, value) || |
| 393 ApplyDownloadDirPolicy(current->first, value) || | 391 ApplyDownloadDirPolicy(current->first, value) || |
| 394 ApplyDiskCacheDirPolicy(current->first, value) || | 392 ApplyDiskCacheDirPolicy(current->first, value) || |
| 395 ApplyFileSelectionDialogsPolicy(current->first, value) || | 393 ApplyFileSelectionDialogsPolicy(current->first, value) || |
| 396 ApplyDefaultSearchPolicy(current->first, value) || | 394 ApplyDefaultSearchPolicy(current->first, value) || |
| 397 ApplyIncognitoModePolicy(current->first, value) || | 395 ApplyIncognitoModePolicy(current->first, value) || |
| 398 ApplyBookmarksPolicy(current->first, value) || | |
| 399 ApplyPolicyFromMap(current->first, value, | 396 ApplyPolicyFromMap(current->first, value, |
| 400 kSimplePolicyMap, arraysize(kSimplePolicyMap))) { | 397 kSimplePolicyMap, arraysize(kSimplePolicyMap))) { |
| 401 continue; | 398 continue; |
| 402 } | 399 } |
| 403 delete value; | 400 delete value; |
| 404 | 401 |
| 405 // Other policy implementations should go into the conditional above. | 402 // Other policy implementations should go into the conditional above. |
| 406 NOTIMPLEMENTED(); | 403 NOTIMPLEMENTED(); |
| 407 } | 404 } |
| 408 } | 405 } |
| (...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 614 return true; | 611 return true; |
| 615 } | 612 } |
| 616 if (policy == kPolicyIncognitoEnabled) { | 613 if (policy == kPolicyIncognitoEnabled) { |
| 617 deprecated_incognito_enabled_.reset(value); | 614 deprecated_incognito_enabled_.reset(value); |
| 618 return true; | 615 return true; |
| 619 } | 616 } |
| 620 // The policy is not relevant to incognito. | 617 // The policy is not relevant to incognito. |
| 621 return false; | 618 return false; |
| 622 } | 619 } |
| 623 | 620 |
| 624 bool ConfigurationPolicyPrefKeeper::ApplyBookmarksPolicy( | |
| 625 ConfigurationPolicyType policy, | |
| 626 Value* value) { | |
| 627 if (policy != kPolicyBookmarkBarEnabled) | |
| 628 return false; | |
| 629 DCHECK_EQ(Value::TYPE_BOOLEAN, value->GetType()); | |
| 630 prefs_.SetValue(prefs::kEnableBookmarkBar, value); | |
| 631 // kShowBookmarkBar is not managed directly by a policy, but when | |
| 632 // kEnableBookmarkBar is managed, kShowBookmarkBar should be false so that | |
| 633 // the bookmarks bar either is completely disabled or only shows on the NTP. | |
| 634 // This also disables the checkbox for this preference in the prefs UI. | |
| 635 prefs_.SetValue(prefs::kShowBookmarkBar, Value::CreateBooleanValue(false)); | |
| 636 return true; | |
| 637 } | |
| 638 | |
| 639 void ConfigurationPolicyPrefKeeper::EnsureStringPrefExists( | 621 void ConfigurationPolicyPrefKeeper::EnsureStringPrefExists( |
| 640 const std::string& path) { | 622 const std::string& path) { |
| 641 std::string value; | 623 std::string value; |
| 642 if (!prefs_.GetString(path, &value)) | 624 if (!prefs_.GetString(path, &value)) |
| 643 prefs_.SetString(path, value); | 625 prefs_.SetString(path, value); |
| 644 } | 626 } |
| 645 | 627 |
| 646 namespace { | 628 namespace { |
| 647 | 629 |
| 648 // Implementation of SearchTermsData just for validation. | 630 // Implementation of SearchTermsData just for validation. |
| (...skipping 611 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1260 // Update the initialization flag. | 1242 // Update the initialization flag. |
| 1261 if (!initialization_complete_ && | 1243 if (!initialization_complete_ && |
| 1262 provider_->IsInitializationComplete()) { | 1244 provider_->IsInitializationComplete()) { |
| 1263 initialization_complete_ = true; | 1245 initialization_complete_ = true; |
| 1264 FOR_EACH_OBSERVER(PrefStore::Observer, observers_, | 1246 FOR_EACH_OBSERVER(PrefStore::Observer, observers_, |
| 1265 OnInitializationCompleted(true)); | 1247 OnInitializationCompleted(true)); |
| 1266 } | 1248 } |
| 1267 } | 1249 } |
| 1268 | 1250 |
| 1269 } // namespace policy | 1251 } // namespace policy |
| OLD | NEW |