Index: chrome/browser/resources/file_manager/js/file_type.js |
diff --git a/chrome/browser/resources/file_manager/js/file_type.js b/chrome/browser/resources/file_manager/js/file_type.js |
index ce859602c22639384164ee581c7861fc9b104be5..170349bca2263df76946e31ae9c4437fd5e1ecda 100644 |
--- a/chrome/browser/resources/file_manager/js/file_type.js |
+++ b/chrome/browser/resources/file_manager/js/file_type.js |
@@ -216,3 +216,33 @@ FileType.canUseImageUrlForPreview = function(metadata, opt_size) { |
(metadata.width && metadata.height && |
(metadata.width * metadata.height <= FileType.MAX_PREVIEW_PIXEL_COUNT))); |
}; |
+ |
+/** |
+ * @param {GDataFileProperties} gdata GData file properties. |
+ * @return {boolean} True of the file is available in the offline mode. |
+ */ |
+FileType.isAvaliableOffline_ = function(gdata) { |
+ return gdata.isPresent && !gdata.isHosted; |
+}; |
+ |
+/** |
+ * Check if all the specified files are available in the offline mode. |
+ * |
+ * @param {Array.<Entry>?} entries File entries, ignore if null. |
+ * @param {Array.<string>} urls File urls. |
+ * @param {function(booolean)} callback Function accepting the result. |
+ */ |
+FileType.checkOfflineAvailability = function(entries, urls, callback) { |
+ chrome.fileBrowserPrivate.getGDataFileProperties(urls, |
+ function(gdata) { |
+ var result = true; |
+ for (var i = 0; i != gdata.length; i++) { |
+ if ((entries && entries[i].isDirectory) || |
+ !FileType.isAvaliableOffline_(gdata[i])) { |
+ result = false; |
+ break; |
+ } |
+ } |
+ callback(result); |
+ }); |
+}; |