| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 /** | 5 /** |
| 6 * Namespace for utility functions. | 6 * Namespace for utility functions. |
| 7 */ | 7 */ |
| 8 var util = { | 8 var util = { |
| 9 /** | 9 /** |
| 10 * Returns a function that console.log's its arguments, prefixed by |msg|. | 10 * Returns a function that console.log's its arguments, prefixed by |msg|. |
| (...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 247 } else { | 247 } else { |
| 248 errorCallback(err); | 248 errorCallback(err); |
| 249 } | 249 } |
| 250 }); | 250 }); |
| 251 }, | 251 }, |
| 252 | 252 |
| 253 /** | 253 /** |
| 254 * Locate the file referred to by path, creating directories or the file | 254 * Locate the file referred to by path, creating directories or the file |
| 255 * itself if necessary. | 255 * itself if necessary. |
| 256 */ | 256 */ |
| 257 getOrCreateFile: function(path, successCallback, errorCallback) { | 257 getOrCreateFile: function(root, path, successCallback, errorCallback) { |
| 258 var dirname = null; | 258 var dirname = null; |
| 259 var basename = null; | 259 var basename = null; |
| 260 | 260 |
| 261 function onDirFound(dirEntry) { | 261 function onDirFound(dirEntry) { |
| 262 dirEntry.getFile(basename, { create: true }, | 262 dirEntry.getFile(basename, { create: true }, |
| 263 successCallback, errorCallback); | 263 successCallback, errorCallback); |
| 264 } | 264 } |
| 265 | 265 |
| 266 var i = path.lastIndexOf('/'); | 266 var i = path.lastIndexOf('/'); |
| 267 if (i > -1) { | 267 if (i > -1) { |
| 268 dirname = path.substr(0, i); | 268 dirname = path.substr(0, i); |
| 269 basename = path.substr(i + 1); | 269 basename = path.substr(i + 1); |
| 270 } else { | 270 } else { |
| 271 basename = path; | 271 basename = path; |
| 272 } | 272 } |
| 273 | 273 |
| 274 if (!dirname) | 274 if (!dirname) |
| 275 return onDirFound(this.filesystem.root); | 275 return onDirFound(root); |
| 276 | 276 |
| 277 this.getOrCreateDirectory(dirname, onDirFound, errorCallback); | 277 util.getOrCreateDirectory(root, dirname, onDirFound, errorCallback); |
| 278 }, | 278 }, |
| 279 | 279 |
| 280 /** | 280 /** |
| 281 * Locate the directory referred to by path, creating directories along the | 281 * Locate the directory referred to by path, creating directories along the |
| 282 * way. | 282 * way. |
| 283 */ | 283 */ |
| 284 getOrCreateDirectory: function(path, successCallback, errorCallback) { | 284 getOrCreateDirectory: function(root, path, successCallback, errorCallback) { |
| 285 var names = path.split('/'); | 285 var names = path.split('/'); |
| 286 | 286 |
| 287 function getOrCreateNextName(dir) { | 287 function getOrCreateNextName(dir) { |
| 288 if (!names.length) | 288 if (!names.length) |
| 289 return successCallback(dir); | 289 return successCallback(dir); |
| 290 | 290 |
| 291 var name; | 291 var name; |
| 292 do { | 292 do { |
| 293 name = names.shift(); | 293 name = names.shift(); |
| 294 } while (!name || name == '.'); | 294 } while (!name || name == '.'); |
| 295 | 295 |
| 296 dir.getDirectory(name, { create: true }, getOrCreateNextName, | 296 dir.getDirectory(name, { create: true }, getOrCreateNextName, |
| 297 errorCallback); | 297 errorCallback); |
| 298 } | 298 } |
| 299 | 299 |
| 300 getOrCreateNextName(this.filesystem.root); | 300 getOrCreateNextName(root); |
| 301 }, | 301 }, |
| 302 | 302 |
| 303 /** | 303 /** |
| 304 * Lookup tables used by bytesToSi. | 304 * Lookup tables used by bytesToSi. |
| 305 */ | 305 */ |
| 306 units_: ['B', 'k', 'M', 'G', 'T', 'P'], | 306 units_: ['B', 'k', 'M', 'G', 'T', 'P'], |
| 307 scale_: [1, 1e3, 1e6, 1e9, 1e12, 1e15], | 307 scale_: [1, 1e3, 1e6, 1e9, 1e12, 1e15], |
| 308 | 308 |
| 309 /** | 309 /** |
| 310 * Convert a number of bytes into an appropriate International System of | 310 * Convert a number of bytes into an appropriate International System of |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 384 if (typeof(arg) == 'string') { | 384 if (typeof(arg) == 'string') { |
| 385 element.appendChild(document.createTextNode(arg)); | 385 element.appendChild(document.createTextNode(arg)); |
| 386 } else { | 386 } else { |
| 387 element.appendChild(arg); | 387 element.appendChild(arg); |
| 388 } | 388 } |
| 389 } | 389 } |
| 390 | 390 |
| 391 return element; | 391 return element; |
| 392 } | 392 } |
| 393 }; | 393 }; |
| OLD | NEW |