| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 'use strict'; | 5 'use strict'; |
| 6 | 6 |
| 7 /** | 7 /** |
| 8 * This object encapsulates everything related to tasks execution. | 8 * This object encapsulates everything related to tasks execution. |
| 9 * | 9 * |
| 10 * TODO(hirono): Pass each component instead of the entire FileManager. | 10 * TODO(hirono): Pass each component instead of the entire FileManager. |
| (...skipping 28 matching lines...) Expand all Loading... |
| 39 /** | 39 /** |
| 40 * Base URL of apps list in the Chrome Web Store. This constant is used in | 40 * Base URL of apps list in the Chrome Web Store. This constant is used in |
| 41 * FileTasks.createWebStoreLink(). | 41 * FileTasks.createWebStoreLink(). |
| 42 * | 42 * |
| 43 * @const | 43 * @const |
| 44 * @type {string} | 44 * @type {string} |
| 45 */ | 45 */ |
| 46 FileTasks.WEB_STORE_HANDLER_BASE_URL = | 46 FileTasks.WEB_STORE_HANDLER_BASE_URL = |
| 47 'https://chrome.google.com/webstore/category/collection/file_handlers'; | 47 'https://chrome.google.com/webstore/category/collection/file_handlers'; |
| 48 | 48 |
| 49 |
| 50 /** |
| 51 * The app ID of the video player app. |
| 52 * @const |
| 53 * @type {string} |
| 54 */ |
| 55 FileTasks.VIDEO_PLAYER_ID = 'jcgeabjmjgoblfofpppfkcoakmfobdko'; |
| 56 |
| 49 /** | 57 /** |
| 50 * Returns URL of the Chrome Web Store which show apps supporting the given | 58 * Returns URL of the Chrome Web Store which show apps supporting the given |
| 51 * file-extension and mime-type. | 59 * file-extension and mime-type. |
| 52 * | 60 * |
| 53 * @param {string} extension Extension of the file (with the first dot). | 61 * @param {string} extension Extension of the file (with the first dot). |
| 54 * @param {string} mimeType Mime type of the file. | 62 * @param {string} mimeType Mime type of the file. |
| 55 * @return {string} URL | 63 * @return {string} URL |
| 56 */ | 64 */ |
| 57 FileTasks.createWebStoreLink = function(extension, mimeType) { | 65 FileTasks.createWebStoreLink = function(extension, mimeType) { |
| 58 if (!extension) | 66 if (!extension) |
| (...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 182 FileTasks.isInternalTask_ = function(taskId) { | 190 FileTasks.isInternalTask_ = function(taskId) { |
| 183 var taskParts = taskId.split('|'); | 191 var taskParts = taskId.split('|'); |
| 184 var appId = taskParts[0]; | 192 var appId = taskParts[0]; |
| 185 var taskType = taskParts[1]; | 193 var taskType = taskParts[1]; |
| 186 var actionId = taskParts[2]; | 194 var actionId = taskParts[2]; |
| 187 // The action IDs here should match ones used in executeInternalTask_(). | 195 // The action IDs here should match ones used in executeInternalTask_(). |
| 188 return (appId === chrome.runtime.id && | 196 return (appId === chrome.runtime.id && |
| 189 taskType === 'file' && | 197 taskType === 'file' && |
| 190 (actionId === 'play' || | 198 (actionId === 'play' || |
| 191 actionId === 'mount-archive' || | 199 actionId === 'mount-archive' || |
| 192 actionId === 'gallery')); | 200 actionId === 'gallery' || |
| 201 actionId === 'gallery-video')); |
| 193 }; | 202 }; |
| 194 | 203 |
| 195 /** | 204 /** |
| 196 * Processes internal tasks. | 205 * Processes internal tasks. |
| 197 * | 206 * |
| 198 * @param {Array.<Object>} tasks The tasks. | 207 * @param {Array.<Object>} tasks The tasks. |
| 199 * @private | 208 * @private |
| 200 */ | 209 */ |
| 201 FileTasks.prototype.processTasks_ = function(tasks) { | 210 FileTasks.prototype.processTasks_ = function(tasks) { |
| 202 this.tasks_ = []; | 211 this.tasks_ = []; |
| (...skipping 21 matching lines...) Expand all Loading... |
| 224 // Tweak images, titles of internal tasks. | 233 // Tweak images, titles of internal tasks. |
| 225 if (taskParts[0] === id && taskParts[1] === 'file') { | 234 if (taskParts[0] === id && taskParts[1] === 'file') { |
| 226 if (taskParts[2] === 'play') { | 235 if (taskParts[2] === 'play') { |
| 227 // TODO(serya): This hack needed until task.iconUrl is working | 236 // TODO(serya): This hack needed until task.iconUrl is working |
| 228 // (see GetFileTasksFileBrowserFunction::RunImpl). | 237 // (see GetFileTasksFileBrowserFunction::RunImpl). |
| 229 task.iconType = 'audio'; | 238 task.iconType = 'audio'; |
| 230 task.title = loadTimeData.getString('ACTION_LISTEN'); | 239 task.title = loadTimeData.getString('ACTION_LISTEN'); |
| 231 } else if (taskParts[2] === 'mount-archive') { | 240 } else if (taskParts[2] === 'mount-archive') { |
| 232 task.iconType = 'archive'; | 241 task.iconType = 'archive'; |
| 233 task.title = loadTimeData.getString('MOUNT_ARCHIVE'); | 242 task.title = loadTimeData.getString('MOUNT_ARCHIVE'); |
| 234 } else if (taskParts[2] === 'gallery') { | 243 } else if (taskParts[2] === 'gallery' || |
| 244 taskParts[2] === 'gallery-video') { |
| 235 task.iconType = 'image'; | 245 task.iconType = 'image'; |
| 236 task.title = loadTimeData.getString('ACTION_OPEN'); | 246 task.title = loadTimeData.getString('ACTION_OPEN'); |
| 237 } else if (taskParts[2] === 'open-hosted-generic') { | 247 } else if (taskParts[2] === 'open-hosted-generic') { |
| 238 if (this.entries_.length > 1) | 248 if (this.entries_.length > 1) |
| 239 task.iconType = 'generic'; | 249 task.iconType = 'generic'; |
| 240 else // Use specific icon. | 250 else // Use specific icon. |
| 241 task.iconType = FileType.getIcon(this.entries_[0]); | 251 task.iconType = FileType.getIcon(this.entries_[0]); |
| 242 task.title = loadTimeData.getString('ACTION_OPEN'); | 252 task.title = loadTimeData.getString('ACTION_OPEN'); |
| 243 } else if (taskParts[2] === 'open-hosted-gdoc') { | 253 } else if (taskParts[2] === 'open-hosted-gdoc') { |
| 244 task.iconType = 'gdoc'; | 254 task.iconType = 'gdoc'; |
| (...skipping 300 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 545 displayedId); | 555 displayedId); |
| 546 }); | 556 }); |
| 547 return; | 557 return; |
| 548 } | 558 } |
| 549 | 559 |
| 550 if (id === 'mount-archive') { | 560 if (id === 'mount-archive') { |
| 551 this.mountArchivesInternal_(entries); | 561 this.mountArchivesInternal_(entries); |
| 552 return; | 562 return; |
| 553 } | 563 } |
| 554 | 564 |
| 555 if (id === 'gallery') { | 565 if (id === 'gallery' || id === 'gallery-video') { |
| 556 this.openGalleryInternal_(entries); | 566 this.openGalleryInternal_(entries); |
| 557 return; | 567 return; |
| 558 } | 568 } |
| 559 | 569 |
| 560 console.error('Unexpected action ID: ' + id); | 570 console.error('Unexpected action ID: ' + id); |
| 561 }; | 571 }; |
| 562 | 572 |
| 563 /** | 573 /** |
| 564 * Mounts archives. | 574 * Mounts archives. |
| 565 * | 575 * |
| (...skipping 284 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 850 this.pendingInvocations_.push([privateMethod, arguments]); | 860 this.pendingInvocations_.push([privateMethod, arguments]); |
| 851 } | 861 } |
| 852 return this; | 862 return this; |
| 853 }; | 863 }; |
| 854 }; | 864 }; |
| 855 | 865 |
| 856 FileTasks.decorate('display'); | 866 FileTasks.decorate('display'); |
| 857 FileTasks.decorate('updateMenuItem'); | 867 FileTasks.decorate('updateMenuItem'); |
| 858 FileTasks.decorate('execute'); | 868 FileTasks.decorate('execute'); |
| 859 FileTasks.decorate('executeDefault'); | 869 FileTasks.decorate('executeDefault'); |
| OLD | NEW |