| OLD | NEW |
| 1 // Copyright (c) 2006-2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2009 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/extensions_ui.h" | 5 #include "chrome/browser/extensions/extensions_ui.h" |
| 6 | 6 |
| 7 #include "app/l10n_util.h" | 7 #include "app/l10n_util.h" |
| 8 #include "app/resource_bundle.h" | 8 #include "app/resource_bundle.h" |
| 9 #include "base/string_util.h" | 9 #include "base/string_util.h" |
| 10 #include "base/thread.h" | 10 #include "base/thread.h" |
| 11 #include "chrome/browser/browser.h" |
| 11 #include "chrome/browser/browser_process.h" | 12 #include "chrome/browser/browser_process.h" |
| 12 #include "chrome/browser/chrome_thread.h" | 13 #include "chrome/browser/chrome_thread.h" |
| 13 #include "chrome/browser/debugger/devtools_manager.h" | 14 #include "chrome/browser/debugger/devtools_manager.h" |
| 14 #include "chrome/browser/extensions/extension_function_dispatcher.h" | 15 #include "chrome/browser/extensions/extension_function_dispatcher.h" |
| 15 #include "chrome/browser/extensions/extension_message_service.h" | 16 #include "chrome/browser/extensions/extension_message_service.h" |
| 16 #include "chrome/browser/extensions/extensions_service.h" | 17 #include "chrome/browser/extensions/extensions_service.h" |
| 17 #include "chrome/browser/extensions/extension_updater.h" | 18 #include "chrome/browser/extensions/extension_updater.h" |
| 18 #include "chrome/browser/profile.h" | 19 #include "chrome/browser/profile.h" |
| 19 #include "chrome/browser/renderer_host/render_process_host.h" | 20 #include "chrome/browser/renderer_host/render_process_host.h" |
| 20 #include "chrome/browser/renderer_host/render_widget_host.h" | 21 #include "chrome/browser/renderer_host/render_widget_host.h" |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 88 dom_ui_->RegisterMessageCallback("requestExtensionsData", | 89 dom_ui_->RegisterMessageCallback("requestExtensionsData", |
| 89 NewCallback(this, &ExtensionsDOMHandler::HandleRequestExtensionsData)); | 90 NewCallback(this, &ExtensionsDOMHandler::HandleRequestExtensionsData)); |
| 90 dom_ui_->RegisterMessageCallback("inspect", | 91 dom_ui_->RegisterMessageCallback("inspect", |
| 91 NewCallback(this, &ExtensionsDOMHandler::HandleInspectMessage)); | 92 NewCallback(this, &ExtensionsDOMHandler::HandleInspectMessage)); |
| 92 dom_ui_->RegisterMessageCallback("reload", | 93 dom_ui_->RegisterMessageCallback("reload", |
| 93 NewCallback(this, &ExtensionsDOMHandler::HandleReloadMessage)); | 94 NewCallback(this, &ExtensionsDOMHandler::HandleReloadMessage)); |
| 94 dom_ui_->RegisterMessageCallback("enable", | 95 dom_ui_->RegisterMessageCallback("enable", |
| 95 NewCallback(this, &ExtensionsDOMHandler::HandleEnableMessage)); | 96 NewCallback(this, &ExtensionsDOMHandler::HandleEnableMessage)); |
| 96 dom_ui_->RegisterMessageCallback("uninstall", | 97 dom_ui_->RegisterMessageCallback("uninstall", |
| 97 NewCallback(this, &ExtensionsDOMHandler::HandleUninstallMessage)); | 98 NewCallback(this, &ExtensionsDOMHandler::HandleUninstallMessage)); |
| 99 dom_ui_->RegisterMessageCallback("options", |
| 100 NewCallback(this, &ExtensionsDOMHandler::HandleOptionsMessage)); |
| 98 dom_ui_->RegisterMessageCallback("load", | 101 dom_ui_->RegisterMessageCallback("load", |
| 99 NewCallback(this, &ExtensionsDOMHandler::HandleLoadMessage)); | 102 NewCallback(this, &ExtensionsDOMHandler::HandleLoadMessage)); |
| 100 dom_ui_->RegisterMessageCallback("pack", | 103 dom_ui_->RegisterMessageCallback("pack", |
| 101 NewCallback(this, &ExtensionsDOMHandler::HandlePackMessage)); | 104 NewCallback(this, &ExtensionsDOMHandler::HandlePackMessage)); |
| 102 dom_ui_->RegisterMessageCallback("autoupdate", | 105 dom_ui_->RegisterMessageCallback("autoupdate", |
| 103 NewCallback(this, &ExtensionsDOMHandler::HandleAutoUpdateMessage)); | 106 NewCallback(this, &ExtensionsDOMHandler::HandleAutoUpdateMessage)); |
| 104 dom_ui_->RegisterMessageCallback("selectFilePath", | 107 dom_ui_->RegisterMessageCallback("selectFilePath", |
| 105 NewCallback(this, &ExtensionsDOMHandler::HandleSelectFilePathMessage)); | 108 NewCallback(this, &ExtensionsDOMHandler::HandleSelectFilePathMessage)); |
| 106 } | 109 } |
| 107 | 110 |
| (...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 191 | 194 |
| 192 void ExtensionsDOMHandler::HandleUninstallMessage(const Value* value) { | 195 void ExtensionsDOMHandler::HandleUninstallMessage(const Value* value) { |
| 193 CHECK(value->IsType(Value::TYPE_LIST)); | 196 CHECK(value->IsType(Value::TYPE_LIST)); |
| 194 const ListValue* list = static_cast<const ListValue*>(value); | 197 const ListValue* list = static_cast<const ListValue*>(value); |
| 195 CHECK(list->GetSize() == 1); | 198 CHECK(list->GetSize() == 1); |
| 196 std::string extension_id; | 199 std::string extension_id; |
| 197 CHECK(list->GetString(0, &extension_id)); | 200 CHECK(list->GetString(0, &extension_id)); |
| 198 extensions_service_->UninstallExtension(extension_id, false); | 201 extensions_service_->UninstallExtension(extension_id, false); |
| 199 } | 202 } |
| 200 | 203 |
| 204 void ExtensionsDOMHandler::HandleOptionsMessage(const Value* value) { |
| 205 CHECK(value->IsType(Value::TYPE_LIST)); |
| 206 const ListValue* list = static_cast<const ListValue*>(value); |
| 207 CHECK(list->GetSize() == 1); |
| 208 std::string extension_id; |
| 209 CHECK(list->GetString(0, &extension_id)); |
| 210 Extension *extension = extensions_service_->GetExtensionById(extension_id); |
| 211 if (!extension || extension->options_url().is_empty()) { |
| 212 return; |
| 213 } |
| 214 Browser* browser = Browser::GetOrCreateTabbedBrowser(dom_ui_->GetProfile()); |
| 215 CHECK(browser); |
| 216 browser->OpenURL(extension->options_url(), GURL(), NEW_FOREGROUND_TAB, |
| 217 PageTransition::LINK); |
| 218 } |
| 219 |
| 201 void ExtensionsDOMHandler::HandleLoadMessage(const Value* value) { | 220 void ExtensionsDOMHandler::HandleLoadMessage(const Value* value) { |
| 202 std::string string_path; | 221 std::string string_path; |
| 203 CHECK(value->IsType(Value::TYPE_LIST)); | 222 CHECK(value->IsType(Value::TYPE_LIST)); |
| 204 const ListValue* list = static_cast<const ListValue*>(value); | 223 const ListValue* list = static_cast<const ListValue*>(value); |
| 205 CHECK(list->GetSize() == 1) << list->GetSize(); | 224 CHECK(list->GetSize() == 1) << list->GetSize(); |
| 206 CHECK(list->GetString(0, &string_path)); | 225 CHECK(list->GetString(0, &string_path)); |
| 207 FilePath file_path = FilePath::FromWStringHack(ASCIIToWide(string_path)); | 226 FilePath file_path = FilePath::FromWStringHack(ASCIIToWide(string_path)); |
| 208 extensions_service_->LoadExtension(file_path); | 227 extensions_service_->LoadExtension(file_path); |
| 209 } | 228 } |
| 210 | 229 |
| (...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 392 DictionaryValue* ExtensionsDOMHandler::CreateExtensionDetailValue( | 411 DictionaryValue* ExtensionsDOMHandler::CreateExtensionDetailValue( |
| 393 const Extension *extension, const std::vector<ExtensionPage>& pages, | 412 const Extension *extension, const std::vector<ExtensionPage>& pages, |
| 394 bool enabled) { | 413 bool enabled) { |
| 395 DictionaryValue* extension_data = new DictionaryValue(); | 414 DictionaryValue* extension_data = new DictionaryValue(); |
| 396 | 415 |
| 397 extension_data->SetString(L"id", extension->id()); | 416 extension_data->SetString(L"id", extension->id()); |
| 398 extension_data->SetString(L"name", extension->name()); | 417 extension_data->SetString(L"name", extension->name()); |
| 399 extension_data->SetString(L"description", extension->description()); | 418 extension_data->SetString(L"description", extension->description()); |
| 400 extension_data->SetString(L"version", extension->version()->GetString()); | 419 extension_data->SetString(L"version", extension->version()->GetString()); |
| 401 extension_data->SetBoolean(L"enabled", enabled); | 420 extension_data->SetBoolean(L"enabled", enabled); |
| 421 if (!extension->options_url().is_empty()) { |
| 422 extension_data->SetString(L"options_url", extension->options_url().spec()); |
| 423 } |
| 402 | 424 |
| 403 // Add list of content_script detail DictionaryValues | 425 // Add list of content_script detail DictionaryValues |
| 404 ListValue *content_script_list = new ListValue(); | 426 ListValue *content_script_list = new ListValue(); |
| 405 UserScriptList content_scripts = extension->content_scripts(); | 427 UserScriptList content_scripts = extension->content_scripts(); |
| 406 for (UserScriptList::const_iterator script = content_scripts.begin(); | 428 for (UserScriptList::const_iterator script = content_scripts.begin(); |
| 407 script != content_scripts.end(); ++script) { | 429 script != content_scripts.end(); ++script) { |
| 408 content_script_list->Append( | 430 content_script_list->Append( |
| 409 CreateContentScriptDetailValue(*script, extension->path())); | 431 CreateContentScriptDetailValue(*script, extension->path())); |
| 410 } | 432 } |
| 411 extension_data->Set(L"content_scripts", content_script_list); | 433 extension_data->Set(L"content_scripts", content_script_list); |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 470 AddMessageHandler(handler); | 492 AddMessageHandler(handler); |
| 471 handler->Attach(this); | 493 handler->Attach(this); |
| 472 | 494 |
| 473 ExtensionsUIHTMLSource* html_source = new ExtensionsUIHTMLSource(); | 495 ExtensionsUIHTMLSource* html_source = new ExtensionsUIHTMLSource(); |
| 474 | 496 |
| 475 // Set up the chrome://extensions/ source. | 497 // Set up the chrome://extensions/ source. |
| 476 g_browser_process->io_thread()->message_loop()->PostTask(FROM_HERE, | 498 g_browser_process->io_thread()->message_loop()->PostTask(FROM_HERE, |
| 477 NewRunnableMethod(&chrome_url_data_manager, | 499 NewRunnableMethod(&chrome_url_data_manager, |
| 478 &ChromeURLDataManager::AddDataSource, html_source)); | 500 &ChromeURLDataManager::AddDataSource, html_source)); |
| 479 } | 501 } |
| OLD | NEW |