diff options
author | Allan Sandfeld Jensen <allan.jensen@theqtcompany.com> | 2016-07-01 12:20:27 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2016-07-01 10:39:40 +0000 |
commit | 7366110654eec46f21b6824f302356426f48cd74 (patch) | |
tree | f2ff1845183f6117a692bb0c705475c8c13556d5 /chromium/extensions/renderer/resources/entry_id_manager.js | |
parent | b92421879c003a0857b2074f7e05b3bbbb326569 (diff) | |
download | qtwebengine-chromium-7366110654eec46f21b6824f302356426f48cd74.tar.gz |
BASELINE: Update Chromium to 51.0.2704.106
Also add a few extra files we might need for future features.
Change-Id: I517c35e43221c610976d347c966d070ad44d4c2b
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Diffstat (limited to 'chromium/extensions/renderer/resources/entry_id_manager.js')
-rw-r--r-- | chromium/extensions/renderer/resources/entry_id_manager.js | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/chromium/extensions/renderer/resources/entry_id_manager.js b/chromium/extensions/renderer/resources/entry_id_manager.js new file mode 100644 index 00000000000..8e23942f93a --- /dev/null +++ b/chromium/extensions/renderer/resources/entry_id_manager.js @@ -0,0 +1,52 @@ +// Copyright 2014 The Chromium Authors. All rights reserved. +// 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 = {}; + +function computeName(entry) { + return entry.filesystem.name + ':' + entry.fullPath; +} + +function computeId(entry) { + var fileSystemId = fileSystemNatives.CrackIsolatedFileSystemName( + entry.filesystem.name); + if (!fileSystemId) + return null; + // Strip the leading '/' from the path. + return fileSystemId + ':' + $String.slice(entry.fullPath, 1); +} + +function registerEntry(id, entry) { + var name = computeName(entry); + nameToIds[name] = id; + idsToEntries[id] = entry; +} + +function getEntryId(entry) { + var name = null; + try { + name = computeName(entry); + } catch(e) { + return null; + } + var id = nameToIds[name]; + if (id != null) + return id; + + // If an entry has not been registered, compute its id and register it. + id = computeId(entry); + registerEntry(id, entry); + return id; +} + +function getEntryById(id) { + return idsToEntries[id]; +} + +exports.$set('registerEntry', registerEntry); +exports.$set('getEntryId', getEntryId); +exports.$set('getEntryById', getEntryById); |