diff options
Diffstat (limited to 'chromium/chrome/browser/resources/file_manager/foreground/js/file_type.js')
-rw-r--r-- | chromium/chrome/browser/resources/file_manager/foreground/js/file_type.js | 294 |
1 files changed, 0 insertions, 294 deletions
diff --git a/chromium/chrome/browser/resources/file_manager/foreground/js/file_type.js b/chromium/chrome/browser/resources/file_manager/foreground/js/file_type.js deleted file mode 100644 index ea0ae9278ee..00000000000 --- a/chromium/chrome/browser/resources/file_manager/foreground/js/file_type.js +++ /dev/null @@ -1,294 +0,0 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -'use strict'; - -/** - * Namespace object for file type utility functions. - */ -var FileType = {}; - -/** - * Description of known file types. - * Pair type-subtype defines order when sorted by file type. - */ -FileType.types = [ - // Images - {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}, - {type: 'image', name: 'IMAGE_FILE_TYPE', subtype: 'TIFF', - pattern: /\.tiff?$/i}, - - // Video - {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: 'MKV', - pattern: /\.mkv$/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 - {type: 'audio', name: 'AUDIO_FILE_TYPE', subtype: 'AMR', - pattern: /\.amr$/i}, - {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 - {type: 'text', name: 'PLAIN_TEXT_FILE_TYPE', subtype: 'TXT', - pattern: /\.txt$/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}, - - // Hosted docs. - {type: 'hosted', icon: 'gdoc', name: 'GDOC_DOCUMENT_FILE_TYPE', - subtype: 'doc', pattern: /\.gdoc$/i}, - {type: 'hosted', icon: 'gsheet', name: 'GSHEET_DOCUMENT_FILE_TYPE', - subtype: 'sheet', pattern: /\.gsheet$/i}, - {type: 'hosted', icon: 'gslides', name: 'GSLIDES_DOCUMENT_FILE_TYPE', - subtype: 'slides', pattern: /\.gslides$/i}, - {type: 'hosted', icon: 'gdraw', name: 'GDRAW_DOCUMENT_FILE_TYPE', - subtype: 'draw', pattern: /\.gdraw$/i}, - {type: 'hosted', icon: 'gtable', name: 'GTABLE_DOCUMENT_FILE_TYPE', - subtype: 'table', pattern: /\.gtable$/i}, - {type: 'hosted', icon: 'glink', name: 'GLINK_DOCUMENT_FILE_TYPE', - subtype: 'glink', pattern: /\.glink$/i}, - {type: 'hosted', icon: 'gform', name: 'GFORM_DOCUMENT_FILE_TYPE', - subtype: 'form', pattern: /\.gform$/i}, - - // Others - {type: 'document', icon: 'pdf', name: 'PDF_DOCUMENT_FILE_TYPE', - subtype: 'PDF', pattern: /\.pdf$/i}, - {type: 'document', name: 'HTML_DOCUMENT_FILE_TYPE', - subtype: 'HTML', pattern: /\.(html?|mht|mhtml)$/i}, - {type: 'document', icon: 'word', name: 'WORD_DOCUMENT_FILE_TYPE', - subtype: 'Word', pattern: /\.(doc|docx)$/i}, - {type: 'document', icon: 'ppt', name: 'POWERPOINT_PRESENTATION_FILE_TYPE', - subtype: 'PPT', pattern: /\.(ppt|pptx)$/i}, - {type: 'document', icon: 'excel', name: 'EXCEL_FILE_TYPE', - subtype: 'Excel', pattern: /\.(xls|xlsx)$/i} -]; - -/** - * A special type for directory. - */ -FileType.DIRECTORY = {name: 'FOLDER', type: '.folder', icon: 'folder'}; - -/** - * Returns the file path extension for a given file. - * - * @param {string|Entry} file Reference to the file. - * Can be a name, a path, a url or a File API Entry. - * @return {string} The extension including a leading '.', or empty string if - * not found. - */ -FileType.getExtension = function(file) { - var fileName; - if (typeof file == 'object') { - if (file.isDirectory) { - // No extension for a directory. - return ''; - } else { - fileName = file.name; - } - } else { - fileName = file; - } - - var extensionStartIndex = fileName.lastIndexOf('.'); - if (extensionStartIndex == -1 || extensionStartIndex == fileName.length - 1) { - return ''; - } - return fileName.substr(extensionStartIndex); -}; - -/** - * Get the file type object for a given file. - * - * @param {string|Entry} file Reference to the file. - * Can be a name, a path, a url or a File API Entry. - * @return {Object} The matching file type object or an empty object. - */ -FileType.getType = function(file) { - if (typeof file == 'object') { - if (file.isDirectory) - return FileType.DIRECTORY; - else - file = file.name; - } - var types = FileType.types; - for (var i = 0; i < types.length; i++) { - if (types[i].pattern.test(file)) { - return types[i]; - } - } - - // Unknown file type. - var extension = FileType.getExtension(file); - if (extension == '') { - return { name: 'NO_EXTENSION_FILE_TYPE', type: 'UNKNOWN', icon: '' }; - } - // subtype is the extension excluding the first dot. - return { name: 'GENERIC_FILE_TYPE', type: 'UNKNOWN', - subtype: extension.substr(1).toUpperCase(), icon: '' }; -}; - -/** - * @param {string|Entry} file Reference to the file. - * Can be a name, a path, a url or a File API Entry. - * @return {string} Localized string representation of file type. - */ -FileType.getTypeString = function(file) { - var fileType = FileType.getType(file); - if (fileType.subtype) - return strf(fileType.name, fileType.subtype); - else - return str(fileType.name); -}; - -/** - * Pattern for urls pointing to Google Drive files. - */ -FileType.DRIVE_URL_PATTERN = - new RegExp('^filesystem:[^/]*://[^/]*/[^/]*/drive/(.*)'); - -/** - * Pattern for file paths pointing to Google Drive files. - */ -FileType.DRIVE_PATH_PATTERN = - new RegExp('^/drive/'); - -/** - * @param {string|Entry} file The url string or entry. - * @return {boolean} Whether this provider supports the url. - */ -FileType.isOnDrive = function(file) { - return typeof file == 'string' ? - FileType.DRIVE_URL_PATTERN.test(file) : - FileType.DRIVE_PATH_PATTERN.test(file.fullPath); -}; - - -/** - * Get the media type for a given file. - * - * @param {string|Entry} file Reference to the file. - * @return {string} The value of 'type' property from one of the elements in - * FileType.types or undefined. - */ -FileType.getMediaType = function(file) { - return FileType.getType(file).type; -}; - -/** - * @param {string|Entry} file Reference to the file. - * @return {boolean} True if audio file. - */ -FileType.isAudio = function(file) { - return FileType.getMediaType(file) == 'audio'; -}; - -/** - * @param {string|Entry} file Reference to the file. - * @return {boolean} True if image file. - */ -FileType.isImage = function(file) { - return FileType.getMediaType(file) == 'image'; -}; - -/** - * @param {string|Entry} file Reference to the file. - * @return {boolean} True if video file. - */ -FileType.isVideo = function(file) { - return FileType.getMediaType(file) == 'video'; -}; - - -/** - * Files with more pixels won't have preview. - * @param {string|Entry} file Reference to the file. - * @return {boolean} True if image or video. - */ -FileType.isImageOrVideo = function(file) { - var type = FileType.getMediaType(file); - return type == 'image' || type == 'video'; -}; - -/** - * @param {string|Entry} file Reference to the file. - * @return {boolean} Returns true if the file is hosted. - */ -FileType.isHosted = function(file) { - return FileType.getType(file).type === 'hosted'; -}; - -/** - * @param {string|Entry} file Reference to the file. - * @return {boolean} Returns true if the file is not hidden, and we should - * display it. - */ -FileType.isVisible = function(file) { - if (typeof file == 'object') { - file = file.name; - } - - var path = util.extractFilePath(file); - if (path) file = path; - - file = file.split('/').pop(); - return file.indexOf('.') != 0 && !(file in FileType.HIDDEN_NAMES); -}; - -/** - * File/directory names that we know are usually hidden. - */ -FileType.HIDDEN_NAMES = { - 'RECYCLED': true -}; - -/** - * @param {string|Entry} file Reference to the file. - * @return {string} Returns string that represents the file icon. - * It refers to a file 'images/filetype_' + icon + '.png'. - */ -FileType.getIcon = function(file) { - var fileType = FileType.getType(file); - return fileType.icon || fileType.type || 'unknown'; -}; |