| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 // Custom binding for the fileManagerPrivate API. | 5 // Custom binding for the fileManagerPrivate API. |
| 6 | 6 |
| 7 // Bindings | 7 // Bindings |
| 8 var binding = require('binding').Binding.create('fileManagerPrivate'); | 8 var binding = require('binding').Binding.create('fileManagerPrivate'); |
| 9 var eventBindings = require('event_bindings'); | 9 var eventBindings = require('event_bindings'); |
| 10 | 10 |
| 11 // Natives | 11 // Natives |
| 12 var fileManagerPrivateNatives = requireNative('file_manager_private'); | 12 var fileManagerPrivateNatives = requireNative('file_manager_private'); |
| 13 var fileBrowserHandlerNatives = requireNative('file_browser_handler'); | 13 var fileBrowserHandlerNatives = requireNative('file_browser_handler'); |
| 14 | 14 |
| 15 // Internals | 15 // Internals |
| 16 var fileManagerPrivateInternal = | 16 var fileManagerPrivateInternal = |
| 17 require('binding').Binding.create('fileManagerPrivateInternal').generate(); | 17 require('binding').Binding.create('fileManagerPrivateInternal').generate(); |
| 18 | 18 |
| 19 // Shorthands | 19 // Shorthands |
| 20 var GetFileSystem = fileManagerPrivateNatives.GetFileSystem; | 20 var GetFileSystem = fileManagerPrivateNatives.GetFileSystem; |
| 21 var GetExternalFileEntry = fileBrowserHandlerNatives.GetExternalFileEntry; | 21 var GetExternalFileEntry = fileBrowserHandlerNatives.GetExternalFileEntry; |
| 22 | 22 |
| 23 binding.registerCustomHook(function(bindingsAPI) { | 23 binding.registerCustomHook(function(bindingsAPI) { |
| 24 var apiFunctions = bindingsAPI.apiFunctions; | 24 var apiFunctions = bindingsAPI.apiFunctions; |
| 25 | 25 |
| 26 apiFunctions.setCustomCallback('requestFileSystem', | |
| 27 function(name, request, callback, response) { | |
| 28 var fs = null; | |
| 29 if (response && !response.error) | |
| 30 fs = GetFileSystem(response.name, response.root_url); | |
| 31 if (callback) | |
| 32 callback(fs); | |
| 33 }); | |
| 34 | |
| 35 apiFunctions.setCustomCallback('searchDrive', | 26 apiFunctions.setCustomCallback('searchDrive', |
| 36 function(name, request, callback, response) { | 27 function(name, request, callback, response) { |
| 37 if (response && !response.error && response.entries) { | 28 if (response && !response.error && response.entries) { |
| 38 response.entries = response.entries.map(function(entry) { | 29 response.entries = response.entries.map(function(entry) { |
| 39 return GetExternalFileEntry(entry); | 30 return GetExternalFileEntry(entry); |
| 40 }); | 31 }); |
| 41 } | 32 } |
| 42 | 33 |
| 43 // So |callback| doesn't break if response is not defined. | 34 // So |callback| doesn't break if response is not defined. |
| 44 if (!response) | 35 if (!response) |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 80 }); | 71 }); |
| 81 | 72 |
| 82 eventBindings.registerArgumentMassager( | 73 eventBindings.registerArgumentMassager( |
| 83 'fileManagerPrivate.onDirectoryChanged', function(args, dispatch) { | 74 'fileManagerPrivate.onDirectoryChanged', function(args, dispatch) { |
| 84 // Convert the entry arguments into a real Entry object. | 75 // Convert the entry arguments into a real Entry object. |
| 85 args[0].entry = GetExternalFileEntry(args[0].entry); | 76 args[0].entry = GetExternalFileEntry(args[0].entry); |
| 86 dispatch(args); | 77 dispatch(args); |
| 87 }); | 78 }); |
| 88 | 79 |
| 89 exports.binding = binding.generate(); | 80 exports.binding = binding.generate(); |
| OLD | NEW |