Index: ui/file_manager/file_manager/foreground/js/metadata/metadata_cache_item.js |
diff --git a/ui/file_manager/file_manager/foreground/js/metadata/metadata_cache_item.js b/ui/file_manager/file_manager/foreground/js/metadata/metadata_cache_item.js |
index 5f0b8a2f408cac4a81ee211b813270bbd2968859..ec2bd71dfad1262e3504c180d5e1a376e05b8e31 100644 |
--- a/ui/file_manager/file_manager/foreground/js/metadata/metadata_cache_item.js |
+++ b/ui/file_manager/file_manager/foreground/js/metadata/metadata_cache_item.js |
@@ -25,6 +25,7 @@ MetadataCacheItem.prototype.createRequests = function(names) { |
var loadRequested = []; |
for (var i = 0; i < names.length; i++) { |
var name = names[i]; |
+ assert(!/Error$/.test(name)); |
// Check if the property needs to be updated. |
if (this.properties_[name] && |
this.properties_[name].state !== |
@@ -44,6 +45,7 @@ MetadataCacheItem.prototype.createRequests = function(names) { |
MetadataCacheItem.prototype.startRequests = function(requestId, names) { |
for (var i = 0; i < names.length; i++) { |
var name = names[i]; |
+ assert(!/Error$/.test(name)); |
if (!this.properties_[name]) |
this.properties_[name] = new MetadataCacheItemProperty(); |
this.properties_[name].requestId = requestId; |
@@ -61,6 +63,12 @@ MetadataCacheItem.prototype.storeProperties = function(requestId, typedObject) { |
var changed = false; |
var object = /** @type {!Object} */(typedObject); |
for (var name in object) { |
+ if (/.Error$/.test(name) && object[name]) |
+ object[name.substr(0, name.length - 5)] = undefined; |
+ } |
+ for (var name in object) { |
+ if (/.Error$/.test(name)) |
+ continue; |
if (!this.properties_[name]) |
this.properties_[name] = new MetadataCacheItemProperty(); |
if (requestId < this.properties_[name].requestId || |
@@ -71,6 +79,7 @@ MetadataCacheItem.prototype.storeProperties = function(requestId, typedObject) { |
changed = true; |
this.properties_[name].requestId = requestId; |
this.properties_[name].value = object[name]; |
+ this.properties_[name].error = object[name + 'Error']; |
this.properties_[name].state = MetadataCacheItemPropertyState.FULFILLED; |
} |
return changed; |
@@ -100,8 +109,11 @@ MetadataCacheItem.prototype.get = function(names) { |
var result = /** @type {!Object} */(new MetadataItem()); |
for (var i = 0; i < names.length; i++) { |
var name = names[i]; |
- if (this.properties_[name]) |
+ assert(!/Error$/.test(name)); |
+ if (this.properties_[name]) { |
result[name] = this.properties_[name].value; |
+ result[name + 'Error'] = this.properties_[name].error; |
+ } |
} |
return /** @type {!MetadataItem} */(result); |
}; |
@@ -116,6 +128,7 @@ MetadataCacheItem.prototype.clone = function() { |
var property = this.properties_[name]; |
clonedItem.properties_[name] = new MetadataCacheItemProperty(); |
clonedItem.properties_[name].value = property.value; |
+ clonedItem.properties_[name].error = property.error; |
clonedItem.properties_[name].requestId = property.requestId; |
clonedItem.properties_[name].state = property.state; |
} |
@@ -160,6 +173,11 @@ function MetadataCacheItemProperty() { |
this.value = null; |
/** |
+ * @public {Error} |
+ */ |
+ this.error = null; |
+ |
+ /** |
* Last request ID. |
* @public {number} |
*/ |