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

Unified Diff: extensions/renderer/resources/last_error.js

Issue 865083003: Report unchecked error in lastError.run (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 11 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: 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;
« no previous file with comments | « no previous file | extensions/renderer/resources/send_request.js » ('j') | extensions/renderer/resources/send_request.js » ('J')

Powered by Google App Engine
This is Rietveld 408576698