| 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
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..74467bbb77a07669ebbf0f9240131b25a7b79254
|
| --- /dev/null
|
| +++ b/chrome/renderer/resources/extensions/file_system_provider_custom_bindings.js
|
| @@ -0,0 +1,49 @@
|
| +// Copyright 2013 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +// Custom binding for the fileSystemProvider API.
|
| +
|
| +var binding = require('binding').Binding.create('fileSystemProvider');
|
| +var fileSystemProviderNatives = requireNative('file_system_provider');
|
| +var GetDOMError = fileSystemProviderNatives.GetDOMError;
|
| +
|
| +binding.registerCustomHook(function(bindingsAPI) {
|
| + var apiFunctions = bindingsAPI.apiFunctions;
|
| +
|
| + apiFunctions.setUpdateArgumentsPostValidate(
|
| + 'mount',
|
| + function(displayName, successCallback, errorCallback) {
|
| + // Piggyback the error callback onto the success callback,
|
| + // so we can use the error callback later.
|
| + successCallback.errorCallback_ = errorCallback;
|
| + return [displayName, successCallback];
|
| + });
|
| +
|
| + apiFunctions.setCustomCallback(
|
| + 'mount',
|
| + function(name, request, response) {
|
| + var fileSystemId = null;
|
| + var domError = null;
|
| + if (request.callback && response) {
|
| + fileSystemId = response[0];
|
| + // DOMError is present only if mount() failed.
|
| + if (response[1]) {
|
| + // Convert a Dictionary to a DOMError.
|
| + domError = GetDOMError(response[1].name, response[1].message);
|
| + response.length = 1;
|
| + }
|
| +
|
| + var successCallback = request.callback;
|
| + var errorCallback = request.callback.errorCallback_;
|
| + delete request.callback;
|
| +
|
| + if (domError)
|
| + errorCallback(domError);
|
| + else
|
| + successCallback(fileSystemId);
|
| + }
|
| + });
|
| +});
|
| +
|
| +exports.binding = binding.generate();
|
|
|