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

Unified Diff: chrome/renderer/resources/extensions/send_request.js

Issue 15841013: Make miscellaneous_bindings and event_bindings Required as needed. Previously (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 7 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/renderer/resources/extensions/send_request.js
diff --git a/chrome/renderer/resources/extensions/send_request.js b/chrome/renderer/resources/extensions/send_request.js
index 4f14e1259720f5bfd82da7509299ae05c2e25460..052396fba5d180c322343c24ad1341dfb30f1de7 100644
--- a/chrome/renderer/resources/extensions/send_request.js
+++ b/chrome/renderer/resources/extensions/send_request.js
@@ -3,10 +3,10 @@
// found in the LICENSE file.
var chromeHidden = requireNative('chrome_hidden').GetChromeHidden();
-var DCHECK = requireNative('logging').DCHECK;
var forEach = require('utils').forEach;
var json = require('json');
var lastError = require('lastError');
+var logging = requireNative('logging');
var natives = requireNative('sendRequest');
var validate = require('schemaUtils').validate;
@@ -18,8 +18,7 @@ var requests = {};
var calledSendRequest = false;
// Callback handling.
-chromeHidden.handleResponse = function(requestId, name,
- success, responseList, error) {
+function handleResponse(requestId, name, success, responseList, error) {
// The chrome objects we will set lastError on. Really we should only be
// setting this on the callback's chrome object, but set on ours too since
// it's conceivable that something relies on that.
@@ -27,7 +26,7 @@ chromeHidden.handleResponse = function(requestId, name,
try {
var request = requests[requestId];
- DCHECK(request != null);
+ logging.DCHECK(request != null);
// lastError needs to be set on the caller's chrome object no matter what,
// though chances are it's the same as ours (it will be different when
@@ -57,7 +56,7 @@ chromeHidden.handleResponse = function(requestId, name,
// caller has provided a callback. Implementations of api
// calls may not return data if they observe the caller
// has not provided a callback.
- if (chromeHidden.validateCallbacks && !error) {
+ if (logging.DCHECK_IS_ON() && !error) {
try {
if (!request.callbackSchema.parameters) {
throw new Error("No callback schemas defined");
@@ -70,7 +69,14 @@ chromeHidden.handleResponse = function(requestId, name,
}
}
- request.callback.apply(request, responseList);
+ try {
+ request.callback.apply(request, responseList);
+ } catch (e) {
+ var errorMessage = "Error in response to " + name + ": " + e;
+ if (request.stack && request.stack != '')
+ errorMessage += "\n" + request.stack;
+ console.error(errorMessage);
+ }
}
} finally {
delete requests[requestId];
@@ -167,3 +173,6 @@ function clearCalledSendRequest() {
exports.sendRequest = sendRequest;
exports.getCalledSendRequest = getCalledSendRequest;
exports.clearCalledSendRequest = clearCalledSendRequest;
+
+// Called by C++.
+exports.handleResponse = handleResponse;

Powered by Google App Engine
This is Rietveld 408576698