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

Side by Side Diff: chrome/browser/ui/webui/extensions/extension_settings_handler.cc

Issue 22938005: Add ErrorConsole UI for Extension Install Warnings (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@dc_ec_install_warnings
Patch Set: Yoyo's + temporarily remove *.png for apply issue Created 7 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/ui/webui/extensions/extension_settings_handler.h" 5 #include "chrome/browser/ui/webui/extensions/extension_settings_handler.h"
6 6
7 #include "apps/app_load_service.h" 7 #include "apps/app_load_service.h"
8 #include "apps/app_restore_service.h" 8 #include "apps/app_restore_service.h"
9 #include "apps/saved_files_service.h" 9 #include "apps/saved_files_service.h"
10 #include "apps/shell_window.h" 10 #include "apps/shell_window.h"
11 #include "apps/shell_window_registry.h" 11 #include "apps/shell_window_registry.h"
12 #include "base/auto_reset.h" 12 #include "base/auto_reset.h"
13 #include "base/base64.h" 13 #include "base/base64.h"
14 #include "base/bind.h" 14 #include "base/bind.h"
15 #include "base/bind_helpers.h" 15 #include "base/bind_helpers.h"
16 #include "base/command_line.h" 16 #include "base/command_line.h"
17 #include "base/prefs/pref_service.h" 17 #include "base/prefs/pref_service.h"
18 #include "base/strings/string_number_conversions.h" 18 #include "base/strings/string_number_conversions.h"
19 #include "base/strings/string_util.h" 19 #include "base/strings/string_util.h"
20 #include "base/strings/utf_string_conversions.h" 20 #include "base/strings/utf_string_conversions.h"
21 #include "base/values.h" 21 #include "base/values.h"
22 #include "base/version.h" 22 #include "base/version.h"
23 #include "chrome/browser/browser_process.h" 23 #include "chrome/browser/browser_process.h"
24 #include "chrome/browser/chrome_notification_types.h" 24 #include "chrome/browser/chrome_notification_types.h"
25 #include "chrome/browser/devtools/devtools_window.h" 25 #include "chrome/browser/devtools/devtools_window.h"
26 #include "chrome/browser/extensions/api/extension_action/extension_action_api.h" 26 #include "chrome/browser/extensions/api/extension_action/extension_action_api.h"
27 #include "chrome/browser/extensions/component_loader.h" 27 #include "chrome/browser/extensions/component_loader.h"
28 #include "chrome/browser/extensions/crx_installer.h" 28 #include "chrome/browser/extensions/crx_installer.h"
29 #include "chrome/browser/extensions/error_console/error_console.h"
29 #include "chrome/browser/extensions/extension_action_manager.h" 30 #include "chrome/browser/extensions/extension_action_manager.h"
30 #include "chrome/browser/extensions/extension_disabled_ui.h" 31 #include "chrome/browser/extensions/extension_disabled_ui.h"
31 #include "chrome/browser/extensions/extension_error_reporter.h" 32 #include "chrome/browser/extensions/extension_error_reporter.h"
32 #include "chrome/browser/extensions/extension_host.h" 33 #include "chrome/browser/extensions/extension_host.h"
33 #include "chrome/browser/extensions/extension_service.h" 34 #include "chrome/browser/extensions/extension_service.h"
34 #include "chrome/browser/extensions/extension_system.h" 35 #include "chrome/browser/extensions/extension_system.h"
35 #include "chrome/browser/extensions/extension_tab_util.h" 36 #include "chrome/browser/extensions/extension_tab_util.h"
36 #include "chrome/browser/extensions/extension_warning_set.h" 37 #include "chrome/browser/extensions/extension_warning_set.h"
37 #include "chrome/browser/extensions/lazy_background_task_queue.h" 38 #include "chrome/browser/extensions/lazy_background_task_queue.h"
38 #include "chrome/browser/extensions/management_policy.h" 39 #include "chrome/browser/extensions/management_policy.h"
(...skipping 25 matching lines...) Expand all
64 #include "content/public/browser/notification_source.h" 65 #include "content/public/browser/notification_source.h"
65 #include "content/public/browser/notification_types.h" 66 #include "content/public/browser/notification_types.h"
66 #include "content/public/browser/render_process_host.h" 67 #include "content/public/browser/render_process_host.h"
67 #include "content/public/browser/render_view_host.h" 68 #include "content/public/browser/render_view_host.h"
68 #include "content/public/browser/site_instance.h" 69 #include "content/public/browser/site_instance.h"
69 #include "content/public/browser/user_metrics.h" 70 #include "content/public/browser/user_metrics.h"
70 #include "content/public/browser/web_contents.h" 71 #include "content/public/browser/web_contents.h"
71 #include "content/public/browser/web_contents_view.h" 72 #include "content/public/browser/web_contents_view.h"
72 #include "content/public/browser/web_ui.h" 73 #include "content/public/browser/web_ui.h"
73 #include "content/public/browser/web_ui_data_source.h" 74 #include "content/public/browser/web_ui_data_source.h"
75 #include "extensions/browser/extension_error.h"
74 #include "extensions/browser/view_type_utils.h" 76 #include "extensions/browser/view_type_utils.h"
75 #include "extensions/common/constants.h" 77 #include "extensions/common/constants.h"
76 #include "grit/browser_resources.h" 78 #include "grit/browser_resources.h"
77 #include "grit/chromium_strings.h" 79 #include "grit/chromium_strings.h"
78 #include "grit/generated_resources.h" 80 #include "grit/generated_resources.h"
79 #include "grit/theme_resources.h" 81 #include "grit/theme_resources.h"
80 #include "ui/base/l10n/l10n_util.h" 82 #include "ui/base/l10n/l10n_util.h"
81 #include "ui/base/resource/resource_bundle.h" 83 #include "ui/base/resource/resource_bundle.h"
82 84
83 85 using base::DictionaryValue;
86 using base::ListValue;
84 using content::RenderViewHost; 87 using content::RenderViewHost;
85 using content::WebContents; 88 using content::WebContents;
86 89
87 namespace extensions { 90 namespace extensions {
88 91
89 ExtensionPage::ExtensionPage(const GURL& url, 92 ExtensionPage::ExtensionPage(const GURL& url,
90 int render_process_id, 93 int render_process_id,
91 int render_view_id, 94 int render_view_id,
92 bool incognito, 95 bool incognito,
93 bool generated_background_page) 96 bool generated_background_page)
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after
244 if (!warnings.empty()) { 247 if (!warnings.empty()) {
245 base::ListValue* warnings_list = new base::ListValue; 248 base::ListValue* warnings_list = new base::ListValue;
246 for (std::vector<std::string>::const_iterator iter = warnings.begin(); 249 for (std::vector<std::string>::const_iterator iter = warnings.begin();
247 iter != warnings.end(); ++iter) { 250 iter != warnings.end(); ++iter) {
248 warnings_list->Append(base::Value::CreateStringValue(*iter)); 251 warnings_list->Append(base::Value::CreateStringValue(*iter));
249 } 252 }
250 extension_data->Set("warnings", warnings_list); 253 extension_data->Set("warnings", warnings_list);
251 } 254 }
252 } 255 }
253 256
254 // Add install warnings (these are not the same as warnings!). 257 const ErrorConsole::ErrorList& errors =
255 if (Manifest::IsUnpackedLocation(extension->location())) { 258 ErrorConsole::Get(extension_service_->profile())->
256 const std::vector<InstallWarning>& install_warnings = 259 GetErrorsForExtension(extension->id());
257 extension->install_warnings(); 260 if (!errors.empty()) {
258 if (!install_warnings.empty()) { 261 scoped_ptr<ListValue> list(new ListValue);
259 scoped_ptr<base::ListValue> list(new base::ListValue()); 262 for (ErrorConsole::ErrorList::const_iterator iter = errors.begin();
260 for (std::vector<InstallWarning>::const_iterator it = 263 iter != errors.end(); ++iter) {
261 install_warnings.begin(); it != install_warnings.end(); ++it) { 264 list->Append((*iter)->ToValue().release());
262 base::DictionaryValue* item = new base::DictionaryValue();
263 item->SetString("message", it->message);
264 list->Append(item);
265 }
266 extension_data->Set("installWarnings", list.release());
267 } 265 }
266 extension_data->Set("manifestErrors", list.release());
268 } 267 }
269 268
270 return extension_data; 269 return extension_data;
271 } 270 }
272 271
273 void ExtensionSettingsHandler::GetLocalizedValues( 272 void ExtensionSettingsHandler::GetLocalizedValues(
274 content::WebUIDataSource* source) { 273 content::WebUIDataSource* source) {
275 source->AddString("extensionSettings", 274 source->AddString("extensionSettings",
276 l10n_util::GetStringUTF16(IDS_MANAGE_EXTENSIONS_SETTING_WINDOWS_TITLE)); 275 l10n_util::GetStringUTF16(IDS_MANAGE_EXTENSIONS_SETTING_WINDOWS_TITLE));
277 276
278 source->AddString("extensionSettingsDeveloperMode", 277 source->AddString("extensionSettingsDeveloperMode",
279 l10n_util::GetStringUTF16(IDS_EXTENSIONS_DEVELOPER_MODE_LINK)); 278 l10n_util::GetStringUTF16(IDS_EXTENSIONS_DEVELOPER_MODE_LINK));
280 source->AddString("extensionSettingsNoExtensions", 279 source->AddString("extensionSettingsNoExtensions",
281 l10n_util::GetStringUTF16(IDS_EXTENSIONS_NONE_INSTALLED)); 280 l10n_util::GetStringUTF16(IDS_EXTENSIONS_NONE_INSTALLED));
282 source->AddString("extensionSettingsSuggestGallery", 281 source->AddString("extensionSettingsSuggestGallery",
283 l10n_util::GetStringFUTF16(IDS_EXTENSIONS_NONE_INSTALLED_SUGGEST_GALLERY, 282 l10n_util::GetStringFUTF16(IDS_EXTENSIONS_NONE_INSTALLED_SUGGEST_GALLERY,
284 ASCIIToUTF16(google_util::AppendGoogleLocaleParam( 283 ASCIIToUTF16(google_util::AppendGoogleLocaleParam(
285 GURL(extension_urls::GetExtensionGalleryURL())).spec()))); 284 GURL(extension_urls::GetExtensionGalleryURL())).spec())));
286 source->AddString("extensionSettingsGetMoreExtensions", 285 source->AddString("extensionSettingsGetMoreExtensions",
287 l10n_util::GetStringUTF16(IDS_GET_MORE_EXTENSIONS)); 286 l10n_util::GetStringUTF16(IDS_GET_MORE_EXTENSIONS));
288 source->AddString("extensionSettingsGetMoreExtensionsUrl", 287 source->AddString("extensionSettingsGetMoreExtensionsUrl",
289 ASCIIToUTF16(google_util::AppendGoogleLocaleParam( 288 ASCIIToUTF16(google_util::AppendGoogleLocaleParam(
290 GURL(extension_urls::GetExtensionGalleryURL())).spec())); 289 GURL(extension_urls::GetExtensionGalleryURL())).spec()));
291 source->AddString("extensionSettingsExtensionId", 290 source->AddString("extensionSettingsExtensionId",
292 l10n_util::GetStringUTF16(IDS_EXTENSIONS_ID)); 291 l10n_util::GetStringUTF16(IDS_EXTENSIONS_ID));
293 source->AddString("extensionSettingsExtensionPath", 292 source->AddString("extensionSettingsExtensionPath",
294 l10n_util::GetStringUTF16(IDS_EXTENSIONS_PATH)); 293 l10n_util::GetStringUTF16(IDS_EXTENSIONS_PATH));
295 source->AddString("extensionSettingsInspectViews", 294 source->AddString("extensionSettingsInspectViews",
296 l10n_util::GetStringUTF16(IDS_EXTENSIONS_INSPECT_VIEWS)); 295 l10n_util::GetStringUTF16(IDS_EXTENSIONS_INSPECT_VIEWS));
297 source->AddString("extensionSettingsInstallWarnings",
298 l10n_util::GetStringUTF16(IDS_EXTENSIONS_INSTALL_WARNINGS));
299 source->AddString("viewIncognito", 296 source->AddString("viewIncognito",
300 l10n_util::GetStringUTF16(IDS_EXTENSIONS_VIEW_INCOGNITO)); 297 l10n_util::GetStringUTF16(IDS_EXTENSIONS_VIEW_INCOGNITO));
301 source->AddString("viewInactive", 298 source->AddString("viewInactive",
302 l10n_util::GetStringUTF16(IDS_EXTENSIONS_VIEW_INACTIVE)); 299 l10n_util::GetStringUTF16(IDS_EXTENSIONS_VIEW_INACTIVE));
303 source->AddString("backgroundPage", 300 source->AddString("backgroundPage",
304 l10n_util::GetStringUTF16(IDS_EXTENSIONS_BACKGROUND_PAGE)); 301 l10n_util::GetStringUTF16(IDS_EXTENSIONS_BACKGROUND_PAGE));
305 source->AddString("extensionSettingsEnable", 302 source->AddString("extensionSettingsEnable",
306 l10n_util::GetStringUTF16(IDS_EXTENSIONS_ENABLE)); 303 l10n_util::GetStringUTF16(IDS_EXTENSIONS_ENABLE));
307 source->AddString("extensionSettingsEnabled", 304 source->AddString("extensionSettingsEnabled",
308 l10n_util::GetStringUTF16(IDS_EXTENSIONS_ENABLED)); 305 l10n_util::GetStringUTF16(IDS_EXTENSIONS_ENABLED));
(...skipping 812 matching lines...) Expand 10 before | Expand all | Expand 10 after
1121 extension_service_->EnableExtension(extension_id); 1118 extension_service_->EnableExtension(extension_id);
1122 } else { 1119 } else {
1123 ExtensionErrorReporter::GetInstance()->ReportError( 1120 ExtensionErrorReporter::GetInstance()->ReportError(
1124 UTF8ToUTF16(JoinString(requirement_errors, ' ')), 1121 UTF8ToUTF16(JoinString(requirement_errors, ' ')),
1125 true /* be noisy */); 1122 true /* be noisy */);
1126 } 1123 }
1127 requirements_checker_.reset(); 1124 requirements_checker_.reset();
1128 } 1125 }
1129 1126
1130 } // namespace extensions 1127 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698