OLD | NEW |
---|---|
(Empty) | |
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 | |
3 // found in the LICENSE file. | |
4 | |
5 #include "chrome/browser/extensions/api/search_engines_private/search_engines_pr ivate_api.h" | |
6 | |
7 #include "base/strings/utf_string_conversions.h" | |
8 #include "base/values.h" | |
9 #include "chrome/browser/extensions/chrome_extension_function.h" | |
10 #include "chrome/browser/profiles/profile.h" | |
11 #include "chrome/browser/search_engines/template_url_service_factory.h" | |
12 #include "chrome/common/extensions/api/search_engines_private.h" | |
13 #include "components/search_engines/template_url_service.h" | |
14 #include "extensions/browser/extension_function_registry.h" | |
15 | |
16 namespace extensions { | |
17 | |
18 //////////////////////////////////////////////////////////////////////////////// | |
19 // SearchEnginesPrivateGetDefaultSearchEnginesFunction | |
20 //////////////////////////////////////////////////////////////////////////////// | |
stevenjb
2015/04/23 17:26:00
nit: Not sure if this was copied from somewhere, b
Oren Blasberg
2015/04/23 21:31:51
Done.
| |
21 | |
22 SearchEnginesPrivateGetDefaultSearchEnginesFunction:: | |
23 SearchEnginesPrivateGetDefaultSearchEnginesFunction() | |
24 : chrome_details_(this) { | |
25 } | |
26 | |
27 SearchEnginesPrivateGetDefaultSearchEnginesFunction:: | |
28 ~SearchEnginesPrivateGetDefaultSearchEnginesFunction() { | |
29 } | |
30 | |
31 ExtensionFunction::ResponseAction | |
32 SearchEnginesPrivateGetDefaultSearchEnginesFunction::Run() { | |
33 TemplateURLService* template_url_service = | |
34 TemplateURLServiceFactory::GetForProfile(chrome_details_.GetProfile()); | |
35 base::ListValue* engines = new base::ListValue(); | |
36 | |
37 const TemplateURL* default_url = | |
38 template_url_service->GetDefaultSearchProvider(); | |
39 std::vector<TemplateURL*> urls = template_url_service->GetTemplateURLs(); | |
40 for (size_t i = 0; i < urls.size(); i++) { | |
stevenjb
2015/04/23 17:26:00
nit: for (TemplateURL* url : urls)
Oren Blasberg
2015/04/23 21:31:51
Done.
| |
41 api::search_engines_private::SearchEngine* engine = | |
42 new api::search_engines_private::SearchEngine(); | |
43 engine->guid = urls[i]->sync_guid(); | |
44 engine->name = UTF16ToASCII(urls[i]->short_name()); | |
45 engine->is_selected = urls[i] == default_url; | |
46 | |
47 engines->Append(engine->ToValue().release()); | |
48 } | |
49 | |
50 return RespondNow(OneArgument(engines)); | |
51 } | |
52 | |
53 //////////////////////////////////////////////////////////////////////////////// | |
54 // SearchEnginesPrivateSetSelectedSearchEngineFunction | |
55 //////////////////////////////////////////////////////////////////////////////// | |
56 | |
57 SearchEnginesPrivateSetSelectedSearchEngineFunction:: | |
58 SearchEnginesPrivateSetSelectedSearchEngineFunction() | |
59 : chrome_details_(this) { | |
60 } | |
61 | |
62 SearchEnginesPrivateSetSelectedSearchEngineFunction:: | |
63 ~SearchEnginesPrivateSetSelectedSearchEngineFunction() { | |
64 } | |
65 | |
66 ExtensionFunction::ResponseAction | |
67 SearchEnginesPrivateSetSelectedSearchEngineFunction::Run() { | |
68 scoped_ptr<api::search_engines_private::SetSelectedSearchEngine::Params> | |
69 parameters = | |
70 api::search_engines_private::SetSelectedSearchEngine::Params::Create( | |
71 *args_); | |
72 EXTENSION_FUNCTION_VALIDATE(parameters.get()); | |
73 | |
74 TemplateURLService* template_url_service = | |
75 TemplateURLServiceFactory::GetForProfile(chrome_details_.GetProfile()); | |
76 template_url_service->SetUserSelectedDefaultSearchProvider( | |
77 template_url_service->GetTemplateURLForGUID(parameters->guid)); | |
78 return RespondNow(NoArguments()); | |
79 } | |
80 | |
81 } // namespace extensions | |
OLD | NEW |