Chromium Code Reviews| Index: chrome/browser/ui/search_engines/search_engine_tab_helper.cc |
| diff --git a/chrome/browser/ui/search_engines/search_engine_tab_helper.cc b/chrome/browser/ui/search_engines/search_engine_tab_helper.cc |
| index 0ae2d4332403de03702fd446ccdc56eb5d8f225e..7a722b0719678bb0f5cbc4c7a98a20058e517cab 100644 |
| --- a/chrome/browser/ui/search_engines/search_engine_tab_helper.cc |
| +++ b/chrome/browser/ui/search_engines/search_engine_tab_helper.cc |
| @@ -10,6 +10,7 @@ |
| #include "chrome/browser/ui/search_engines/search_engine_tab_helper_delegate.h" |
| #include "chrome/common/render_messages.h" |
| #include "chrome/common/url_constants.h" |
| +#include "components/search_engines/search_terms_data.h" |
| #include "components/search_engines/template_url.h" |
| #include "components/search_engines/template_url_fetcher.h" |
| #include "components/search_engines/template_url_service.h" |
| @@ -37,7 +38,8 @@ bool IsFormSubmit(const NavigationEntry* entry) { |
| } |
| base::string16 GenerateKeywordFromNavigationEntry( |
| - const NavigationEntry* entry) { |
| + const NavigationEntry* entry, |
| + const std::string& accept_languages) { |
| // Don't autogenerate keywords for pages that are the result of form |
| // submissions. |
| if (IsFormSubmit(entry)) |
| @@ -61,7 +63,7 @@ base::string16 GenerateKeywordFromNavigationEntry( |
| if (!url.SchemeIs(url::kHttpScheme) || (url.path().length() > 1)) |
| return base::string16(); |
| - return TemplateURL::GenerateKeyword(url); |
| + return TemplateURL::GenerateKeyword(url, accept_languages); |
| } |
| void AssociateURLFetcherWithWebContents(content::WebContents* web_contents, |
| @@ -143,7 +145,13 @@ void SearchEngineTabHelper::OnPageHasOSDD( |
| // generate a keyword later after fetching the OSDD. |
| base::string16 keyword; |
| if (provider_type == TemplateURLFetcher::AUTODETECTED_PROVIDER) { |
| - keyword = GenerateKeywordFromNavigationEntry(entry); |
| + std::string accept_languages; |
| + if (TemplateURLService* url_service = |
| + TemplateURLServiceFactory::GetForProfile(profile)) { |
|
Peter Kasting
2015/07/20 19:30:51
Don't put a statement with side effects in a condi
alshabalin
2015/07/21 08:44:19
Done.
Although I somewhat disagree. In my brain a
|
| + accept_languages = |
| + url_service->search_terms_data().GetAcceptedLanguages(); |
| + } |
| + keyword = GenerateKeywordFromNavigationEntry(entry, accept_languages); |
| if (keyword.empty()) |
| return; |
| } |
| @@ -184,16 +192,17 @@ void SearchEngineTabHelper::GenerateKeywordIfNecessary( |
| if (last_index <= 0) |
| return; |
| - base::string16 keyword(GenerateKeywordFromNavigationEntry( |
| - controller.GetEntryAtIndex(last_index - 1))); |
| - if (keyword.empty()) |
| - return; |
| - |
| TemplateURLService* url_service = |
| TemplateURLServiceFactory::GetForProfile(profile); |
| if (!url_service) |
| return; |
| + base::string16 keyword(GenerateKeywordFromNavigationEntry( |
| + controller.GetEntryAtIndex(last_index - 1), |
| + url_service->search_terms_data().GetAcceptedLanguages())); |
|
Peter Kasting
2015/07/20 19:30:51
Again, get the languages off the profile prefs dir
|
| + if (keyword.empty()) |
| + return; |
| + |
| if (!url_service->loaded()) { |
| url_service->Load(); |
| return; |