diff options
Diffstat (limited to 'chromium/chrome/renderer/resources/extensions/file_browser_private_custom_bindings.js')
-rw-r--r-- | chromium/chrome/renderer/resources/extensions/file_browser_private_custom_bindings.js | 28 |
1 files changed, 24 insertions, 4 deletions
diff --git a/chromium/chrome/renderer/resources/extensions/file_browser_private_custom_bindings.js b/chromium/chrome/renderer/resources/extensions/file_browser_private_custom_bindings.js index 2951e01ff31..e0301b04fd4 100644 --- a/chromium/chrome/renderer/resources/extensions/file_browser_private_custom_bindings.js +++ b/chromium/chrome/renderer/resources/extensions/file_browser_private_custom_bindings.js @@ -4,14 +4,21 @@ // Custom binding for the fileBrowserPrivate API. +// Bindings var binding = require('binding').Binding.create('fileBrowserPrivate'); - var eventBindings = require('event_bindings'); + +// Natives var fileBrowserPrivateNatives = requireNative('file_browser_private'); -var GetFileSystem = fileBrowserPrivateNatives.GetFileSystem; +var fileBrowserHandlerNatives = requireNative('file_browser_handler'); -var fileBrowserNatives = requireNative('file_browser_handler'); -var GetExternalFileEntry = fileBrowserNatives.GetExternalFileEntry; +// Internals +var fileBrowserPrivateInternal = + require('binding').Binding.create('fileBrowserPrivateInternal').generate(); + +// Shorthands +var GetFileSystem = fileBrowserPrivateNatives.GetFileSystem; +var GetExternalFileEntry = fileBrowserHandlerNatives.GetExternalFileEntry; binding.registerCustomHook(function(bindingsAPI) { var apiFunctions = bindingsAPI.apiFunctions; @@ -60,6 +67,19 @@ binding.registerCustomHook(function(bindingsAPI) { request.callback(response); request.callback = null; }); + + apiFunctions.setHandleRequest('resolveIsolatedEntries', + function(entries, callback) { + var urls = entries.map(function(entry) { + return fileBrowserHandlerNatives.GetEntryURL(entry); + }); + fileBrowserPrivateInternal.resolveIsolatedEntries(urls, function( + entryDescriptions) { + callback(entryDescriptions.map(function(description) { + return GetExternalFileEntry(description); + })); + }); + }); }); eventBindings.registerArgumentMassager( |