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

Unified Diff: chrome/browser/resources/file_manager/js/file_manager.js

Issue 9379023: Tweaks for improving file manager performance (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Finish plumbing callbacks through Created 8 years, 10 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/resources/file_manager/js/file_manager.js
diff --git a/chrome/browser/resources/file_manager/js/file_manager.js b/chrome/browser/resources/file_manager/js/file_manager.js
index 6a274d0301f2fb2088f25b8d7704e8d16076f2f2..93447823a019d1c5315a1822ebc6d1c6c0c099ac 100644
--- a/chrome/browser/resources/file_manager/js/file_manager.js
+++ b/chrome/browser/resources/file_manager/js/file_manager.js
@@ -480,7 +480,7 @@ FileManager.prototype = {
(this.dialogType_ == FileManager.DialogType.FULL_PAGE ||
this.dialogType_ == FileManager.DialogType.SELECT_OPEN_MULTI_FILE);
- this.table_.list.startBatchUpdates();
+ this.table_.startBatchUpdates();
this.grid_.startBatchUpdates();
this.initFileList_();
@@ -520,8 +520,6 @@ FileManager.prototype = {
chrome.fileBrowserPrivate.onFileChanged.addListener(
this.onFileChanged_.bind(this));
- var self = this;
-
// The list of callbacks to be invoked during the directory rescan after
// all paste tasks are complete.
this.pasteSuccessCallbacks_ = [];
@@ -546,7 +544,7 @@ FileManager.prototype = {
this.createMetadataProvider_();
- this.table_.list.endBatchUpdates();
+ this.table_.endBatchUpdates();
this.grid_.endBatchUpdates();
metrics.recordInterval('Load.DOM');
@@ -755,7 +753,9 @@ FileManager.prototype = {
// TODO(dgozman): add "Add a drive" item.
this.rootsList_.dataModel = this.directoryModel_.rootsList;
- this.directoryModel_.updateRoots();
+ this.directoryModel_.updateRoots(function() {
+ self.rootsList_.endBatchUpdates();
rginda 2012/02/28 18:38:35 updateRoots may benefit from a try/catch so that t
Rick Byers 2012/02/28 19:56:26 It doesn't look to me like there's much logic that
+ });
};
/**
@@ -1384,10 +1384,17 @@ FileManager.prototype = {
* window has neither.
*/
FileManager.prototype.setupCurrentDirectory_ = function() {
+ // Avoid a bunch of intermedia list redraws while the data model is cleared
rginda 2012/02/28 18:38:35 typo: intermediate
Rick Byers 2012/02/28 19:56:26 Done.
+ // and updated.
+ this.table_.startBatchUpdates();
+ var onLoaded = function() {
+ this.table_.endBatchUpdates();
+ }.bind(this);
+
if (location.hash) {
// Location hash has the highest priority.
var path = decodeURI(location.hash.substr(1));
- this.directoryModel_.setupPath(path);
+ this.directoryModel_.setupPath(path, onLoaded);
return;
} else if (this.params_.defaultPath) {
var pathResolvedCallback;
@@ -1398,9 +1405,10 @@ FileManager.prototype = {
}.bind(this);
}
this.directoryModel_.setupPath(this.params_.defaultPath,
+ onLoaded,
pathResolvedCallback);
} else {
- this.directoryModel_.setupDefaultPath();
+ this.directoryModel_.setupDefaultPath(onLoaded);
}
};
@@ -2279,7 +2287,7 @@ FileManager.prototype = {
chrome.fileBrowserPrivate.getMountPoints(function(mountPoints) {
self.mountPoints_ = mountPoints;
self.updateVolumeMetadata_();
- var changeDirectoryTo = null;
+ var changeDirectoryCallback = null;
if (event.eventType == 'mount') {
// Mount request finished - remove it.
@@ -2323,13 +2331,16 @@ FileManager.prototype = {
return;
}
// Current durectory just unmounted. Move to the 'Downloads'.
- changeDirectoryTo = '/' + DirectoryModel.DOWNLOADS_DIRECTORY;
+ changeDirectoryCallback = function() {
+ self.directoryModel_.changeDirectory(
+ '/' + DirectoryModel.DOWNLOADS_DIRECTORY);
+ };
}
// Even if something failed root list should be rescanned.
// Failed mounts can "give" us new devices which might be formatted,
// so we have to refresh root list then.
- self.directoryModel_.updateRoots(changeDirectoryTo);
+ self.directoryModel_.updateRoots(changeDirectoryCallback);
});
};
« no previous file with comments | « chrome/browser/resources/file_manager/js/directory_model.js ('k') | chrome/browser/resources/shared/js/cr/ui/table.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698