Index: ui/file_manager/file_manager/foreground/js/metadata/metadata_parser.js |
diff --git a/ui/file_manager/file_manager/foreground/js/metadata/metadata_parser.js b/ui/file_manager/file_manager/foreground/js/metadata/metadata_parser.js |
index adc0ea7e8414bb9bb475992f491866314ae165f0..05df1b38f1d0ef56e89450655f98e1c0ef00e4b8 100644 |
--- a/ui/file_manager/file_manager/foreground/js/metadata/metadata_parser.js |
+++ b/ui/file_manager/file_manager/foreground/js/metadata/metadata_parser.js |
@@ -51,6 +51,26 @@ MetadataParser.prototype.createDefaultMetadata = function() { |
}; |
}; |
+/** |
+ * Utility function to read specified range of bytes from file |
+ * @param {File} file The file to read. |
+ * @param {number} begin Starting byte(included). |
+ * @param {number} end Last byte(excluded). |
+ * @param {function(File, ByteReader)} callback Callback to invoke. |
+ * @param {function(string)} onError Error handler. |
+ */ |
+MetadataParser.readFileBytes = function(file, begin, end, callback, onError) { |
+ var fileReader = new FileReader(); |
+ fileReader.onerror = function(event) { |
+ onError(event.type); |
+ }; |
+ fileReader.onloadend = function() { |
+ callback(file, new ByteReader( |
+ /** @type {ArrayBuffer} */ (fileReader.result))); |
+ }; |
+ fileReader.readAsArrayBuffer(file.slice(begin, end)); |
+}; |
+ |
/* Base class for image metadata parsers */ |
function ImageParser(parent, type, urlFilter) { |
MetadataParser.apply(this, arguments); |