Chromium Code Reviews| Index: ui/file_manager/file_manager/foreground/js/directory_contents.js |
| diff --git a/ui/file_manager/file_manager/foreground/js/directory_contents.js b/ui/file_manager/file_manager/foreground/js/directory_contents.js |
| index 37125baca64c38ffd42017111f17722897a799bb..350ecc22b81cf60bf12b1ad9111b2a03d0bf2228 100644 |
| --- a/ui/file_manager/file_manager/foreground/js/directory_contents.js |
| +++ b/ui/file_manager/file_manager/foreground/js/directory_contents.js |
| @@ -566,7 +566,10 @@ DirectoryContents.prototype.cancelScan = function() { |
| this.onScanFinished_(); |
| + // Cancels the current prefetchMetadata queue and replaces it with new one. |
| this.prefetchMetadataQueue_.cancel(); |
| + this.prefetchMetadataQueue_ = new AsyncUtil.Queue(); |
|
hirono
2014/05/26 09:19:42
Does it really need to reassign a new queue?
It lo
yoshiki
2014/05/26 09:36:33
That's right. Removed.
|
| + |
| cr.dispatchSimpleEvent(this, 'scan-cancelled'); |
| }; |
| @@ -579,7 +582,10 @@ DirectoryContents.prototype.cancelScan = function() { |
| DirectoryContents.prototype.onScanFinished_ = function() { |
| this.scanner_ = null; |
| - this.prefetchMetadataQueue_.run(function(callback) { |
| + this.prefetchMetadataQueue_.run(function(callback, cancelled) { |
| + if (cancelled) |
| + return callback(); |
| + |
| // TODO(yoshiki): Here we should fire the update event of changed |
| // items. Currently we have a method this.fileList_.updateIndex() to |
| // fire an event, but this method takes only 1 argument and invokes sort |
| @@ -603,11 +609,12 @@ DirectoryContents.prototype.onScanCompleted_ = function() { |
| if (this.scanCancelled_) |
| return; |
| - this.prefetchMetadataQueue_.run(function(callback) { |
| + this.prefetchMetadataQueue_.run(function(callback, cancelled) { |
|
hirono
2014/05/26 09:19:42
What is difference between this.scanCancelled_ and
yoshiki
2014/05/26 09:36:33
In this case, they are same. But in general, the c
hirono
2014/05/26 09:41:04
How about removing this.scanCancelled_ and using t
|
| // Call callback first, so isScanning() returns false in the event handlers. |
| callback(); |
| - cr.dispatchSimpleEvent(this, 'scan-completed'); |
| + if (!cancelled) |
| + cr.dispatchSimpleEvent(this, 'scan-completed'); |
| }.bind(this)); |
| }; |
| @@ -619,10 +626,12 @@ DirectoryContents.prototype.onScanError_ = function() { |
| if (this.scanCancelled_) |
| return; |
| - this.prefetchMetadataQueue_.run(function(callback) { |
| + this.prefetchMetadataQueue_.run(function(callback, cancelled) { |
| // Call callback first, so isScanning() returns false in the event handlers. |
| callback(); |
| - cr.dispatchSimpleEvent(this, 'scan-failed'); |
| + |
| + if (!cancelled) |
| + cr.dispatchSimpleEvent(this, 'scan-failed'); |
| }.bind(this)); |
| }; |
| @@ -655,7 +664,10 @@ DirectoryContents.prototype.onNewEntries_ = function(entries) { |
| var MAX_CHUNK_SIZE = 50; |
| for (var i = 0; i < entriesFiltered.length; i += MAX_CHUNK_SIZE) { |
| var chunk = entriesFiltered.slice(i, i + MAX_CHUNK_SIZE); |
| - this.prefetchMetadataQueue_.run(function(chunk, callback) { |
| + this.prefetchMetadataQueue_.run(function(chunk, callback, cancelled) { |
| + if (cancelled) |
| + return callback(); |
|
hirono
2014/05/26 09:19:42
Maybe "callback(); return;" is more free from misr
yoshiki
2014/05/26 09:36:33
Done.
|
| + |
| this.prefetchMetadata(chunk, function() { |
| if (this.scanCancelled_) { |
| // Do nothing if the scanning is cancelled. |