Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(328)

Unified Diff: components/search_engines/default_search_policy_handler.cc

Issue 2598033004: Remove old default search preferences. (Closed)
Patch Set: Fixed after review, round 2 Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: components/search_engines/default_search_policy_handler.cc
diff --git a/components/search_engines/default_search_policy_handler.cc b/components/search_engines/default_search_policy_handler.cc
index 876827d60c055e700f9818a5a3fce2c6076de8e2..35f85cc0bbd79a76ea499a9356be4bdc2363f77c 100644
--- a/components/search_engines/default_search_policy_handler.cc
+++ b/components/search_engines/default_search_policy_handler.cc
@@ -11,7 +11,6 @@
#include "base/macros.h"
#include "base/memory/ptr_util.h"
#include "base/strings/string_number_conversions.h"
-#include "base/strings/string_util.h"
#include "components/policy/core/browser/policy_error_map.h"
#include "components/policy/core/common/policy_map.h"
#include "components/policy/policy_constants.h"
@@ -59,60 +58,9 @@ void SetStringInPref(const PolicyMap& policies,
// List of policy types to preference names, for policies affecting the default
// search provider.
-const PolicyToPreferenceMapEntry kDefaultSearchPolicyMap[] = {
- { key::kDefaultSearchProviderEnabled,
- prefs::kDefaultSearchProviderEnabled,
- base::Value::Type::BOOLEAN },
- { key::kDefaultSearchProviderName,
- prefs::kDefaultSearchProviderName,
- base::Value::Type::STRING },
- { key::kDefaultSearchProviderKeyword,
- prefs::kDefaultSearchProviderKeyword,
- base::Value::Type::STRING },
- { key::kDefaultSearchProviderSearchURL,
- prefs::kDefaultSearchProviderSearchURL,
- base::Value::Type::STRING },
- { key::kDefaultSearchProviderSuggestURL,
- prefs::kDefaultSearchProviderSuggestURL,
- base::Value::Type::STRING },
- { key::kDefaultSearchProviderInstantURL,
- prefs::kDefaultSearchProviderInstantURL,
- base::Value::Type::STRING },
- { key::kDefaultSearchProviderIconURL,
- prefs::kDefaultSearchProviderIconURL,
- base::Value::Type::STRING },
- { key::kDefaultSearchProviderEncodings,
- prefs::kDefaultSearchProviderEncodings,
- base::Value::Type::LIST },
- { key::kDefaultSearchProviderAlternateURLs,
- prefs::kDefaultSearchProviderAlternateURLs,
- base::Value::Type::LIST },
- { key::kDefaultSearchProviderSearchTermsReplacementKey,
- prefs::kDefaultSearchProviderSearchTermsReplacementKey,
- base::Value::Type::STRING },
- { key::kDefaultSearchProviderImageURL,
- prefs::kDefaultSearchProviderImageURL,
- base::Value::Type::STRING },
- { key::kDefaultSearchProviderNewTabURL,
- prefs::kDefaultSearchProviderNewTabURL,
- base::Value::Type::STRING },
- { key::kDefaultSearchProviderSearchURLPostParams,
- prefs::kDefaultSearchProviderSearchURLPostParams,
- base::Value::Type::STRING },
- { key::kDefaultSearchProviderSuggestURLPostParams,
- prefs::kDefaultSearchProviderSuggestURLPostParams,
- base::Value::Type::STRING },
- { key::kDefaultSearchProviderInstantURLPostParams,
- prefs::kDefaultSearchProviderInstantURLPostParams,
- base::Value::Type::STRING },
- { key::kDefaultSearchProviderImageURLPostParams,
- prefs::kDefaultSearchProviderImageURLPostParams,
- base::Value::Type::STRING },
-};
-
-// List of policy types to preference names, for policies affecting the default
-// search provider.
const PolicyToPreferenceMapEntry kDefaultSearchPolicyDataMap[] = {
+ {key::kDefaultSearchProviderEnabled, prefs::kDefaultSearchProviderEnabled,
+ base::Value::Type::BOOLEAN},
{key::kDefaultSearchProviderName, DefaultSearchManager::kShortName,
base::Value::Type::STRING},
{key::kDefaultSearchProviderKeyword, DefaultSearchManager::kKeyword,
@@ -147,54 +95,9 @@ const PolicyToPreferenceMapEntry kDefaultSearchPolicyDataMap[] = {
DefaultSearchManager::kImageURLPostParams, base::Value::Type::STRING},
};
-// DefaultSearchEncodingsPolicyHandler implementation --------------------------
-
-DefaultSearchEncodingsPolicyHandler::DefaultSearchEncodingsPolicyHandler()
- : TypeCheckingPolicyHandler(key::kDefaultSearchProviderEncodings,
- base::Value::Type::LIST) {}
-
-DefaultSearchEncodingsPolicyHandler::~DefaultSearchEncodingsPolicyHandler() {
-}
-
-void DefaultSearchEncodingsPolicyHandler::ApplyPolicySettings(
- const PolicyMap& policies, PrefValueMap* prefs) {
- // The DefaultSearchProviderEncodings policy has type list, but the related
- // preference has type string. Convert one into the other here, using
- // ';' as a separator.
- const base::Value* value = policies.GetValue(policy_name());
- const base::ListValue* list;
- if (!value || !value->GetAsList(&list))
- return;
-
- base::ListValue::const_iterator iter(list->begin());
- base::ListValue::const_iterator end(list->end());
- std::vector<std::string> string_parts;
- for (; iter != end; ++iter) {
- std::string s;
- if ((*iter)->GetAsString(&s)) {
- string_parts.push_back(s);
- }
- }
- std::string encodings = base::JoinString(string_parts, ";");
- prefs->SetString(prefs::kDefaultSearchProviderEncodings, encodings);
-}
-
-
// DefaultSearchPolicyHandler implementation -----------------------------------
-DefaultSearchPolicyHandler::DefaultSearchPolicyHandler() {
- for (size_t i = 0; i < arraysize(kDefaultSearchPolicyMap); ++i) {
- const char* policy_name = kDefaultSearchPolicyMap[i].policy_name;
- if (policy_name == key::kDefaultSearchProviderEncodings) {
- handlers_.push_back(
- base::MakeUnique<DefaultSearchEncodingsPolicyHandler>());
- } else {
- handlers_.push_back(base::MakeUnique<SimplePolicyHandler>(
- policy_name, kDefaultSearchPolicyMap[i].preference_path,
- kDefaultSearchPolicyMap[i].value_type));
- }
- }
-}
+DefaultSearchPolicyHandler::DefaultSearchPolicyHandler() {}
DefaultSearchPolicyHandler::~DefaultSearchPolicyHandler() {}
@@ -207,8 +110,8 @@ bool DefaultSearchPolicyHandler::CheckPolicySettings(const PolicyMap& policies,
// Add an error for all specified default search policies except
// DefaultSearchProviderEnabled.
- for (const auto& handler : handlers_) {
- const char* policy_name = handler->policy_name();
+ for (const auto& policy_map_entry : kDefaultSearchPolicyDataMap) {
+ const char* policy_name = policy_map_entry.policy_name;
if (policy_name != key::kDefaultSearchProviderEnabled &&
HasDefaultSearchPolicy(policies, policy_name)) {
errors->AddError(policy_name, IDS_POLICY_DEFAULT_SEARCH_DISABLED);
@@ -247,6 +150,10 @@ void DefaultSearchPolicyHandler::ApplyPolicySettings(const PolicyMap& policies,
std::unique_ptr<base::DictionaryValue> dict(new base::DictionaryValue);
for (size_t i = 0; i < arraysize(kDefaultSearchPolicyDataMap); ++i) {
const char* policy_name = kDefaultSearchPolicyDataMap[i].policy_name;
+ // kDefaultSearchProviderEnabled has already been handled.
+ if (policy_name == key::kDefaultSearchProviderEnabled)
+ continue;
+
switch (kDefaultSearchPolicyDataMap[i].value_type) {
case base::Value::Type::STRING:
SetStringInPref(policies,
@@ -303,10 +210,15 @@ bool DefaultSearchPolicyHandler::CheckIndividualPolicies(
const PolicyMap& policies,
PolicyErrorMap* errors) {
bool all_ok = true;
- for (const auto& handler : handlers_) {
- // It's important to call CheckPolicySettings() on all handlers and not just
- // exit on the first error, so we report all policy errors.
- all_ok &= handler->CheckPolicySettings(policies, errors);
+ for (const auto& policy_map_entry : kDefaultSearchPolicyDataMap) {
+ // It's important to check policy type for all policies and not just exit on
+ // the first error, so we report all policy errors.
+ const base::Value* value = policies.GetValue(policy_map_entry.policy_name);
+ if (value && !value->IsType(policy_map_entry.value_type)) {
+ errors->AddError(policy_map_entry.policy_name, IDS_POLICY_TYPE_ERROR,
+ base::Value::GetTypeName(policy_map_entry.value_type));
+ all_ok = false;
+ }
}
return all_ok;
}
@@ -319,8 +231,8 @@ bool DefaultSearchPolicyHandler::HasDefaultSearchPolicy(
bool DefaultSearchPolicyHandler::AnyDefaultSearchPoliciesSpecified(
const PolicyMap& policies) {
- for (const auto& handler : handlers_) {
- if (policies.Get(handler->policy_name()))
+ for (const auto& policy_map_entry : kDefaultSearchPolicyDataMap) {
+ if (policies.Get(policy_map_entry.policy_name))
return true;
}
return false;

Powered by Google App Engine
This is Rietveld 408576698