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

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

Issue 247123002: Move Files.app files to ui/file_manager (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix the test failure on non-chromeos Created 6 years, 8 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/background/js/drive_sync_handler.js
diff --git a/chrome/browser/resources/file_manager/background/js/drive_sync_handler.js b/chrome/browser/resources/file_manager/background/js/drive_sync_handler.js
deleted file mode 100644
index f655957ebecb09184905ab6f91a9134972bd7aca..0000000000000000000000000000000000000000
--- a/chrome/browser/resources/file_manager/background/js/drive_sync_handler.js
+++ /dev/null
@@ -1,200 +0,0 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-'use strict';
-
-/**
- * Handler of the background page for the drive sync events.
- * @param {ProgressCenter} progressCenter Progress center to submit the
- * progressing items.
- * @constructor
- */
-function DriveSyncHandler(progressCenter) {
- /**
- * Progress center to submit the progressing item.
- * @type {ProgressCenter}
- * @private
- */
- this.progressCenter_ = progressCenter;
-
- /**
- * Counter for progress ID.
- * @type {number}
- * @private
- */
- this.idCounter_ = 0;
-
- /**
- * Map of file urls and progress center items.
- * @type {Object.<string, ProgressCenterItem>}
- * @private
- */
- this.items_ = {};
-
- /**
- * Async queue.
- * @type {AsyncUtil.Queue}
- * @private
- */
- this.queue_ = new AsyncUtil.Queue();
-
- // Register events.
- chrome.fileBrowserPrivate.onFileTransfersUpdated.addListener(
- this.onFileTransfersUpdated_.bind(this));
- chrome.fileBrowserPrivate.onDriveSyncError.addListener(
- this.onDriveSyncError_.bind(this));
-}
-
-/**
- * Completed event name.
- * @type {string}
- * @const
- */
-DriveSyncHandler.COMPLETED_EVENT = 'completed';
-
-/**
- * Progress ID of the drive sync.
- * @type {string}
- * @const
- */
-DriveSyncHandler.PROGRESS_ITEM_ID_PREFIX = 'drive-sync-';
-
-DriveSyncHandler.prototype = {
- __proto__: cr.EventTarget.prototype,
-
- /**
- * @return {boolean} Whether the handler is having syncing items or not.
- */
- get syncing() {
- // Check if this.items_ has properties or not.
- for (var url in this.items_) {
- return true;
- }
- return false;
- }
-};
-
-/**
- * Handles file transfer updated events.
- * @param {Array.<FileTransferStatus>} statusList List of drive status.
- * @private
- */
-DriveSyncHandler.prototype.onFileTransfersUpdated_ = function(statusList) {
- var completed = false;
- for (var i = 0; i < statusList.length; i++) {
- var status = statusList[i];
- switch (status.transferState) {
- case 'in_progress':
- case 'started':
- this.updateItem_(status);
- break;
- case 'completed':
- case 'failed':
- this.removeItem_(status);
- if (!this.syncing)
- this.dispatchEvent(new Event(DriveSyncHandler.COMPLETED_EVENT));
- break;
- default:
- throw new Error(
- 'Invalid transfer state: ' + status.transferState + '.');
- }
- }
-};
-
-/**
- * Updates the item involved with the given status.
- * @param {FileTransferStatus} status Transfer status.
- * @private
- */
-DriveSyncHandler.prototype.updateItem_ = function(status) {
- this.queue_.run(function(callback) {
- if (this.items_[status.fileUrl]) {
- callback();
- return;
- }
- webkitResolveLocalFileSystemURL(status.fileUrl, function(entry) {
- var item = new ProgressCenterItem();
- item.id =
- DriveSyncHandler.PROGRESS_ITEM_ID_PREFIX + (this.idCounter_++);
- item.type = ProgressItemType.SYNC;
- item.quiet = true;
- item.message = strf('SYNC_FILE_NAME', entry.name);
- item.cancelCallback = this.requestCancel_.bind(this, entry);
- this.items_[status.fileUrl] = item;
- callback();
- }.bind(this), function(error) {
- console.warn('Resolving URL ' + status.fileUrl + ' is failed: ', error);
- callback();
- });
- }.bind(this));
- this.queue_.run(function(callback) {
- var item = this.items_[status.fileUrl];
- if (!item) {
- callback();
- return;
- }
- item.progressValue = status.processed || 0;
- item.progressMax = status.total || 1;
- this.progressCenter_.updateItem(item);
- callback();
- }.bind(this));
-};
-
-/**
- * Removes the item involved with the given status.
- * @param {FileTransferStatus} status Transfer status.
- * @private
- */
-DriveSyncHandler.prototype.removeItem_ = function(status) {
- this.queue_.run(function(callback) {
- var item = this.items_[status.fileUrl];
- if (!item) {
- callback();
- return;
- }
- item.state = status.transferState === 'completed' ?
- ProgressItemState.COMPLETED : ProgressItemState.CANCELED;
- this.progressCenter_.updateItem(item);
- delete this.items_[status.fileUrl];
- callback();
- }.bind(this));
-};
-
-/**
- * Requests to cancel for the given files' drive sync.
- * @param {Entry} entry Entry to be canceled.
- * @private
- */
-DriveSyncHandler.prototype.requestCancel_ = function(entry) {
- chrome.fileBrowserPrivate.cancelFileTransfers([entry.toURL()], function() {});
-};
-
-/**
- * Handles drive's sync errors.
- * @param {DriveSyncErrorEvent} event Drive sync error event.
- * @private
- */
-DriveSyncHandler.prototype.onDriveSyncError_ = function(event) {
- webkitResolveLocalFileSystemURL(event.fileUrl, function(entry) {
- var item;
- item = new ProgressCenterItem();
- item.id = DriveSyncHandler.PROGRESS_ITEM_ID_PREFIX + (this.idCounter_++);
- item.type = ProgressItemType.SYNC;
- item.quiet = true;
- item.state = ProgressItemState.ERROR;
- switch (event.type) {
- case 'delete_without_permission':
- item.message =
- strf('SYNC_DELETE_WITHOUT_PERMISSION_ERROR', entry.name);
- break;
- case 'service_unavailable':
- item.message = str('SYNC_SERVICE_UNAVAILABLE_ERROR');
- break;
- case 'misc':
- item.message = strf('SYNC_MISC_ERROR', entry.name);
- break;
- }
- this.progressCenter_.updateItem(item);
- }.bind(this));
-};

Powered by Google App Engine
This is Rietveld 408576698