| Index: chrome/browser/resources/file_manager/js/file_type.js
|
| ===================================================================
|
| --- chrome/browser/resources/file_manager/js/file_type.js (revision 123815)
|
| +++ chrome/browser/resources/file_manager/js/file_type.js (working copy)
|
| @@ -7,63 +7,76 @@
|
| */
|
| var FileType = {};
|
|
|
| -FileType.types = {
|
| +FileType.types = [
|
| // Images
|
| - 'jpeg': {type: 'image', name: 'IMAGE_FILE_TYPE', subtype: 'JPEG'},
|
| - 'jpg': {type: 'image', name: 'IMAGE_FILE_TYPE', subtype: 'JPEG'},
|
| - 'bmp': {type: 'image', name: 'IMAGE_FILE_TYPE', subtype: 'BMP'},
|
| - 'gif': {type: 'image', name: 'IMAGE_FILE_TYPE', subtype: 'GIF'},
|
| - 'ico': {type: 'image', name: 'IMAGE_FILE_TYPE', subtype: 'ICO'},
|
| - 'png': {type: 'image', name: 'IMAGE_FILE_TYPE', subtype: 'PNG'},
|
| - 'webp': {type: 'image', name: 'IMAGE_FILE_TYPE', subtype: 'WebP'},
|
| + {type: 'image', name: 'IMAGE_FILE_TYPE', subtype: 'JPEG',
|
| + pattern: /\.jpe?g$/i},
|
| + {type: 'image', name: 'IMAGE_FILE_TYPE', subtype: 'BMP',
|
| + pattern: /\.bmp$/i},
|
| + {type: 'image', name: 'IMAGE_FILE_TYPE', subtype: 'GIF',
|
| + pattern: /\.gif$/i},
|
| + {type: 'image', name: 'IMAGE_FILE_TYPE', subtype: 'ICO',
|
| + pattern: /\.ico$/i},
|
| + {type: 'image', name: 'IMAGE_FILE_TYPE', subtype: 'PNG',
|
| + pattern: /\.png$/i},
|
| + {type: 'image', name: 'IMAGE_FILE_TYPE', subtype: 'WebP',
|
| + pattern: /\.webp$/i},
|
|
|
| // Video
|
| - '3gp': {type: 'video', name: 'VIDEO_FILE_TYPE', subtype: '3GP'},
|
| - 'avi': {type: 'video', name: 'VIDEO_FILE_TYPE', subtype: 'AVI'},
|
| - 'mov': {type: 'video', name: 'VIDEO_FILE_TYPE', subtype: 'QuickTime'},
|
| - 'mp4': {type: 'video', name: 'VIDEO_FILE_TYPE', subtype: 'MPEG'},
|
| - 'm4v': {type: 'video', name: 'VIDEO_FILE_TYPE', subtype: 'MPEG'},
|
| - 'mpg': {type: 'video', name: 'VIDEO_FILE_TYPE', subtype: 'MPEG'},
|
| - 'mpeg': {type: 'video', name: 'VIDEO_FILE_TYPE', subtype: 'MPEG'},
|
| - 'mpg4': {type: 'video', name: 'VIDEO_FILE_TYPE', subtype: 'MPEG'},
|
| - 'mpeg4': {type: 'video', name: 'VIDEO_FILE_TYPE', subtype: 'MPEG'},
|
| - 'ogm': {type: 'video', name: 'VIDEO_FILE_TYPE', subtype: 'OGG'},
|
| - 'ogv': {type: 'video', name: 'VIDEO_FILE_TYPE', subtype: 'OGG'},
|
| - 'ogx': {type: 'video', name: 'VIDEO_FILE_TYPE', subtype: 'OGG'},
|
| - 'webm': {type: 'video', name: 'VIDEO_FILE_TYPE', subtype: 'WebM'},
|
| + {type: 'video', name: 'VIDEO_FILE_TYPE', subtype: '3GP',
|
| + pattern: /\.3gp$/i},
|
| + {type: 'video', name: 'VIDEO_FILE_TYPE', subtype: 'AVI',
|
| + pattern: /\.avi$/i},
|
| + {type: 'video', name: 'VIDEO_FILE_TYPE', subtype: 'QuickTime',
|
| + pattern: /\.mov$/i},
|
| + {type: 'video', name: 'VIDEO_FILE_TYPE', subtype: 'MPEG',
|
| + pattern: /\.m(p4|4v|pg|peg|pg4|peg4)$/i},
|
| + {type: 'video', name: 'VIDEO_FILE_TYPE', subtype: 'OGG',
|
| + pattern: /\.og(m|v|x)$/i},
|
| + {type: 'video', name: 'VIDEO_FILE_TYPE', subtype: 'WebM',
|
| + pattern: /\.webm$/i},
|
|
|
| // Audio
|
| - 'flac': {type: 'audio', name: 'AUDIO_FILE_TYPE', subtype: 'FLAC'},
|
| - 'mp3': {type: 'audio', name: 'AUDIO_FILE_TYPE', subtype: 'MP3'},
|
| - 'm4a': {type: 'audio', name: 'AUDIO_FILE_TYPE', subtype: 'MPEG'},
|
| - 'oga': {type: 'audio', name: 'AUDIO_FILE_TYPE', subtype: 'OGG'},
|
| - 'ogg': {type: 'audio', name: 'AUDIO_FILE_TYPE', subtype: 'OGG'},
|
| - 'wav': {type: 'audio', name: 'AUDIO_FILE_TYPE', subtype: 'WAV'},
|
| + {type: 'audio', name: 'AUDIO_FILE_TYPE', subtype: 'FLAC',
|
| + pattern: /\.flac$/i},
|
| + {type: 'audio', name: 'AUDIO_FILE_TYPE', subtype: 'MP3',
|
| + pattern: /\.mp3$/i},
|
| + {type: 'audio', name: 'AUDIO_FILE_TYPE', subtype: 'MPEG',
|
| + pattern: /\.m4a$/i},
|
| + {type: 'audio', name: 'AUDIO_FILE_TYPE', subtype: 'OGG',
|
| + pattern: /\.og(a|g)$/i},
|
| + {type: 'audio', name: 'AUDIO_FILE_TYPE', subtype: 'WAV',
|
| + pattern: /\.wav$/i},
|
|
|
| // Text
|
| - 'pod': {type: 'text', name: 'PLAIN_TEXT_FILE_TYPE', subtype: 'POD'},
|
| - 'rst': {type: 'text', name: 'PLAIN_TEXT_FILE_TYPE', subtype: 'RST'},
|
| - 'txt': {type: 'text', name: 'PLAIN_TEXT_FILE_TYPE', subtype: 'TXT'},
|
| - 'log': {type: 'text', name: 'PLAIN_TEXT_FILE_TYPE', subtype: 'LOG'},
|
| + {type: 'text', name: 'PLAIN_TEXT_FILE_TYPE', subtype: 'POD',
|
| + pattern: /\.pod$/i},
|
| + {type: 'text', name: 'PLAIN_TEXT_FILE_TYPE', subtype: 'RST',
|
| + pattern: /\.rst$/i},
|
| + {type: 'text', name: 'PLAIN_TEXT_FILE_TYPE', subtype: 'TXT',
|
| + pattern: /\.txt$/i},
|
| + {type: 'text', name: 'PLAIN_TEXT_FILE_TYPE', subtype: 'LOG',
|
| + pattern: /\.log$/i},
|
|
|
| + // Archive
|
| + {type: 'archive', name: 'ZIP_ARCHIVE_FILE_TYPE', subtype:'ZIP',
|
| + pattern: /\.zip$/i},
|
| + {type: 'archive', name: 'RAR_ARCHIVE_FILE_TYPE', subtype:'RAR',
|
| + pattern: /\.rar$/i},
|
| + {type: 'archive', name: 'TAR_ARCHIVE_FILE_TYPE', subtype:'TAR',
|
| + pattern: /\.tar$/i},
|
| + {type: 'archive', name: 'TAR_BZIP2_ARCHIVE_FILE_TYPE', subtype:'TBZ2',
|
| + pattern: /\.(tar.bz2|tbz|tbz2)$/i},
|
| + {type: 'archive', name: 'TAR_GZIP_ARCHIVE_FILE_TYPE', subtype:'TGZ',
|
| + pattern: /\.(tar.|t)gz$/i},
|
| +
|
| // Others
|
| - 'zip': {type: 'archive', name: 'ZIP_ARCHIVE_FILE_TYPE'},
|
| - 'rar': {type: 'archive', name: 'RAR_ARCHIVE_FILE_TYPE'},
|
| - 'tar': {type: 'archive', name: 'TAR_ARCHIVE_FILE_TYPE'},
|
| - 'tar.bz2': {type: 'archive', name: 'TAR_BZIP2_ARCHIVE_FILE_TYPE'},
|
| - 'tbz': {type: 'archive', name: 'TAR_BZIP2_ARCHIVE_FILE_TYPE'},
|
| - 'tbz2': {type: 'archive', name: 'TAR_BZIP2_ARCHIVE_FILE_TYPE'},
|
| - 'tar.gz': {type: 'archive', name: 'TAR_GZIP_ARCHIVE_FILE_TYPE'},
|
| - 'tgz': {type: 'archive', name: 'TAR_GZIP_ARCHIVE_FILE_TYPE'},
|
| + {type: 'text', icon: 'pdf', name: 'PDF_DOCUMENT_FILE_TYPE', subtype: 'PDF',
|
| + pattern: /\.pdf$/i},
|
| + {type: 'text', icon: 'html', name: 'HTML_DOCUMENT_FILE_TYPE', subtype: 'HTML',
|
| + pattern: /\.html?$/i}
|
| +];
|
|
|
| - 'pdf': {type: 'text', icon: 'pdf', name: 'PDF_DOCUMENT_FILE_TYPE',
|
| - subtype: 'PDF'},
|
| - 'html': {type: 'text', icon: 'html', name: 'HTML_DOCUMENT_FILE_TYPE',
|
| - subtype: 'HTML'},
|
| - 'htm': {type: 'text', icon: 'html', name: 'HTML_DOCUMENT_FILE_TYPE',
|
| - subtype: 'HTML'}
|
| -};
|
| -
|
| FileType.previewArt = {
|
| 'audio': 'images/filetype_large_audio.png',
|
| 'folder': 'images/filetype_large_folder.png',
|
| @@ -73,22 +86,18 @@
|
| };
|
|
|
| /**
|
| - * Extract extension from the file name and convert it to lower case.
|
| + * Get the file type object that matches a given url.
|
| *
|
| * @param {string} url
|
| - * @return {string}
|
| + * @return {Object} The matching file type object or an empty object.
|
| */
|
| -FileType.getFileExtension_ = function (url) {
|
| - var extIndex = url.lastIndexOf('.');
|
| - if (extIndex < 0)
|
| - return '';
|
| - return url.substr(extIndex + 1).toLowerCase();
|
| -};
|
| -
|
| FileType.getType = function(url) {
|
| - var extension = FileType.getFileExtension_(url);
|
| - if (extension in FileType.types)
|
| - return FileType.types[extension];
|
| + var types = FileType.types;
|
| + for (var i = 0; i < types.length; i++) {
|
| + if (types[i].pattern.test(url)) {
|
| + return types[i];
|
| + }
|
| + }
|
| return {};
|
| };
|
|
|
|
|