summaryrefslogtreecommitdiffstats
path: root/chrome/browser/autocomplete
diff options
context:
space:
mode:
authorhashimoto@chromium.org <hashimoto@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-06-16 23:41:19 +0000
committerhashimoto@chromium.org <hashimoto@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-06-16 23:41:19 +0000
commitce7ee5f6e568397596b14bc6e5a0108f431a5999 (patch)
tree2ea50804ecc0b0c9b102ee00babb2a62eab3c01a /chrome/browser/autocomplete
parent095ebc0296c06705c7e76a008cffd3d824ad83bd (diff)
downloadchromium_src-ce7ee5f6e568397596b14bc6e5a0108f431a5999.zip
chromium_src-ce7ee5f6e568397596b14bc6e5a0108f431a5999.tar.gz
chromium_src-ce7ee5f6e568397596b14bc6e5a0108f431a5999.tar.bz2
Stop using UIThreadSearchTermsData in TemplateURL
Pass SearchTermsData for TemplateURL methods. Add TemplateURLService::search_terms_data(). Remove unused function GetLogoURL() from template_url_prepopulate_data.cc Fix callers to pass SearchTermsData owned by TemplateURLService or create UIThreadSearchTermsData from Profile. BUG=383283 TEST=git cl try TBR=sky@chromium.org Review URL: https://codereview.chromium.org/326403007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@277577 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/autocomplete')
-rw-r--r--chrome/browser/autocomplete/autocomplete_controller.cc7
-rw-r--r--chrome/browser/autocomplete/autocomplete_match.cc13
-rw-r--r--chrome/browser/autocomplete/base_search_provider.cc23
-rw-r--r--chrome/browser/autocomplete/base_search_provider.h4
-rw-r--r--chrome/browser/autocomplete/history_quick_provider.cc3
-rw-r--r--chrome/browser/autocomplete/history_url_provider.cc2
-rw-r--r--chrome/browser/autocomplete/keyword_provider.cc25
-rw-r--r--chrome/browser/autocomplete/search_provider.cc13
-rw-r--r--chrome/browser/autocomplete/search_provider_unittest.cc31
-rw-r--r--chrome/browser/autocomplete/shortcuts_backend.cc4
-rw-r--r--chrome/browser/autocomplete/zero_suggest_provider.cc9
11 files changed, 91 insertions, 43 deletions
diff --git a/chrome/browser/autocomplete/autocomplete_controller.cc b/chrome/browser/autocomplete/autocomplete_controller.cc
index 09a82bd..79ba6b8 100644
--- a/chrome/browser/autocomplete/autocomplete_controller.cc
+++ b/chrome/browser/autocomplete/autocomplete_controller.cc
@@ -28,6 +28,7 @@
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/search/search.h"
#include "chrome/browser/search_engines/template_url.h"
+#include "chrome/browser/search_engines/ui_thread_search_terms_data.h"
#include "content/public/browser/notification_service.h"
#include "grit/generated_resources.h"
#include "grit/theme_resources.h"
@@ -420,8 +421,8 @@ void AutocompleteController::UpdateMatchDestinationURL(
(zero_suggest_provider_ &&
zero_suggest_provider_->field_trial_triggered_in_session()),
input_.current_page_classification());
- match->destination_url =
- GURL(template_url->url_ref().ReplaceSearchTerms(search_terms_args));
+ match->destination_url = GURL(template_url->url_ref().ReplaceSearchTerms(
+ search_terms_args, UIThreadSearchTermsData(profile_)));
}
void AutocompleteController::UpdateResult(
@@ -608,7 +609,7 @@ void AutocompleteController::UpdateAssistedQueryStats(
selected_index.c_str(),
autocompletions.c_str());
match->destination_url = GURL(template_url->url_ref().ReplaceSearchTerms(
- *match->search_terms_args));
+ *match->search_terms_args, UIThreadSearchTermsData(profile_)));
}
}
diff --git a/chrome/browser/autocomplete/autocomplete_match.cc b/chrome/browser/autocomplete/autocomplete_match.cc
index 0d101c8..59365b7 100644
--- a/chrome/browser/autocomplete/autocomplete_match.cc
+++ b/chrome/browser/autocomplete/autocomplete_match.cc
@@ -15,6 +15,7 @@
#include "chrome/browser/search_engines/template_url.h"
#include "chrome/browser/search_engines/template_url_service.h"
#include "chrome/browser/search_engines/template_url_service_factory.h"
+#include "chrome/browser/search_engines/ui_thread_search_terms_data.h"
#include "content/public/common/url_constants.h"
#include "grit/theme_resources.h"
@@ -355,13 +356,17 @@ void AutocompleteMatch::ComputeStrippedDestinationURL(Profile* profile) {
// by some obscure query param from each other or from the search/keyword
// provider matches.
TemplateURL* template_url = GetTemplateURL(profile, true);
- if (template_url != NULL && template_url->SupportsReplacement()) {
+ UIThreadSearchTermsData search_terms_data(profile);
+ if (template_url != NULL &&
+ template_url->SupportsReplacement(search_terms_data)) {
base::string16 search_terms;
if (template_url->ExtractSearchTermsFromURL(stripped_destination_url,
+ search_terms_data,
&search_terms)) {
stripped_destination_url =
GURL(template_url->url_ref().ReplaceSearchTerms(
- TemplateURLRef::SearchTermsArgs(search_terms)));
+ TemplateURLRef::SearchTermsArgs(search_terms),
+ search_terms_data));
}
}
@@ -407,7 +412,9 @@ base::string16 AutocompleteMatch::GetSubstitutingExplicitlyInvokedKeyword(
if (transition != content::PAGE_TRANSITION_KEYWORD)
return base::string16();
const TemplateURL* t_url = GetTemplateURL(profile, false);
- return (t_url && t_url->SupportsReplacement()) ? keyword : base::string16();
+ return (t_url &&
+ t_url->SupportsReplacement(UIThreadSearchTermsData(profile))) ?
+ keyword : base::string16();
}
TemplateURL* AutocompleteMatch::GetTemplateURL(
diff --git a/chrome/browser/autocomplete/base_search_provider.cc b/chrome/browser/autocomplete/base_search_provider.cc
index 8582636..375cc821 100644
--- a/chrome/browser/autocomplete/base_search_provider.cc
+++ b/chrome/browser/autocomplete/base_search_provider.cc
@@ -25,6 +25,7 @@
#include "chrome/browser/search_engines/template_url_prepopulate_data.h"
#include "chrome/browser/search_engines/template_url_service.h"
#include "chrome/browser/search_engines/template_url_service_factory.h"
+#include "chrome/browser/search_engines/ui_thread_search_terms_data.h"
#include "chrome/browser/sync/profile_sync_service.h"
#include "chrome/browser/sync/profile_sync_service_factory.h"
#include "chrome/common/pref_names.h"
@@ -140,13 +141,14 @@ AutocompleteMatch BaseSearchProvider::CreateSearchSuggestion(
const base::string16& suggestion,
AutocompleteMatchType::Type type,
bool from_keyword_provider,
- const TemplateURL* template_url) {
+ const TemplateURL* template_url,
+ const SearchTermsData& search_terms_data) {
return CreateSearchSuggestion(
NULL, AutocompleteInput(), BaseSearchProvider::SuggestResult(
suggestion, type, suggestion, base::string16(), base::string16(),
base::string16(), base::string16(), std::string(), std::string(),
from_keyword_provider, 0, false, false, base::string16()),
- template_url, 0, 0, false, false);
+ template_url, search_terms_data, 0, 0, false, false);
}
void BaseSearchProvider::Stop(bool clear_cached_results) {
@@ -482,6 +484,7 @@ AutocompleteMatch BaseSearchProvider::CreateSearchSuggestion(
const AutocompleteInput& input,
const SuggestResult& suggestion,
const TemplateURL* template_url,
+ const SearchTermsData& search_terms_data,
int accepted_suggestion,
int omnibox_start_margin,
bool append_extra_query_params,
@@ -532,7 +535,7 @@ AutocompleteMatch BaseSearchProvider::CreateSearchSuggestion(
match.fill_into_edit.append(suggestion.suggestion());
const TemplateURLRef& search_url = template_url->url_ref();
- DCHECK(search_url.SupportsReplacement());
+ DCHECK(search_url.SupportsReplacement(search_terms_data));
match.search_terms_args.reset(
new TemplateURLRef::SearchTermsArgs(suggestion.suggestion()));
match.search_terms_args->original_query = input.text();
@@ -547,7 +550,8 @@ AutocompleteMatch BaseSearchProvider::CreateSearchSuggestion(
// so the AutocompleteController can properly de-dupe; the controller will
// eventually overwrite it before it reaches the user.
match.destination_url =
- GURL(search_url.ReplaceSearchTerms(*match.search_terms_args.get()));
+ GURL(search_url.ReplaceSearchTerms(*match.search_terms_args.get(),
+ search_terms_data));
// Search results don't look like URLs.
match.transition = suggestion.from_keyword_provider() ?
@@ -611,9 +615,11 @@ bool BaseSearchProvider::ZeroSuggestEnabled(
// Only make the request if we know that the provider supports zero suggest
// (currently only the prepopulated Google provider).
- if (template_url == NULL || !template_url->SupportsReplacement() ||
- TemplateURLPrepopulateData::GetEngineType(*template_url) !=
- SEARCH_ENGINE_GOOGLE)
+ UIThreadSearchTermsData search_terms_data(profile);
+ if (template_url == NULL ||
+ !template_url->SupportsReplacement(search_terms_data) ||
+ TemplateURLPrepopulateData::GetEngineType(
+ *template_url, search_terms_data) != SEARCH_ENGINE_GOOGLE)
return false;
return true;
@@ -719,7 +725,8 @@ void BaseSearchProvider::AddMatchToMap(const SuggestResult& result,
AutocompleteMatch match = CreateSearchSuggestion(
this, GetInput(result.from_keyword_provider()), result,
- GetTemplateURL(result.from_keyword_provider()), accepted_suggestion,
+ GetTemplateURL(result.from_keyword_provider()),
+ UIThreadSearchTermsData(profile_), accepted_suggestion,
omnibox_start_margin, ShouldAppendExtraParams(result),
in_app_list_);
if (!match.destination_url.is_valid())
diff --git a/chrome/browser/autocomplete/base_search_provider.h b/chrome/browser/autocomplete/base_search_provider.h
index 33ea124a..3072d02 100644
--- a/chrome/browser/autocomplete/base_search_provider.h
+++ b/chrome/browser/autocomplete/base_search_provider.h
@@ -62,7 +62,8 @@ class BaseSearchProvider : public AutocompleteProvider,
const base::string16& suggestion,
AutocompleteMatchType::Type type,
bool from_keyword_provider,
- const TemplateURL* template_url);
+ const TemplateURL* template_url,
+ const SearchTermsData& search_terms_data);
// AutocompleteProvider:
virtual void Stop(bool clear_cached_results) OVERRIDE;
@@ -352,6 +353,7 @@ class BaseSearchProvider : public AutocompleteProvider,
const AutocompleteInput& input,
const SuggestResult& suggestion,
const TemplateURL* template_url,
+ const SearchTermsData& search_terms_data,
int accepted_suggestion,
int omnibox_start_margin,
bool append_extra_query_params,
diff --git a/chrome/browser/autocomplete/history_quick_provider.cc b/chrome/browser/autocomplete/history_quick_provider.cc
index b6d89b6..fb227a7 100644
--- a/chrome/browser/autocomplete/history_quick_provider.cc
+++ b/chrome/browser/autocomplete/history_quick_provider.cc
@@ -214,7 +214,8 @@ void HistoryQuickProvider::DoAutocomplete() {
// These are low-quality, difficult-to-understand matches for users, and the
// SearchProvider should surface past queries in a better way anyway.
if (!template_url ||
- !template_url->IsSearchURL(history_match.url_info.url())) {
+ !template_url->IsSearchURL(history_match.url_info.url(),
+ template_url_service->search_terms_data())) {
// Set max_match_score to the score we'll assign this result:
max_match_score = std::min(max_match_score, history_match.raw_score());
matches_.push_back(QuickMatchToACMatch(history_match, max_match_score));
diff --git a/chrome/browser/autocomplete/history_url_provider.cc b/chrome/browser/autocomplete/history_url_provider.cc
index 64322cb..d4dc216 100644
--- a/chrome/browser/autocomplete/history_url_provider.cc
+++ b/chrome/browser/autocomplete/history_url_provider.cc
@@ -1038,7 +1038,7 @@ void HistoryURLProvider::CullPoorMatches(
i != matches->end(); ) {
if (RowQualifiesAsSignificant(i->url_info, threshold) &&
!(params.default_search_provider &&
- params.default_search_provider->IsSearchURLUsingTermsData(
+ params.default_search_provider->IsSearchURL(
i->url_info.url(), *params.search_terms_data.get()))) {
++i;
} else {
diff --git a/chrome/browser/autocomplete/keyword_provider.cc b/chrome/browser/autocomplete/keyword_provider.cc
index 44e9354..8affa3f 100644
--- a/chrome/browser/autocomplete/keyword_provider.cc
+++ b/chrome/browser/autocomplete/keyword_provider.cc
@@ -148,7 +148,8 @@ const TemplateURL* KeywordProvider::GetSubstitutingTemplateURLForInput(
DCHECK(model);
const TemplateURL* template_url = model->GetTemplateURLForKeyword(keyword);
- if (template_url && template_url->SupportsReplacement()) {
+ if (template_url &&
+ template_url->SupportsReplacement(model->search_terms_data())) {
// Adjust cursor position iff it was set before, otherwise leave it as is.
size_t cursor_position = base::string16::npos;
// The adjustment assumes that the keyword was stripped from the beginning
@@ -192,7 +193,8 @@ base::string16 KeywordProvider::GetKeywordForText(
// Don't provide a keyword if it doesn't support replacement.
const TemplateURL* const template_url =
url_service->GetTemplateURLForKeyword(keyword);
- if (!template_url || !template_url->SupportsReplacement())
+ if (!template_url ||
+ !template_url->SupportsReplacement(url_service->search_terms_data()))
return base::string16();
// Don't provide a keyword for inactive/disabled extension keywords.
@@ -275,7 +277,9 @@ void KeywordProvider::Start(const AutocompleteInput& input,
}
// Prune any substituting keywords if there is no substitution.
- if (template_url->SupportsReplacement() && remaining_input.empty() &&
+ if (template_url->SupportsReplacement(
+ GetTemplateURLService()->search_terms_data()) &&
+ remaining_input.empty() &&
!input.allow_exact_keyword_match()) {
i = matches.erase(i);
continue;
@@ -383,7 +387,8 @@ AutocompleteMatch KeywordProvider::CreateAutocompleteMatch(
int relevance) {
DCHECK(template_url);
const bool supports_replacement =
- template_url->url_ref().SupportsReplacement();
+ template_url->url_ref().SupportsReplacement(
+ GetTemplateURLService()->search_terms_data());
// Create an edit entry of "[keyword] [remaining input]". This is helpful
// even when [remaining input] is empty, as the user can select the popup
@@ -429,14 +434,15 @@ void KeywordProvider::FillInURLAndContents(
AutocompleteMatch* match) const {
DCHECK(!element->short_name().empty());
const TemplateURLRef& element_ref = element->url_ref();
- DCHECK(element_ref.IsValid());
+ DCHECK(element_ref.IsValid(GetTemplateURLService()->search_terms_data()));
int message_id = (element->GetType() == TemplateURL::OMNIBOX_API_EXTENSION) ?
IDS_EXTENSION_KEYWORD_COMMAND : IDS_KEYWORD_SEARCH;
if (remaining_input.empty()) {
// Allow extension keyword providers to accept empty string input. This is
// useful to allow extensions to do something in the case where no input is
// entered.
- if (element_ref.SupportsReplacement() &&
+ if (element_ref.SupportsReplacement(
+ GetTemplateURLService()->search_terms_data()) &&
(element->GetType() != TemplateURL::OMNIBOX_API_EXTENSION)) {
// No query input; return a generic, no-destination placeholder.
match->contents.assign(
@@ -458,12 +464,13 @@ void KeywordProvider::FillInURLAndContents(
// keyword template URL. The escaping here handles whitespace in user
// input, but we rely on later canonicalization functions to do more
// fixup to make the URL valid if necessary.
- DCHECK(element_ref.SupportsReplacement());
+ DCHECK(element_ref.SupportsReplacement(
+ GetTemplateURLService()->search_terms_data()));
TemplateURLRef::SearchTermsArgs search_terms_args(remaining_input);
search_terms_args.append_extra_query_params =
element == GetTemplateURLService()->GetDefaultSearchProvider();
- match->destination_url =
- GURL(element_ref.ReplaceSearchTerms(search_terms_args));
+ match->destination_url = GURL(element_ref.ReplaceSearchTerms(
+ search_terms_args, GetTemplateURLService()->search_terms_data()));
std::vector<size_t> content_param_offsets;
match->contents.assign(l10n_util::GetStringFUTF16(message_id,
element->short_name(),
diff --git a/chrome/browser/autocomplete/search_provider.cc b/chrome/browser/autocomplete/search_provider.cc
index 164d730..75b4b0a 100644
--- a/chrome/browser/autocomplete/search_provider.cc
+++ b/chrome/browser/autocomplete/search_provider.cc
@@ -207,7 +207,8 @@ void SearchProvider::Start(const AutocompleteInput& input,
keyword_provider = NULL;
const TemplateURL* default_provider = model->GetDefaultSearchProvider();
- if (default_provider && !default_provider->SupportsReplacement())
+ if (default_provider &&
+ !default_provider->SupportsReplacement(model->search_terms_data()))
default_provider = NULL;
if (keyword_provider == default_provider)
@@ -343,7 +344,9 @@ void SearchProvider::LogFetchComplete(bool success, bool is_keyword) {
// non-keyword mode.
const TemplateURL* default_url = providers_.GetDefaultProviderURL();
if (!is_keyword && default_url &&
- (TemplateURLPrepopulateData::GetEngineType(*default_url) ==
+ (TemplateURLPrepopulateData::GetEngineType(
+ *default_url,
+ providers_.template_url_service()->search_terms_data()) ==
SEARCH_ENGINE_GOOGLE)) {
const base::TimeDelta elapsed_time =
base::TimeTicks::Now() - time_suggest_request_sent_;
@@ -648,7 +651,8 @@ net::URLFetcher* SearchProvider::CreateSuggestFetcher(
switches::kEnableAnswersInSuggest))
search_term_args.session_token = GetSessionToken();
GURL suggest_url(template_url->suggestions_url_ref().ReplaceSearchTerms(
- search_term_args));
+ search_term_args,
+ providers_.template_url_service()->search_terms_data()));
if (!suggest_url.is_valid())
return NULL;
// Send the current page URL if user setting and URL requirements are met and
@@ -659,7 +663,8 @@ net::URLFetcher* SearchProvider::CreateSuggestFetcher(
search_term_args.current_page_url = current_page_url_.spec();
// Create the suggest URL again with the current page URL.
suggest_url = GURL(template_url->suggestions_url_ref().ReplaceSearchTerms(
- search_term_args));
+ search_term_args,
+ providers_.template_url_service()->search_terms_data()));
}
suggest_results_pending_++;
diff --git a/chrome/browser/autocomplete/search_provider_unittest.cc b/chrome/browser/autocomplete/search_provider_unittest.cc
index 317c74b..a27ba46 100644
--- a/chrome/browser/autocomplete/search_provider_unittest.cc
+++ b/chrome/browser/autocomplete/search_provider_unittest.cc
@@ -362,10 +362,12 @@ void SearchProviderTest::QueryForInputAndSetWYTMatch(
if (!wyt_match)
return;
ASSERT_GE(provider_->matches().size(), 1u);
- EXPECT_TRUE(FindMatchWithDestination(GURL(
- default_t_url_->url_ref().ReplaceSearchTerms(
+ EXPECT_TRUE(FindMatchWithDestination(
+ GURL(default_t_url_->url_ref().ReplaceSearchTerms(
TemplateURLRef::SearchTermsArgs(base::CollapseWhitespace(
- text, false)))),
+ text, false)),
+ TemplateURLServiceFactory::GetForProfile(
+ &profile_)->search_terms_data())),
wyt_match));
}
@@ -376,7 +378,9 @@ GURL SearchProviderTest::AddSearchToHistory(TemplateURL* t_url,
HistoryServiceFactory::GetForProfile(&profile_,
Profile::EXPLICIT_ACCESS);
GURL search(t_url->url_ref().ReplaceSearchTerms(
- TemplateURLRef::SearchTermsArgs(term)));
+ TemplateURLRef::SearchTermsArgs(term),
+ TemplateURLServiceFactory::GetForProfile(
+ &profile_)->search_terms_data()));
static base::Time last_added_time;
last_added_time = std::max(base::Time::Now(),
last_added_time + base::TimeDelta::FromMicroseconds(1));
@@ -481,7 +485,9 @@ TEST_F(SearchProviderTest, QueryDefaultProvider) {
// And the URL matches what we expected.
GURL expected_url(default_t_url_->suggestions_url_ref().ReplaceSearchTerms(
- TemplateURLRef::SearchTermsArgs(term)));
+ TemplateURLRef::SearchTermsArgs(term),
+ TemplateURLServiceFactory::GetForProfile(
+ &profile_)->search_terms_data()));
ASSERT_TRUE(fetcher->GetOriginalURL() == expected_url);
// Tell the SearchProvider the suggest query is done.
@@ -502,7 +508,10 @@ TEST_F(SearchProviderTest, QueryDefaultProvider) {
AutocompleteMatch wyt_match;
EXPECT_TRUE(FindMatchWithDestination(
GURL(default_t_url_->url_ref().ReplaceSearchTerms(
- TemplateURLRef::SearchTermsArgs(term))), &wyt_match));
+ TemplateURLRef::SearchTermsArgs(term),
+ TemplateURLServiceFactory::GetForProfile(
+ &profile_)->search_terms_data())),
+ &wyt_match));
EXPECT_TRUE(wyt_match.description.empty());
// The match for term1 should be more relevant than the what you typed match.
@@ -548,7 +557,9 @@ TEST_F(SearchProviderTest, QueryKeywordProvider) {
// And the URL matches what we expected.
GURL expected_url(keyword_t_url_->suggestions_url_ref().ReplaceSearchTerms(
- TemplateURLRef::SearchTermsArgs(term)));
+ TemplateURLRef::SearchTermsArgs(term),
+ TemplateURLServiceFactory::GetForProfile(
+ &profile_)->search_terms_data()));
ASSERT_TRUE(keyword_fetcher->GetOriginalURL() == expected_url);
// Tell the SearchProvider the keyword suggest query is done.
@@ -747,7 +758,9 @@ TEST_F(SearchProviderTest, AutocompleteMultipleVisitsImmediately) {
TEST_F(SearchProviderTest, AutocompleteAfterSpace) {
AddSearchToHistory(default_t_url_, ASCIIToUTF16("two searches "), 2);
GURL suggested_url(default_t_url_->url_ref().ReplaceSearchTerms(
- TemplateURLRef::SearchTermsArgs(ASCIIToUTF16("two searches"))));
+ TemplateURLRef::SearchTermsArgs(ASCIIToUTF16("two searches")),
+ TemplateURLServiceFactory::GetForProfile(
+ &profile_)->search_terms_data()));
profile_.BlockUntilHistoryProcessesPendingRequests();
AutocompleteMatch wyt_match;
@@ -3134,7 +3147,7 @@ TEST_F(SearchProviderTest, SuggestQueryUsesToken) {
TemplateURLRef::SearchTermsArgs search_terms_args(term);
search_terms_args.session_token = provider_->current_token_;
GURL expected_url(default_t_url_->suggestions_url_ref().ReplaceSearchTerms(
- search_terms_args));
+ search_terms_args, turl_model->search_terms_data()));
EXPECT_EQ(fetcher->GetOriginalURL().spec(), expected_url.spec());
// Complete running the fetcher to clean up.
diff --git a/chrome/browser/autocomplete/shortcuts_backend.cc b/chrome/browser/autocomplete/shortcuts_backend.cc
index 15e8bba..3dc95a6 100644
--- a/chrome/browser/autocomplete/shortcuts_backend.cc
+++ b/chrome/browser/autocomplete/shortcuts_backend.cc
@@ -23,6 +23,7 @@
#include "chrome/browser/history/shortcuts_database.h"
#include "chrome/browser/omnibox/omnibox_log.h"
#include "chrome/browser/profiles/profile.h"
+#include "chrome/browser/search_engines/ui_thread_search_terms_data.h"
#include "chrome/common/autocomplete_match_type.h"
#include "chrome/common/chrome_constants.h"
#include "content/public/browser/browser_thread.h"
@@ -147,7 +148,8 @@ history::ShortcutsDatabase::Shortcut::MatchCore
BaseSearchProvider::CreateSearchSuggestion(
match.search_terms_args->search_terms, match_type,
(match.transition == content::PAGE_TRANSITION_KEYWORD),
- match.GetTemplateURL(profile, false)) :
+ match.GetTemplateURL(profile, false),
+ UIThreadSearchTermsData(profile)) :
match;
return history::ShortcutsDatabase::Shortcut::MatchCore(
normalized_match.fill_into_edit, normalized_match.destination_url,
diff --git a/chrome/browser/autocomplete/zero_suggest_provider.cc b/chrome/browser/autocomplete/zero_suggest_provider.cc
index c4d5718..1fc5434 100644
--- a/chrome/browser/autocomplete/zero_suggest_provider.cc
+++ b/chrome/browser/autocomplete/zero_suggest_provider.cc
@@ -113,7 +113,7 @@ void ZeroSuggestProvider::Start(const AutocompleteInput& input,
base::string16 prefix;
TemplateURLRef::SearchTermsArgs search_term_args(prefix);
GURL suggest_url(default_provider->suggestions_url_ref().ReplaceSearchTerms(
- search_term_args));
+ search_term_args, template_url_service_->search_terms_data()));
if (!suggest_url.is_valid())
return;
@@ -124,7 +124,9 @@ void ZeroSuggestProvider::Start(const AutocompleteInput& input,
// Update suggest_url to include the current_page_url.
search_term_args.current_page_url = current_query_;
suggest_url = GURL(default_provider->suggestions_url_ref().
- ReplaceSearchTerms(search_term_args));
+ ReplaceSearchTerms(
+ search_term_args,
+ template_url_service_->search_terms_data()));
} else if (!CanShowZeroSuggestWithoutSendingURL(suggest_url,
input.current_url())) {
return;
@@ -344,7 +346,8 @@ void ZeroSuggestProvider::ConvertResultsToAutocompleteMatches() {
const TemplateURL* default_provider =
template_url_service_->GetDefaultSearchProvider();
// Fail if we can't set the clickthrough URL for query suggestions.
- if (default_provider == NULL || !default_provider->SupportsReplacement())
+ if (default_provider == NULL || !default_provider->SupportsReplacement(
+ template_url_service_->search_terms_data()))
return;
MatchMap map;