Index: chrome/renderer/resources/extensions/file_system_provider_custom_bindings.js |
diff --git a/chrome/renderer/resources/extensions/file_system_provider_custom_bindings.js b/chrome/renderer/resources/extensions/file_system_provider_custom_bindings.js |
index 5f19793ba9a034ef292ab1840c1cc6d957f93c55..1d0e4e4421e1a1f2264e59780e1b237e3a58f56d 100644 |
--- a/chrome/renderer/resources/extensions/file_system_provider_custom_bindings.js |
+++ b/chrome/renderer/resources/extensions/file_system_provider_custom_bindings.js |
@@ -11,21 +11,29 @@ var GetDOMError = fileSystemProviderNatives.GetDOMError; |
binding.registerCustomHook(function(bindingsAPI) { |
var apiFunctions = bindingsAPI.apiFunctions; |
+ apiFunctions.setUpdateArgumentsPostValidate('mount', function() { |
+ // Hold onto the error callback or something. |
+ }); |
+ |
apiFunctions.setCustomCallback( |
'mount', |
function(name, request, response) { |
var domError = null; |
var fileSystemId = null; |
if (response) { |
- // Convert a Dictionary to a DomError. |
- domError = GetDOMError(response[0].name, response[0].message); |
- fileSystemId = response[1] |
+ fileSystemId = response[0] |
+ if (reponse[1]) { |
+ domError = GetDOMError(response[1].name, response[1].message); |
+ response.length = 1; |
+ } |
} |
- if (request.callback) { |
- request.callback(domError, fileSystemId); |
- request.callback = null; |
- } |
+ var successCallback = request.callback; |
+ delete request.callback; |
+ if (domError && request.failureCallback) |
+ request.failureCallback(domError); |
+ if (!domError && successCallback) |
+ successCallback(fileSystemId) |
}); |
}); |