Fix Regression in Unpacked Extension Load Error UI

A regression where we stopped showing the manifest error was introduced in
r283852. Fix it.

TBR=finnur@chromium.org

BUG=397467

Review URL: https://codereview.chromium.org/422533002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@285770 0039d316-1c4b-4281-b951-d872f2087c98
parent 327ff8f0
...@@ -19,7 +19,7 @@ cr.define('extensions', function() { ...@@ -19,7 +19,7 @@ cr.define('extensions', function() {
/** /**
* Construct a Failure. * Construct a Failure.
* @param {string} filePath The path to the unpacked extension. * @param {string} filePath The path to the unpacked extension.
* @param {string} reason The reason the extension failed to load. * @param {string} error The reason the extension failed to load.
* @param {Object} manifest An object with three strings: beforeHighlight, * @param {Object} manifest An object with three strings: beforeHighlight,
* afterHighlight, and highlight. These represent three portions of the * afterHighlight, and highlight. These represent three portions of the
* file's content to display - the portion which is most relevant and * file's content to display - the portion which is most relevant and
...@@ -29,9 +29,9 @@ cr.define('extensions', function() { ...@@ -29,9 +29,9 @@ cr.define('extensions', function() {
* failure path for the additional failures UI. * failure path for the additional failures UI.
* @constructor * @constructor
*/ */
function Failure(filePath, reason, manifest, listElement) { function Failure(filePath, error, manifest, listElement) {
this.path = filePath; this.path = filePath;
this.reason = reason; this.error = error;
this.manifest = manifest; this.manifest = manifest;
this.listElement = listElement; this.listElement = listElement;
} }
...@@ -106,13 +106,15 @@ cr.define('extensions', function() { ...@@ -106,13 +106,15 @@ cr.define('extensions', function() {
// If a failure is already being displayed, unhide the last item. // If a failure is already being displayed, unhide the last item.
if (this.failures_.length > 0) if (this.failures_.length > 0)
this.failures_[this.failures_.length - 1].listElement.hidden = false; this.failures_[this.failures_.length - 1].listElement.hidden = false;
for (var i = 0; i < failures.length; ++i) { failures.forEach(function(failure) {
var listItem = document.createElement('li'); var listItem = document.createElement('li');
listItem.textContent = failures[i].path; listItem.textContent = failure.path;
this.additional_.list.appendChild(listItem); this.additional_.list.appendChild(listItem);
failures[i].listElement = listItem; this.failures_.push(new Failure(failure.path,
this.failures_.push(failures[i]); failure.error,
} failure.manifest,
listItem));
}.bind(this));
// Hide the last item because the UI is displaying its information. // Hide the last item because the UI is displaying its information.
this.failures_[this.failures_.length - 1].listElement.hidden = true; this.failures_[this.failures_.length - 1].listElement.hidden = true;
this.show_(); this.show_();
...@@ -146,9 +148,9 @@ cr.define('extensions', function() { ...@@ -146,9 +148,9 @@ cr.define('extensions', function() {
assert(this.failures_.length >= 1); assert(this.failures_.length >= 1);
var failure = this.failures_[this.failures_.length - 1]; var failure = this.failures_[this.failures_.length - 1];
this.path_.textContent = failure.path; this.path_.textContent = failure.path;
this.reason_.textContent = failure.reason; this.reason_.textContent = failure.error;
failure.manifest.message = failure.reason; failure.manifest.message = failure.error;
this.manifest_.populate( this.manifest_.populate(
failure.manifest, failure.manifest,
loadTimeData.getString('extensionLoadCouldNotLoadManifest')); loadTimeData.getString('extensionLoadCouldNotLoadManifest'));
......
...@@ -233,7 +233,7 @@ void ExtensionLoaderHandler::OnLoadFailure(const base::FilePath& file_path, ...@@ -233,7 +233,7 @@ void ExtensionLoaderHandler::OnLoadFailure(const base::FilePath& file_path,
size_t line = 0u; size_t line = 0u;
size_t column = 0u; size_t column = 0u;
std::string regex = std::string regex =
base::StringPrintf("%s Line: (\\d+), column: (\\d+), Syntax error.", base::StringPrintf("%s Line: (\\d+), column: (\\d+), .*",
manifest_errors::kManifestParseError); manifest_errors::kManifestParseError);
// If this was a JSON parse error, we can highlight the exact line with the // If this was a JSON parse error, we can highlight the exact line with the
// error. Otherwise, we should still display the manifest (for consistency, // error. Otherwise, we should still display the manifest (for consistency,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment