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

Side by Side Diff: chrome/browser/extensions/api/search_engines_private/search_engines_private_api.cc

Issue 1238683003: Unpunycode search keywords and short names. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@lkgr
Patch Set: Remove UTF-8 from source code, use std::string(). 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 unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/extensions/api/search_engines_private/search_engines_pr ivate_api.h" 5 #include "chrome/browser/extensions/api/search_engines_private/search_engines_pr ivate_api.h"
6 6
7 #include <string>
8
7 #include "base/prefs/pref_service.h" 9 #include "base/prefs/pref_service.h"
8 #include "base/strings/utf_string_conversions.h" 10 #include "base/strings/utf_string_conversions.h"
9 #include "base/values.h" 11 #include "base/values.h"
10 #include "chrome/browser/extensions/chrome_extension_function.h" 12 #include "chrome/browser/extensions/chrome_extension_function.h"
11 #include "chrome/browser/profiles/profile.h" 13 #include "chrome/browser/profiles/profile.h"
12 #include "chrome/browser/search/hotword_audio_history_handler.h" 14 #include "chrome/browser/search/hotword_audio_history_handler.h"
13 #include "chrome/browser/search/hotword_service.h" 15 #include "chrome/browser/search/hotword_service.h"
14 #include "chrome/browser/search/hotword_service_factory.h" 16 #include "chrome/browser/search/hotword_service_factory.h"
15 #include "chrome/browser/search_engines/template_url_service_factory.h" 17 #include "chrome/browser/search_engines/template_url_service_factory.h"
16 #include "chrome/browser/signin/signin_manager_factory.h" 18 #include "chrome/browser/signin/signin_manager_factory.h"
17 #include "chrome/common/pref_names.h" 19 #include "chrome/common/pref_names.h"
18 #include "chrome/common/url_constants.h" 20 #include "chrome/common/url_constants.h"
19 #include "chrome/grit/generated_resources.h" 21 #include "chrome/grit/generated_resources.h"
20 #include "components/search_engines/template_url_service.h" 22 #include "components/search_engines/template_url_service.h"
21 #include "components/signin/core/browser/signin_manager.h" 23 #include "components/signin/core/browser/signin_manager.h"
22 #include "components/signin/core/browser/signin_manager_base.h" 24 #include "components/signin/core/browser/signin_manager_base.h"
23 #include "extensions/browser/extension_function_registry.h" 25 #include "extensions/browser/extension_function_registry.h"
26 #include "net/base/net_util.h"
24 #include "ui/base/l10n/l10n_util.h" 27 #include "ui/base/l10n/l10n_util.h"
25 28
26 namespace extensions { 29 namespace extensions {
27 30
28 namespace search_engines_private = api::search_engines_private; 31 namespace search_engines_private = api::search_engines_private;
29 32
30 const char kHotwordServiceMissing[] = "Cannot retrieve hotword service"; 33 const char kHotwordServiceMissing[] = "Cannot retrieve hotword service";
31 const char kRetrainWithoutAlwaysOnEnabledError[] = 34 const char kRetrainWithoutAlwaysOnEnabledError[] =
32 "Cannot retrain without always search and audio logging enabled"; 35 "Cannot retrain without always search and audio logging enabled";
33 const char kOptInWithAudioLoggingError[] = 36 const char kOptInWithAudioLoggingError[] =
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
113 ~SearchEnginesPrivateAddOtherSearchEngineFunction() { 116 ~SearchEnginesPrivateAddOtherSearchEngineFunction() {
114 } 117 }
115 118
116 ExtensionFunction::ResponseAction 119 ExtensionFunction::ResponseAction
117 SearchEnginesPrivateAddOtherSearchEngineFunction::Run() { 120 SearchEnginesPrivateAddOtherSearchEngineFunction::Run() {
118 scoped_ptr<search_engines_private::AddOtherSearchEngine::Params> parameters = 121 scoped_ptr<search_engines_private::AddOtherSearchEngine::Params> parameters =
119 search_engines_private::AddOtherSearchEngine::Params::Create(*args_); 122 search_engines_private::AddOtherSearchEngine::Params::Create(*args_);
120 EXTENSION_FUNCTION_VALIDATE(parameters.get()); 123 EXTENSION_FUNCTION_VALIDATE(parameters.get());
121 124
122 TemplateURLData data; 125 TemplateURLData data;
123 data.SetShortName(base::UTF8ToUTF16(parameters->name)); 126 // Unpunycode short name and keyword.
124 data.SetKeyword(base::UTF8ToUTF16(parameters->keyword)); 127 data.SetShortName(net::IDNToUnicode(parameters->name, std::string()));
Matt Giuca 2015/07/17 04:13:11 This should not be unpunycoded. The name and keywo
alshabalin 2015/07/20 14:06:37 Done.
128 data.SetKeyword(net::IDNToUnicode(parameters->keyword, std::string()));
125 data.SetURL(parameters->url); 129 data.SetURL(parameters->url);
126 TemplateURL* turl = new TemplateURL(data); 130 TemplateURL* turl = new TemplateURL(data);
127 131
128 TemplateURLService* template_url_service = 132 TemplateURLService* template_url_service =
129 TemplateURLServiceFactory::GetForProfile(chrome_details_.GetProfile()); 133 TemplateURLServiceFactory::GetForProfile(chrome_details_.GetProfile());
130 template_url_service->Add(turl); 134 template_url_service->Add(turl);
131 return RespondNow(NoArguments()); 135 return RespondNow(NoArguments());
132 } 136 }
133 137
134 //////////////////////////////////////////////////////////////////////////////// 138 ////////////////////////////////////////////////////////////////////////////////
(...skipping 13 matching lines...) Expand all
148 scoped_ptr<search_engines_private::UpdateSearchEngine::Params> parameters = 152 scoped_ptr<search_engines_private::UpdateSearchEngine::Params> parameters =
149 search_engines_private::UpdateSearchEngine::Params::Create(*args_); 153 search_engines_private::UpdateSearchEngine::Params::Create(*args_);
150 EXTENSION_FUNCTION_VALIDATE(parameters.get()); 154 EXTENSION_FUNCTION_VALIDATE(parameters.get());
151 155
152 TemplateURLService* template_url_service = 156 TemplateURLService* template_url_service =
153 TemplateURLServiceFactory::GetForProfile(chrome_details_.GetProfile()); 157 TemplateURLServiceFactory::GetForProfile(chrome_details_.GetProfile());
154 TemplateURL* turl = 158 TemplateURL* turl =
155 template_url_service->GetTemplateURLForGUID(parameters->guid); 159 template_url_service->GetTemplateURLForGUID(parameters->guid);
156 160
157 template_url_service->ResetTemplateURL( 161 template_url_service->ResetTemplateURL(
158 turl, base::UTF8ToUTF16(parameters->name), 162 turl, base::UTF8ToUTF16(parameters->name),
Matt Giuca 2015/07/17 04:13:11 If you're going to change addOtherSearchEngine, yo
159 base::UTF8ToUTF16(parameters->keyword), parameters->url); 163 base::UTF8ToUTF16(parameters->keyword), parameters->url);
160 164
161 return RespondNow(NoArguments()); 165 return RespondNow(NoArguments());
162 } 166 }
163 167
164 //////////////////////////////////////////////////////////////////////////////// 168 ////////////////////////////////////////////////////////////////////////////////
165 // SearchEnginesPrivateRemoveSearchEngineFunction 169 // SearchEnginesPrivateRemoveSearchEngineFunction
166 170
167 SearchEnginesPrivateRemoveSearchEngineFunction:: 171 SearchEnginesPrivateRemoveSearchEngineFunction::
168 SearchEnginesPrivateRemoveSearchEngineFunction() 172 SearchEnginesPrivateRemoveSearchEngineFunction()
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after
329 } else { 333 } else {
330 if (prefs->GetBoolean(prefs::kHotwordAlwaysOnSearchEnabled)) 334 if (prefs->GetBoolean(prefs::kHotwordAlwaysOnSearchEnabled))
331 return RespondNow(Error(kAlreadyOptedInError)); 335 return RespondNow(Error(kAlreadyOptedInError));
332 } 336 }
333 337
334 hotword_service->OptIntoHotwording(launch_mode); 338 hotword_service->OptIntoHotwording(launch_mode);
335 return RespondNow(NoArguments()); 339 return RespondNow(NoArguments());
336 } 340 }
337 341
338 } // namespace extensions 342 } // namespace extensions
OLDNEW
« no previous file with comments | « no previous file | components/search_engines/template_url.cc » ('j') | components/search_engines/template_url.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698