| Index: ui/file_manager/file_manager/foreground/js/metadata/new_metadata_provider.js
|
| diff --git a/ui/file_manager/file_manager/foreground/js/metadata/new_metadata_provider.js b/ui/file_manager/file_manager/foreground/js/metadata/new_metadata_provider.js
|
| index 6f63f02622e3fcc6df4b0f36ffbadfb32b17fbe1..282bbbf01bc1ac0a90e746075e821881135ce6ba 100644
|
| --- a/ui/file_manager/file_manager/foreground/js/metadata/new_metadata_provider.js
|
| +++ b/ui/file_manager/file_manager/foreground/js/metadata/new_metadata_provider.js
|
| @@ -37,227 +37,3 @@ NewMetadataProvider.prototype.checkPropertyNames = function(names) {
|
| * entry error.
|
| */
|
| NewMetadataProvider.prototype.get;
|
| -
|
| -/**
|
| - * @param {!NewMetadataProvider} rawProvider
|
| - * @constructor
|
| - * @struct
|
| - */
|
| -function CachedMetadataProvider(rawProvider) {
|
| - /**
|
| - * @private {!NewMetadataProvider}
|
| - * @const
|
| - */
|
| - this.rawProvider_ = rawProvider;
|
| -
|
| - /**
|
| - * @private {!MetadataProviderCache}
|
| - * @const
|
| - */
|
| - this.cache_ = new MetadataProviderCache();
|
| -
|
| - /**
|
| - * @private {!Array<!MetadataProviderCallbackRequest<T>>}
|
| - * @const
|
| - */
|
| - this.callbackRequests_ = [];
|
| -}
|
| -
|
| -/**
|
| - * @return {!NewMetadataProvider}
|
| - */
|
| -CachedMetadataProvider.prototype.getRawProvider = function() {
|
| - return this.rawProvider_;
|
| -};
|
| -
|
| -/**
|
| - * Obtains metadata for entries.
|
| - * @param {!Array<!Entry>} entries Entries.
|
| - * @param {!Array<string>} names Metadata property names to be obtained.
|
| - * @return {!Promise<!Array<!MetadataItem>>}
|
| - */
|
| -CachedMetadataProvider.prototype.get = function(entries, names) {
|
| - this.rawProvider_.checkPropertyNames(names);
|
| -
|
| - // Check if the results are cached or not.
|
| - if (this.cache_.hasFreshCache(entries, names))
|
| - return Promise.resolve(this.getCache(entries, names));
|
| -
|
| - // The LRU cache may be cached out when the callback is completed.
|
| - // To hold cached values, create snapshot of the cache for entries.
|
| - var requestId = this.cache_.generateRequestId();
|
| - var snapshot = this.cache_.createSnapshot(entries);
|
| - var requests = snapshot.createRequests(entries, names);
|
| - snapshot.startRequests(requestId, requests);
|
| - this.cache_.startRequests(requestId, requests);
|
| -
|
| - // Register callback.
|
| - var promise = new Promise(function(fulfill) {
|
| - this.callbackRequests_.push(new MetadataProviderCallbackRequest(
|
| - entries, names, snapshot, fulfill));
|
| - }.bind(this));
|
| -
|
| - // If the requests are not empty, call the requests.
|
| - if (requests.length) {
|
| - this.rawProvider_.get(requests).then(function(list) {
|
| - // Obtain requested entries and ensure all the requested properties are
|
| - // contained in the result.
|
| - var requestedEntries = [];
|
| - for (var i = 0; i < requests.length; i++) {
|
| - requestedEntries.push(requests[i].entry);
|
| - for (var j = 0; j < requests[i].names.length; j++) {
|
| - var name = requests[i].names[j];
|
| - if (!(name in list[i]))
|
| - list[i][name] = undefined;
|
| - }
|
| - }
|
| -
|
| - // Store cache.
|
| - this.cache_.storeProperties(requestId, requestedEntries, list);
|
| -
|
| - // Invoke callbacks.
|
| - var i = 0;
|
| - while (i < this.callbackRequests_.length) {
|
| - if (this.callbackRequests_[i].storeProperties(
|
| - requestId, requestedEntries, list)) {
|
| - // Callback was called.
|
| - this.callbackRequests_.splice(i, 1);
|
| - } else {
|
| - i++;
|
| - }
|
| - }
|
| - }.bind(this));
|
| - }
|
| -
|
| - return promise;
|
| -};
|
| -
|
| -/**
|
| - * Obtains metadata cache for entries.
|
| - * @param {!Array<!Entry>} entries Entries.
|
| - * @param {!Array<string>} names Metadata property names to be obtained.
|
| - * @return {!Array<!MetadataItem>}
|
| - */
|
| -CachedMetadataProvider.prototype.getCache = function(entries, names) {
|
| - // Check if the property name is correct or not.
|
| - this.rawProvider_.checkPropertyNames(names);
|
| - return this.cache_.get(entries, names);
|
| -};
|
| -
|
| -/**
|
| - * Clears old metadata for newly created entries.
|
| - * @param {!Array<!Entry>} entries
|
| - */
|
| -CachedMetadataProvider.prototype.notifyEntriesCreated = function(entries) {
|
| - this.cache_.clear(util.entriesToURLs(entries));
|
| -};
|
| -
|
| -/**
|
| - * Clears metadata for deleted entries.
|
| - * @param {!Array<string>} urls Note it is not an entry list because we cannot
|
| - * obtain entries after removing them from the file system.
|
| - */
|
| -CachedMetadataProvider.prototype.notifyEntriesRemoved = function(urls) {
|
| - this.cache_.clear(urls);
|
| -};
|
| -
|
| -/**
|
| - * Invalidates metadata for updated entries.
|
| - * @param {!Array<!Entry>} entries
|
| - */
|
| -CachedMetadataProvider.prototype.notifyEntriesChanged = function(entries) {
|
| - this.cache_.invalidate(this.cache_.generateRequestId(), entries);
|
| -};
|
| -
|
| -/**
|
| - * Clears all cache.
|
| - */
|
| -CachedMetadataProvider.prototype.clearAllCache = function() {
|
| - this.cache_.clearAll();
|
| -};
|
| -
|
| -/**
|
| - * Adds event listener to internal cache object.
|
| - * @param {string} type
|
| - * @param {function(Event):undefined} callback
|
| - */
|
| -CachedMetadataProvider.prototype.addEventListener = function(type, callback) {
|
| - this.cache_.addEventListener(type, callback);
|
| -};
|
| -
|
| -/**
|
| - * @param {!Array<!Entry>} entries
|
| - * @param {!Array<string>} names
|
| - * @param {!MetadataCacheSet} cache
|
| - * @param {function(!MetadataItem):undefined} fulfill
|
| - * @constructor
|
| - * @struct
|
| - */
|
| -function MetadataProviderCallbackRequest(entries, names, cache, fulfill) {
|
| - /**
|
| - * @private {!Array<!Entry>}
|
| - * @const
|
| - */
|
| - this.entries_ = entries;
|
| -
|
| - /**
|
| - * @private {!Array<string>}
|
| - * @const
|
| - */
|
| - this.names_ = names;
|
| -
|
| - /**
|
| - * @private {!MetadataCacheSet}
|
| - * @const
|
| - */
|
| - this.cache_ = cache;
|
| -
|
| - /**
|
| - * @private {function(!MetadataItem):undefined}
|
| - * @const
|
| - */
|
| - this.fulfill_ = fulfill;
|
| -}
|
| -
|
| -/**
|
| - * Stores properties to snapshot cache of the callback request.
|
| - * If all the requested property are served, it invokes the callback.
|
| - * @param {number} requestId
|
| - * @param {!Array<!Entry>} entries
|
| - * @param {!Array<!MetadataItem>} objects
|
| - * @return {boolean} Whether the callback is invoked or not.
|
| - */
|
| -MetadataProviderCallbackRequest.prototype.storeProperties = function(
|
| - requestId, entries, objects) {
|
| - this.cache_.storeProperties(requestId, entries, objects);
|
| - if (this.cache_.hasFreshCache(this.entries_, this.names_)) {
|
| - this.fulfill_(this.cache_.get(this.entries_, this.names_));
|
| - return true;
|
| - }
|
| - return false;
|
| -};
|
| -
|
| -/**
|
| - * Helper wrapper for LRUCache.
|
| - * @constructor
|
| - * @extends {MetadataCacheSet}
|
| - * @struct
|
| - */
|
| -function MetadataProviderCache() {
|
| - MetadataCacheSet.call(this, new MetadataCacheSetStorageForObject({}));
|
| -
|
| - /**
|
| - * @private {number}
|
| - */
|
| - this.requestIdCounter_ = 0;
|
| -}
|
| -
|
| -MetadataProviderCache.prototype.__proto__ = MetadataCacheSet.prototype;
|
| -
|
| -/**
|
| - * Generates a unique request ID every time when it is called.
|
| - * @return {number}
|
| - */
|
| -MetadataProviderCache.prototype.generateRequestId = function() {
|
| - return this.requestIdCounter_++;
|
| -};
|
|
|