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

Unified Diff: ui/file_manager/file_manager/background/js/file_operation_manager.js

Issue 466583003: Files.app: Fix nits in FileOperationManager. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Remove one assertion. Created 6 years, 4 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
« no previous file with comments | « chrome/test/data/file_manager/unit_tests/file_operation_manager_unittest.js ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/file_manager/file_manager/background/js/file_operation_manager.js
diff --git a/ui/file_manager/file_manager/background/js/file_operation_manager.js b/ui/file_manager/file_manager/background/js/file_operation_manager.js
index 82e20e5471cadc62f2fe3102d8d6a37e8debf817..36311a03e950cf8d347bf7af35bd30b138b44e17 100644
--- a/ui/file_manager/file_manager/background/js/file_operation_manager.js
+++ b/ui/file_manager/file_manager/background/js/file_operation_manager.js
@@ -241,10 +241,16 @@ fileOperationUtil.copyTo = function(
case 'end_copy_entry':
// TODO(mtomasz): Convert URL to Entry in custom bindings.
- util.URLsToEntries(
- [status.destinationUrl], function(destinationEntries) {
- entryChangedCallback(status.sourceUrl,
- destinationEntries[0] || null);
+ (source.isFile ? parent.getFile : parent.getDirectory).call(
+ parent,
+ newName,
+ null,
+ function(entry) {
+ entryChangedCallback(status.sourceUrl, entry);
+ callback();
+ },
+ function() {
+ entryChangedCallback(status.sourceUrl, null);
callback();
});
break;
@@ -1039,9 +1045,10 @@ FileOperationManager.ZipTask.prototype.run = function(
this.zipBaseDirEntry,
destPath,
function(entry) {
+ this.processedBytes = this.totalBytes;
entryChangedCallback(util.EntryChangedKind.CREATED, entry);
successCallback();
- },
+ }.bind(this),
function(error) {
errorCallback(new FileOperationManager.Error(
util.FileOperationErrorType.FILESYSTEM_ERROR, error));
@@ -1156,7 +1163,6 @@ FileOperationManager.prototype.paste = function(
if (isMove) {
for (var index = 0; index < sourceEntries.length; index++) {
- var sourceEntry = sourceEntries[index];
resolveGroup.run(function(sourceEntry, callback) {
sourceEntry.getParent(function(inParentEntry) {
if (!util.isSameEntry(inParentEntry, targetEntry))
@@ -1169,7 +1175,7 @@ FileOperationManager.prototype.paste = function(
filteredEntries.push(sourceEntry);
callback();
});
- }.bind(this, sourceEntry));
+ }.bind(this, sourceEntries[index]));
}
} else {
// Always copy all of the files.
@@ -1186,28 +1192,6 @@ FileOperationManager.prototype.paste = function(
};
/**
- * Checks if the move operation is available between the given two locations.
- * This method uses the volume manager, which is lazily created, therefore the
- * result is returned asynchronously.
- *
- * @param {DirectoryEntry} sourceEntry An entry from the source.
- * @param {DirectoryEntry} targetDirEntry Directory entry for the target.
- * @param {function(boolean)} callback Callback with result whether the entries
- * can be directly moved.
- * @private
- */
-FileOperationManager.prototype.isMovable_ = function(
- sourceEntry, targetDirEntry, callback) {
- VolumeManager.getInstance(function(volumeManager) {
- var sourceLocationInfo = volumeManager.getLocationInfo(sourceEntry);
- var targetDirLocationInfo = volumeManager.getLocationInfo(targetDirEntry);
- callback(
- sourceLocationInfo && targetDirLocationInfo &&
- sourceLocationInfo.volumeInfo === targetDirLocationInfo.volumeInfo);
- });
-};
-
-/**
* Initiate a file copy. When copying files, null can be specified as source
* directory.
*
@@ -1218,34 +1202,28 @@ FileOperationManager.prototype.isMovable_ = function(
*/
FileOperationManager.prototype.queueCopy_ = function(
targetDirEntry, entries, isMove) {
- var createTask = function(task) {
- task.taskId = this.generateTaskId_();
- this.eventRouter_.sendProgressEvent(
- 'BEGIN', task.getStatus(), task.taskId);
- task.initialize(function() {
- this.copyTasks_.push(task);
- if (this.copyTasks_.length === 1)
- this.serviceAllTasks_();
- }.bind(this));
- }.bind(this);
-
var task;
if (isMove) {
// When moving between different volumes, moving is implemented as a copy
// and delete. This is because moving between volumes is slow, and moveTo()
// is not cancellable nor provides progress feedback.
- this.isMovable_(entries[0], targetDirEntry, function(isMovable) {
- if (isMovable) {
- createTask(new FileOperationManager.MoveTask(entries, targetDirEntry));
- } else {
- createTask(
- new FileOperationManager.CopyTask(entries, targetDirEntry, true));
- }
- });
+ if (util.isSameFileSystem(entries[0].filesystem,
+ targetDirEntry.filesystem)) {
+ task = new FileOperationManager.MoveTask(entries, targetDirEntry);
+ } else {
+ task = new FileOperationManager.CopyTask(entries, targetDirEntry, true);
+ }
} else {
- createTask(
- new FileOperationManager.CopyTask(entries, targetDirEntry, false));
+ task = new FileOperationManager.CopyTask(entries, targetDirEntry, false);
}
+
+ task.taskId = this.generateTaskId_();
+ this.eventRouter_.sendProgressEvent('BEGIN', task.getStatus(), task.taskId);
+ task.initialize(function() {
+ this.copyTasks_.push(task);
+ if (this.copyTasks_.length === 1)
+ this.serviceAllTasks_();
+ }.bind(this));
};
/**
« no previous file with comments | « chrome/test/data/file_manager/unit_tests/file_operation_manager_unittest.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698