| 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/strings/string_number_conversions.h" | 9 #include "base/strings/string_number_conversions.h" |
| 9 #include "base/strings/utf_string_conversions.h" | 10 #include "base/strings/utf_string_conversions.h" |
| 10 #include "base/values.h" | 11 #include "base/values.h" |
| 11 #include "chrome/browser/extensions/extension_service.h" | 12 #include "chrome/browser/extensions/extension_service.h" |
| 12 #include "chrome/browser/extensions/extension_util.h" | 13 #include "chrome/browser/extensions/extension_util.h" |
| 13 #include "chrome/browser/profiles/profile.h" | 14 #include "chrome/browser/profiles/profile.h" |
| 14 #include "chrome/browser/search_engines/ui_thread_search_terms_data.h" | 15 #include "chrome/browser/search_engines/ui_thread_search_terms_data.h" |
| 15 #include "chrome/browser/ui/search_engines/keyword_editor_controller.h" | 16 #include "chrome/browser/ui/search_engines/keyword_editor_controller.h" |
| 16 #include "chrome/browser/ui/search_engines/template_url_table_model.h" | 17 #include "chrome/browser/ui/search_engines/template_url_table_model.h" |
| 17 #include "chrome/common/url_constants.h" | 18 #include "chrome/common/url_constants.h" |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 78 web_ui()->RegisterMessageCallback( | 79 web_ui()->RegisterMessageCallback( |
| 79 "searchEngineEditCompleted", | 80 "searchEngineEditCompleted", |
| 80 base::Bind(&SearchEnginesHandler::HandleSearchEngineEditCompleted, | 81 base::Bind(&SearchEnginesHandler::HandleSearchEngineEditCompleted, |
| 81 base::Unretained(this))); | 82 base::Unretained(this))); |
| 82 web_ui()->RegisterMessageCallback( | 83 web_ui()->RegisterMessageCallback( |
| 83 "disableExtension", | 84 "disableExtension", |
| 84 base::Bind(&SearchEnginesHandler::HandleDisableExtension, | 85 base::Bind(&SearchEnginesHandler::HandleDisableExtension, |
| 85 base::Unretained(this))); | 86 base::Unretained(this))); |
| 86 } | 87 } |
| 87 | 88 |
| 88 scoped_ptr<base::DictionaryValue> SearchEnginesHandler::GetSearchEnginesList() { | 89 std::unique_ptr<base::DictionaryValue> |
| 90 SearchEnginesHandler::GetSearchEnginesList() { |
| 89 DCHECK(list_controller_.get()); | 91 DCHECK(list_controller_.get()); |
| 90 // Find the default engine. | 92 // Find the default engine. |
| 91 const TemplateURL* default_engine = | 93 const TemplateURL* default_engine = |
| 92 list_controller_->GetDefaultSearchProvider(); | 94 list_controller_->GetDefaultSearchProvider(); |
| 93 int default_index = | 95 int default_index = |
| 94 list_controller_->table_model()->IndexOfTemplateURL(default_engine); | 96 list_controller_->table_model()->IndexOfTemplateURL(default_engine); |
| 95 | 97 |
| 96 // Build the first list (default search engines). | 98 // Build the first list (default search engines). |
| 97 scoped_ptr<base::ListValue> defaults = make_scoped_ptr(new base::ListValue()); | 99 std::unique_ptr<base::ListValue> defaults = |
| 100 base::WrapUnique(new base::ListValue()); |
| 98 int last_default_engine_index = | 101 int last_default_engine_index = |
| 99 list_controller_->table_model()->last_search_engine_index(); | 102 list_controller_->table_model()->last_search_engine_index(); |
| 100 for (int i = 0; i < last_default_engine_index; ++i) { | 103 for (int i = 0; i < last_default_engine_index; ++i) { |
| 101 // Third argument is false, as the engine is not from an extension. | 104 // Third argument is false, as the engine is not from an extension. |
| 102 defaults->Append(CreateDictionaryForEngine(i, i == default_index)); | 105 defaults->Append(CreateDictionaryForEngine(i, i == default_index)); |
| 103 } | 106 } |
| 104 | 107 |
| 105 // Build the second list (other search engines). | 108 // Build the second list (other search engines). |
| 106 scoped_ptr<base::ListValue> others = make_scoped_ptr(new base::ListValue()); | 109 std::unique_ptr<base::ListValue> others = |
| 110 base::WrapUnique(new base::ListValue()); |
| 107 int last_other_engine_index = | 111 int last_other_engine_index = |
| 108 list_controller_->table_model()->last_other_engine_index(); | 112 list_controller_->table_model()->last_other_engine_index(); |
| 109 for (int i = std::max(last_default_engine_index, 0); | 113 for (int i = std::max(last_default_engine_index, 0); |
| 110 i < last_other_engine_index; ++i) { | 114 i < last_other_engine_index; ++i) { |
| 111 others->Append(CreateDictionaryForEngine(i, i == default_index)); | 115 others->Append(CreateDictionaryForEngine(i, i == default_index)); |
| 112 } | 116 } |
| 113 | 117 |
| 114 // Build the third list (omnibox extensions). | 118 // Build the third list (omnibox extensions). |
| 115 scoped_ptr<base::ListValue> extensions = | 119 std::unique_ptr<base::ListValue> extensions = |
| 116 make_scoped_ptr(new base::ListValue()); | 120 base::WrapUnique(new base::ListValue()); |
| 117 int engine_count = list_controller_->table_model()->RowCount(); | 121 int engine_count = list_controller_->table_model()->RowCount(); |
| 118 for (int i = std::max(last_other_engine_index, 0); i < engine_count; ++i) { | 122 for (int i = std::max(last_other_engine_index, 0); i < engine_count; ++i) { |
| 119 extensions->Append(CreateDictionaryForEngine(i, i == default_index)); | 123 extensions->Append(CreateDictionaryForEngine(i, i == default_index)); |
| 120 } | 124 } |
| 121 | 125 |
| 122 scoped_ptr<base::DictionaryValue> search_engines_info( | 126 std::unique_ptr<base::DictionaryValue> search_engines_info( |
| 123 new base::DictionaryValue); | 127 new base::DictionaryValue); |
| 124 search_engines_info->Set("defaults", make_scoped_ptr(defaults.release())); | 128 search_engines_info->Set("defaults", base::WrapUnique(defaults.release())); |
| 125 search_engines_info->Set("others", make_scoped_ptr(others.release())); | 129 search_engines_info->Set("others", base::WrapUnique(others.release())); |
| 126 search_engines_info->Set("extensions", make_scoped_ptr(extensions.release())); | 130 search_engines_info->Set("extensions", |
| 131 base::WrapUnique(extensions.release())); |
| 127 return search_engines_info; | 132 return search_engines_info; |
| 128 } | 133 } |
| 129 | 134 |
| 130 void SearchEnginesHandler::OnModelChanged() { | 135 void SearchEnginesHandler::OnModelChanged() { |
| 131 web_ui()->CallJavascriptFunction("cr.webUIListenerCallback", | 136 web_ui()->CallJavascriptFunction("cr.webUIListenerCallback", |
| 132 base::StringValue("search-engines-changed"), | 137 base::StringValue("search-engines-changed"), |
| 133 *GetSearchEnginesList()); | 138 *GetSearchEnginesList()); |
| 134 } | 139 } |
| 135 | 140 |
| 136 void SearchEnginesHandler::OnItemsChanged(int start, int length) { | 141 void SearchEnginesHandler::OnItemsChanged(int start, int length) { |
| (...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 335 std::string extension_id; | 340 std::string extension_id; |
| 336 CHECK(args->GetString(0, &extension_id)); | 341 CHECK(args->GetString(0, &extension_id)); |
| 337 ExtensionService* extension_service = | 342 ExtensionService* extension_service = |
| 338 extensions::ExtensionSystem::Get(profile_)->extension_service(); | 343 extensions::ExtensionSystem::Get(profile_)->extension_service(); |
| 339 DCHECK(extension_service); | 344 DCHECK(extension_service); |
| 340 extension_service->DisableExtension( | 345 extension_service->DisableExtension( |
| 341 extension_id, extensions::Extension::DISABLE_USER_ACTION); | 346 extension_id, extensions::Extension::DISABLE_USER_ACTION); |
| 342 } | 347 } |
| 343 | 348 |
| 344 } // namespace settings | 349 } // namespace settings |
| OLD | NEW |