| 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 b7e2ea8548b001aa2dc990fa4c4d51137ad5ba61..b89613808ab7431511ec8dc49f9163a50308f710 100644
|
| --- a/chrome/renderer/resources/extensions/file_system_provider_custom_bindings.js
|
| +++ b/chrome/renderer/resources/extensions/file_system_provider_custom_bindings.js
|
| @@ -5,6 +5,9 @@
|
| // Custom binding for the fileSystemProvider API.
|
|
|
| var binding = require('binding').Binding.create('fileSystemProvider');
|
| +var fileSystemProviderInternal =
|
| + require('binding').Binding.create('fileSystemProviderInternal').generate();
|
| +var eventBindings = require('event_bindings');
|
| var fileSystemNatives = requireNative('file_system_natives');
|
| var GetDOMError = fileSystemNatives.GetDOMError;
|
|
|
| @@ -44,6 +47,54 @@ binding.registerCustomHook(function(bindingsAPI) {
|
| successCallback(fileSystemId);
|
| }
|
| });
|
| +
|
| + apiFunctions.setUpdateArgumentsPostValidate(
|
| + 'unmount',
|
| + function(fileSystemId, successCallback, errorCallback) {
|
| + // Piggyback the error callback onto the success callback,
|
| + // so we can use the error callback later.
|
| + successCallback.errorCallback_ = errorCallback;
|
| + return [fileSystemId, successCallback];
|
| + });
|
| +
|
| + apiFunctions.setCustomCallback(
|
| + 'unmount',
|
| + function(name, request, response) {
|
| + var domError = null;
|
| + if (request.callback) {
|
| + // DOMError is present only if mount() failed.
|
| + if (response && response[0]) {
|
| + // Convert a Dictionary to a DOMError.
|
| + domError = GetDOMError(response[0].name, response[0].message);
|
| + response.length = 1;
|
| + }
|
| +
|
| + var successCallback = request.callback;
|
| + var errorCallback = request.callback.errorCallback_;
|
| + delete request.callback;
|
| +
|
| + if (domError)
|
| + errorCallback(domError);
|
| + else
|
| + successCallback();
|
| + }
|
| + });
|
| });
|
|
|
| +eventBindings.registerArgumentMassager(
|
| + 'fileSystemProvider.onUnmountRequested',
|
| + function(args, dispatch) {
|
| + var fileSystemId = args[0];
|
| + var requestId = args[1];
|
| + var onSuccessCallback = function() {
|
| + fileSystemProviderInternal.unmountRequestedSuccess(
|
| + fileSystemId, requestId);
|
| + };
|
| + var onErrorCallback = function(error) {
|
| + fileSystemProviderInternal.unmountRequestedError(
|
| + fileSystemId, requestId, error);
|
| + }
|
| + dispatch([fileSystemId, onSuccessCallback, onErrorCallback]);
|
| + });
|
| +
|
| exports.binding = binding.generate();
|
|
|