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

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

Issue 888693002: Correctly handle out of storage space and "actively importing" states in controller. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 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 side-by-side diff with in-line comments
Download patch
Index: ui/file_manager/file_manager/background/js/task_queue.js
diff --git a/ui/file_manager/file_manager/background/js/task_queue.js b/ui/file_manager/file_manager/background/js/task_queue.js
index 9f2d539432627cd9e7ca58dd39a8552ca4f93b7f..ae0962519d7ed3a405254f268590cddb65a12e14 100644
--- a/ui/file_manager/file_manager/background/js/task_queue.js
+++ b/ui/file_manager/file_manager/background/js/task_queue.js
@@ -181,16 +181,18 @@ importer.TaskQueue.BaseTask = function(taskId) {
this.taskId_ = taskId;
/** @private {!Array<!importer.TaskQueue.Task.Observer>} */
this.observers_ = [];
+
+ /** @private {!importer.Resolver} */
+ this.finishedResolver_ = new importer.Resolver();
};
/** @struct */
importer.TaskQueue.BaseTask.prototype = {
- /**
- * @return {string} The task ID.
- */
- get taskId() {
- return this.taskId_;
- }
+ /** @return {string} The task ID. */
+ get taskId() { return this.taskId_; },
+
+ /** @return {!Promise} Resolves when task is complete, rejects on error. */
+ get whenFinished() { return this.finishedResolver_.promise; }
};
/** @override */
@@ -207,6 +209,13 @@ importer.TaskQueue.BaseTask.prototype.run = function() {};
* @protected
*/
importer.TaskQueue.BaseTask.prototype.notify = function(updateType, opt_data) {
+ switch (updateType) {
+ case importer.TaskQueue.UpdateType.CANCELED:
+ case importer.TaskQueue.UpdateType.ERROR:
+ case importer.TaskQueue.UpdateType.SUCCESS:
+ this.finishedResolver_.resolve();
+ }
+
this.observers_.forEach(
/** @param {!importer.TaskQueue.Task.Observer} callback */
function(callback) {

Powered by Google App Engine
This is Rietveld 408576698