| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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_handler.h" | 5 #include "chrome/browser/policy/configuration_policy_handler.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 | 8 |
| 9 #include "base/file_path.h" | 9 #include "base/file_path.h" |
| 10 #include "base/json/json_writer.h" | 10 #include "base/json/json_writer.h" |
| (...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 82 Value::TYPE_STRING }, | 82 Value::TYPE_STRING }, |
| 83 { key::kDefaultSearchProviderInstantURL, | 83 { key::kDefaultSearchProviderInstantURL, |
| 84 prefs::kDefaultSearchProviderInstantURL, | 84 prefs::kDefaultSearchProviderInstantURL, |
| 85 Value::TYPE_STRING }, | 85 Value::TYPE_STRING }, |
| 86 { key::kDefaultSearchProviderIconURL, | 86 { key::kDefaultSearchProviderIconURL, |
| 87 prefs::kDefaultSearchProviderIconURL, | 87 prefs::kDefaultSearchProviderIconURL, |
| 88 Value::TYPE_STRING }, | 88 Value::TYPE_STRING }, |
| 89 { key::kDefaultSearchProviderEncodings, | 89 { key::kDefaultSearchProviderEncodings, |
| 90 prefs::kDefaultSearchProviderEncodings, | 90 prefs::kDefaultSearchProviderEncodings, |
| 91 Value::TYPE_LIST }, | 91 Value::TYPE_LIST }, |
| 92 { key::kDefaultSearchProviderAlternateURLs, |
| 93 prefs::kDefaultSearchProviderAlternateURLs, |
| 94 Value::TYPE_LIST }, |
| 92 }; | 95 }; |
| 93 | 96 |
| 94 // List of entries determining which proxy policies can be specified, depending | 97 // List of entries determining which proxy policies can be specified, depending |
| 95 // on the ProxyMode. | 98 // on the ProxyMode. |
| 96 const ProxyModeValidationEntry kProxyModeValidationMap[] = { | 99 const ProxyModeValidationEntry kProxyModeValidationMap[] = { |
| 97 { ProxyPrefs::kDirectProxyModeName, | 100 { ProxyPrefs::kDirectProxyModeName, |
| 98 false, false, false, IDS_POLICY_PROXY_MODE_DISABLED_ERROR }, | 101 false, false, false, IDS_POLICY_PROXY_MODE_DISABLED_ERROR }, |
| 99 { ProxyPrefs::kAutoDetectProxyModeName, | 102 { ProxyPrefs::kAutoDetectProxyModeName, |
| 100 false, false, false, IDS_POLICY_PROXY_MODE_AUTO_DETECT_ERROR }, | 103 false, false, false, IDS_POLICY_PROXY_MODE_AUTO_DETECT_ERROR }, |
| 101 { ProxyPrefs::kPacScriptProxyModeName, | 104 { ProxyPrefs::kPacScriptProxyModeName, |
| (...skipping 542 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 644 prefs->SetBoolean(prefs::kDefaultSearchProviderEnabled, false); | 647 prefs->SetBoolean(prefs::kDefaultSearchProviderEnabled, false); |
| 645 | 648 |
| 646 // If default search is disabled, the other fields are ignored. | 649 // If default search is disabled, the other fields are ignored. |
| 647 prefs->SetString(prefs::kDefaultSearchProviderName, std::string()); | 650 prefs->SetString(prefs::kDefaultSearchProviderName, std::string()); |
| 648 prefs->SetString(prefs::kDefaultSearchProviderSearchURL, std::string()); | 651 prefs->SetString(prefs::kDefaultSearchProviderSearchURL, std::string()); |
| 649 prefs->SetString(prefs::kDefaultSearchProviderSuggestURL, std::string()); | 652 prefs->SetString(prefs::kDefaultSearchProviderSuggestURL, std::string()); |
| 650 prefs->SetString(prefs::kDefaultSearchProviderIconURL, std::string()); | 653 prefs->SetString(prefs::kDefaultSearchProviderIconURL, std::string()); |
| 651 prefs->SetString(prefs::kDefaultSearchProviderEncodings, std::string()); | 654 prefs->SetString(prefs::kDefaultSearchProviderEncodings, std::string()); |
| 652 prefs->SetString(prefs::kDefaultSearchProviderKeyword, std::string()); | 655 prefs->SetString(prefs::kDefaultSearchProviderKeyword, std::string()); |
| 653 prefs->SetString(prefs::kDefaultSearchProviderInstantURL, std::string()); | 656 prefs->SetString(prefs::kDefaultSearchProviderInstantURL, std::string()); |
| 657 prefs->SetValue(prefs::kDefaultSearchProviderAlternateURLs, |
| 658 new ListValue()); |
| 654 } else { | 659 } else { |
| 655 // The search URL is required. The other entries are optional. Just make | 660 // The search URL is required. The other entries are optional. Just make |
| 656 // sure that they are all specified via policy, so that the regular prefs | 661 // sure that they are all specified via policy, so that the regular prefs |
| 657 // aren't used. | 662 // aren't used. |
| 658 const Value* dummy; | 663 const Value* dummy; |
| 659 std::string url; | 664 std::string url; |
| 660 if (DefaultSearchURLIsValid(policies, &dummy, &url)) { | 665 if (DefaultSearchURLIsValid(policies, &dummy, &url)) { |
| 661 for (std::vector<ConfigurationPolicyHandler*>::const_iterator handler = | 666 for (std::vector<ConfigurationPolicyHandler*>::const_iterator handler = |
| 662 handlers_.begin(); handler != handlers_.end(); ++handler) | 667 handlers_.begin(); handler != handlers_.end(); ++handler) |
| 663 (*handler)->ApplyPolicySettings(policies, prefs); | 668 (*handler)->ApplyPolicySettings(policies, prefs); |
| 664 | 669 |
| 665 EnsureStringPrefExists(prefs, prefs::kDefaultSearchProviderSuggestURL); | 670 EnsureStringPrefExists(prefs, prefs::kDefaultSearchProviderSuggestURL); |
| 666 EnsureStringPrefExists(prefs, prefs::kDefaultSearchProviderIconURL); | 671 EnsureStringPrefExists(prefs, prefs::kDefaultSearchProviderIconURL); |
| 667 EnsureStringPrefExists(prefs, prefs::kDefaultSearchProviderEncodings); | 672 EnsureStringPrefExists(prefs, prefs::kDefaultSearchProviderEncodings); |
| 668 EnsureStringPrefExists(prefs, prefs::kDefaultSearchProviderKeyword); | 673 EnsureStringPrefExists(prefs, prefs::kDefaultSearchProviderKeyword); |
| 669 EnsureStringPrefExists(prefs, prefs::kDefaultSearchProviderInstantURL); | 674 EnsureStringPrefExists(prefs, prefs::kDefaultSearchProviderInstantURL); |
| 675 EnsureListPrefExists(prefs, prefs::kDefaultSearchProviderAlternateURLs); |
| 670 | 676 |
| 671 // For the name and keyword, default to the host if not specified. If | 677 // For the name and keyword, default to the host if not specified. If |
| 672 // there is no host (file: URLs? Not sure), use "_" to guarantee that the | 678 // there is no host (file: URLs? Not sure), use "_" to guarantee that the |
| 673 // keyword is non-empty. | 679 // keyword is non-empty. |
| 674 std::string name, keyword; | 680 std::string name, keyword; |
| 675 std::string host(GURL(url).host()); | 681 std::string host(GURL(url).host()); |
| 676 if (host.empty()) | 682 if (host.empty()) |
| 677 host = "_"; | 683 host = "_"; |
| 678 if (!prefs->GetString(prefs::kDefaultSearchProviderName, &name) || | 684 if (!prefs->GetString(prefs::kDefaultSearchProviderName, &name) || |
| 679 name.empty()) | 685 name.empty()) |
| (...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 746 } | 752 } |
| 747 | 753 |
| 748 void DefaultSearchPolicyHandler::EnsureStringPrefExists( | 754 void DefaultSearchPolicyHandler::EnsureStringPrefExists( |
| 749 PrefValueMap* prefs, | 755 PrefValueMap* prefs, |
| 750 const std::string& path) { | 756 const std::string& path) { |
| 751 std::string value; | 757 std::string value; |
| 752 if (!prefs->GetString(path, &value)) | 758 if (!prefs->GetString(path, &value)) |
| 753 prefs->SetString(path, value); | 759 prefs->SetString(path, value); |
| 754 } | 760 } |
| 755 | 761 |
| 762 void DefaultSearchPolicyHandler::EnsureListPrefExists( |
| 763 PrefValueMap* prefs, |
| 764 const std::string& path) { |
| 765 base::Value* value; |
| 766 base::ListValue* list_value; |
| 767 if (!prefs->GetValue(path, &value) || !value->GetAsList(&list_value)) |
| 768 prefs->SetValue(path, new ListValue()); |
| 769 } |
| 770 |
| 756 | 771 |
| 757 // ProxyPolicyHandler implementation ------------------------------------------- | 772 // ProxyPolicyHandler implementation ------------------------------------------- |
| 758 | 773 |
| 759 // The proxy policies have the peculiarity that they are loaded from individual | 774 // The proxy policies have the peculiarity that they are loaded from individual |
| 760 // policies, but the providers then expose them through a unified | 775 // policies, but the providers then expose them through a unified |
| 761 // DictionaryValue. Once Dictionary policies are fully supported, the individual | 776 // DictionaryValue. Once Dictionary policies are fully supported, the individual |
| 762 // proxy policies will be deprecated. http://crbug.com/108996 | 777 // proxy policies will be deprecated. http://crbug.com/108996 |
| 763 | 778 |
| 764 ProxyPolicyHandler::ProxyPolicyHandler() { | 779 ProxyPolicyHandler::ProxyPolicyHandler() { |
| 765 } | 780 } |
| (...skipping 582 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1348 | 1363 |
| 1349 void DisabledPluginsByVersionPolicyHandler::ApplyPolicySettings( | 1364 void DisabledPluginsByVersionPolicyHandler::ApplyPolicySettings( |
| 1350 const PolicyMap& policies, | 1365 const PolicyMap& policies, |
| 1351 PrefValueMap* prefs) { | 1366 PrefValueMap* prefs) { |
| 1352 const Value* value = policies.GetValue(policy_name()); | 1367 const Value* value = policies.GetValue(policy_name()); |
| 1353 if (value) | 1368 if (value) |
| 1354 prefs->SetValue(prefs::kPluginsDisabledPluginsByVersion, value->DeepCopy()); | 1369 prefs->SetValue(prefs::kPluginsDisabledPluginsByVersion, value->DeepCopy()); |
| 1355 } | 1370 } |
| 1356 | 1371 |
| 1357 } // namespace policy | 1372 } // namespace policy |
| OLD | NEW |