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

Unified Diff: components/search_engines/template_url_service.cc

Issue 2347973002: Enable Chrome to tweak search engines for some locales (Closed)
Patch Set: final nits Created 4 years, 3 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_service.cc
diff --git a/components/search_engines/template_url_service.cc b/components/search_engines/template_url_service.cc
index 18f5d5585c522b8d9e45da6c5214531c89da3dc4..a079513ef4b8427dd5725ed2e385048163832a6c 100644
--- a/components/search_engines/template_url_service.cc
+++ b/components/search_engines/template_url_service.cc
@@ -189,6 +189,12 @@ bool Contains(TemplateURLService::OwnedTemplateURLVector* template_urls,
return FindTemplateURL(template_urls, turl) != template_urls->end();
}
+bool IsCreatedByExtension(TemplateURL* template_url) {
+ return template_url->type() ==
+ TemplateURL::NORMAL_CONTROLLED_BY_EXTENSION ||
+ template_url->type() == TemplateURL::OMNIBOX_API_EXTENSION;
+}
+
} // namespace
// TemplateURLService::LessWithPrefix -----------------------------------------
@@ -471,10 +477,11 @@ TemplateURL* TemplateURLService::AddExtensionControlledTURL(
DCHECK(template_url);
DCHECK_EQ(kInvalidTemplateURLID, template_url->id());
DCHECK(info);
- DCHECK_NE(TemplateURL::NORMAL, info->type);
+ DCHECK_NE(TemplateURL::NORMAL, template_url->type());
DCHECK_EQ(info->wants_to_be_default_engine,
template_url->show_in_default_list());
- DCHECK(!FindTemplateURLForExtension(info->extension_id, info->type));
+ DCHECK(
+ !FindTemplateURLForExtension(info->extension_id, template_url->type()));
template_url->extension_info_.swap(info);
KeywordWebDataService::BatchModeScoper scoper(web_data_service_.get());
@@ -561,10 +568,10 @@ void TemplateURLService::RegisterOmniboxKeyword(
data.SetKeyword(base::UTF8ToUTF16(keyword));
data.SetURL(template_url_string);
std::unique_ptr<TemplateURL::AssociatedExtensionInfo> info(
- new TemplateURL::AssociatedExtensionInfo(
- TemplateURL::OMNIBOX_API_EXTENSION, extension_id));
- AddExtensionControlledTURL(base::MakeUnique<TemplateURL>(data),
- std::move(info));
+ new TemplateURL::AssociatedExtensionInfo(extension_id));
+ AddExtensionControlledTURL(
+ base::MakeUnique<TemplateURL>(data, TemplateURL::OMNIBOX_API_EXTENSION),
+ std::move(info));
}
TemplateURLService::TemplateURLVector TemplateURLService::GetTemplateURLs() {
@@ -577,7 +584,7 @@ TemplateURLService::TemplateURLVector TemplateURLService::GetTemplateURLs() {
void TemplateURLService::IncrementUsageCount(TemplateURL* url) {
DCHECK(url);
// Extension-controlled search engines are not persisted.
- if (url->GetType() != TemplateURL::NORMAL)
+ if (url->type() != TemplateURL::NORMAL)
return;
if (!Contains(&template_urls_, url))
return;
@@ -602,7 +609,7 @@ bool TemplateURLService::CanMakeDefault(const TemplateURL* url) {
DefaultSearchManager::FROM_FALLBACK)) &&
(url != GetDefaultSearchProvider()) &&
url->url_ref().SupportsReplacement(search_terms_data()) &&
- (url->GetType() == TemplateURL::NORMAL);
+ (url->type() == TemplateURL::NORMAL);
}
void TemplateURLService::SetUserSelectedDefaultSearchProvider(
@@ -610,7 +617,7 @@ void TemplateURLService::SetUserSelectedDefaultSearchProvider(
// Omnibox keywords cannot be made default. Extension-controlled search
// engines can be made default only by the extension itself because they
// aren't persisted.
- DCHECK(!url || (url->GetType() == TemplateURL::NORMAL));
+ DCHECK(!url || !IsCreatedByExtension(url));
if (load_failed_) {
// Skip the DefaultSearchManager, which will persist to user preferences.
if ((default_search_provider_source_ == DefaultSearchManager::FROM_USER) ||
@@ -867,7 +874,7 @@ base::string16 TemplateURLService::GetKeywordShortName(
// to track changes to the model, this should become a DCHECK.
if (template_url) {
*is_omnibox_api_extension_keyword =
- template_url->GetType() == TemplateURL::OMNIBOX_API_EXTENSION;
+ template_url->type() == TemplateURL::OMNIBOX_API_EXTENSION;
return template_url->AdjustedShortNameForLocaleDirection();
}
*is_omnibox_api_extension_keyword = false;
@@ -904,7 +911,7 @@ syncer::SyncDataList TemplateURLService::GetAllSyncData(
if (turl->created_by_policy())
continue;
// We don't sync extension-controlled search engines.
- if (turl->GetType() != TemplateURL::NORMAL)
+ if (turl->type() != TemplateURL::NORMAL)
continue;
current_data.push_back(CreateSyncDataFromTemplateURL(*turl));
}
@@ -1210,7 +1217,7 @@ void TemplateURLService::ProcessTemplateURLChange(
return;
// Avoid syncing extension-controlled search engines.
- if (turl->GetType() == TemplateURL::NORMAL_CONTROLLED_BY_EXTENSION)
+ if (turl->type() == TemplateURL::NORMAL_CONTROLLED_BY_EXTENSION)
return;
syncer::SyncChangeList changes;
@@ -1351,10 +1358,10 @@ TemplateURLService::CreateTemplateURLFromTemplateURLAndSyncData(
// delete these from sync.
DCHECK(client);
client->RestoreExtensionInfoIfNecessary(turl.get());
- if (turl->GetType() == TemplateURL::OMNIBOX_API_EXTENSION)
+ if (turl->type() == TemplateURL::OMNIBOX_API_EXTENSION)
return nullptr;
- DCHECK_EQ(TemplateURL::NORMAL, turl->GetType());
+ DCHECK_EQ(TemplateURL::NORMAL, turl->type());
if (reset_keyword || deduped) {
if (reset_keyword)
turl->ResetKeywordIfNecessary(search_terms_data, true);
@@ -1465,8 +1472,8 @@ void TemplateURLService::RemoveFromMaps(TemplateURL* template_url) {
// non-Omnibox API TemplateURL with a given keyword.
if ((turl.get() != template_url) && (turl->keyword() == keyword) &&
(!best_fallback ||
- (best_fallback->GetType() != TemplateURL::OMNIBOX_API_EXTENSION) ||
- ((turl->GetType() == TemplateURL::OMNIBOX_API_EXTENSION) &&
+ (best_fallback->type() != TemplateURL::OMNIBOX_API_EXTENSION) ||
+ ((turl->type() == TemplateURL::OMNIBOX_API_EXTENSION) &&
(turl->id() > best_fallback->id()))))
best_fallback = turl.get();
}
@@ -1479,7 +1486,7 @@ void TemplateURLService::RemoveFromMaps(TemplateURL* template_url) {
}
}
- if (template_url->GetType() == TemplateURL::OMNIBOX_API_EXTENSION)
+ if (template_url->type() == TemplateURL::OMNIBOX_API_EXTENSION)
return;
if (!template_url->sync_guid().empty())
@@ -1492,7 +1499,7 @@ void TemplateURLService::RemoveFromMaps(TemplateURL* template_url) {
void TemplateURLService::AddToMaps(TemplateURL* template_url) {
bool template_url_is_omnibox_api =
- template_url->GetType() == TemplateURL::OMNIBOX_API_EXTENSION;
+ template_url->type() == TemplateURL::OMNIBOX_API_EXTENSION;
const base::string16& keyword = template_url->keyword();
KeywordToTURLAndMeaningfulLength::const_iterator i =
keyword_to_turl_and_length_.find(keyword);
@@ -1506,7 +1513,7 @@ void TemplateURLService::AddToMaps(TemplateURL* template_url) {
// Manually-modified keywords > extension keywords > replaceable keywords
// When there are multiple extensions, the last-added wins.
bool existing_url_is_omnibox_api =
- existing_url->GetType() == TemplateURL::OMNIBOX_API_EXTENSION;
+ existing_url->type() == TemplateURL::OMNIBOX_API_EXTENSION;
DCHECK(existing_url_is_omnibox_api || template_url_is_omnibox_api);
if (existing_url_is_omnibox_api ?
!CanReplace(template_url) : CanReplace(existing_url)) {
@@ -1640,12 +1647,12 @@ bool TemplateURLService::CanReplace(const TemplateURL* t_url) {
TemplateURL* TemplateURLService::FindNonExtensionTemplateURLForKeyword(
const base::string16& keyword) {
TemplateURL* keyword_turl = GetTemplateURLForKeyword(keyword);
- if (!keyword_turl || (keyword_turl->GetType() == TemplateURL::NORMAL))
+ if (!keyword_turl || (keyword_turl->type() == TemplateURL::NORMAL))
return keyword_turl;
// The extension keyword in the model may be hiding a replaceable
// non-extension keyword. Look for it.
for (const auto& turl : template_urls_) {
- if ((turl->GetType() == TemplateURL::NORMAL) &&
+ if ((turl->type() == TemplateURL::NORMAL) &&
(turl->keyword() == keyword))
return turl.get();
}
@@ -1658,7 +1665,7 @@ bool TemplateURLService::UpdateNoNotify(TemplateURL* existing_turl,
if (!Contains(&template_urls_, existing_turl))
return false;
- DCHECK_NE(TemplateURL::OMNIBOX_API_EXTENSION, existing_turl->GetType());
+ DCHECK_NE(TemplateURL::OMNIBOX_API_EXTENSION, existing_turl->type());
base::string16 old_keyword(existing_turl->keyword());
keyword_to_turl_and_length_.erase(old_keyword);
@@ -1694,7 +1701,7 @@ bool TemplateURLService::UpdateNoNotify(TemplateURL* existing_turl,
// case we delete the existing keyword if it's replaceable, or else undo
// the change in keyword for |existing_turl|.
TemplateURL* existing_keyword_turl = i->second.first;
- if (existing_keyword_turl->GetType() != TemplateURL::NORMAL) {
+ if (existing_keyword_turl->type() != TemplateURL::NORMAL) {
if (!CanReplace(existing_turl)) {
AddToMap(existing_turl);
AddToDomainMap(existing_turl);
@@ -2014,15 +2021,15 @@ TemplateURL* TemplateURLService::AddNoNotify(
// that any "pre-existing" entries we find are actually coming from
// |template_urls_|, lest we detect a "conflict" between the
// |initial_default_search_provider_| and the web data version of itself.
- if (template_url->GetType() != TemplateURL::OMNIBOX_API_EXTENSION &&
+ if (template_url->type() != TemplateURL::OMNIBOX_API_EXTENSION &&
existing_keyword_turl &&
- existing_keyword_turl->GetType() != TemplateURL::OMNIBOX_API_EXTENSION &&
+ existing_keyword_turl->type() != TemplateURL::OMNIBOX_API_EXTENSION &&
Contains(&template_urls_, existing_keyword_turl)) {
DCHECK_NE(existing_keyword_turl, template_url.get());
// Only replace one of the TemplateURLs if they are either both extensions,
// or both not extensions.
- bool are_same_type = existing_keyword_turl->GetType() ==
- template_url->GetType();
+ bool are_same_type = IsCreatedByExtension(existing_keyword_turl) ==
+ IsCreatedByExtension(template_url.get());
if (CanReplace(existing_keyword_turl) && are_same_type) {
RemoveNoNotify(existing_keyword_turl);
} else if (CanReplace(template_url.get()) && are_same_type) {
@@ -2039,7 +2046,7 @@ TemplateURL* TemplateURLService::AddNoNotify(
template_urls_.push_back(std::move(template_url));
AddToMaps(template_url_ptr);
- if (newly_adding && (template_url_ptr->GetType() == TemplateURL::NORMAL)) {
+ if (newly_adding && (template_url_ptr->type() == TemplateURL::NORMAL)) {
if (web_data_service_.get())
web_data_service_->AddKeyword(template_url_ptr->data());
@@ -2065,7 +2072,7 @@ void TemplateURLService::RemoveNoNotify(TemplateURL* template_url) {
std::unique_ptr<TemplateURL> scoped_turl = std::move(*i);
template_urls_.erase(i);
- if (template_url->GetType() == TemplateURL::NORMAL) {
+ if (template_url->type() == TemplateURL::NORMAL) {
if (web_data_service_.get())
web_data_service_->RemoveKeyword(template_url->id());
@@ -2185,7 +2192,7 @@ base::string16 TemplateURLService::UniquifyKeyword(const TemplateURL& turl,
// for extensions, as their keywords are not associated with their URLs).
GURL gurl(turl.url());
if (gurl.is_valid() &&
- (turl.GetType() != TemplateURL::OMNIBOX_API_EXTENSION)) {
+ (turl.type() != TemplateURL::OMNIBOX_API_EXTENSION)) {
base::string16 keyword_candidate = TemplateURL::GenerateKeyword(gurl);
if (!GetTemplateURLForKeyword(keyword_candidate))
return keyword_candidate;
@@ -2221,7 +2228,7 @@ void TemplateURLService::ResolveSyncKeywordConflict(
DCHECK(applied_sync_turl);
DCHECK(change_list);
DCHECK_EQ(applied_sync_turl->keyword(), unapplied_sync_turl->keyword());
- DCHECK_EQ(TemplateURL::NORMAL, applied_sync_turl->GetType());
+ DCHECK_EQ(TemplateURL::NORMAL, applied_sync_turl->type());
// Both |unapplied_sync_turl| and |applied_sync_turl| are known to Sync, so
// don't delete either of them. Instead, determine which is "better" and
@@ -2366,7 +2373,7 @@ void TemplateURLService::PatchMissingSyncGUIDs(
for (auto& template_url : *template_urls) {
DCHECK(template_url);
if (template_url->sync_guid().empty() &&
- (template_url->GetType() == TemplateURL::NORMAL)) {
+ (template_url->type() == TemplateURL::NORMAL)) {
template_url->data_.sync_guid = base::GenerateGUID();
if (web_data_service_.get())
web_data_service_->UpdateKeyword(template_url->data());
@@ -2433,7 +2440,7 @@ TemplateURL* TemplateURLService::FindTemplateURLForExtension(
TemplateURL::Type type) {
DCHECK_NE(TemplateURL::NORMAL, type);
for (const auto& turl : template_urls_) {
- if (turl->GetType() == type && turl->GetExtensionId() == extension_id)
+ if (turl->type() == type && turl->GetExtensionId() == extension_id)
return turl.get();
}
return nullptr;
@@ -2444,7 +2451,7 @@ TemplateURL* TemplateURLService::FindMatchingExtensionTemplateURL(
TemplateURL::Type type) {
DCHECK_NE(TemplateURL::NORMAL, type);
for (const auto& turl : template_urls_) {
- if (turl->GetType() == type &&
+ if (turl->type() == type &&
TemplateURL::MatchesData(turl.get(), &data, search_terms_data()))
return turl.get();
}
@@ -2454,7 +2461,7 @@ TemplateURL* TemplateURLService::FindMatchingExtensionTemplateURL(
void TemplateURLService::UpdateExtensionDefaultSearchEngine() {
TemplateURL* most_recently_intalled_default = nullptr;
for (const auto& turl : template_urls_) {
- if ((turl->GetType() == TemplateURL::NORMAL_CONTROLLED_BY_EXTENSION) &&
+ if ((turl->type() == TemplateURL::NORMAL_CONTROLLED_BY_EXTENSION) &&
turl->extension_info_->wants_to_be_default_engine &&
turl->SupportsReplacement(search_terms_data()) &&
(!most_recently_intalled_default ||

Powered by Google App Engine
This is Rietveld 408576698