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 d66e782f3dc890eb0aa30751daf3c47aab17695d..2f93b6df1e5d34aee909da032d0629c5a2fbadee 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 |
@@ -1184,9 +1184,12 @@ FileOperationManager.prototype.requestTaskCancel = function(taskId) { |
* directory. |
* @param {boolean} isMove True if the operation is "move", otherwise (i.e. |
* if the operation is "copy") false. |
+ * @param {string=} opt_taskId If the corresponding item has already created |
+ * at another places, we need to specify the ID of the item. If the |
+ * item is not created, FileOperationManager generates new ID. |
*/ |
FileOperationManager.prototype.paste = function( |
- sourceEntries, targetEntry, isMove) { |
+ sourceEntries, targetEntry, isMove, opt_taskId) { |
// Do nothing if sourceEntries is empty. |
if (sourceEntries.length === 0) |
return; |
@@ -1220,7 +1223,7 @@ FileOperationManager.prototype.paste = function( |
if (filteredEntries.length === 0) |
return; |
- this.queueCopy_(targetEntry, filteredEntries, isMove); |
+ this.queueCopy_(targetEntry, filteredEntries, isMove, opt_taskId); |
}.bind(this)); |
}; |
@@ -1231,10 +1234,13 @@ FileOperationManager.prototype.paste = function( |
* @param {DirectoryEntry} targetDirEntry Target directory. |
* @param {Array.<Entry>} entries Entries to copy. |
* @param {boolean} isMove In case of move. |
+ * @param {string=} opt_taskId If the corresponding item has already created |
+ * at another places, we need to specify the ID of the item. If the |
+ * item is not created, FileOperationManager generates new ID. |
* @private |
*/ |
FileOperationManager.prototype.queueCopy_ = function( |
- targetDirEntry, entries, isMove) { |
+ targetDirEntry, entries, isMove, opt_taskId) { |
var task; |
if (isMove) { |
// When moving between different volumes, moving is implemented as a copy |
@@ -1250,7 +1256,7 @@ FileOperationManager.prototype.queueCopy_ = function( |
task = new FileOperationManager.CopyTask(entries, targetDirEntry, false); |
} |
- task.taskId = this.generateTaskId_(); |
+ task.taskId = opt_taskId || this.generateTaskId(); |
this.eventRouter_.sendProgressEvent('BEGIN', task.getStatus(), task.taskId); |
task.initialize(function() { |
this.copyTasks_.push(task); |
@@ -1327,7 +1333,7 @@ FileOperationManager.prototype.deleteEntries = function(entries) { |
// TODO(hirono): Make FileOperationManager.DeleteTask. |
var task = Object.seal({ |
entries: entries, |
- taskId: this.generateTaskId_(), |
+ taskId: this.generateTaskId(), |
entrySize: {}, |
totalBytes: 0, |
processedBytes: 0, |
@@ -1438,7 +1444,7 @@ FileOperationManager.prototype.zipSelection = function( |
dirEntry, selectionEntries) { |
var zipTask = new FileOperationManager.ZipTask( |
selectionEntries, dirEntry, dirEntry); |
- zipTask.taskId = this.generateTaskId_(this.copyTasks_); |
+ zipTask.taskId = this.generateTaskId(this.copyTasks_); |
zipTask.zip = true; |
this.eventRouter_.sendProgressEvent('BEGIN', |
zipTask.getStatus(), |
@@ -1454,8 +1460,7 @@ FileOperationManager.prototype.zipSelection = function( |
* Generates new task ID. |
* |
* @return {string} New task ID. |
- * @private |
*/ |
-FileOperationManager.prototype.generateTaskId_ = function() { |
+FileOperationManager.prototype.generateTaskId = function() { |
return 'file-operation-' + this.taskIdCounter_++; |
}; |