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

Unified 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/extensions/extensions_ui.h ('k') | chrome/browser/resources/extensions_ui.html » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/extensions/extensions_ui.cc
===================================================================
--- chrome/browser/extensions/extensions_ui.cc (revision 29288)
+++ chrome/browser/extensions/extensions_ui.cc (working copy)
@@ -8,6 +8,7 @@
#include "app/resource_bundle.h"
#include "base/string_util.h"
#include "base/thread.h"
+#include "chrome/browser/browser.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/chrome_thread.h"
#include "chrome/browser/debugger/devtools_manager.h"
@@ -95,6 +96,8 @@
NewCallback(this, &ExtensionsDOMHandler::HandleEnableMessage));
dom_ui_->RegisterMessageCallback("uninstall",
NewCallback(this, &ExtensionsDOMHandler::HandleUninstallMessage));
+ dom_ui_->RegisterMessageCallback("options",
+ NewCallback(this, &ExtensionsDOMHandler::HandleOptionsMessage));
dom_ui_->RegisterMessageCallback("load",
NewCallback(this, &ExtensionsDOMHandler::HandleLoadMessage));
dom_ui_->RegisterMessageCallback("pack",
@@ -198,6 +201,22 @@
extensions_service_->UninstallExtension(extension_id, false);
}
+void ExtensionsDOMHandler::HandleOptionsMessage(const Value* value) {
+ CHECK(value->IsType(Value::TYPE_LIST));
+ const ListValue* list = static_cast<const ListValue*>(value);
+ CHECK(list->GetSize() == 1);
+ std::string extension_id;
+ CHECK(list->GetString(0, &extension_id));
+ Extension *extension = extensions_service_->GetExtensionById(extension_id);
+ if (!extension || extension->options_url().is_empty()) {
+ return;
+ }
+ Browser* browser = Browser::GetOrCreateTabbedBrowser(dom_ui_->GetProfile());
+ CHECK(browser);
+ browser->OpenURL(extension->options_url(), GURL(), NEW_FOREGROUND_TAB,
+ PageTransition::LINK);
+}
+
void ExtensionsDOMHandler::HandleLoadMessage(const Value* value) {
std::string string_path;
CHECK(value->IsType(Value::TYPE_LIST));
@@ -399,6 +418,9 @@
extension_data->SetString(L"description", extension->description());
extension_data->SetString(L"version", extension->version()->GetString());
extension_data->SetBoolean(L"enabled", enabled);
+ if (!extension->options_url().is_empty()) {
+ extension_data->SetString(L"options_url", extension->options_url().spec());
+ }
// Add list of content_script detail DictionaryValues
ListValue *content_script_list = new ListValue();
« 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