Index: ui/file_manager/gallery/js/gallery_item.js |
diff --git a/ui/file_manager/gallery/js/gallery_item.js b/ui/file_manager/gallery/js/gallery_item.js |
index 088da41af9359de0d73416de9de9d9925d509d73..922c07bed1b0a6de7a210dea35aede91f9587a92 100644 |
--- a/ui/file_manager/gallery/js/gallery_item.js |
+++ b/ui/file_manager/gallery/js/gallery_item.js |
@@ -282,33 +282,36 @@ Gallery.Item.prototype.saveToFile = function( |
}; |
var doSave = function(newFile, fileEntry) { |
- fileEntry.createWriter(function(fileWriter) { |
- var writeContent = function() { |
- fileWriter.onwriteend = onSuccess.bind(null, fileEntry); |
- // TODO(hirono): Remove the quality 1 for thumbanils. The code path is |
- // no longer used. |
- var metadataEncoder = ImageEncoder.encodeMetadata( |
- this.metadata_, canvas, 1 /* quality */); |
- // Contrary to what one might think 1.0 is not a good default. Opening |
- // and saving an typical photo taken with consumer camera increases its |
- // file size by 50-100%. Experiments show that 0.9 is much better. It |
- // shrinks some photos a bit, keeps others about the same size, but does |
- // not visibly lower the quality. |
- fileWriter.write(ImageEncoder.getBlob(canvas, metadataEncoder, 0.9)); |
- }.bind(this); |
- fileWriter.onerror = function(error) { |
- onError(error); |
- // Disable all callbacks on the first error. |
- fileWriter.onerror = null; |
- fileWriter.onwriteend = null; |
- }; |
- if (newFile) { |
- writeContent(); |
- } else { |
- fileWriter.onwriteend = writeContent; |
- fileWriter.truncate(0); |
- } |
- }.bind(this), onError); |
+ var metadataPromise = this.fileSystemMetadata_.get( |
+ [fileEntry], |
+ ['mediaMimeType', 'contentMimeType', 'ifd', 'exifLittleEndian']); |
+ metadataPromise.then(function(metadataItems) { |
+ fileEntry.createWriter(function(fileWriter) { |
+ var writeContent = function() { |
+ fileWriter.onwriteend = onSuccess.bind(null, fileEntry); |
+ var metadataEncoder = ImageEncoder.encodeMetadata( |
+ metadataItems[0], canvas, /* quality for thumbnail*/ 0.8); |
+ // Contrary to what one might think 1.0 is not a good default. Opening |
+ // and saving an typical photo taken with consumer camera increases |
+ // its file size by 50-100%. Experiments show that 0.9 is much better. |
+ // It shrinks some photos a bit, keeps others about the same size, but |
+ // does not visibly lower the quality. |
+ fileWriter.write(ImageEncoder.getBlob(canvas, metadataEncoder, 0.9)); |
+ }.bind(this); |
+ fileWriter.onerror = function(error) { |
+ onError(error); |
+ // Disable all callbacks on the first error. |
+ fileWriter.onerror = null; |
+ fileWriter.onwriteend = null; |
+ }; |
+ if (newFile) { |
+ writeContent(); |
+ } else { |
+ fileWriter.onwriteend = writeContent; |
+ fileWriter.truncate(0); |
+ } |
+ }.bind(this), onError); |
+ }.bind(this)); |
}.bind(this); |
var getFile = function(dir, newFile) { |