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

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

Issue 2794043002: [Extensions Bindings] Move safeCallbackApply to exception handler (Closed)
Patch Set: Created 3 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
« no previous file with comments | « extensions/renderer/resources/send_request.js ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: extensions/renderer/resources/uncaught_exception_handler.js
diff --git a/extensions/renderer/resources/uncaught_exception_handler.js b/extensions/renderer/resources/uncaught_exception_handler.js
index de4d71e71dc3978092281c50ee92e17d39cd9fdf..23d2d1f8a535cfb2cc0eafa667b877ef9980e6d3 100644
--- a/extensions/renderer/resources/uncaught_exception_handler.js
+++ b/extensions/renderer/resources/uncaught_exception_handler.js
@@ -9,6 +9,28 @@ var handler = function(message, e) {
};
/**
+ * Formats the error message and invokes the error handler.
+ *
+ * @param {string} message - Error message prefix.
+ * @param {Error|*} e - Thrown object.
+ * @param {string=} priorStackTrace - Error message suffix.
+ * @see formatErrorMessage
+ */
+function handle(message, e, priorStackTrace) {
+ message = formatErrorMessage(message, e, priorStackTrace);
+ handler(message, e);
+}
+
+// Runs a user-supplied callback safely.
+function safeCallbackApply(name, request, callback, args) {
+ try {
+ $Function.apply(callback, request, args);
+ } catch (e) {
+ handle('Error in response to ' + name, e, request.stack);
+ }
+}
+
+/**
* Append the error description and stack trace to |message|.
*
* @param {string} message - The prefix of the error message.
@@ -87,24 +109,14 @@ function safeErrorToString(e, omitType) {
}
}
-/**
- * Formats the error message and invokes the error handler.
- *
- * @param {string} message - Error message prefix.
- * @param {Error|*} e - Thrown object.
- * @param {string=} priorStackTrace - Error message suffix.
- * @see formatErrorMessage
- */
-exports.$set('handle', function(message, e, priorStackTrace) {
- message = formatErrorMessage(message, e, priorStackTrace);
- handler(message, e);
-});
+exports.$set('handle', handle);
// |newHandler| A function which matches |handler|.
exports.$set('setHandler', function(newHandler) {
handler = newHandler;
});
+exports.$set('safeCallbackApply', safeCallbackApply);
exports.$set('getStackTrace', getStackTrace);
exports.$set('getExtensionStackTrace', getExtensionStackTrace);
exports.$set('safeErrorToString', safeErrorToString);
« no previous file with comments | « extensions/renderer/resources/send_request.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698