Index: chrome/browser/ui/webui/extensions/extension_settings_handler.cc |
diff --git a/chrome/browser/ui/webui/extensions/extension_settings_handler.cc b/chrome/browser/ui/webui/extensions/extension_settings_handler.cc |
index dacfd43b51f278b106161b0d6c5d1100e2dce911..7d3659ae26acd72fd7b416baeddbed6e2df8919e 100644 |
--- a/chrome/browser/ui/webui/extensions/extension_settings_handler.cc |
+++ b/chrome/browser/ui/webui/extensions/extension_settings_handler.cc |
@@ -28,6 +28,7 @@ |
#include "chrome/browser/extensions/api/extension_action/extension_action_api.h" |
#include "chrome/browser/extensions/component_loader.h" |
#include "chrome/browser/extensions/crx_installer.h" |
+#include "chrome/browser/extensions/error_console/error_console.h" |
#include "chrome/browser/extensions/extension_action_manager.h" |
#include "chrome/browser/extensions/extension_disabled_ui.h" |
#include "chrome/browser/extensions/extension_error_reporter.h" |
@@ -73,6 +74,7 @@ |
#include "content/public/browser/web_contents_view.h" |
#include "content/public/browser/web_ui.h" |
#include "content/public/browser/web_ui_data_source.h" |
+#include "extensions/browser/extension_error.h" |
#include "extensions/browser/view_type_utils.h" |
#include "extensions/common/constants.h" |
#include "grit/browser_resources.h" |
@@ -82,7 +84,8 @@ |
#include "ui/base/l10n/l10n_util.h" |
#include "ui/base/resource/resource_bundle.h" |
- |
+using base::DictionaryValue; |
+using base::ListValue; |
using content::RenderViewHost; |
using content::WebContents; |
@@ -253,8 +256,23 @@ base::DictionaryValue* ExtensionSettingsHandler::CreateExtensionDetailValue( |
} |
} |
- // Add install warnings (these are not the same as warnings!). |
- if (Manifest::IsUnpackedLocation(extension->location())) { |
+ // If the ErrorConsole is enabled, get the errors for the extension and add |
+ // them to the list. Otherwise, use the install warnings (using both is |
+ // redundant). |
+ ErrorConsole* error_console = |
+ ErrorConsole::Get(extension_service_->profile()); |
+ if (error_console->enabled()) { |
+ const ErrorConsole::ErrorList& errors = |
+ error_console->GetErrorsForExtension(extension->id()); |
+ if (!errors.empty()) { |
+ scoped_ptr<ListValue> list(new ListValue); |
+ for (ErrorConsole::ErrorList::const_iterator iter = errors.begin(); |
+ iter != errors.end(); ++iter) { |
+ list->Append((*iter)->ToValue().release()); |
+ } |
+ extension_data->Set("manifestErrors", list.release()); |
+ } |
+ } else if (Manifest::IsUnpackedLocation(extension->location())) { |
const std::vector<InstallWarning>& install_warnings = |
extension->install_warnings(); |
if (!install_warnings.empty()) { |