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

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: Rebase to Master 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/crx_installer.h" 27 #include "chrome/browser/extensions/crx_installer.h"
28 #include "chrome/browser/extensions/error_console/error_console.h"
28 #include "chrome/browser/extensions/extension_action_manager.h" 29 #include "chrome/browser/extensions/extension_action_manager.h"
29 #include "chrome/browser/extensions/extension_disabled_ui.h" 30 #include "chrome/browser/extensions/extension_disabled_ui.h"
30 #include "chrome/browser/extensions/extension_error_reporter.h" 31 #include "chrome/browser/extensions/extension_error_reporter.h"
31 #include "chrome/browser/extensions/extension_host.h" 32 #include "chrome/browser/extensions/extension_host.h"
32 #include "chrome/browser/extensions/extension_service.h" 33 #include "chrome/browser/extensions/extension_service.h"
33 #include "chrome/browser/extensions/extension_system.h" 34 #include "chrome/browser/extensions/extension_system.h"
34 #include "chrome/browser/extensions/extension_tab_util.h" 35 #include "chrome/browser/extensions/extension_tab_util.h"
35 #include "chrome/browser/extensions/extension_warning_set.h" 36 #include "chrome/browser/extensions/extension_warning_set.h"
36 #include "chrome/browser/extensions/lazy_background_task_queue.h" 37 #include "chrome/browser/extensions/lazy_background_task_queue.h"
37 #include "chrome/browser/extensions/management_policy.h" 38 #include "chrome/browser/extensions/management_policy.h"
(...skipping 25 matching lines...) Expand all
63 #include "content/public/browser/notification_source.h" 64 #include "content/public/browser/notification_source.h"
64 #include "content/public/browser/notification_types.h" 65 #include "content/public/browser/notification_types.h"
65 #include "content/public/browser/render_process_host.h" 66 #include "content/public/browser/render_process_host.h"
66 #include "content/public/browser/render_view_host.h" 67 #include "content/public/browser/render_view_host.h"
67 #include "content/public/browser/site_instance.h" 68 #include "content/public/browser/site_instance.h"
68 #include "content/public/browser/user_metrics.h" 69 #include "content/public/browser/user_metrics.h"
69 #include "content/public/browser/web_contents.h" 70 #include "content/public/browser/web_contents.h"
70 #include "content/public/browser/web_contents_view.h" 71 #include "content/public/browser/web_contents_view.h"
71 #include "content/public/browser/web_ui.h" 72 #include "content/public/browser/web_ui.h"
72 #include "content/public/browser/web_ui_data_source.h" 73 #include "content/public/browser/web_ui_data_source.h"
74 #include "extensions/browser/extension_error.h"
73 #include "extensions/browser/view_type_utils.h" 75 #include "extensions/browser/view_type_utils.h"
74 #include "extensions/common/constants.h" 76 #include "extensions/common/constants.h"
75 #include "grit/browser_resources.h" 77 #include "grit/browser_resources.h"
76 #include "grit/chromium_strings.h" 78 #include "grit/chromium_strings.h"
77 #include "grit/generated_resources.h" 79 #include "grit/generated_resources.h"
78 #include "grit/theme_resources.h" 80 #include "grit/theme_resources.h"
79 #include "ui/base/l10n/l10n_util.h" 81 #include "ui/base/l10n/l10n_util.h"
80 #include "ui/base/resource/resource_bundle.h" 82 #include "ui/base/resource/resource_bundle.h"
81 83
82 84 using base::DictionaryValue;
85 using base::ListValue;
83 using content::RenderViewHost; 86 using content::RenderViewHost;
84 using content::WebContents; 87 using content::WebContents;
85 88
86 namespace extensions { 89 namespace extensions {
87 90
88 ExtensionPage::ExtensionPage(const GURL& url, 91 ExtensionPage::ExtensionPage(const GURL& url,
89 int render_process_id, 92 int render_process_id,
90 int render_view_id, 93 int render_view_id,
91 bool incognito, 94 bool incognito,
92 bool generated_background_page) 95 bool generated_background_page)
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after
243 if (!warnings.empty()) { 246 if (!warnings.empty()) {
244 ListValue* warnings_list = new ListValue; 247 ListValue* warnings_list = new ListValue;
245 for (std::vector<std::string>::const_iterator iter = warnings.begin(); 248 for (std::vector<std::string>::const_iterator iter = warnings.begin();
246 iter != warnings.end(); ++iter) { 249 iter != warnings.end(); ++iter) {
247 warnings_list->Append(Value::CreateStringValue(*iter)); 250 warnings_list->Append(Value::CreateStringValue(*iter));
248 } 251 }
249 extension_data->Set("warnings", warnings_list); 252 extension_data->Set("warnings", warnings_list);
250 } 253 }
251 } 254 }
252 255
253 // Add install warnings (these are not the same as warnings!). 256 const ErrorConsole::ErrorList& errors =
254 if (Manifest::IsUnpackedLocation(extension->location())) { 257 ErrorConsole::Get(extension_service_->profile())->
255 const std::vector<InstallWarning>& install_warnings = 258 GetErrorsForExtension(extension->id());
256 extension->install_warnings(); 259 if (!errors.empty()) {
257 if (!install_warnings.empty()) { 260 scoped_ptr<ListValue> list(new ListValue);
258 scoped_ptr<ListValue> list(new ListValue()); 261 for (ErrorConsole::ErrorList::const_iterator iter = errors.begin();
259 for (std::vector<InstallWarning>::const_iterator it = 262 iter != errors.end(); ++iter) {
260 install_warnings.begin(); it != install_warnings.end(); ++it) { 263 list->Append((*iter)->ToValue().release());
261 DictionaryValue* item = new DictionaryValue();
262 item->SetString("message", it->message);
263 list->Append(item);
264 }
265 extension_data->Set("installWarnings", list.release());
266 } 264 }
265 extension_data->Set("manifestErrors", list.release());
267 } 266 }
268 267
269 return extension_data; 268 return extension_data;
270 } 269 }
271 270
272 void ExtensionSettingsHandler::GetLocalizedValues( 271 void ExtensionSettingsHandler::GetLocalizedValues(
273 content::WebUIDataSource* source) { 272 content::WebUIDataSource* source) {
274 source->AddString("extensionSettings", 273 source->AddString("extensionSettings",
275 l10n_util::GetStringUTF16(IDS_MANAGE_EXTENSIONS_SETTING_WINDOWS_TITLE)); 274 l10n_util::GetStringUTF16(IDS_MANAGE_EXTENSIONS_SETTING_WINDOWS_TITLE));
276 275
277 source->AddString("extensionSettingsDeveloperMode", 276 source->AddString("extensionSettingsDeveloperMode",
278 l10n_util::GetStringUTF16(IDS_EXTENSIONS_DEVELOPER_MODE_LINK)); 277 l10n_util::GetStringUTF16(IDS_EXTENSIONS_DEVELOPER_MODE_LINK));
279 source->AddString("extensionSettingsNoExtensions", 278 source->AddString("extensionSettingsNoExtensions",
280 l10n_util::GetStringUTF16(IDS_EXTENSIONS_NONE_INSTALLED)); 279 l10n_util::GetStringUTF16(IDS_EXTENSIONS_NONE_INSTALLED));
281 source->AddString("extensionSettingsSuggestGallery", 280 source->AddString("extensionSettingsSuggestGallery",
282 l10n_util::GetStringFUTF16(IDS_EXTENSIONS_NONE_INSTALLED_SUGGEST_GALLERY, 281 l10n_util::GetStringFUTF16(IDS_EXTENSIONS_NONE_INSTALLED_SUGGEST_GALLERY,
283 ASCIIToUTF16(google_util::AppendGoogleLocaleParam( 282 ASCIIToUTF16(google_util::AppendGoogleLocaleParam(
284 GURL(extension_urls::GetExtensionGalleryURL())).spec()))); 283 GURL(extension_urls::GetExtensionGalleryURL())).spec())));
285 source->AddString("extensionSettingsGetMoreExtensions", 284 source->AddString("extensionSettingsGetMoreExtensions",
286 l10n_util::GetStringUTF16(IDS_GET_MORE_EXTENSIONS)); 285 l10n_util::GetStringUTF16(IDS_GET_MORE_EXTENSIONS));
287 source->AddString("extensionSettingsGetMoreExtensionsUrl", 286 source->AddString("extensionSettingsGetMoreExtensionsUrl",
288 ASCIIToUTF16(google_util::AppendGoogleLocaleParam( 287 ASCIIToUTF16(google_util::AppendGoogleLocaleParam(
289 GURL(extension_urls::GetExtensionGalleryURL())).spec())); 288 GURL(extension_urls::GetExtensionGalleryURL())).spec()));
290 source->AddString("extensionSettingsExtensionId", 289 source->AddString("extensionSettingsExtensionId",
291 l10n_util::GetStringUTF16(IDS_EXTENSIONS_ID)); 290 l10n_util::GetStringUTF16(IDS_EXTENSIONS_ID));
292 source->AddString("extensionSettingsExtensionPath", 291 source->AddString("extensionSettingsExtensionPath",
293 l10n_util::GetStringUTF16(IDS_EXTENSIONS_PATH)); 292 l10n_util::GetStringUTF16(IDS_EXTENSIONS_PATH));
294 source->AddString("extensionSettingsInspectViews", 293 source->AddString("extensionSettingsInspectViews",
295 l10n_util::GetStringUTF16(IDS_EXTENSIONS_INSPECT_VIEWS)); 294 l10n_util::GetStringUTF16(IDS_EXTENSIONS_INSPECT_VIEWS));
296 source->AddString("extensionSettingsInstallWarnings",
297 l10n_util::GetStringUTF16(IDS_EXTENSIONS_INSTALL_WARNINGS));
298 source->AddString("viewIncognito", 295 source->AddString("viewIncognito",
299 l10n_util::GetStringUTF16(IDS_EXTENSIONS_VIEW_INCOGNITO)); 296 l10n_util::GetStringUTF16(IDS_EXTENSIONS_VIEW_INCOGNITO));
300 source->AddString("viewInactive", 297 source->AddString("viewInactive",
301 l10n_util::GetStringUTF16(IDS_EXTENSIONS_VIEW_INACTIVE)); 298 l10n_util::GetStringUTF16(IDS_EXTENSIONS_VIEW_INACTIVE));
302 source->AddString("backgroundPage", 299 source->AddString("backgroundPage",
303 l10n_util::GetStringUTF16(IDS_EXTENSIONS_BACKGROUND_PAGE)); 300 l10n_util::GetStringUTF16(IDS_EXTENSIONS_BACKGROUND_PAGE));
304 source->AddString("extensionSettingsEnable", 301 source->AddString("extensionSettingsEnable",
305 l10n_util::GetStringUTF16(IDS_EXTENSIONS_ENABLE)); 302 l10n_util::GetStringUTF16(IDS_EXTENSIONS_ENABLE));
306 source->AddString("extensionSettingsEnabled", 303 source->AddString("extensionSettingsEnabled",
307 l10n_util::GetStringUTF16(IDS_EXTENSIONS_ENABLED)); 304 l10n_util::GetStringUTF16(IDS_EXTENSIONS_ENABLED));
(...skipping 784 matching lines...) Expand 10 before | Expand all | Expand 10 after
1092 extension_service_->EnableExtension(extension_id); 1089 extension_service_->EnableExtension(extension_id);
1093 } else { 1090 } else {
1094 ExtensionErrorReporter::GetInstance()->ReportError( 1091 ExtensionErrorReporter::GetInstance()->ReportError(
1095 UTF8ToUTF16(JoinString(requirement_errors, ' ')), 1092 UTF8ToUTF16(JoinString(requirement_errors, ' ')),
1096 true /* be noisy */); 1093 true /* be noisy */);
1097 } 1094 }
1098 requirements_checker_.reset(); 1095 requirements_checker_.reset();
1099 } 1096 }
1100 1097
1101 } // namespace extensions 1098 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698