| OLD | NEW |
| (Empty) |
| 1 // Copyright 2014 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 var fileSystemNatives = requireNative('file_system_natives'); | |
| 6 | |
| 7 var nameToIds = {}; | |
| 8 var idsToEntries = {}; | |
| 9 | |
| 10 function computeName(entry) { | |
| 11 return entry.filesystem.name + ':' + entry.fullPath; | |
| 12 } | |
| 13 | |
| 14 function computeId(entry) { | |
| 15 var fileSystemId = fileSystemNatives.CrackIsolatedFileSystemName( | |
| 16 entry.filesystem.name); | |
| 17 if (!fileSystemId) | |
| 18 return null; | |
| 19 // Strip the leading '/' from the path. | |
| 20 return fileSystemId + ':' + $String.slice(entry.fullPath, 1); | |
| 21 } | |
| 22 | |
| 23 function registerEntry(id, entry) { | |
| 24 var name = computeName(entry); | |
| 25 nameToIds[name] = id; | |
| 26 idsToEntries[id] = entry; | |
| 27 } | |
| 28 | |
| 29 function getEntryId(entry) { | |
| 30 var name = null; | |
| 31 try { | |
| 32 name = computeName(entry); | |
| 33 } catch(e) { | |
| 34 return null; | |
| 35 } | |
| 36 var id = nameToIds[name]; | |
| 37 if (id != null) | |
| 38 return id; | |
| 39 | |
| 40 // If an entry has not been registered, compute its id and register it. | |
| 41 id = computeId(entry); | |
| 42 registerEntry(id, entry); | |
| 43 return id; | |
| 44 } | |
| 45 | |
| 46 function getEntryById(id) { | |
| 47 return idsToEntries[id]; | |
| 48 } | |
| 49 | |
| 50 exports.registerEntry = registerEntry; | |
| 51 exports.getEntryId = getEntryId; | |
| 52 exports.getEntryById = getEntryById; | |
| OLD | NEW |