| Index: chrome/browser/autocomplete/autocomplete_match.cc
|
| diff --git a/chrome/browser/autocomplete/autocomplete_match.cc b/chrome/browser/autocomplete/autocomplete_match.cc
|
| index 9a3d13c2705d99b78554b734701d63d0a2e052f2..37dfca009444ba0485cc889be725d86c9d63c2d6 100644
|
| --- a/chrome/browser/autocomplete/autocomplete_match.cc
|
| +++ b/chrome/browser/autocomplete/autocomplete_match.cc
|
| @@ -13,7 +13,10 @@
|
| #include "base/time/time.h"
|
| #include "chrome/browser/autocomplete/autocomplete_provider.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 "components/search_engines/template_url.h"
|
| +#include "content/public/common/url_constants.h"
|
| #include "grit/theme_resources.h"
|
|
|
| namespace {
|
| @@ -342,8 +345,7 @@
|
| type == AutocompleteMatchType::SEARCH_SUGGEST_ANSWER;
|
| }
|
|
|
| -void AutocompleteMatch::ComputeStrippedDestinationURL(
|
| - TemplateURLService* template_url_service) {
|
| +void AutocompleteMatch::ComputeStrippedDestinationURL(Profile* profile) {
|
| stripped_destination_url = destination_url;
|
| if (!stripped_destination_url.is_valid())
|
| return;
|
| @@ -353,19 +355,18 @@
|
| // to eliminate cases like past search URLs from history that differ only
|
| // by some obscure query param from each other or from the search/keyword
|
| // provider matches.
|
| - TemplateURL* template_url = GetTemplateURL(template_url_service, true);
|
| + TemplateURL* template_url = GetTemplateURL(profile, true);
|
| + UIThreadSearchTermsData search_terms_data(profile);
|
| if (template_url != NULL &&
|
| - template_url->SupportsReplacement(
|
| - template_url_service->search_terms_data())) {
|
| + template_url->SupportsReplacement(search_terms_data)) {
|
| base::string16 search_terms;
|
| - if (template_url->ExtractSearchTermsFromURL(
|
| - stripped_destination_url,
|
| - template_url_service->search_terms_data(),
|
| - &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),
|
| - template_url_service->search_terms_data()));
|
| + search_terms_data));
|
| }
|
| }
|
|
|
| @@ -398,32 +399,29 @@
|
| replacements);
|
| }
|
|
|
| -void AutocompleteMatch::GetKeywordUIState(
|
| - TemplateURLService* template_url_service,
|
| - base::string16* keyword,
|
| - bool* is_keyword_hint) const {
|
| +void AutocompleteMatch::GetKeywordUIState(Profile* profile,
|
| + base::string16* keyword,
|
| + bool* is_keyword_hint) const {
|
| *is_keyword_hint = associated_keyword.get() != NULL;
|
| keyword->assign(*is_keyword_hint ? associated_keyword->keyword :
|
| - GetSubstitutingExplicitlyInvokedKeyword(template_url_service));
|
| + GetSubstitutingExplicitlyInvokedKeyword(profile));
|
| }
|
|
|
| base::string16 AutocompleteMatch::GetSubstitutingExplicitlyInvokedKeyword(
|
| - TemplateURLService* template_url_service) const {
|
| - if (transition != content::PAGE_TRANSITION_KEYWORD ||
|
| - template_url_service == NULL) {
|
| + Profile* profile) const {
|
| + if (transition != content::PAGE_TRANSITION_KEYWORD)
|
| return base::string16();
|
| - }
|
| -
|
| - const TemplateURL* t_url = GetTemplateURL(template_url_service, false);
|
| + const TemplateURL* t_url = GetTemplateURL(profile, false);
|
| return (t_url &&
|
| - t_url->SupportsReplacement(
|
| - template_url_service->search_terms_data())) ?
|
| + t_url->SupportsReplacement(UIThreadSearchTermsData(profile))) ?
|
| keyword : base::string16();
|
| }
|
|
|
| TemplateURL* AutocompleteMatch::GetTemplateURL(
|
| - TemplateURLService* template_url_service,
|
| - bool allow_fallback_to_destination_host) const {
|
| + Profile* profile, bool allow_fallback_to_destination_host) const {
|
| + DCHECK(profile);
|
| + TemplateURLService* template_url_service =
|
| + TemplateURLServiceFactory::GetForProfile(profile);
|
| if (template_url_service == NULL)
|
| return NULL;
|
| TemplateURL* template_url = keyword.empty() ? NULL :
|
|
|