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 /** | 5 /** |
6 * This object encapsulates everything related to tasks execution. | 6 * This object encapsulates everything related to tasks execution. |
7 * | 7 * |
8 * @param {FileManager} fileManager FileManager instance. | 8 * @param {FileManager} fileManager FileManager instance. |
9 * @param {Object=} opt_params File manager load parameters. | 9 * @param {Object=} opt_params File manager load parameters. |
10 * @constructor | 10 * @constructor |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
82 | 82 |
83 /** | 83 /** |
84 * Processes internal tasks. | 84 * Processes internal tasks. |
85 * | 85 * |
86 * @param {Array.<Object>} tasks The tasks. | 86 * @param {Array.<Object>} tasks The tasks. |
87 * @private | 87 * @private |
88 */ | 88 */ |
89 FileTasks.prototype.processTasks_ = function(tasks) { | 89 FileTasks.prototype.processTasks_ = function(tasks) { |
90 this.tasks_ = []; | 90 this.tasks_ = []; |
91 var id = util.platform.getAppId(); | 91 var id = util.platform.getAppId(); |
92 var is_on_drive = false; | 92 var isOnDrive = false; |
93 for (var index = 0; index < this.urls_.length; ++index) { | 93 for (var index = 0; index < this.urls_.length; ++index) { |
94 if (FileType.isOnDrive(this.urls_[index])) { | 94 if (FileType.isOnDrive(this.urls_[index])) { |
95 is_on_drive = true; | 95 isOnDrive = true; |
96 break; | 96 break; |
97 } | 97 } |
98 } | 98 } |
99 | 99 |
100 for (var i = 0; i < tasks.length; i++) { | 100 for (var i = 0; i < tasks.length; i++) { |
101 var task = tasks[i]; | 101 var task = tasks[i]; |
102 | 102 |
103 // Skip Drive App if the file is not on Drive. | 103 // Skip Drive App if the file is not on Drive. |
104 if (!is_on_drive && task.driveApp) | 104 if (!isOnDrive && task.driveApp) |
105 continue; | 105 continue; |
106 | 106 |
107 // Tweak images, titles of internal tasks. | 107 // Tweak images, titles of internal tasks. |
108 var task_parts = task.taskId.split('|'); | 108 var taskParts = task.taskId.split('|'); |
109 if (task_parts[0] == id && task_parts[1] == 'file') { | 109 if (taskParts[0] == id && taskParts[1] == 'file') { |
110 if (task_parts[2] == 'play') { | 110 if (taskParts[2] == 'play') { |
111 // TODO(serya): This hack needed until task.iconUrl is working | 111 // TODO(serya): This hack needed until task.iconUrl is working |
112 // (see GetFileTasksFileBrowserFunction::RunImpl). | 112 // (see GetFileTasksFileBrowserFunction::RunImpl). |
113 task.iconType = 'audio'; | 113 task.iconType = 'audio'; |
114 task.title = loadTimeData.getString('ACTION_LISTEN'); | 114 task.title = loadTimeData.getString('ACTION_LISTEN'); |
115 } else if (task_parts[2] == 'mount-archive') { | 115 } else if (taskParts[2] == 'mount-archive') { |
116 task.iconType = 'archive'; | 116 task.iconType = 'archive'; |
117 task.title = loadTimeData.getString('MOUNT_ARCHIVE'); | 117 task.title = loadTimeData.getString('MOUNT_ARCHIVE'); |
118 } else if (task_parts[2] == 'gallery') { | 118 } else if (taskParts[2] == 'gallery') { |
119 task.iconType = 'image'; | 119 task.iconType = 'image'; |
120 task.title = loadTimeData.getString('ACTION_OPEN'); | 120 task.title = loadTimeData.getString('ACTION_OPEN'); |
121 } else if (task_parts[2] == 'watch') { | 121 } else if (taskParts[2] == 'watch') { |
122 task.iconType = 'video'; | 122 task.iconType = 'video'; |
123 task.title = loadTimeData.getString('ACTION_WATCH'); | 123 task.title = loadTimeData.getString('ACTION_WATCH'); |
124 } else if (task_parts[2] == 'open-hosted-generic') { | 124 } else if (taskParts[2] == 'open-hosted-generic') { |
125 if (this.urls_.length > 1) | 125 if (this.urls_.length > 1) |
126 task.iconType = 'generic'; | 126 task.iconType = 'generic'; |
127 else // Use specific icon. | 127 else // Use specific icon. |
128 task.iconType = FileType.getIcon(this.urls_[0]); | 128 task.iconType = FileType.getIcon(this.urls_[0]); |
129 task.title = loadTimeData.getString('ACTION_OPEN'); | 129 task.title = loadTimeData.getString('ACTION_OPEN'); |
130 } else if (task_parts[2] == 'open-hosted-gdoc') { | 130 } else if (taskParts[2] == 'open-hosted-gdoc') { |
131 task.iconType = 'gdoc'; | 131 task.iconType = 'gdoc'; |
132 task.title = loadTimeData.getString('ACTION_OPEN_GDOC'); | 132 task.title = loadTimeData.getString('ACTION_OPEN_GDOC'); |
133 } else if (task_parts[2] == 'open-hosted-gsheet') { | 133 } else if (taskParts[2] == 'open-hosted-gsheet') { |
134 task.iconType = 'gsheet'; | 134 task.iconType = 'gsheet'; |
135 task.title = loadTimeData.getString('ACTION_OPEN_GSHEET'); | 135 task.title = loadTimeData.getString('ACTION_OPEN_GSHEET'); |
136 } else if (task_parts[2] == 'open-hosted-gslides') { | 136 } else if (taskParts[2] == 'open-hosted-gslides') { |
137 task.iconType = 'gslides'; | 137 task.iconType = 'gslides'; |
138 task.title = loadTimeData.getString('ACTION_OPEN_GSLIDES'); | 138 task.title = loadTimeData.getString('ACTION_OPEN_GSLIDES'); |
139 } else if (task_parts[2] == 'view-pdf') { | 139 } else if (taskParts[2] == 'view-pdf') { |
140 // Do not render this task if disabled. | 140 // Do not render this task if disabled. |
141 if (!loadTimeData.getBoolean('PDF_VIEW_ENABLED')) | 141 if (!loadTimeData.getBoolean('PDF_VIEW_ENABLED')) |
142 continue; | 142 continue; |
143 task.iconType = 'pdf'; | 143 task.iconType = 'pdf'; |
144 task.title = loadTimeData.getString('ACTION_VIEW'); | 144 task.title = loadTimeData.getString('ACTION_VIEW'); |
145 } else if (task_parts[2] == 'view-in-browser') { | 145 } else if (taskParts[2] == 'view-in-browser') { |
146 task.iconType = 'generic'; | 146 task.iconType = 'generic'; |
147 task.title = loadTimeData.getString('ACTION_VIEW'); | 147 task.title = loadTimeData.getString('ACTION_VIEW'); |
148 } else if (task_parts[2] == 'install-crx') { | 148 } else if (taskParts[2] == 'install-crx') { |
149 task.iconType = 'generic'; | 149 task.iconType = 'generic'; |
150 task.title = loadTimeData.getString('INSTALL_CRX'); | 150 task.title = loadTimeData.getString('INSTALL_CRX'); |
151 } | 151 } |
152 } | 152 } |
153 | 153 |
154 if (!task.iconType && task_parts[1] == 'web-intent') { | 154 if (!task.iconType && taskParts[1] == 'web-intent') { |
155 task.iconType = 'generic'; | 155 task.iconType = 'generic'; |
156 } | 156 } |
157 | 157 |
158 this.tasks_.push(task); | 158 this.tasks_.push(task); |
159 if (this.defaultTask_ == null && task.isDefault) { | 159 if (this.defaultTask_ == null && task.isDefault) { |
160 this.defaultTask_ = task; | 160 this.defaultTask_ = task; |
161 } | 161 } |
162 } | 162 } |
163 if (!this.defaultTask_ && this.tasks_.length > 0) { | 163 if (!this.defaultTask_ && this.tasks_.length > 0) { |
164 // If we haven't picked a default task yet, then just pick the first one. | 164 // If we haven't picked a default task yet, then just pick the first one. |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
206 /** | 206 /** |
207 * Executes a single task. | 207 * Executes a single task. |
208 * | 208 * |
209 * @param {string} taskId Task identifier. | 209 * @param {string} taskId Task identifier. |
210 * @param {Array.<string>=} opt_urls Urls to execute on instead of |this.urls_|. | 210 * @param {Array.<string>=} opt_urls Urls to execute on instead of |this.urls_|. |
211 * @private | 211 * @private |
212 */ | 212 */ |
213 FileTasks.prototype.execute_ = function(taskId, opt_urls) { | 213 FileTasks.prototype.execute_ = function(taskId, opt_urls) { |
214 var urls = opt_urls || this.urls_; | 214 var urls = opt_urls || this.urls_; |
215 this.checkAvailability_(function() { | 215 this.checkAvailability_(function() { |
216 var task_parts = taskId.split('|'); | 216 var taskParts = taskId.split('|'); |
217 if (task_parts[0] == util.platform.getAppId() && task_parts[1] == 'file') { | 217 if (taskParts[0] == util.platform.getAppId() && taskParts[1] == 'file') { |
218 // For internal tasks we do not listen to the event to avoid | 218 // For internal tasks we do not listen to the event to avoid |
219 // handling the same task instance from multiple tabs. | 219 // handling the same task instance from multiple tabs. |
220 // So, we manually execute the task. | 220 // So, we manually execute the task. |
221 this.executeInternalTask_(task_parts[2], urls); | 221 this.executeInternalTask_(taskParts[2], urls); |
222 } else { | 222 } else { |
223 chrome.fileBrowserPrivate.executeTask(taskId, urls); | 223 chrome.fileBrowserPrivate.executeTask(taskId, urls); |
224 } | 224 } |
225 }.bind(this)); | 225 }.bind(this)); |
226 }; | 226 }; |
227 | 227 |
228 /** | 228 /** |
229 * Checks whether the remote files are available right now. | 229 * Checks whether the remote files are available right now. |
230 * | 230 * |
231 * @param {function} callback The callback. | 231 * @param {function} callback The callback. |
(...skipping 369 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
601 title, | 601 title, |
602 message, | 602 message, |
603 items, defaultIdx, | 603 items, defaultIdx, |
604 onSuccess); | 604 onSuccess); |
605 }; | 605 }; |
606 | 606 |
607 FileTasks.decorate('display'); | 607 FileTasks.decorate('display'); |
608 FileTasks.decorate('updateMenuItem'); | 608 FileTasks.decorate('updateMenuItem'); |
609 FileTasks.decorate('execute'); | 609 FileTasks.decorate('execute'); |
610 FileTasks.decorate('executeDefault'); | 610 FileTasks.decorate('executeDefault'); |
OLD | NEW |