Index: chrome/browser/resources/file_manager/js/metadata_dispatcher.js |
diff --git a/chrome/browser/resources/file_manager/js/metadata_dispatcher.js b/chrome/browser/resources/file_manager/js/metadata_dispatcher.js |
index e786b18ea9b3e99ae76db08dffa444a59f766c64..809b4298ab0b48f0140f5f50294fa0dfe2711cbe 100644 |
--- a/chrome/browser/resources/file_manager/js/metadata_dispatcher.js |
+++ b/chrome/browser/resources/file_manager/js/metadata_dispatcher.js |
@@ -18,6 +18,7 @@ importScripts('byte_reader.js'); |
*/ |
function MetadataDispatcher() { |
importScripts('exif_parser.js'); |
+ importScripts('image_parsers.js'); |
importScripts('mpeg_parser.js'); |
importScripts('id3_parser.js'); |
@@ -25,8 +26,8 @@ function MetadataDispatcher() { |
for (var i = 0; i < MetadataDispatcher.parserClasses_.length; i++) { |
var parserClass = MetadataDispatcher.parserClasses_[i]; |
- this.log('new parser: ' + parserClass.parserType); |
var parser = new parserClass(this); |
+ this.log('new parser: ' + parser.type); |
this.parserInstances_.push(parser); |
patterns.push(parser.urlFilter.source); |
} |
@@ -124,11 +125,11 @@ MetadataDispatcher.prototype.processOneFile = function(fileURL, callback) { |
steps[++currentStep].apply(self, arguments); |
} |
- // Even if the error occurs we still need to pass mimeType. |
- var metadata = {}; |
+ var defaultMetadata; // To pass along with error. |
function onError(err, stepName) { |
- self.error(fileURL, stepName || steps[currentStep].name, err, metadata); |
+ self.error(fileURL, stepName || steps[currentStep].name, err.toString(), |
+ defaultMetadata); |
} |
var steps = |
@@ -137,6 +138,7 @@ MetadataDispatcher.prototype.processOneFile = function(fileURL, callback) { |
for (var i = 0; i != self.parserInstances_.length; i++) { |
var parser = self.parserInstances_[i]; |
if (fileURL.match(parser.urlFilter)) { |
+ defaultMetadata = parser.createDefaultMetadata(); |
nextStep(parser); |
return; |
} |
@@ -159,7 +161,6 @@ MetadataDispatcher.prototype.processOneFile = function(fileURL, callback) { |
// Step four, parse the file content. |
function parseContent(file, parser) { |
- metadata.mimeType = parser.mimeType; |
parser.parse(file, callback, onError); |
} |
]; |
@@ -186,7 +187,8 @@ MetadataDispatcher.prototype.processOneFile = function(fileURL, callback) { |
function detectFormat(mimeType, arrayBuffer) { |
for (var i = 0; i != self.parserInstances_.length; i++) { |
var parser = self.parserInstances_[i]; |
- if (parser.mimeType && mimeType.match(parser.mimeType)) { |
+ if (parser.acceptsMimeType(mimeType)) { |
+ defaultMetadata = parser.createDefaultMetadata(); |
var blobBuilder = new WebKitBlobBuilder(); |
blobBuilder.append(arrayBuffer); |
nextStep(blobBuilder.getBlob(), parser); |