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

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

Issue 165414: Disable an extension when it is upgraded to a version that requires more (Closed)
Patch Set: more comments Created 11 years, 4 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
« 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"
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
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
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
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
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 }
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