Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(288)

Side by Side Diff: ui/file_manager/file_manager/foreground/js/metadata/content_metadata_provider.js

Issue 2581133002: Quick View: Show year recorded metadata. (Closed)
Patch Set: . Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 /** 5 /**
6 * @param {!MessagePort=} opt_messagePort Message port overriding the default 6 * @param {!MessagePort=} opt_messagePort Message port overriding the default
7 * worker port. 7 * worker port.
8 * @extends {MetadataProvider} 8 * @extends {MetadataProvider}
9 * @constructor 9 * @constructor
10 * @struct 10 * @struct
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
58 'ifd', 58 'ifd',
59 'imageHeight', 59 'imageHeight',
60 'imageWidth', 60 'imageWidth',
61 'mediaAlbum', 61 'mediaAlbum',
62 'mediaArtist', 62 'mediaArtist',
63 'mediaDuration', 63 'mediaDuration',
64 'mediaGenre', 64 'mediaGenre',
65 'mediaMimeType', 65 'mediaMimeType',
66 'mediaTitle', 66 'mediaTitle',
67 'mediaTrack', 67 'mediaTrack',
68 'mediaYearRecorded',
68 ]; 69 ];
69 70
70 /** 71 /**
71 * Path of a worker script. 72 * Path of a worker script.
72 * @public {string} 73 * @public {string}
73 */ 74 */
74 ContentMetadataProvider.WORKER_SCRIPT = 75 ContentMetadataProvider.WORKER_SCRIPT =
75 'chrome-extension://hhaomjibdihmijegdhdafkllkbggdgoj/' + 76 'chrome-extension://hhaomjibdihmijegdhdafkllkbggdgoj/' +
76 'foreground/js/metadata/metadata_dispatcher.js'; 77 'foreground/js/metadata/metadata_dispatcher.js';
77 78
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
155 * the entry. 156 * the entry.
156 * @private 157 * @private
157 */ 158 */
158 ContentMetadataProvider.prototype.getFromMediaGalleries_ = 159 ContentMetadataProvider.prototype.getFromMediaGalleries_ =
159 function(entry, names) { 160 function(entry, names) {
160 var self = this; 161 var self = this;
161 return new Promise(function(resolve, reject) { 162 return new Promise(function(resolve, reject) {
162 entry.file(function(blob) { 163 entry.file(function(blob) {
163 var metadataType = 'mimeTypeOnly'; 164 var metadataType = 'mimeTypeOnly';
164 if (names.indexOf('mediaArtist') !== -1 || 165 if (names.indexOf('mediaArtist') !== -1 ||
165 names.indexOf('mediaTitle') !== -1) { 166 names.indexOf('mediaTitle') !== -1 ||
167 names.indexOf('mediaTrack') !== -1 ||
168 names.indexOf('mediaYearRecorded') !== -1) {
166 metadataType = 'mimeTypeAndTags'; 169 metadataType = 'mimeTypeAndTags';
167 } 170 }
168 if (names.indexOf('contentThumbnailUrl') !== -1) { 171 if (names.indexOf('contentThumbnailUrl') !== -1) {
169 metadataType = 'all'; 172 metadataType = 'all';
170 } 173 }
171 chrome.mediaGalleries.getMetadata(blob, {metadataType: metadataType}, 174 chrome.mediaGalleries.getMetadata(blob, {metadataType: metadataType},
172 function(metadata) { 175 function(metadata) {
173 if (chrome.runtime.lastError) { 176 if (chrome.runtime.lastError) {
174 resolve(self.createError_(entry.toURL(), 177 resolve(self.createError_(entry.toURL(),
175 'resolving metadata', 178 'resolving metadata',
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
307 if (metadata.rotation) { 310 if (metadata.rotation) {
308 item.contentImageTransform = item.contentThumbnailTransform = trans; 311 item.contentImageTransform = item.contentThumbnailTransform = trans;
309 } 312 }
310 item.imageHeight = metadata['height']; 313 item.imageHeight = metadata['height'];
311 item.imageWidth = metadata['width']; 314 item.imageWidth = metadata['width'];
312 item.mediaAlbum = metadata['album']; 315 item.mediaAlbum = metadata['album'];
313 item.mediaArtist = metadata['artist']; 316 item.mediaArtist = metadata['artist'];
314 item.mediaDuration = metadata['duration']; 317 item.mediaDuration = metadata['duration'];
315 item.mediaGenre = metadata['genre']; 318 item.mediaGenre = metadata['genre'];
316 item.mediaTitle = metadata['title']; 319 item.mediaTitle = metadata['title'];
317 item.mediaTrack = metadata['track']; 320 if (metadata['track']) {
321 item.mediaTrack = '' + metadata['track'];
322 }
323 if (metadata.rawTags) {
324 metadata.rawTags.forEach(function(entry) {
325 if (entry.type === 'mp3') {
326 if (entry.tags['date']) {
327 item.mediaYearRecorded = entry.tags['date'];
328 }
329 // It is possible that metadata['track'] is undefined but this is
330 // defined.
331 if (entry.tags['track']) {
332 item.mediaTrack = entry.tags['track'];
333 }
334 }
335 });
336 }
318 if (metadata.attachedImages && metadata.attachedImages.length > 0) { 337 if (metadata.attachedImages && metadata.attachedImages.length > 0) {
319 var reader = new FileReader(); 338 var reader = new FileReader();
320 reader.onload = function(e) { 339 reader.onload = function(e) {
321 item.contentThumbnailUrl = e.target.result; 340 item.contentThumbnailUrl = e.target.result;
322 resolve(item); 341 resolve(item);
323 }; 342 };
324 reader.onerror = function(e) { 343 reader.onerror = function(e) {
325 resolve(this.createError_(entry.toURL(), 'Reading a thumbnail image', 344 resolve(this.createError_(entry.toURL(), 'Reading a thumbnail image',
326 reader.error.toString())); 345 reader.error.toString()));
327 }.bind(this); 346 }.bind(this);
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
371 */ 390 */
372 this.step = step; 391 this.step = step;
373 392
374 /** 393 /**
375 * @public {string} 394 * @public {string}
376 */ 395 */
377 this.errorDescription = errorDescription; 396 this.errorDescription = errorDescription;
378 }; 397 };
379 398
380 ContentMetadataProvider.Error.prototype.__proto__ = Error.prototype; 399 ContentMetadataProvider.Error.prototype.__proto__ = Error.prototype;
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698