| 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" |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 70 : extensions_service_(extension_service) { | 70 : extensions_service_(extension_service) { |
| 71 } | 71 } |
| 72 | 72 |
| 73 void ExtensionsDOMHandler::RegisterMessages() { | 73 void ExtensionsDOMHandler::RegisterMessages() { |
| 74 dom_ui_->RegisterMessageCallback("requestExtensionsData", | 74 dom_ui_->RegisterMessageCallback("requestExtensionsData", |
| 75 NewCallback(this, &ExtensionsDOMHandler::HandleRequestExtensionsData)); | 75 NewCallback(this, &ExtensionsDOMHandler::HandleRequestExtensionsData)); |
| 76 dom_ui_->RegisterMessageCallback("inspect", | 76 dom_ui_->RegisterMessageCallback("inspect", |
| 77 NewCallback(this, &ExtensionsDOMHandler::HandleInspectMessage)); | 77 NewCallback(this, &ExtensionsDOMHandler::HandleInspectMessage)); |
| 78 dom_ui_->RegisterMessageCallback("reload", | 78 dom_ui_->RegisterMessageCallback("reload", |
| 79 NewCallback(this, &ExtensionsDOMHandler::HandleReloadMessage)); | 79 NewCallback(this, &ExtensionsDOMHandler::HandleReloadMessage)); |
| 80 dom_ui_->RegisterMessageCallback("enable", |
| 81 NewCallback(this, &ExtensionsDOMHandler::HandleEnableMessage)); |
| 80 dom_ui_->RegisterMessageCallback("uninstall", | 82 dom_ui_->RegisterMessageCallback("uninstall", |
| 81 NewCallback(this, &ExtensionsDOMHandler::HandleUninstallMessage)); | 83 NewCallback(this, &ExtensionsDOMHandler::HandleUninstallMessage)); |
| 82 } | 84 } |
| 83 | 85 |
| 84 void ExtensionsDOMHandler::HandleRequestExtensionsData(const Value* value) { | 86 void ExtensionsDOMHandler::HandleRequestExtensionsData(const Value* value) { |
| 85 DictionaryValue results; | 87 DictionaryValue results; |
| 86 | 88 |
| 87 // Add the extensions to the results structure. | 89 // Add the extensions to the results structure. |
| 88 ListValue *extensions_list = new ListValue(); | 90 ListValue *extensions_list = new ListValue(); |
| 89 const ExtensionList* extensions = extensions_service_->extensions(); | 91 const ExtensionList* extensions = extensions_service_->extensions(); |
| 90 for (ExtensionList::const_iterator extension = extensions->begin(); | 92 for (ExtensionList::const_iterator extension = extensions->begin(); |
| 91 extension != extensions->end(); ++extension) { | 93 extension != extensions->end(); ++extension) { |
| 92 // Don't show the themes since this page's UI isn't really useful for | 94 // Don't show the themes since this page's UI isn't really useful for |
| 93 // themes. | 95 // themes. |
| 94 if (!(*extension)->IsTheme()) { | 96 if (!(*extension)->IsTheme()) { |
| 95 extensions_list->Append(CreateExtensionDetailValue( | 97 extensions_list->Append(CreateExtensionDetailValue( |
| 96 *extension, GetActivePagesForExtension((*extension)->id()))); | 98 *extension, GetActivePagesForExtension((*extension)->id()), true)); |
| 99 } |
| 100 } |
| 101 extensions = extensions_service_->disabled_extensions(); |
| 102 for (ExtensionList::const_iterator extension = extensions->begin(); |
| 103 extension != extensions->end(); ++extension) { |
| 104 if (!(*extension)->IsTheme()) { |
| 105 extensions_list->Append(CreateExtensionDetailValue( |
| 106 *extension, GetActivePagesForExtension((*extension)->id()), false)); |
| 97 } | 107 } |
| 98 } | 108 } |
| 99 results.Set(L"extensions", extensions_list); | 109 results.Set(L"extensions", extensions_list); |
| 100 | 110 |
| 101 dom_ui_->CallJavascriptFunction(L"returnExtensionsData", results); | 111 dom_ui_->CallJavascriptFunction(L"returnExtensionsData", results); |
| 102 } | 112 } |
| 103 | 113 |
| 104 void ExtensionsDOMHandler::HandleInspectMessage(const Value* value) { | 114 void ExtensionsDOMHandler::HandleInspectMessage(const Value* value) { |
| 105 std::string render_process_id_str; | 115 std::string render_process_id_str; |
| 106 std::string render_view_id_str; | 116 std::string render_view_id_str; |
| (...skipping 18 matching lines...) Expand all Loading... |
| 125 | 135 |
| 126 void ExtensionsDOMHandler::HandleReloadMessage(const Value* value) { | 136 void ExtensionsDOMHandler::HandleReloadMessage(const Value* value) { |
| 127 CHECK(value->IsType(Value::TYPE_LIST)); | 137 CHECK(value->IsType(Value::TYPE_LIST)); |
| 128 const ListValue* list = static_cast<const ListValue*>(value); | 138 const ListValue* list = static_cast<const ListValue*>(value); |
| 129 CHECK(list->GetSize() == 1); | 139 CHECK(list->GetSize() == 1); |
| 130 std::string extension_id; | 140 std::string extension_id; |
| 131 CHECK(list->GetString(0, &extension_id)); | 141 CHECK(list->GetString(0, &extension_id)); |
| 132 extensions_service_->ReloadExtension(extension_id); | 142 extensions_service_->ReloadExtension(extension_id); |
| 133 } | 143 } |
| 134 | 144 |
| 145 void ExtensionsDOMHandler::HandleEnableMessage(const Value* value) { |
| 146 CHECK(value->IsType(Value::TYPE_LIST)); |
| 147 const ListValue* list = static_cast<const ListValue*>(value); |
| 148 CHECK(list->GetSize() == 1); |
| 149 std::string extension_id; |
| 150 CHECK(list->GetString(0, &extension_id)); |
| 151 extensions_service_->EnableExtension(extension_id); |
| 152 } |
| 153 |
| 135 void ExtensionsDOMHandler::HandleUninstallMessage(const Value* value) { | 154 void ExtensionsDOMHandler::HandleUninstallMessage(const Value* value) { |
| 136 CHECK(value->IsType(Value::TYPE_LIST)); | 155 CHECK(value->IsType(Value::TYPE_LIST)); |
| 137 const ListValue* list = static_cast<const ListValue*>(value); | 156 const ListValue* list = static_cast<const ListValue*>(value); |
| 138 CHECK(list->GetSize() == 1); | 157 CHECK(list->GetSize() == 1); |
| 139 std::string extension_id; | 158 std::string extension_id; |
| 140 CHECK(list->GetString(0, &extension_id)); | 159 CHECK(list->GetString(0, &extension_id)); |
| 141 extensions_service_->UninstallExtension(extension_id, false); | 160 extensions_service_->UninstallExtension(extension_id, false); |
| 142 } | 161 } |
| 143 | 162 |
| 144 static void CreateScriptFileDetailValue( | 163 static void CreateScriptFileDetailValue( |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 180 url_pattern_list->Append(new StringValue(url_pattern->GetAsString())); | 199 url_pattern_list->Append(new StringValue(url_pattern->GetAsString())); |
| 181 } | 200 } |
| 182 | 201 |
| 183 script_data->Set(L"matches", url_pattern_list); | 202 script_data->Set(L"matches", url_pattern_list); |
| 184 | 203 |
| 185 return script_data; | 204 return script_data; |
| 186 } | 205 } |
| 187 | 206 |
| 188 // Static | 207 // Static |
| 189 DictionaryValue* ExtensionsDOMHandler::CreateExtensionDetailValue( | 208 DictionaryValue* ExtensionsDOMHandler::CreateExtensionDetailValue( |
| 190 const Extension *extension, const std::vector<ExtensionPage>& pages) { | 209 const Extension *extension, const std::vector<ExtensionPage>& pages, |
| 210 bool enabled) { |
| 191 DictionaryValue* extension_data = new DictionaryValue(); | 211 DictionaryValue* extension_data = new DictionaryValue(); |
| 192 | 212 |
| 193 extension_data->SetString(L"id", extension->id()); | 213 extension_data->SetString(L"id", extension->id()); |
| 194 extension_data->SetString(L"name", extension->name()); | 214 extension_data->SetString(L"name", extension->name()); |
| 195 extension_data->SetString(L"description", extension->description()); | 215 extension_data->SetString(L"description", extension->description()); |
| 196 extension_data->SetString(L"version", extension->version()->GetString()); | 216 extension_data->SetString(L"version", extension->version()->GetString()); |
| 217 extension_data->SetBoolean(L"enabled", enabled); |
| 197 | 218 |
| 198 // Add list of content_script detail DictionaryValues | 219 // Add list of content_script detail DictionaryValues |
| 199 ListValue *content_script_list = new ListValue(); | 220 ListValue *content_script_list = new ListValue(); |
| 200 UserScriptList content_scripts = extension->content_scripts(); | 221 UserScriptList content_scripts = extension->content_scripts(); |
| 201 for (UserScriptList::const_iterator script = content_scripts.begin(); | 222 for (UserScriptList::const_iterator script = content_scripts.begin(); |
| 202 script != content_scripts.end(); ++script) { | 223 script != content_scripts.end(); ++script) { |
| 203 content_script_list->Append(CreateContentScriptDetailValue(*script, | 224 content_script_list->Append(CreateContentScriptDetailValue(*script, |
| 204 extension->path())); | 225 extension->path())); |
| 205 } | 226 } |
| 206 extension_data->Set(L"content_scripts", content_script_list); | 227 extension_data->Set(L"content_scripts", content_script_list); |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 263 AddMessageHandler(handler); | 284 AddMessageHandler(handler); |
| 264 handler->Attach(this); | 285 handler->Attach(this); |
| 265 | 286 |
| 266 ExtensionsUIHTMLSource* html_source = new ExtensionsUIHTMLSource(); | 287 ExtensionsUIHTMLSource* html_source = new ExtensionsUIHTMLSource(); |
| 267 | 288 |
| 268 // Set up the chrome://extensions/ source. | 289 // Set up the chrome://extensions/ source. |
| 269 g_browser_process->io_thread()->message_loop()->PostTask(FROM_HERE, | 290 g_browser_process->io_thread()->message_loop()->PostTask(FROM_HERE, |
| 270 NewRunnableMethod(&chrome_url_data_manager, | 291 NewRunnableMethod(&chrome_url_data_manager, |
| 271 &ChromeURLDataManager::AddDataSource, html_source)); | 292 &ChromeURLDataManager::AddDataSource, html_source)); |
| 272 } | 293 } |
| OLD | NEW |