Index: chrome/renderer/resources/extensions/page_capture_custom_bindings.js |
diff --git a/chrome/renderer/resources/extensions/page_capture_custom_bindings.js b/chrome/renderer/resources/extensions/page_capture_custom_bindings.js |
index f9147d787eb0e51922b9aa556efa08b846b8e0cd..5e18ac0cb3719960c04b0252dd01a020f59f776b 100644 |
--- a/chrome/renderer/resources/extensions/page_capture_custom_bindings.js |
+++ b/chrome/renderer/resources/extensions/page_capture_custom_bindings.js |
@@ -15,16 +15,21 @@ binding.registerCustomHook(function(bindingsAPI) { |
apiFunctions.setCustomCallback('saveAsMHTML', |
function(name, request, response) { |
- var path = response.mhtmlFilePath; |
- var size = response.mhtmlFileLength; |
- |
- if (request.callback) |
- request.callback(CreateBlob(path, size)); |
+ var callback = request.callback; |
request.callback = null; |
- |
- // Notify the browser. Now that the blob is referenced from JavaScript, |
- // the browser can drop its reference to it. |
- SendResponseAck(request.id); |
+ if (response) { |
Devlin
2014/07/10 20:53:28
nit: inline?
if (response)
response = CreateBlo
robwu
2014/07/10 21:15:56
Done.
|
+ var path = response.mhtmlFilePath; |
+ var size = response.mhtmlFileLength; |
+ response = CreateBlob(path, size); |
+ } |
+ |
+ try { |
+ callback(response); |
+ } finally { |
Devlin
2014/07/10 20:53:28
We usually put a catch here and log the error so t
robwu
2014/07/10 21:15:56
Done.
|
+ // Notify the browser. Now that the blob is referenced from JavaScript, |
+ // the browser can drop its reference to it. |
+ SendResponseAck(request.id); |
+ } |
}); |
}); |