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) |