| 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];
|
| + if (id != null)
|
| + return id;
|
| +
|
| + id = computeId(entry);
|
| + registerEntry(id, entry);
|
| + return id;
|
| }
|
|
|
| function getEntryById(id) {
|
|
|