media_galleries_custom_bindings.js revision 5821806d5e7f356e8fa4b058a389a808ea183019
1// Copyright (c) 2012 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5// Custom bindings for the Media Gallery API.
6
7var mediaGalleriesNatives = requireNative('mediaGalleries');
8
9var chromeHidden = requireNative('chrome_hidden').GetChromeHidden();
10
11chromeHidden.registerCustomHook('mediaGalleries',
12                                function(bindingsAPI, extensionId) {
13  var apiFunctions = bindingsAPI.apiFunctions;
14
15  // getMediaFileSystems uses a custom callback so that it can instantiate and
16  // return an array of file system objects.
17  apiFunctions.setCustomCallback('getMediaFileSystems',
18                                 function(name, request, response) {
19    var result = null;
20    if (response) {
21      result = [];
22      for (var i = 0; i < response.length; i++) {
23        result.push(mediaGalleriesNatives.GetMediaFileSystemObject(
24            response[i].fsid, response[i].name));
25      }
26    }
27    if (request.callback)
28      request.callback(result);
29    request.callback = null;
30  });
31});
32