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) { |