diff options
Diffstat (limited to 'chrome/renderer/resources/extensions/file_browser_handler_custom_bindings.js')
-rw-r--r-- | chrome/renderer/resources/extensions/file_browser_handler_custom_bindings.js | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/chrome/renderer/resources/extensions/file_browser_handler_custom_bindings.js b/chrome/renderer/resources/extensions/file_browser_handler_custom_bindings.js index 44d1539..4ce96be 100644 --- a/chrome/renderer/resources/extensions/file_browser_handler_custom_bindings.js +++ b/chrome/renderer/resources/extensions/file_browser_handler_custom_bindings.js @@ -22,3 +22,26 @@ chromeHidden.Event.registerArgumentMassager('fileBrowserHandler.onExecute', for (var i = 0; i < fileList.length; i++) fileList[i] = GetExternalFileEntry(fileList[i]); }); + +chromeHidden.registerCustomHook('fileBrowserHandler', function(bindingsAPI) { + var apiFunctions = bindingsAPI.apiFunctions; + + apiFunctions.setHandleRequest('selectFile', + function(selectionParams, callback) { + function internalCallback(externalCallback, internalResult) { + if (!externalCallback) + return; + var result = undefined; + if (internalResult) { + result = { success: internalResult.success, entry: null }; + if (internalResult.success) + result.entry = GetExternalFileEntry(internalResult.entry); + } + + externalCallback(result); + } + + return chromeHidden.internalAPIs.fileBrowserHandlerInternal.selectFile( + selectionParams, internalCallback.bind(null, callback)); + }); +}); |