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

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

Issue 973303002: [Extensions] Make chrome://extensions use developerPrivate for error calls (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Latest master Created 5 years, 9 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_overlay.js
diff --git a/chrome/browser/resources/extensions/extension_error_overlay.js b/chrome/browser/resources/extensions/extension_error_overlay.js
index 24ddff30d64d10d954c8851ea947f5b223ef8af6..db8f327689088a4ae4f7be98f29c83870744d7a8 100644
--- a/chrome/browser/resources/extensions/extension_error_overlay.js
+++ b/chrome/browser/resources/extensions/extension_error_overlay.js
@@ -91,24 +91,6 @@ cr.define('extensions', function() {
return !/^extensions::/.test(url);
};
- /**
- * Send a call to chrome to open the developer tools for an error.
- * This will call either the bound function in ExtensionErrorHandler or the
- * API function from developerPrivate, depending on whether this is being
- * used in the native chrome:extensions page or the Apps Developer Tool.
- * @see chrome/browser/ui/webui/extensions/extension_error_ui_util.h
- * @param {OpenDevToolsProperties} args The arguments to pass to openDevTools.
- * @private
- */
- RuntimeErrorContent.openDevtools_ = function(args) {
- if (chrome.send)
- chrome.send('extensionErrorOpenDevTools', [args]);
- else if (chrome.developerPrivate)
- chrome.developerPrivate.openDevTools(args);
- else
- assertNotReached('Cannot call either openDevTools function.');
- };
-
RuntimeErrorContent.prototype = {
__proto__: HTMLDivElement.prototype,
@@ -236,10 +218,8 @@ cr.define('extensions', function() {
frameNode.addEventListener('click', function(frame, frameNode, e) {
this.setActiveFrame_(frameNode);
- // Request the file source with the section highlighted; this will
- // call ExtensionErrorOverlay.requestFileSourceResponse() when
- // completed, which in turn calls setCode().
- ExtensionErrorOverlay.requestFileSource(
+ // Request the file source with the section highlighted.
+ extensions.ExtensionErrorOverlay.getInstance().requestFileSource(
{extensionId: this.error_.extensionId,
message: this.error_.message,
pathSuffix: getRelativeUrl(frame.url,
@@ -268,7 +248,7 @@ cr.define('extensions', function() {
var stackFrame =
this.error_.stackTrace[this.currentFrameNode_.indexIntoTrace];
- RuntimeErrorContent.openDevtools_(
+ chrome.developerPrivate.openDevTools(
{renderProcessId: this.error_.renderProcessId || -1,
renderViewId: this.error_.renderViewId || -1,
url: stackFrame.url,
@@ -348,27 +328,6 @@ cr.define('extensions', function() {
return false;
};
- /**
- * Send a call to chrome to request the source of a given file.
- * This will call either the bound function in ExtensionErrorHandler or the
- * API function from developerPrivate, depending on whether this is being
- * used in the native chrome:extensions page or the Apps Developer Tool.
- * @see chrome/browser/ui/webui/extensions/extension_error_ui_util.h
- * @param {RequestFileSourceProperties} args The arguments to pass to
- * requestFileSource.
- */
- ExtensionErrorOverlay.requestFileSource = function(args) {
- if (chrome.send) {
- chrome.send('extensionErrorRequestFileSource', [args]);
- } else if (chrome.developerPrivate) {
- chrome.developerPrivate.requestFileSource(args, function(result) {
- extensions.ExtensionErrorOverlay.requestFileSourceResponse(result);
- });
- } else {
- assertNotReached('Cannot call either requestFileSource function.');
- }
- };
-
cr.addSingletonGetter(ExtensionErrorOverlay);
ExtensionErrorOverlay.prototype = {
@@ -500,45 +459,42 @@ cr.define('extensions', function() {
error.stackTrace && error.stackTrace[0] ?
error.stackTrace[0].lineNumber : 0;
}
- ExtensionErrorOverlay.requestFileSource(requestFileSourceArgs);
+ this.requestFileSource(requestFileSourceArgs);
} else {
- ExtensionErrorOverlay.requestFileSourceResponse(null);
+ this.onFileSourceResponse_(null);
}
},
+ /**
+ * Requests a file's source.
+ * @param {RequestFileSourceProperties} args The arguments for the call.
+ */
+ requestFileSource: function(args) {
+ chrome.developerPrivate.requestFileSource(
+ args, this.onFileSourceResponse_.bind(this));
+ },
/**
* Set the code to be displayed in the code portion of the overlay.
* @see ExtensionErrorOverlay.requestFileSourceResponse().
- * @param {?ExtensionHighlight} code The code to be displayed. If |code| is
- * null, then
- * a "Could not display code" message will be displayed instead.
+ * @param {?RequestFileSourceResponse} response The response from the
+ * request file source call, which will be shown as code. If |response|
+ * is null, then a "Could not display code" message will be displayed
+ * instead.
*/
- setCode: function(code) {
- document.querySelector(
- '#extension-error-overlay .extension-error-overlay-title').
- textContent = code.title;
-
+ onFileSourceResponse_: function(response) {
+ if (response) {
+ document.querySelector(
+ '#extension-error-overlay .extension-error-overlay-title').
+ textContent = response.title;
+ }
this.codeDiv_.populate(
- code,
+ response, // ExtensionCode can handle a null response.
loadTimeData.getString('extensionErrorOverlayNoCodeToDisplay'));
+ this.setVisible(true);
},
};
- /**
- * Called by the ExtensionErrorHandler responding to the request for a file's
- * source. Populate the content area of the overlay and display the overlay.
- * @param {?ExtensionHighlight} result The three 'highlight' strings represent
- * three portions of the file's content to display - the portion which is
- * most relevant and should be emphasized (highlight), and the parts both
- * before and after this portion. These may be empty.
- */
- ExtensionErrorOverlay.requestFileSourceResponse = function(result) {
- var overlay = extensions.ExtensionErrorOverlay.getInstance();
- overlay.setCode(result);
- overlay.setVisible(true);
- };
-
// Export
return {
ExtensionErrorOverlay: ExtensionErrorOverlay

Powered by Google App Engine
This is Rietveld 408576698