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

Side by Side Diff: chrome/browser/extensions/extensions_ui.cc

Issue 271114: Add concept of an options page to Extensions.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 2 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 | Annotate | Revision Log
« no previous file with comments | « chrome/browser/extensions/extensions_ui.h ('k') | chrome/browser/resources/extensions_ui.html » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
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
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 }
OLDNEW
« no previous file with comments | « chrome/browser/extensions/extensions_ui.h ('k') | chrome/browser/resources/extensions_ui.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698