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

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

Issue 133233002: Recover gallery after crash in Files app. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 11 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
« no previous file with comments | « no previous file | chrome/browser/resources/file_manager/foreground/js/photo/gallery.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 'use strict'; 5 'use strict';
6 6
7 /** 7 /**
8 * FileManager constructor. 8 * FileManager constructor.
9 * 9 *
10 * FileManager objects encapsulate the functionality of the file selector 10 * FileManager objects encapsulate the functionality of the file selector
(...skipping 1574 matching lines...) Expand 10 before | Expand all | Expand 10 after
1585 }.bind(this)); 1585 }.bind(this));
1586 } 1586 }
1587 1587
1588 if (this.dialogType === DialogType.FULL_PAGE) { 1588 if (this.dialogType === DialogType.FULL_PAGE) {
1589 // In the FULL_PAGE mode if the restored path points to a file we might 1589 // In the FULL_PAGE mode if the restored path points to a file we might
1590 // have to invoke a task after selecting it. 1590 // have to invoke a task after selecting it.
1591 if (this.params_.action === 'select') 1591 if (this.params_.action === 'select')
1592 return; 1592 return;
1593 1593
1594 var task = null; 1594 var task = null;
1595 if (opt_suggestedName) { 1595 // Handle restoring after crash.
1596 // Non-existent file or a directory. 1596 if (this.params_.gallery) {
1597 if (this.params_.gallery) { 1597 if (!opt_selectionEntry) {
1598 // Non-existent file or a directory.
1598 // Reloading while the Gallery is open with empty or multiple 1599 // Reloading while the Gallery is open with empty or multiple
1599 // selection. Open the Gallery when the directory is scanned. 1600 // selection. Open the Gallery when the directory is scanned.
1600 task = function() { 1601 task = function() {
1601 new FileTasks(this, this.params_).openGallery([]); 1602 new FileTasks(this, this.params_).openGallery([]);
1602 }.bind(this); 1603 }.bind(this);
1603 } 1604 } else {
1604 } else if (opt_selectionEntry) { 1605 // The file or the directory exists.
1605 // There is a file to be selected. It means, that we are recovering
1606 // the Files app.
1607 // We call the appropriate methods of FileTasks directly as we do
1608 // not need any of the preparations that |execute| method does.
1609 // TODO(mtomasz): Change Entry.fullPath to Entry.
1610 var mediaType = FileType.getMediaType(opt_selectionEntry);
1611 if (mediaType === 'image' || mediaType === 'video') {
1612 task = function() { 1606 task = function() {
1613 // TODO(mtomasz): Replace the url with an entry. 1607 // TODO(mtomasz): Replace the url with an entry.
1614 new FileTasks(this, this.params_).openGallery([opt_selectionEntry]); 1608 new FileTasks(this, this.params_).openGallery([opt_selectionEntry]);
1615 }.bind(this); 1609 }.bind(this);
1616 } else if (mediaType === 'archive') {
1617 task = function() {
1618 new FileTasks(this, this.params_).mountArchives(
1619 [opt_selectionEntry]);
1620 }.bind(this);
1621 } 1610 }
1611 } else {
1612 // TODO(mtomasz): Implement remounting archives after crash.
1613 // See: crbug.com/333139
1622 } 1614 }
1623 1615
1624 // If there is a task to be run, run it after the scan is completed. 1616 // If there is a task to be run, run it after the scan is completed.
1625 if (task) { 1617 if (task) {
1626 var listener = function() { 1618 var listener = function() {
1627 this.directoryModel_.removeEventListener( 1619 this.directoryModel_.removeEventListener(
1628 'scan-completed', listener); 1620 'scan-completed', listener);
1629 task(); 1621 task();
1630 }.bind(this); 1622 }.bind(this);
1631 this.directoryModel_.addEventListener('scan-completed', listener); 1623 this.directoryModel_.addEventListener('scan-completed', listener);
(...skipping 640 matching lines...) Expand 10 before | Expand all | Expand 10 after
2272 * 2264 *
2273 * @param {Event} event The directory-changed event. 2265 * @param {Event} event The directory-changed event.
2274 * @private 2266 * @private
2275 */ 2267 */
2276 FileManager.prototype.onDirectoryChanged_ = function(event) { 2268 FileManager.prototype.onDirectoryChanged_ = function(event) {
2277 this.selectionHandler_.onFileSelectionChanged(); 2269 this.selectionHandler_.onFileSelectionChanged();
2278 this.ui_.searchBox.clear(); 2270 this.ui_.searchBox.clear();
2279 // TODO(mtomasz): Use Entry.toURL() instead of fullPath. 2271 // TODO(mtomasz): Use Entry.toURL() instead of fullPath.
2280 util.updateAppState( 2272 util.updateAppState(
2281 this.getCurrentDirectoryEntry() && 2273 this.getCurrentDirectoryEntry() &&
2282 this.getCurrentDirectoryEntry().fullPath); 2274 this.getCurrentDirectoryEntry().fullPath, '' /* opt_param */);
2283 2275
2284 // If the current directory is moved from the device's volume, do not 2276 // If the current directory is moved from the device's volume, do not
2285 // automatically close the window on device removal. 2277 // automatically close the window on device removal.
2286 if (event.previousDirEntry && 2278 if (event.previousDirEntry &&
2287 PathUtil.getRootPath(event.previousDirEntry.fullPath) != 2279 PathUtil.getRootPath(event.previousDirEntry.fullPath) !=
2288 PathUtil.getRootPath(event.newDirEntry.fullPath)) 2280 PathUtil.getRootPath(event.newDirEntry.fullPath))
2289 this.closeOnUnmount_ = false; 2281 this.closeOnUnmount_ = false;
2290 2282
2291 if (this.commandHandler) 2283 if (this.commandHandler)
2292 this.commandHandler.updateAvailability(); 2284 this.commandHandler.updateAvailability();
(...skipping 1363 matching lines...) Expand 10 before | Expand all | Expand 10 after
3656 callback(this.preferences_); 3648 callback(this.preferences_);
3657 return; 3649 return;
3658 } 3650 }
3659 3651
3660 chrome.fileBrowserPrivate.getPreferences(function(prefs) { 3652 chrome.fileBrowserPrivate.getPreferences(function(prefs) {
3661 this.preferences_ = prefs; 3653 this.preferences_ = prefs;
3662 callback(prefs); 3654 callback(prefs);
3663 }.bind(this)); 3655 }.bind(this));
3664 }; 3656 };
3665 })(); 3657 })();
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/resources/file_manager/foreground/js/photo/gallery.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698