OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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/ui/webui/settings/search_engines_handler.h" | 5 #include "chrome/browser/ui/webui/settings/search_engines_handler.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/memory/ptr_util.h" | 8 #include "base/memory/ptr_util.h" |
9 #include "base/strings/string_number_conversions.h" | 9 #include "base/strings/string_number_conversions.h" |
10 #include "base/strings/utf_string_conversions.h" | 10 #include "base/strings/utf_string_conversions.h" |
11 #include "base/values.h" | 11 #include "base/values.h" |
12 #include "chrome/browser/extensions/extension_service.h" | |
13 #include "chrome/browser/extensions/extension_util.h" | 12 #include "chrome/browser/extensions/extension_util.h" |
14 #include "chrome/browser/profiles/profile.h" | 13 #include "chrome/browser/profiles/profile.h" |
15 #include "chrome/browser/search_engines/ui_thread_search_terms_data.h" | 14 #include "chrome/browser/search_engines/ui_thread_search_terms_data.h" |
16 #include "chrome/browser/ui/search_engines/template_url_table_model.h" | 15 #include "chrome/browser/ui/search_engines/template_url_table_model.h" |
17 #include "chrome/common/url_constants.h" | 16 #include "chrome/common/url_constants.h" |
18 #include "chrome/grit/generated_resources.h" | 17 #include "chrome/grit/generated_resources.h" |
19 #include "components/search_engines/template_url.h" | 18 #include "components/search_engines/template_url.h" |
20 #include "components/search_engines/template_url_service.h" | 19 #include "components/search_engines/template_url_service.h" |
21 #include "content/public/browser/user_metrics.h" | 20 #include "content/public/browser/user_metrics.h" |
22 #include "content/public/browser/web_ui.h" | 21 #include "content/public/browser/web_ui.h" |
23 #include "extensions/browser/extension_registry.h" | 22 #include "extensions/browser/extension_registry.h" |
24 #include "extensions/browser/extension_system.h" | |
25 #include "extensions/common/extension.h" | 23 #include "extensions/common/extension.h" |
26 | 24 |
27 namespace { | 25 namespace { |
28 // The following strings need to match with the IDs of the paper-input elements | 26 // The following strings need to match with the IDs of the paper-input elements |
29 // at settings/search_engines_page/add_search_engine_dialog.html. | 27 // at settings/search_engines_page/add_search_engine_dialog.html. |
30 const char kSearchEngineField[] = "searchEngine"; | 28 const char kSearchEngineField[] = "searchEngine"; |
31 const char kKeywordField[] = "keyword"; | 29 const char kKeywordField[] = "keyword"; |
32 const char kQueryUrlField[] = "queryUrl"; | 30 const char kQueryUrlField[] = "queryUrl"; |
33 | 31 |
34 // Dummy number used for indicating that a new search engine is added. | 32 // Dummy number used for indicating that a new search engine is added. |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
68 base::Bind(&SearchEnginesHandler::HandleSearchEngineEditStarted, | 66 base::Bind(&SearchEnginesHandler::HandleSearchEngineEditStarted, |
69 base::Unretained(this))); | 67 base::Unretained(this))); |
70 web_ui()->RegisterMessageCallback( | 68 web_ui()->RegisterMessageCallback( |
71 "searchEngineEditCancelled", | 69 "searchEngineEditCancelled", |
72 base::Bind(&SearchEnginesHandler::HandleSearchEngineEditCancelled, | 70 base::Bind(&SearchEnginesHandler::HandleSearchEngineEditCancelled, |
73 base::Unretained(this))); | 71 base::Unretained(this))); |
74 web_ui()->RegisterMessageCallback( | 72 web_ui()->RegisterMessageCallback( |
75 "searchEngineEditCompleted", | 73 "searchEngineEditCompleted", |
76 base::Bind(&SearchEnginesHandler::HandleSearchEngineEditCompleted, | 74 base::Bind(&SearchEnginesHandler::HandleSearchEngineEditCompleted, |
77 base::Unretained(this))); | 75 base::Unretained(this))); |
78 web_ui()->RegisterMessageCallback( | |
79 "disableExtension", | |
80 base::Bind(&SearchEnginesHandler::HandleDisableExtension, | |
81 base::Unretained(this))); | |
82 } | 76 } |
83 | 77 |
84 void SearchEnginesHandler::OnJavascriptAllowed() { | 78 void SearchEnginesHandler::OnJavascriptAllowed() { |
85 list_controller_.table_model()->SetObserver(this); | 79 list_controller_.table_model()->SetObserver(this); |
86 } | 80 } |
87 | 81 |
88 void SearchEnginesHandler::OnJavascriptDisallowed() { | 82 void SearchEnginesHandler::OnJavascriptDisallowed() { |
89 list_controller_.table_model()->SetObserver(nullptr); | 83 list_controller_.table_model()->SetObserver(nullptr); |
90 } | 84 } |
91 | 85 |
(...skipping 238 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
330 // Recheck validity. It's possible to get here with invalid input if e.g. the | 324 // Recheck validity. It's possible to get here with invalid input if e.g. the |
331 // user calls the right JS functions directly from the web inspector. | 325 // user calls the right JS functions directly from the web inspector. |
332 if (CheckFieldValidity(kSearchEngineField, search_engine) && | 326 if (CheckFieldValidity(kSearchEngineField, search_engine) && |
333 CheckFieldValidity(kKeywordField, keyword) && | 327 CheckFieldValidity(kKeywordField, keyword) && |
334 CheckFieldValidity(kQueryUrlField, query_url)) { | 328 CheckFieldValidity(kQueryUrlField, query_url)) { |
335 edit_controller_->AcceptAddOrEdit(base::UTF8ToUTF16(search_engine), | 329 edit_controller_->AcceptAddOrEdit(base::UTF8ToUTF16(search_engine), |
336 base::UTF8ToUTF16(keyword), query_url); | 330 base::UTF8ToUTF16(keyword), query_url); |
337 } | 331 } |
338 } | 332 } |
339 | 333 |
340 void SearchEnginesHandler::HandleDisableExtension( | |
341 const base::ListValue* args) { | |
342 std::string extension_id; | |
343 CHECK(args->GetString(0, &extension_id)); | |
344 ExtensionService* extension_service = | |
345 extensions::ExtensionSystem::Get(profile_)->extension_service(); | |
346 DCHECK(extension_service); | |
347 extension_service->DisableExtension( | |
348 extension_id, extensions::Extension::DISABLE_USER_ACTION); | |
349 } | |
350 | |
351 } // namespace settings | 334 } // namespace settings |
OLD | NEW |