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

Side by Side Diff: chrome/browser/resources/file_manager/js/file_manager.js

Issue 9395077: [filebrowser] Introduce View action for supported file types (e.g. pdf). (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 8 years, 9 months 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 | Annotate | Revision Log
OLDNEW
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 // Setting the src of an img to an empty string can crash the browser, so we 5 // Setting the src of an img to an empty string can crash the browser, so we
6 // use an empty 1x1 gif instead. 6 // use an empty 1x1 gif instead.
7 const EMPTY_IMAGE_URI = 'data:image/gif;base64,' 7 const EMPTY_IMAGE_URI = 'data:image/gif;base64,'
8 + 'R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw%3D%3D'; 8 + 'R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw%3D%3D';
9 9
10 /** 10 /**
(...skipping 2155 matching lines...) Expand 10 before | Expand all | Expand 10 after
2166 2166
2167 /** 2167 /**
2168 * Callback called when tasks for selected files are determined. 2168 * Callback called when tasks for selected files are determined.
2169 * @param {Object} selection Selection is passed here, since this.selection 2169 * @param {Object} selection Selection is passed here, since this.selection
2170 * can change before tasks were found, and we should be accurate. 2170 * can change before tasks were found, and we should be accurate.
2171 * @param {Array.<Task>} tasksList The tasks list. 2171 * @param {Array.<Task>} tasksList The tasks list.
2172 */ 2172 */
2173 FileManager.prototype.onTasksFound_ = function(selection, tasksList) { 2173 FileManager.prototype.onTasksFound_ = function(selection, tasksList) {
2174 this.taskItems_.clear(); 2174 this.taskItems_.clear();
2175 2175
2176 var tasksCount = 0;
2176 for (var i = 0; i < tasksList.length; i++) { 2177 for (var i = 0; i < tasksList.length; i++) {
2177 var task = tasksList[i]; 2178 var task = tasksList[i];
2178 2179
2179 // Tweak images, titles of internal tasks. 2180 // Tweak images, titles of internal tasks.
2180 var task_parts = task.taskId.split('|'); 2181 var task_parts = task.taskId.split('|');
2181 if (task_parts[0] == this.getExtensionId_()) { 2182 if (task_parts[0] == this.getExtensionId_()) {
2182 task.internal = true; 2183 task.internal = true;
2183 if (task_parts[1] == 'play') { 2184 if (task_parts[1] == 'play') {
2184 // TODO(serya): This hack needed until task.iconUrl is working 2185 // TODO(serya): This hack needed until task.iconUrl is working
2185 // (see GetFileTasksFileBrowserFunction::RunImpl). 2186 // (see GetFileTasksFileBrowserFunction::RunImpl).
2186 task.iconUrl = 2187 task.iconUrl =
2187 chrome.extension.getURL('images/icon_play_16x16.png'); 2188 chrome.extension.getURL('images/icon_play_16x16.png');
2188 task.title = str('PLAY_MEDIA').replace("&", ""); 2189 task.title = str('PLAY_MEDIA').replace("&", "");
2189 this.playTask_ = task; 2190 this.playTask_ = task;
2190 } else if (task_parts[1] == 'mount-archive') { 2191 } else if (task_parts[1] == 'mount-archive') {
2191 task.iconUrl = 2192 task.iconUrl =
2192 chrome.extension.getURL('images/icon_mount_archive_16x16.png'); 2193 chrome.extension.getURL('images/icon_mount_archive_16x16.png');
2193 task.title = str('MOUNT_ARCHIVE'); 2194 task.title = str('MOUNT_ARCHIVE');
2194 } else if (task_parts[1] == 'gallery') { 2195 } else if (task_parts[1] == 'gallery') {
2195 task.iconUrl = 2196 task.iconUrl =
2196 chrome.extension.getURL('images/icon_preview_16x16.png'); 2197 chrome.extension.getURL('images/icon_preview_16x16.png');
2197 task.title = str('GALLERY'); 2198 task.title = str('OPEN_ACTION');
2198 task.allTasks = tasksList; 2199 task.allTasks = tasksList;
2199 this.galleryTask_ = task; 2200 } else if (task_parts[1] == 'view-pdf') {
2201 // Do not render this task if disabled.
2202 if (str('PDF_VIEW_ENABLED') == 'false') continue;
2203 task.iconUrl =
2204 chrome.extension.getURL('images/icon_preview_16x16.png');
2205 task.title = str('OPEN_ACTION');
2206 } else if (task_parts[1] == 'view-txt') {
2207 task.iconUrl =
2208 chrome.extension.getURL('images/icon_preview_16x16.png');
2209 task.title = str('OPEN_ACTION');
2210 } else if (task_parts[1] == 'install-crx') {
2211 // TODO(dgozman): change to the right icon.
2212 task.iconUrl =
2213 chrome.extension.getURL('images/icon_preview_16x16.png');
2214 task.title = str('INSTALL_CRX');
2200 } 2215 }
2201 } 2216 }
2202 this.renderTaskItem_(task); 2217 this.renderTaskItem_(task);
2218 tasksCount++;
2203 } 2219 }
2204 2220
2205 this.taskItems_.visible = tasksList.length > 0; 2221 this.taskItems_.visible = tasksCount > 0;
2206 2222
2207 selection.tasksList = tasksList; 2223 selection.tasksList = tasksList;
2208 if (selection.dispatchDefault) { 2224 if (selection.dispatchDefault) {
2209 // We got a request to dispatch the default task for the selection. 2225 // We got a request to dispatch the default task for the selection.
2210 selection.dispatchDefault = false; 2226 selection.dispatchDefault = false;
2211 this.dispatchDefaultTask_(selection); 2227 this.dispatchDefaultTask_(selection);
2212 } 2228 }
2213 // These are done in separate functions, as the checks require 2229 // These are done in separate functions, as the checks require
2214 // asynchronous function calls. 2230 // asynchronous function calls.
2215 this.maybeRenderFormattingTask_(selection); 2231 this.maybeRenderFormattingTask_(selection);
(...skipping 235 matching lines...) Expand 10 before | Expand all | Expand 10 after
2451 var noGallery = []; 2467 var noGallery = [];
2452 for (var index = 0; index < details.task.allTasks.length; index++) { 2468 for (var index = 0; index < details.task.allTasks.length; index++) {
2453 var task = details.task.allTasks[index]; 2469 var task = details.task.allTasks[index];
2454 if (task.taskId != this.getExtensionId_() + '|gallery') { 2470 if (task.taskId != this.getExtensionId_() + '|gallery') {
2455 // Add callback, so gallery can execute the task. 2471 // Add callback, so gallery can execute the task.
2456 task.execute = this.dispatchFileTask_.bind(this, task); 2472 task.execute = this.dispatchFileTask_.bind(this, task);
2457 noGallery.push(task); 2473 noGallery.push(task);
2458 } 2474 }
2459 } 2475 }
2460 this.openGallery_(urls, noGallery); 2476 this.openGallery_(urls, noGallery);
2477 } else if (id == 'view-pdf' || id == 'view-txt' || id == 'install-crx') {
2478 chrome.fileBrowserPrivate.viewFiles(urls, 'default', function() {});
2461 } 2479 }
2462 }; 2480 };
2463 2481
2464 FileManager.prototype.getDeviceNumber = function(entry) { 2482 FileManager.prototype.getDeviceNumber = function(entry) {
2465 if (!entry.isDirectory) return undefined; 2483 if (!entry.isDirectory) return undefined;
2466 for (var i = 0; i < this.mountPoints_.length; i++) { 2484 for (var i = 0; i < this.mountPoints_.length; i++) {
2467 if (normalizeAbsolutePath(entry.fullPath) == 2485 if (normalizeAbsolutePath(entry.fullPath) ==
2468 normalizeAbsolutePath(this.mountPoints_[i].mountPath)) { 2486 normalizeAbsolutePath(this.mountPoints_[i].mountPath)) {
2469 return i; 2487 return i;
2470 } 2488 }
(...skipping 1464 matching lines...) Expand 10 before | Expand all | Expand 10 after
3935 }); 3953 });
3936 }, onError); 3954 }, onError);
3937 3955
3938 function onError(err) { 3956 function onError(err) {
3939 console.log('Error while checking free space: ' + err); 3957 console.log('Error while checking free space: ' + err);
3940 setTimeout(doCheck, 1000 * 60); 3958 setTimeout(doCheck, 1000 * 60);
3941 } 3959 }
3942 } 3960 }
3943 } 3961 }
3944 })(); 3962 })();
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/extensions/file_manager_util.cc ('k') | chrome/browser/resources/file_manager/js/mock_chrome.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698