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

Unified Diff: chrome/browser/ui/search_engines/search_engine_tab_helper.cc

Issue 1238683003: Unpunycode search keywords and short names. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@lkgr
Patch Set: Restrict IDN-decoding to keywords generated from URL; Use prefs::kAcceptLanguages for IDN-decoding Created 5 years, 5 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: 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;

Powered by Google App Engine
This is Rietveld 408576698