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

Unified Diff: chrome/browser/resources/extensions/extension_error.js

Issue 150663013: Integrate ErrorConsole with Apps Dev Tool (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Remove DeveloperPrivate.getStrings() Created 6 years, 10 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/resources/extensions/extension_error.js
diff --git a/chrome/browser/resources/extensions/extension_error.js b/chrome/browser/resources/extensions/extension_error.js
index 0433e5d3e3da4f21d92d828346ed8219fa534e64..d53f9084368662151bb8890fc288b0d38be15e2f 100644
--- a/chrome/browser/resources/extensions/extension_error.js
+++ b/chrome/browser/resources/extensions/extension_error.js
@@ -41,46 +41,6 @@ cr.define('extensions', function() {
return div;
}
- /**
- * The manifest filename.
- * @type {string}
- * @const
- * @private
- */
- ExtensionError.MANIFEST_FILENAME_ = 'manifest.json';
-
- /**
- * Determine whether or not chrome can load the source for a given file; this
- * can only be done if the file belongs to the extension.
- * @param {string} file The file to load.
- * @param {string} extensionUrl The url for the extension, in the form
- * chrome-extension://<extension-id>/.
- * @return {boolean} True if the file can be loaded, false otherwise.
- * @private
- */
- ExtensionError.canLoadFileSource_ = function(file, extensionUrl) {
- return RegExp('^' + extensionUrl).test(file) ||
- file.toLowerCase() == ExtensionError.MANIFEST_FILENAME_;
- };
-
- /**
- * Determine whether or not there are any user-friendly (non-internal) frames
- * in the error's stack trace.
- * @param {Object} error The error to examine.
- * @return {boolean} True if there are user-friendly stack frames for the
- * error, false otherwise.
- * @private
- */
- ExtensionError.hasExternalStackFrames_ = function(error) {
- // All our internal source begins with the "extensions::" prefix.
- var extensionPrefix = /^extensions::/;
- for (var i = 0; i < error.stackTrace.length; ++i) {
- if (!extensionPrefix.test(error.stackTrace[i].url))
- return true;
- }
- return false;
- };
-
ExtensionError.prototype = {
__proto__: HTMLDivElement.prototype,
@@ -107,49 +67,19 @@ cr.define('extensions', function() {
// If we cannot open the file source and there are no external frames in
// the stack, then there are no details to display.
- if (!ExtensionError.canLoadFileSource_(error.source, extensionUrl) &&
- !ExtensionError.hasExternalStackFrames_(error)) {
+ if (!extensions.ExtensionErrorOverlay.canShowOverlayForError(
+ error, extensionUrl)) {
viewDetailsLink.hidden = true;
- return;
- }
-
- // The relative url is the url without the preceeding
- // "chrome-extension://<id>"; this is the format which the
- // requestFileSource call expects.
- var relativeUrl =
- error.source.substring(0, extensionUrl.length) == extensionUrl ?
- error.source.substring(extensionUrl.length) : error.source;
-
- var requestFileSourceArgs = {extensionId: error.extensionId,
- message: error.message,
- pathSuffix: relativeUrl};
-
- var viewDetailsStringId;
- if (relativeUrl.toLowerCase() == 'manifest.json') {
- requestFileSourceArgs.manifestKey = error.manifestKey;
- requestFileSourceArgs.manifestSpecific = error.manifestSpecific;
- viewDetailsStringId = 'extensionErrorViewManifest';
} else {
- requestFileSourceArgs.lineNumber =
- error.stackTrace && error.stackTrace[0] ?
- error.stackTrace[0].lineNumber : 0;
- viewDetailsStringId = 'extensionErrorViewDetails';
+ var stringId = extensionUrl.toLowerCase() == 'manifest.json' ?
+ 'extensionErrorViewManifest' : 'extensionErrorViewDetails';
+ viewDetailsLink.textContent = loadTimeData.getString(stringId);
+
+ viewDetailsLink.addEventListener('click', function(e) {
+ extensions.ExtensionErrorOverlay.getInstance().setErrorAndShowOverlay(
+ error, extensionUrl);
+ });
}
- viewDetailsLink.textContent = loadTimeData.getString(viewDetailsStringId);
-
- viewDetailsLink.addEventListener('click', function(e) {
- var overlay = extensions.ExtensionErrorOverlay.getInstance();
- overlay.setError(error);
-
- // If we can, request the file source to show to the user in the
- // overlay. Otherwise, simply show the overlay.
- if (ExtensionError.canLoadFileSource_(error.source, extensionUrl)) {
- chrome.send('extensionErrorRequestFileSource',
- [requestFileSourceArgs]);
- } else {
- overlay.requestFileSourceResponse(null);
- }
- }.bind(this));
},
};

Powered by Google App Engine
This is Rietveld 408576698