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

Unified Diff: components/search_engines/template_url.cc

Issue 2659353002: Fix TemplateUrl::MatchesData comparison of search_terms_replacement_key (reland) (Closed)
Patch Set: Fixed deps Created 3 years, 10 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/template_url.cc
diff --git a/components/search_engines/template_url.cc b/components/search_engines/template_url.cc
index 0a457d1632c1795317c6e6722f186e6e48ce5dbc..a65e305599d8622726ace7d5fb47b16b34d8afa1 100644
--- a/components/search_engines/template_url.cc
+++ b/components/search_engines/template_url.cc
@@ -160,8 +160,18 @@ bool IsTemplateParameterString(const std::string& param) {
(*(param.rbegin()) == kEndParameter);
}
-} // namespace
+// Special case for search_terms_replacement_key comparison, because of
+// its special initialization in TemplateUrl constructor.
+bool SearchTermsReplacementKeysMatch(const std::string& key1,
+ const std::string& key2) {
+ const auto IsInstantExtended = [](const std::string& key) {
+ return (key == google_util::kInstantExtendedAPIParam) ||
+ (key == google_util::kGoogleInstantExtendedEnabledKeyFull);
+ };
+ return (key1 == key2) || (IsInstantExtended(key1) && IsInstantExtended(key2));
+}
+} // namespace
// TemplateURLRef::SearchTermsArgs --------------------------------------------
@@ -605,7 +615,7 @@ bool TemplateURLRef::ParseParameter(size_t start,
} else if (parameter == "google:instantExtendedEnabledParameter") {
replacements->push_back(Replacement(GOOGLE_INSTANT_EXTENDED_ENABLED,
start));
- } else if (parameter == "google:instantExtendedEnabledKey") {
+ } else if (parameter == google_util::kGoogleInstantExtendedEnabledKey) {
url->insert(start, google_util::kInstantExtendedAPIParam);
} else if (parameter == "google:iOSSearchLanguage") {
replacements->push_back(Replacement(GOOGLE_IOS_SEARCH_LANGUAGE, start));
@@ -1159,9 +1169,8 @@ TemplateURL::TemplateURL(const TemplateURLData& data, Type type)
SetPrepopulateId(data_.prepopulate_id);
if (data_.search_terms_replacement_key ==
- "{google:instantExtendedEnabledKey}") {
+ google_util::kGoogleInstantExtendedEnabledKeyFull)
data_.search_terms_replacement_key = google_util::kInstantExtendedAPIParam;
- }
}
TemplateURL::~TemplateURL() {
@@ -1206,23 +1215,23 @@ bool TemplateURL::MatchesData(const TemplateURL* t_url,
return !t_url && !data;
return (t_url->short_name() == data->short_name()) &&
- t_url->HasSameKeywordAs(*data, search_terms_data) &&
- (t_url->url() == data->url()) &&
- (t_url->suggestions_url() == data->suggestions_url) &&
- (t_url->instant_url() == data->instant_url) &&
- (t_url->image_url() == data->image_url) &&
- (t_url->new_tab_url() == data->new_tab_url) &&
- (t_url->search_url_post_params() == data->search_url_post_params) &&
- (t_url->suggestions_url_post_params() ==
+ t_url->HasSameKeywordAs(*data, search_terms_data) &&
+ (t_url->url() == data->url()) &&
+ (t_url->suggestions_url() == data->suggestions_url) &&
+ (t_url->instant_url() == data->instant_url) &&
+ (t_url->image_url() == data->image_url) &&
+ (t_url->new_tab_url() == data->new_tab_url) &&
+ (t_url->search_url_post_params() == data->search_url_post_params) &&
+ (t_url->suggestions_url_post_params() ==
data->suggestions_url_post_params) &&
- (t_url->instant_url_post_params() == data->instant_url_post_params) &&
- (t_url->image_url_post_params() == data->image_url_post_params) &&
- (t_url->favicon_url() == data->favicon_url) &&
- (t_url->safe_for_autoreplace() == data->safe_for_autoreplace) &&
- (t_url->input_encodings() == data->input_encodings) &&
- (t_url->alternate_urls() == data->alternate_urls) &&
- (t_url->search_terms_replacement_key() ==
- data->search_terms_replacement_key);
+ (t_url->instant_url_post_params() == data->instant_url_post_params) &&
+ (t_url->image_url_post_params() == data->image_url_post_params) &&
+ (t_url->favicon_url() == data->favicon_url) &&
+ (t_url->safe_for_autoreplace() == data->safe_for_autoreplace) &&
+ (t_url->input_encodings() == data->input_encodings) &&
+ (t_url->alternate_urls() == data->alternate_urls) &&
+ SearchTermsReplacementKeysMatch(t_url->search_terms_replacement_key(),
+ data->search_terms_replacement_key);
}
base::string16 TemplateURL::AdjustedShortNameForLocaleDirection() const {
« no previous file with comments | « components/search_engines/default_search_manager_unittest.cc ('k') | components/search_engines/template_url_service.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698