Chromium Code Reviews| Index: chrome/renderer/resources/extensions/entry_id_manager.js |
| diff --git a/chrome/renderer/resources/extensions/entry_id_manager.js b/chrome/renderer/resources/extensions/entry_id_manager.js |
| index 743165097938494ffb08d033a7cd267f1cdd2ebb..4942a50b9e714dacb25854b1407c7015f5f98b89 100644 |
| --- a/chrome/renderer/resources/extensions/entry_id_manager.js |
| +++ b/chrome/renderer/resources/extensions/entry_id_manager.js |
| @@ -2,6 +2,8 @@ |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| +var fileSystemNatives = requireNative('file_system_natives'); |
| + |
| var nameToIds = {}; |
| var idsToEntries = {}; |
| @@ -9,11 +11,19 @@ function computeName(entry) { |
| return entry.filesystem.name + ':' + entry.fullPath; |
| } |
| +function computeId(entry) { |
| + var fileSystemId = fileSystemNatives.CrackIsolatedFileSystemName( |
| + entry.filesystem.name); |
| + if (!fileSystemId) |
| + return null; |
| + return fileSystemId + ':' + entry.fullPath.slice(1); |
| +} |
| + |
| function registerEntry(id, entry) { |
| var name = computeName(entry); |
| nameToIds[name] = id; |
| idsToEntries[id] = entry; |
| -}; |
| +} |
| function getEntryId(entry) { |
| var name = null; |
| @@ -22,7 +32,13 @@ function getEntryId(entry) { |
| } catch(e) { |
| return null; |
| } |
| - return nameToIds[name]; |
| + var id = nameToIds[name]; |
|
Matt Giuca
2013/05/22 08:26:14
Maybe explain what this is doing.
Sam McNally
2013/05/23 03:47:28
Done.
|
| + if (id != null) |
| + return id; |
| + |
| + id = computeId(entry); |
| + registerEntry(id, entry); |
| + return id; |
| } |
| function getEntryById(id) { |