| 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 fileSystem API. | 5 // Custom binding for the fileSystem API. |
| 6 | 6 |
| 7 var binding = require('binding').Binding.create('fileSystem'); | 7 var binding = require('binding').Binding.create('fileSystem'); |
| 8 var sendRequest = require('sendRequest'); | 8 var sendRequest = require('sendRequest'); |
| 9 | 9 |
| 10 var getFileBindingsForApi = | 10 var getFileBindingsForApi = |
| 11 require('fileEntryBindingUtil').getFileBindingsForApi; | 11 require('fileEntryBindingUtil').getFileBindingsForApi; |
| 12 var fileBindings = getFileBindingsForApi('fileSystem'); | 12 var fileBindings = getFileBindingsForApi('fileSystem'); |
| 13 var bindFileEntryCallback = fileBindings.bindFileEntryCallback; | 13 var bindFileEntryCallback = fileBindings.bindFileEntryCallback; |
| 14 var entryIdManager = fileBindings.entryIdManager; | 14 var entryIdManager = fileBindings.entryIdManager; |
| 15 var fileSystemNatives = requireNative('file_system_natives'); |
| 15 | 16 |
| 16 binding.registerCustomHook(function(bindingsAPI) { | 17 binding.registerCustomHook(function(bindingsAPI) { |
| 17 var apiFunctions = bindingsAPI.apiFunctions; | 18 var apiFunctions = bindingsAPI.apiFunctions; |
| 18 var fileSystem = bindingsAPI.compiledApi; | 19 var fileSystem = bindingsAPI.compiledApi; |
| 19 | 20 |
| 20 function bindFileEntryFunction(functionName) { | 21 function bindFileEntryFunction(functionName) { |
| 21 apiFunctions.setUpdateArgumentsPostValidate( | 22 apiFunctions.setUpdateArgumentsPostValidate( |
| 22 functionName, function(fileEntry, callback) { | 23 functionName, function(fileEntry, callback) { |
| 23 var fileSystemName = fileEntry.filesystem.name; | 24 var fileSystemName = fileEntry.filesystem.name; |
| 24 var relativePath = $String.slice(fileEntry.fullPath, 1); | 25 var relativePath = $String.slice(fileEntry.fullPath, 1); |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 72 callback, | 73 callback, |
| 73 [savedEntry]); | 74 [savedEntry]); |
| 74 return [id, false, null]; | 75 return [id, false, null]; |
| 75 } else { | 76 } else { |
| 76 // Ask the browser process for a new file entry for this id, to be passed | 77 // Ask the browser process for a new file entry for this id, to be passed |
| 77 // to |callback|. | 78 // to |callback|. |
| 78 return [id, true, callback]; | 79 return [id, true, callback]; |
| 79 } | 80 } |
| 80 }); | 81 }); |
| 81 | 82 |
| 83 apiFunctions.setCustomCallback('requestFileSystem', |
| 84 function(name, request, callback, response) { |
| 85 var fileSystem = null; |
| 86 if (response && response.file_system_id) { |
| 87 fileSystem = fileSystemNatives.GetIsolatedFileSystem( |
| 88 response.file_system_id, response.file_system_path); |
| 89 } |
| 90 sendRequest.safeCallbackApply( |
| 91 'fileSystem.requestFileSystem', |
| 92 request, |
| 93 callback, |
| 94 [fileSystem]); |
| 95 }); |
| 96 |
| 82 // TODO(benwells): Remove these deprecated versions of the functions. | 97 // TODO(benwells): Remove these deprecated versions of the functions. |
| 83 fileSystem.getWritableFileEntry = function() { | 98 fileSystem.getWritableFileEntry = function() { |
| 84 console.log("chrome.fileSystem.getWritableFileEntry is deprecated"); | 99 console.log("chrome.fileSystem.getWritableFileEntry is deprecated"); |
| 85 console.log("Please use chrome.fileSystem.getWritableEntry instead"); | 100 console.log("Please use chrome.fileSystem.getWritableEntry instead"); |
| 86 $Function.apply(fileSystem.getWritableEntry, this, arguments); | 101 $Function.apply(fileSystem.getWritableEntry, this, arguments); |
| 87 }; | 102 }; |
| 88 | 103 |
| 89 fileSystem.isWritableFileEntry = function() { | 104 fileSystem.isWritableFileEntry = function() { |
| 90 console.log("chrome.fileSystem.isWritableFileEntry is deprecated"); | 105 console.log("chrome.fileSystem.isWritableFileEntry is deprecated"); |
| 91 console.log("Please use chrome.fileSystem.isWritableEntry instead"); | 106 console.log("Please use chrome.fileSystem.isWritableEntry instead"); |
| 92 $Function.apply(fileSystem.isWritableEntry, this, arguments); | 107 $Function.apply(fileSystem.isWritableEntry, this, arguments); |
| 93 }; | 108 }; |
| 94 | 109 |
| 95 fileSystem.chooseFile = function() { | 110 fileSystem.chooseFile = function() { |
| 96 console.log("chrome.fileSystem.chooseFile is deprecated"); | 111 console.log("chrome.fileSystem.chooseFile is deprecated"); |
| 97 console.log("Please use chrome.fileSystem.chooseEntry instead"); | 112 console.log("Please use chrome.fileSystem.chooseEntry instead"); |
| 98 $Function.apply(fileSystem.chooseEntry, this, arguments); | 113 $Function.apply(fileSystem.chooseEntry, this, arguments); |
| 99 }; | 114 }; |
| 100 }); | 115 }); |
| 101 | 116 |
| 102 exports.bindFileEntryCallback = bindFileEntryCallback; | 117 exports.bindFileEntryCallback = bindFileEntryCallback; |
| 103 exports.binding = binding.generate(); | 118 exports.binding = binding.generate(); |
| OLD | NEW |