Chromium Code Reviews| Index: chrome/renderer/resources/extensions/media_galleries_custom_bindings.js |
| =================================================================== |
| --- chrome/renderer/resources/extensions/media_galleries_custom_bindings.js (revision 239032) |
| +++ chrome/renderer/resources/extensions/media_galleries_custom_bindings.js (working copy) |
| @@ -10,6 +10,23 @@ |
| var mediaGalleriesMetadata = {}; |
| +function createFileSystemObjectsAndUpdateMetadata(response) { |
| + var result = null; |
| + mediaGalleriesMetadata = {}; // Clear any previous metadata. |
| + if (response) { |
| + result = []; |
| + for (var i = 0; i < response.length; i++) { |
| + var filesystem = mediaGalleriesNatives.GetMediaFileSystemObject( |
| + response[i].fsid); |
| + $Array.push(result, filesystem); |
| + var metadata = response[i]; |
| + delete metadata.fsid; |
| + mediaGalleriesMetadata[filesystem.name] = metadata; |
| + } |
| + } |
| + return result; |
| +} |
| + |
| binding.registerCustomHook(function(bindingsAPI, extensionId) { |
| var apiFunctions = bindingsAPI.apiFunctions; |
| @@ -17,17 +34,28 @@ |
| // return an array of file system objects. |
| apiFunctions.setCustomCallback('getMediaFileSystems', |
| function(name, request, response) { |
| - var result = null; |
| - mediaGalleriesMetadata = {}; // Clear any previous metadata. |
| - if (response) { |
| - result = []; |
| - for (var i = 0; i < response.length; i++) { |
| - var filesystem = mediaGalleriesNatives.GetMediaFileSystemObject( |
| - response[i].fsid); |
| - $Array.push(result, filesystem); |
| - var metadata = response[i]; |
| - delete metadata.fsid; |
| - mediaGalleriesMetadata[filesystem.name] = metadata; |
| + var result = createFileSystemObjectsAndUpdateMetadata(response); |
| + if (request.callback) |
| + request.callback(result); |
| + request.callback = null; |
| + }); |
| + |
| + // manageMediaLocations uses a custom callback so that it can instantiate and |
| + // return an array of file system objects. |
| + apiFunctions.setCustomCallback('manageMediaLocations', |
| + function(name, request, response) { |
| + var result = {}; |
| + result['mediaFileSystems'] = null; |
| + |
| + if (request.args[0].type == 'manage') { |
| + result['mediaFileSystems'] = |
| + createFileSystemObjectsAndUpdateMetadata(response); |
| + } else if (request.args[0].type == 'directory_prompt') { |
| + if (response && response.length > 0) { |
| + var fsName = response.pop() |
|
vandebo (ex-Chrome)
2013/12/18 20:15:53
Instead of doing this hack, probably better to jus
vandebo (ex-Chrome)
2014/01/09 00:29:16
This?
|
| + result['userSelectedFilesSystemName'] = fsName; |
| + result['mediaFileSystems'] = |
| + createFileSystemObjectsAndUpdateMetadata(response); |
| } |
| } |
| if (request.callback) |