Chromium Code Reviews| 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..9cd517ccd6674f0713186ded5f2e9a30cae47abe 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) { |
| + var error = hasAccessed(targetChrome) && targetChrome.runtime.lastError; |
|
not at google - send to devlin
2015/01/22 17:59:59
targetChrome.runtime.lastError --> hasError(target
robwu
2015/01/22 18:07:22
|error| is used below as |error.message| to get th
not at google - send to devlin
2015/01/22 18:12:53
Alright. Well use that as a reason to not overload
robwu
2015/01/22 18:19:33
Done.
|
| + if (!error) |
| + return; |
| + console.error("Unchecked runtime.lastError while running " + |
| + (name || "unknown") + ": " + error.message + (stack ? "\n" + stack : "")); |
| +} |
| + |
| exports.clear = clear; |
| exports.hasAccessed = hasAccessed; |
| exports.hasError = hasError; |
| exports.set = set; |
| exports.run = run; |
| +exports.reportIfUnchecked = reportIfUnchecked; |