Index: chrome/renderer/resources/extensions/notifications_custom_bindings.js |
diff --git a/chrome/renderer/resources/extensions/notifications_custom_bindings.js b/chrome/renderer/resources/extensions/notifications_custom_bindings.js |
index eebf2900920287f0b539b04e32d48e6219a2c444..fc6b442576bcc335061638e13b54d5c3693b89f3 100644 |
--- a/chrome/renderer/resources/extensions/notifications_custom_bindings.js |
+++ b/chrome/renderer/resources/extensions/notifications_custom_bindings.js |
@@ -7,6 +7,7 @@ |
var binding = require('binding').Binding.create('notifications'); |
var sendRequest = require('sendRequest').sendRequest; |
+var exceptionHandler = require('uncaught_exception_handler'); |
var imageUtil = require('imageUtil'); |
var lastError = require('lastError'); |
var notificationsPrivate = requireNative('notifications_private'); |
@@ -111,20 +112,21 @@ function genHandle(name, failure_function) { |
return function(id, input_notification_details, callback) { |
// TODO(dewittj): Remove this hack. This is used as a way to deep |
// copy a complex JSON object. |
- var notification_details = JSON.parse( |
- JSON.stringify(input_notification_details)); |
+ var notification_details = $JSON.parse( |
+ $JSON.stringify(input_notification_details)); |
var that = this; |
+ var stack = exceptionHandler.getExtensionStackTrace(); |
replaceNotificationOptionURLs(notification_details, function(success) { |
if (success) { |
sendRequest(that.name, |
[id, notification_details, callback], |
- that.definition.parameters); |
+ that.definition.parameters, {stack: stack}); |
return; |
} |
lastError.run(name, |
'Unable to download all specified images.', |
- null, |
- failure_function, [callback, id]) |
+ stack, |
+ failure_function, [callback || function() {}, id]); |
}); |
}; |
} |