summaryrefslogtreecommitdiffstats
path: root/chromium/chrome/renderer/resources/extensions/file_browser_private_custom_bindings.js
diff options
context:
space:
mode:
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.js28
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(