Chromium Code Reviews| Index: ui/file_manager/file_manager/foreground/js/quick_view_controller.js |
| diff --git a/ui/file_manager/file_manager/foreground/js/quick_view_controller.js b/ui/file_manager/file_manager/foreground/js/quick_view_controller.js |
| index d68398af960adc1c04cec525ee5bdf7d153d487e..7ed6e193551141c766b0bf36ad1d4dad78a68747 100644 |
| --- a/ui/file_manager/file_manager/foreground/js/quick_view_controller.js |
| +++ b/ui/file_manager/file_manager/foreground/js/quick_view_controller.js |
| @@ -224,6 +224,15 @@ QuickViewController.prototype.getQuickViewParameters_ = function(entry, items) { |
| filePath: entry.name, |
| }; |
| + /** |
| + * @type function(!FileEntry): !Promise<!File> |
| + */ |
| + var getFile = function(entry) { |
| + return new Promise(function(resolve, reject) { |
| + entry.file(resolve, reject); |
| + }); |
| + }; |
| + |
| if (type === 'image') { |
| if (item.externalFileUrl) { |
| if (item.thumbnailUrl) { |
| @@ -235,11 +244,9 @@ QuickViewController.prototype.getQuickViewParameters_ = function(entry, items) { |
| }.bind(this)); |
| } |
| } else { |
| - return new Promise(function(resolve, reject) { |
| - entry.file(function(file) { |
| + return getFile(entry).then(function(file) { |
| params.contentUrl = URL.createObjectURL(file); |
|
fukino
2016/07/28 12:31:38
nit: Should be 2 tab.
oka
2016/08/02 00:24:00
Done.
|
| - resolve(params); |
| - }); |
| + return params; |
| }); |
| } |
| } else if (type === 'video') { |
| @@ -254,26 +261,35 @@ QuickViewController.prototype.getQuickViewParameters_ = function(entry, items) { |
| }); |
| } |
| } else { |
| - params.contentUrl = entry.toURL(); |
| params.autoplay = true; |
| if (item.thumbnailUrl) { |
| params.videoPoster = item.thumbnailUrl; |
| } |
| + return getFile(entry).then(function(file) { |
| + params.contentUrl = URL.createObjectURL(file); |
| + return params; |
|
fukino
2016/07/28 12:31:38
ditto
oka
2016/08/02 00:24:00
Done.
|
| + }); |
| } |
| } else if (type === 'audio') { |
| if (item.externalFileUrl) { |
| // If the file is in Drive, we ask user to open it with external app. |
| } else { |
| - params.contentUrl = entry.toURL(); |
| params.autoplay = true; |
| - return this.metadataModel_.get([entry], ['contentThumbnailUrl']) |
| - .then(function(entry, items) { |
| + return Promise.all([ |
| + this.metadataModel_.get([entry], ['contentThumbnailUrl']), |
| + getFile(entry) |
| + ]).then(function(values) { |
| + /** @type {!Array<!MetadataItem>} */ |
|
fukino
2016/07/28 12:31:38
ditto
oka
2016/08/02 00:24:00
Done.
|
| + var items = values[0]; |
| + /** @type {!File} */ |
| + var file = values[1]; |
| var item = items[0]; |
| if (item.contentThumbnailUrl) { |
| params.audioArtwork = item.contentThumbnailUrl; |
| } |
| + params.contentUrl = URL.createObjectURL(file); |
| return params; |
| - }.bind(this, entry)); |
| + }); |
| } |
| } |
| return Promise.resolve(params); |