Index: chrome/renderer/resources/extensions/schema_generated_bindings.js |
diff --git a/chrome/renderer/resources/extensions/schema_generated_bindings.js b/chrome/renderer/resources/extensions/schema_generated_bindings.js |
index 84b39a3d3b749e42b72c23971bb1d09c36fbc2e1..3fe5c3e58dfb0b227518da7ab672d4337fb2ab7c 100644 |
--- a/chrome/renderer/resources/extensions/schema_generated_bindings.js |
+++ b/chrome/renderer/resources/extensions/schema_generated_bindings.js |
@@ -24,6 +24,7 @@ var chrome = chrome || {}; |
native function GetLocalFileSystem(name, path); |
native function DecodeJPEG(jpegImage); |
native function CreateBlob(filePath); |
+ native function SendResponseAck(requestId); |
var chromeHidden = GetChromeHidden(); |
@@ -178,6 +179,7 @@ var chrome = chrome || {}; |
var nativeFunction = opt_args.nativeFunction || StartRequest; |
var requestId = GetNextRequestId(); |
+ request.id = requestId; |
requests[requestId] = request; |
var hasCallback = |
(request.callback || opt_args.customCallback) ? true : false; |
@@ -795,8 +797,11 @@ var chrome = chrome || {}; |
if (request.callback) |
request.callback(CreateBlob(path, size)); |
- |
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); |
Aaron Boodman
2011/11/22 09:23:52
Did you consider putting a "response_needs_ack" or
|
}; |
apiFunctions["fileBrowserPrivate.requestLocalFileSystem"].customCallback = |