| Index: extensions/renderer/resources/last_error.js
|
| diff --git a/extensions/renderer/resources/last_error.js b/extensions/renderer/resources/last_error.js
|
| index 8d53371827acd01eeaa12840bd71497b5bb90120..9b5b3c0674e79fef7c1792ed2b9e391cd0bbdd3f 100644
|
| --- a/extensions/renderer/resources/last_error.js
|
| +++ b/extensions/renderer/resources/last_error.js
|
| @@ -19,12 +19,12 @@ var GetGlobal = requireNative('sendRequest').GetGlobal;
|
| * optional |stack|.
|
| */
|
| function set(name, message, stack, targetChrome) {
|
| - var errorMessage = name + ': ' + message;
|
| - if (stack != null && stack != '')
|
| - errorMessage += '\n' + stack;
|
| -
|
| - if (!targetChrome)
|
| + if (!targetChrome) {
|
| + var errorMessage = name + ': ' + message;
|
| + if (stack != null && stack != '')
|
| + errorMessage += '\n' + stack;
|
| throw new Error('No chrome object to set error: ' + errorMessage);
|
| + }
|
| clear(targetChrome); // in case somebody has set a sneaky getter/setter
|
|
|
| var errorObject = { message: message };
|
| @@ -113,12 +113,30 @@ function run(name, message, stack, callback, args) {
|
| try {
|
| $Function.apply(callback, undefined, args);
|
| } finally {
|
| + reportIfUnchecked(name, targetChrome, stack);
|
| clear(targetChrome);
|
| }
|
| }
|
|
|
| +/**
|
| + * Checks whether chrome.runtime.lastError has been accessed if set.
|
| + * If it was set but not accessed, the error is reported to the console.
|
| + *
|
| + * @param {string=} name - name of API.
|
| + * @param {Object} targetChrome - the Chrome object to check.
|
| + * @param {string=} stack - Stack trace of the call up to the error.
|
| + */
|
| +function reportIfUnchecked(name, targetChrome, stack) {
|
| + if (hasAccessed(targetChrome) || !hasError(targetChrome))
|
| + return;
|
| + var message = targetChrome.runtime.lastError.message;
|
| + console.error("Unchecked runtime.lastError while running " +
|
| + (name || "unknown") + ": " + message + (stack ? "\n" + stack : ""));
|
| +}
|
| +
|
| exports.clear = clear;
|
| exports.hasAccessed = hasAccessed;
|
| exports.hasError = hasError;
|
| exports.set = set;
|
| exports.run = run;
|
| +exports.reportIfUnchecked = reportIfUnchecked;
|
|
|