Chromium Code Reviews| 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 = |