| Index: ui/file_manager/file_manager/foreground/js/metadata/metadata_cache_set.js
|
| diff --git a/ui/file_manager/file_manager/foreground/js/metadata/metadata_cache_set.js b/ui/file_manager/file_manager/foreground/js/metadata/metadata_cache_set.js
|
| index cf4d8da94677395d822cf9e0b98c75156744f8fc..2d1bd1825ca13afd295af0a11ae966e5287947ff 100644
|
| --- a/ui/file_manager/file_manager/foreground/js/metadata/metadata_cache_set.js
|
| +++ b/ui/file_manager/file_manager/foreground/js/metadata/metadata_cache_set.js
|
| @@ -7,7 +7,7 @@
|
| * @param {!MetadataCacheSetStorage} items Storage object containing
|
| * MetadataCacheItem.
|
| * @constructor
|
| - * @const
|
| + * @struct
|
| */
|
| function MetadataCacheSet(items) {
|
| /**
|
| @@ -18,26 +18,38 @@ function MetadataCacheSet(items) {
|
| }
|
|
|
| /**
|
| - * Starts requests for invalidated properties.
|
| - * @param {number} requestId
|
| + * Creates list of MetadataRequest based on the cache state.
|
| * @param {!Array<!FileEntry>} entries
|
| * @param {!Array<string>} names
|
| - * @return {!Array<!MetadataRequest>} Requests to be passed NewMetadataProvider.
|
| + * @return {!Array<!MetadataRequest>}
|
| */
|
| -MetadataCacheSet.prototype.startRequests = function(requestId, entries, names) {
|
| +MetadataCacheSet.prototype.createRequests = function(entries, names) {
|
| var requests = [];
|
| for (var i = 0; i < entries.length; i++) {
|
| - var url = entries[i].toURL();
|
| - var item = this.items_.get(url);
|
| + var item = this.items_.peek(entries[i].toURL());
|
| + var requestedNames = item ? item.createRequests(names) : names;
|
| + if (requestedNames.length)
|
| + requests.push(new MetadataRequest(entries[i], requestedNames));
|
| + }
|
| + return requests;
|
| +};
|
| +
|
| +/**
|
| + * Updates cache states to start the given requests.
|
| + * @param {number} requestId
|
| + * @param {!Array<!MetadataRequest>} requests
|
| + */
|
| +MetadataCacheSet.prototype.startRequests = function(requestId, requests) {
|
| + for (var i = 0; i < requests.length; i++) {
|
| + var request = requests[i];
|
| + var url = request.entry.toURL();
|
| + var item = this.items_.peek(url);
|
| if (!item) {
|
| item = new MetadataCacheItem();
|
| this.items_.put(url, item);
|
| }
|
| - var loadRequested = item.startRequests(requestId, names);
|
| - if (loadRequested.length)
|
| - requests.push(new MetadataRequest(entries[i], loadRequested));
|
| + item.startRequests(requestId, request.names);
|
| }
|
| - return requests;
|
| };
|
|
|
| /**
|
| @@ -101,7 +113,7 @@ function MetadataCacheSetStorage() {
|
| /**
|
| * Returns an item corresponding to the given URL.
|
| * @param {string} url Entry URL.
|
| - * @return {!MetadataCacheItem}
|
| + * @return {MetadataCacheItem}
|
| */
|
| MetadataCacheSetStorage.prototype.get = function(url) {};
|
|
|
| @@ -109,7 +121,7 @@ MetadataCacheSetStorage.prototype.get = function(url) {};
|
| * Returns an item corresponding to the given URL without changing orders in
|
| * the cache list.
|
| * @param {string} url Entry URL.
|
| - * @return {!MetadataCacheItem}
|
| + * @return {MetadataCacheItem}
|
| */
|
| MetadataCacheSetStorage.prototype.peek = function(url) {};
|
|
|
|
|