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

Unified Diff: ui/file_manager/file_manager/foreground/js/ui/drive_banners.js

Issue 645853013: Remove some platform specific stuff from views. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 6 years, 2 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/foreground/js/ui/drive_banners.js
diff --git a/ui/file_manager/file_manager/foreground/js/ui/drive_banners.js b/ui/file_manager/file_manager/foreground/js/ui/drive_banners.js
deleted file mode 100644
index 4776e403dfd1a2625d6845a9e68347ae3824feb9..0000000000000000000000000000000000000000
--- a/ui/file_manager/file_manager/foreground/js/ui/drive_banners.js
+++ /dev/null
@@ -1,682 +0,0 @@
-// Copyright (c) 2012 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';
-
-/**
- * Responsible for showing following banners in the file list.
- * - WelcomeBanner
- * - AuthFailBanner
- * @param {DirectoryModel} directoryModel The model.
- * @param {VolumeManagerWrapper} volumeManager The manager.
- * @param {Document} document HTML document.
- * @param {boolean} showOffers True if we should show offer banners.
- * @constructor
- * @extends {cr.EventTarget}
- */
-function FileListBannerController(
- directoryModel, volumeManager, document, showOffers) {
- this.directoryModel_ = directoryModel;
- this.volumeManager_ = volumeManager;
- this.document_ = document;
- this.showOffers_ = showOffers;
- this.driveEnabled_ = false;
-
- this.initializeWelcomeBanner_();
- this.privateOnDirectoryChangedBound_ =
- this.privateOnDirectoryChanged_.bind(this);
-
- var handler = this.checkSpaceAndMaybeShowWelcomeBanner_.bind(this);
- this.directoryModel_.addEventListener('scan-completed', handler);
- this.directoryModel_.addEventListener('rescan-completed', handler);
- this.directoryModel_.addEventListener('directory-changed',
- this.onDirectoryChanged_.bind(this));
-
- this.unmountedPanel_ = this.document_.querySelector('#unmounted-panel');
- this.volumeManager_.volumeInfoList.addEventListener(
- 'splice', this.onVolumeInfoListSplice_.bind(this));
- this.volumeManager_.addEventListener('drive-connection-changed',
- this.onDriveConnectionChanged_.bind(this));
-
- chrome.storage.onChanged.addListener(this.onStorageChange_.bind(this));
- this.welcomeHeaderCounter_ = WELCOME_HEADER_COUNTER_LIMIT;
- this.warningDismissedCounter_ = 0;
- chrome.storage.local.get(
- [WELCOME_HEADER_COUNTER_KEY, WARNING_DISMISSED_KEY],
- function(values) {
- this.welcomeHeaderCounter_ =
- parseInt(values[WELCOME_HEADER_COUNTER_KEY], 10) || 0;
- this.warningDismissedCounter_ =
- parseInt(values[WARNING_DISMISSED_KEY], 10) || 0;
- }.bind(this));
-
- this.authFailedBanner_ =
- this.document_.querySelector('#drive-auth-failed-warning');
- var authFailedText = this.authFailedBanner_.querySelector('.drive-text');
- authFailedText.innerHTML = util.htmlUnescape(str('DRIVE_NOT_REACHED'));
- authFailedText.querySelector('a').addEventListener('click', function(e) {
- chrome.fileManagerPrivate.logoutUserForReauthentication();
- e.preventDefault();
- });
- this.maybeShowAuthFailBanner_();
-}
-
-/**
- * FileListBannerController extends cr.EventTarget.
- */
-FileListBannerController.prototype.__proto__ = cr.EventTarget.prototype;
-
-/**
- * Key in localStorage to keep number of times the Drive Welcome
- * banner has shown.
- */
-var WELCOME_HEADER_COUNTER_KEY = 'driveWelcomeHeaderCounter';
-
-// If the warning was dismissed before, this key stores the quota value
-// (as of the moment of dismissal).
-// If the warning was never dismissed or was reset this key stores 0.
-var WARNING_DISMISSED_KEY = 'driveSpaceWarningDismissed';
-
-/**
- * Maximum times Drive Welcome banner could have shown.
- */
-var WELCOME_HEADER_COUNTER_LIMIT = 25;
-
-/**
- * Initializes the banner to promote DRIVE.
- * This method must be called before any of showing banner functions, and
- * also before registering them as callbacks.
- * @private
- */
-FileListBannerController.prototype.initializeWelcomeBanner_ = function() {
- this.usePromoWelcomeBanner_ = !util.boardIs('x86-mario') &&
- !util.boardIs('x86-zgb') &&
- !util.boardIs('x86-alex');
-};
-
-/**
- * @param {number} value How many times the Drive Welcome header banner
- * has shown.
- * @private
- */
-FileListBannerController.prototype.setWelcomeHeaderCounter_ = function(value) {
- var values = {};
- values[WELCOME_HEADER_COUNTER_KEY] = value;
- chrome.storage.local.set(values);
-};
-
-/**
- * @param {number} value How many times the low space warning has dismissed.
- * @private
- */
-FileListBannerController.prototype.setWarningDismissedCounter_ =
- function(value) {
- var values = {};
- values[WARNING_DISMISSED_KEY] = value;
- chrome.storage.local.set(values);
-};
-
-/**
- * chrome.storage.onChanged event handler.
- * @param {Object.<string, Object>} changes Changes values.
- * @param {string} areaName "local" or "sync".
- * @private
- */
-FileListBannerController.prototype.onStorageChange_ = function(changes,
- areaName) {
- if (areaName == 'local' && WELCOME_HEADER_COUNTER_KEY in changes) {
- this.welcomeHeaderCounter_ = changes[WELCOME_HEADER_COUNTER_KEY].newValue;
- }
- if (areaName == 'local' && WARNING_DISMISSED_KEY in changes) {
- this.warningDismissedCounter_ = changes[WARNING_DISMISSED_KEY].newValue;
- }
-};
-
-/**
- * Invoked when the drive connection status is change in the volume manager.
- * @private
- */
-FileListBannerController.prototype.onDriveConnectionChanged_ = function() {
- this.maybeShowAuthFailBanner_();
-};
-
-/**
- * @param {string} type 'none'|'page'|'header'.
- * @param {string} messageId Resource ID of the message.
- * @private
- */
-FileListBannerController.prototype.prepareAndShowWelcomeBanner_ =
- function(type, messageId) {
- this.showWelcomeBanner_(type);
-
- var container = this.document_.querySelector('.drive-welcome.' + type);
- if (container.firstElementChild)
- return; // Do not re-create.
-
- if (!this.document_.querySelector('link[drive-welcome-style]')) {
- var style = this.document_.createElement('link');
- style.rel = 'stylesheet';
- style.href = 'foreground/css/drive_welcome.css';
- style.setAttribute('drive-welcome-style', '');
- this.document_.head.appendChild(style);
- }
-
- var wrapper = util.createChild(container, 'drive-welcome-wrapper');
- util.createChild(wrapper, 'drive-welcome-icon');
-
- var close = util.createChild(wrapper, 'cr-dialog-close');
- close.addEventListener('click', this.closeWelcomeBanner_.bind(this));
-
- var message = util.createChild(wrapper, 'drive-welcome-message');
-
- var title = util.createChild(message, 'drive-welcome-title');
-
- var text = util.createChild(message, 'drive-welcome-text');
- text.innerHTML = str(messageId);
-
- var links = util.createChild(message, 'drive-welcome-links');
-
- var more;
- if (this.usePromoWelcomeBanner_) {
- var welcomeTitle = str('DRIVE_WELCOME_TITLE_ALTERNATIVE');
- if (util.boardIs('link'))
- welcomeTitle = str('DRIVE_WELCOME_TITLE_ALTERNATIVE_1TB');
- title.textContent = welcomeTitle;
- more = util.createChild(links,
- 'drive-welcome-button drive-welcome-start', 'a');
- more.textContent = str('DRIVE_WELCOME_CHECK_ELIGIBILITY');
- more.href = str('GOOGLE_DRIVE_REDEEM_URL');
- } else {
- title.textContent = str('DRIVE_WELCOME_TITLE');
- more = util.createChild(links, 'plain-link', 'a');
- more.textContent = str('DRIVE_LEARN_MORE');
- more.href = str('GOOGLE_DRIVE_OVERVIEW_URL');
- }
- more.tabIndex = '16'; // See: go/filesapp-tabindex.
- more.target = '_blank';
-
- var dismiss;
- if (this.usePromoWelcomeBanner_)
- dismiss = util.createChild(links, 'drive-welcome-button');
- else
- dismiss = util.createChild(links, 'plain-link');
-
- dismiss.classList.add('drive-welcome-dismiss');
- dismiss.textContent = str('DRIVE_WELCOME_DISMISS');
- dismiss.addEventListener('click', this.closeWelcomeBanner_.bind(this));
-
- this.previousDirWasOnDrive_ = false;
-};
-
-/**
- * Show or hide the "Low Google Drive space" warning.
- * @param {boolean} show True if the box need to be shown.
- * @param {Object=} opt_sizeStats Size statistics. Should be defined when
- * showing the warning.
- * @private
- */
-FileListBannerController.prototype.showLowDriveSpaceWarning_ =
- function(show, opt_sizeStats) {
- var box = this.document_.querySelector('#volume-space-warning');
-
- // Avoid showing two banners.
- // TODO(kaznacheev): Unify the low space warning and the promo header.
- if (show)
- this.cleanupWelcomeBanner_();
-
- if (box.hidden == !show)
- return;
-
- if (this.warningDismissedCounter_) {
- if (opt_sizeStats &&
- // Quota had not changed
- this.warningDismissedCounter_ == opt_sizeStats.totalSize &&
- opt_sizeStats.remainingSize / opt_sizeStats.totalSize < 0.15) {
- // Since the last dismissal decision the quota has not changed AND
- // the user did not free up significant space. Obey the dismissal.
- show = false;
- } else {
- // Forget the dismissal. Warning will be shown again.
- this.setWarningDismissedCounter_(0);
- }
- }
-
- box.textContent = '';
- if (show && opt_sizeStats) {
- var icon = this.document_.createElement('div');
- icon.className = 'drive-icon';
- box.appendChild(icon);
-
- var text = this.document_.createElement('div');
- text.className = 'drive-text';
- text.textContent = strf('DRIVE_SPACE_AVAILABLE_LONG',
- util.bytesToString(opt_sizeStats.remainingSize));
- box.appendChild(text);
-
- var link = this.document_.createElement('a');
- link.className = 'plain-link';
- link.textContent = str('DRIVE_BUY_MORE_SPACE_LINK');
- link.href = str('GOOGLE_DRIVE_BUY_STORAGE_URL');
- link.target = '_blank';
- box.appendChild(link);
-
- var close = this.document_.createElement('div');
- close.className = 'cr-dialog-close';
- box.appendChild(close);
- close.addEventListener('click', function(total) {
- var values = {};
- values[WARNING_DISMISSED_KEY] = total;
- chrome.storage.local.set(values);
- box.hidden = true;
- this.requestRelayout_(100);
- }.bind(this, opt_sizeStats.totalSize));
- }
-
- if (box.hidden != !show) {
- box.hidden = !show;
- this.requestRelayout_(100);
- }
-};
-/**
- * Closes the Drive Welcome banner.
- * @private
- */
-FileListBannerController.prototype.closeWelcomeBanner_ = function() {
- this.cleanupWelcomeBanner_();
- // Stop showing the welcome banner.
- this.setWelcomeHeaderCounter_(WELCOME_HEADER_COUNTER_LIMIT);
-};
-
-/**
- * Shows or hides the welcome banner for drive.
- * @private
- */
-FileListBannerController.prototype.checkSpaceAndMaybeShowWelcomeBanner_ =
- function() {
- if (!this.isOnCurrentProfileDrive()) {
- // We are not on the drive file system. Do not show (close) the welcome
- // banner.
- this.cleanupWelcomeBanner_();
- this.previousDirWasOnDrive_ = false;
- return;
- }
-
- var driveVolume = this.volumeManager_.getCurrentProfileVolumeInfo(
- VolumeManagerCommon.VolumeType.DRIVE);
- if (this.welcomeHeaderCounter_ >= WELCOME_HEADER_COUNTER_LIMIT ||
- !driveVolume || driveVolume.error) {
- // The banner is already shown enough times or the drive FS is not mounted.
- // So, do nothing here.
- return;
- }
-
- if (!this.showOffers_) {
- // Because it is not necessary to show the offer, set
- // |usePromoWelcomeBanner_| false here. Note that it probably should be able
- // to do this in the constructor, but there remains non-trivial path,
- // which may be causes |usePromoWelcomeBanner_| == true's behavior even
- // if |showOffers_| is false.
- // TODO(hidehiko): Make sure if it is expected or not, and simplify
- // |showOffers_| if possible.
- this.usePromoWelcomeBanner_ = false;
- }
-
- // Perform asynchronous tasks in parallel.
- var group = new AsyncUtil.Group();
-
- // Choose the offer basing on the board name. The default one is 100 GB.
- var offerSize = 100; // In GB.
- var offerServiceId = 'drive.cros.echo.1';
-
- if (util.boardIs('link')) {
- offerSize = 1024; // 1 TB.
- offerServiceId = 'drive.cros.echo.2';
- }
-
- // If the offer has been checked, then do not show the promo anymore.
- group.add(function(onCompleted) {
- chrome.echoPrivate.getOfferInfo(offerServiceId, function(offerInfo) {
- // If the offer has not been checked, then an error is raised.
- if (!chrome.runtime.lastError)
- this.usePromoWelcomeBanner_ = false;
- onCompleted();
- }.bind(this));
- }.bind(this));
-
- if (this.usePromoWelcomeBanner_) {
- // getSizeStats for Drive file system accesses to the server, so we should
- // minimize the invocation.
- group.add(function(onCompleted) {
- // Current directory must be set, since this code is called after
- // scanning is completed. However, the volumeInfo may be gone.
- chrome.fileManagerPrivate.getSizeStats(
- driveVolume.volumeId,
- function(result) {
- if (result && result.totalSize >= offerSize * 1024 * 1024 * 1024)
- this.usePromoWelcomeBanner_ = false;
- onCompleted();
- }.bind(this));
- }.bind(this));
- }
-
- group.run(this.maybeShowWelcomeBanner_.bind(this));
-};
-
-/**
- * Decides which banner should be shown, and show it. This method is designed
- * to be called only from checkSpaceAndMaybeShowWelcomeBanner_.
- * @private
- */
-FileListBannerController.prototype.maybeShowWelcomeBanner_ = function() {
- if (this.directoryModel_.getFileList().length == 0 &&
- this.welcomeHeaderCounter_ == 0) {
- // Only show the full page banner if the header banner was never shown.
- // Do not increment the counter.
- // The timeout below is required because sometimes another
- // 'rescan-completed' event arrives shortly with non-empty file list.
- setTimeout(function() {
- if (this.isOnCurrentProfileDrive() && this.welcomeHeaderCounter_ == 0) {
- this.prepareAndShowWelcomeBanner_('page', 'DRIVE_WELCOME_TEXT_LONG');
- }
- }.bind(this), 2000);
- } else {
- // We do not want to increment the counter when the user navigates
- // between different directories on Drive, but we increment the counter
- // once anyway to prevent the full page banner from showing.
- if (!this.previousDirWasOnDrive_ || this.welcomeHeaderCounter_ == 0) {
- this.setWelcomeHeaderCounter_(this.welcomeHeaderCounter_ + 1);
- this.prepareAndShowWelcomeBanner_('header', 'DRIVE_WELCOME_TEXT_SHORT');
- }
- }
- this.previousDirWasOnDrive_ = true;
-};
-
-/**
- * @return {boolean} True if current directory is on Drive root of current
- * profile.
- */
-FileListBannerController.prototype.isOnCurrentProfileDrive = function() {
- var entry = this.directoryModel_.getCurrentDirEntry();
- if (!entry || util.isFakeEntry(entry))
- return false;
- var locationInfo = this.volumeManager_.getLocationInfo(entry);
- if (!locationInfo)
- return false;
- return locationInfo.rootType === VolumeManagerCommon.RootType.DRIVE &&
- locationInfo.volumeInfo.profile.isCurrentProfile;
-};
-
-/**
- * Shows the Drive Welcome banner.
- * @param {string} type 'page'|'head'|'none'.
- * @private
- */
-FileListBannerController.prototype.showWelcomeBanner_ = function(type) {
- var container = this.document_.querySelector('.dialog-container');
- if (container.getAttribute('drive-welcome') != type) {
- container.setAttribute('drive-welcome', type);
- this.requestRelayout_(200); // Resize only after the animation is done.
- }
-};
-
-/**
- * Update the UI when the current directory changes.
- *
- * @param {Event} event The directory-changed event.
- * @private
- */
-FileListBannerController.prototype.onDirectoryChanged_ = function(event) {
- var rootVolume = this.volumeManager_.getVolumeInfo(event.newDirEntry);
- var previousRootVolume = event.previousDirEntry ?
- this.volumeManager_.getVolumeInfo(event.previousDirEntry) : null;
-
- // Show (or hide) the low space warning.
- this.maybeShowLowSpaceWarning_(rootVolume);
-
- // Add or remove listener to show low space warning, if necessary.
- var isLowSpaceWarningTarget = this.isLowSpaceWarningTarget_(rootVolume);
- if (isLowSpaceWarningTarget !==
- this.isLowSpaceWarningTarget_(previousRootVolume)) {
- if (isLowSpaceWarningTarget) {
- chrome.fileManagerPrivate.onDirectoryChanged.addListener(
- this.privateOnDirectoryChangedBound_);
- } else {
- chrome.fileManagerPrivate.onDirectoryChanged.removeListener(
- this.privateOnDirectoryChangedBound_);
- }
- }
-
- if (!this.isOnCurrentProfileDrive()) {
- this.cleanupWelcomeBanner_();
- this.authFailedBanner_.hidden = true;
- }
-
- this.updateDriveUnmountedPanel_();
- if (this.isOnCurrentProfileDrive()) {
- this.unmountedPanel_.classList.remove('retry-enabled');
- this.maybeShowAuthFailBanner_();
- }
-};
-
-/**
- * @param {VolumeInfo} volumeInfo Volume info to be checked.
- * @return {boolean} true if the file system specified by |root| is a target
- * to show low space warning. Otherwise false.
- * @private
- */
-FileListBannerController.prototype.isLowSpaceWarningTarget_ =
- function(volumeInfo) {
- if (!volumeInfo)
- return false;
- return volumeInfo.profile.isCurrentProfile &&
- (volumeInfo.volumeType === VolumeManagerCommon.VolumeType.DOWNLOADS ||
- volumeInfo.volumeType === VolumeManagerCommon.VolumeType.DRIVE);
-};
-
-/**
- * Callback which is invoked when the file system has been changed.
- * @param {Object} event chrome.fileManagerPrivate.onDirectoryChanged event.
- * @private
- */
-FileListBannerController.prototype.privateOnDirectoryChanged_ = function(
- event) {
- if (!this.directoryModel_.getCurrentDirEntry())
- return;
-
- var currentDirEntry = this.directoryModel_.getCurrentDirEntry();
- var currentVolume = currentDirEntry &&
- this.volumeManager_.getVolumeInfo(currentDirEntry);
- var eventVolume = this.volumeManager_.getVolumeInfo(event.entry);
- if (currentVolume === eventVolume) {
- // The file system we are currently on is changed.
- // So, check the free space.
- this.maybeShowLowSpaceWarning_(currentVolume);
- }
-};
-
-/**
- * Shows or hides the low space warning.
- * @param {VolumeInfo} volume Type of volume, which we are interested in.
- * @private
- */
-FileListBannerController.prototype.maybeShowLowSpaceWarning_ = function(
- volume) {
- // TODO(kaznacheev): Unify the two low space warning.
- var threshold = 0;
- switch (volume.volumeType) {
- case VolumeManagerCommon.VolumeType.DOWNLOADS:
- this.showLowDriveSpaceWarning_(false);
- threshold = 0.2;
- break;
- case VolumeManagerCommon.VolumeType.DRIVE:
- this.showLowDownloadsSpaceWarning_(false);
- threshold = 0.1;
- break;
- default:
- // If the current file system is neither the DOWNLOAD nor the DRIVE,
- // just hide the warning.
- this.showLowDownloadsSpaceWarning_(false);
- this.showLowDriveSpaceWarning_(false);
- return;
- }
-
- // If not mounted correctly, then do not continue.
- if (!volume.fileSystem)
- return;
-
- chrome.fileManagerPrivate.getSizeStats(
- volume.volumeId,
- function(sizeStats) {
- var currentVolume = this.volumeManager_.getVolumeInfo(
- this.directoryModel_.getCurrentDirEntry());
- if (volume !== currentVolume) {
- // This happens when the current directory is moved during requesting
- // the file system size. Just ignore it.
- return;
- }
- // sizeStats is undefined, if some error occurs.
- if (!sizeStats || sizeStats.totalSize == 0)
- return;
-
- var remainingRatio = sizeStats.remainingSize / sizeStats.totalSize;
- var isLowDiskSpace = remainingRatio < threshold;
- if (volume.volumeType === VolumeManagerCommon.VolumeType.DOWNLOADS)
- this.showLowDownloadsSpaceWarning_(isLowDiskSpace);
- else
- this.showLowDriveSpaceWarning_(isLowDiskSpace, sizeStats);
- }.bind(this));
-};
-
-/**
- * removes the Drive Welcome banner.
- * @private
- */
-FileListBannerController.prototype.cleanupWelcomeBanner_ = function() {
- this.showWelcomeBanner_('none');
-};
-
-/**
- * Notifies the file manager what layout must be recalculated.
- * @param {number} delay In milliseconds.
- * @private
- */
-FileListBannerController.prototype.requestRelayout_ = function(delay) {
- var self = this;
- setTimeout(function() {
- cr.dispatchSimpleEvent(self, 'relayout');
- }, delay);
-};
-
-/**
- * Show or hide the "Low disk space" warning.
- * @param {boolean} show True if the box need to be shown.
- * @private
- */
-FileListBannerController.prototype.showLowDownloadsSpaceWarning_ =
- function(show) {
- var box = this.document_.querySelector('.downloads-warning');
-
- if (box.hidden == !show) return;
-
- if (show) {
- var html = util.htmlUnescape(str('DOWNLOADS_DIRECTORY_WARNING'));
- box.innerHTML = html;
- box.querySelector('a').addEventListener('click', function(e) {
- util.visitURL(str('DOWNLOADS_LOW_SPACE_WARNING_HELP_URL'));
- e.preventDefault();
- });
- } else {
- box.innerHTML = '';
- }
-
- box.hidden = !show;
- this.requestRelayout_(100);
-};
-
-/**
- * Creates contents for the DRIVE unmounted panel.
- * @private
- */
-FileListBannerController.prototype.ensureDriveUnmountedPanelInitialized_ =
- function() {
- var panel = this.unmountedPanel_;
- if (panel.firstElementChild)
- return;
-
- /**
- * Creates an element using given parameters.
- * @param {!Element} parent Parent element of the new element.
- * @param {string} tag Tag of the new element.
- * @param {string} className Class name of the new element.
- * @param {string=} opt_textContent Text content of the new element.
- * @return {!Element} The newly created element.
- */
- var create = function(parent, tag, className, opt_textContent) {
- var div = panel.ownerDocument.createElement(tag);
- div.className = className;
- div.textContent = opt_textContent || '';
- parent.appendChild(div);
- return div;
- };
-
- var loading = create(panel, 'div', 'loading', str('DRIVE_LOADING'));
- var spinnerBox = create(loading, 'div', 'spinner-box');
- create(spinnerBox, 'div', 'spinner');
- create(panel, 'div', 'error', str('DRIVE_CANNOT_REACH'));
-
- var learnMore = create(panel, 'a', 'learn-more plain-link',
- str('DRIVE_LEARN_MORE'));
- learnMore.href = str('GOOGLE_DRIVE_ERROR_HELP_URL');
- learnMore.target = '_blank';
-};
-
-/**
- * Called when volume info list is updated.
- * @param {Event} event Splice event data on volume info list.
- * @private
- */
-FileListBannerController.prototype.onVolumeInfoListSplice_ = function(event) {
- var isDriveVolume = function(volumeInfo) {
- return volumeInfo.volumeType === VolumeManagerCommon.VolumeType.DRIVE;
- };
- if (event.removed.some(isDriveVolume) || event.added.some(isDriveVolume))
- this.updateDriveUnmountedPanel_();
-};
-
-/**
- * Shows the panel when current directory is DRIVE and it's unmounted.
- * Hides it otherwise. The panel shows spinner if DRIVE is mounting or
- * an error message if it failed.
- * @private
- */
-FileListBannerController.prototype.updateDriveUnmountedPanel_ = function() {
- var node = this.document_.body;
- if (this.isOnCurrentProfileDrive()) {
- var driveVolume = this.volumeManager_.getCurrentProfileVolumeInfo(
- VolumeManagerCommon.VolumeType.DRIVE);
- if (driveVolume && driveVolume.error) {
- this.ensureDriveUnmountedPanelInitialized_();
- this.unmountedPanel_.classList.add('retry-enabled');
- } else {
- this.unmountedPanel_.classList.remove('retry-enabled');
- }
- node.setAttribute('drive', status);
- } else {
- node.removeAttribute('drive');
- }
-};
-
-/**
- * Updates the visibility of Drive Connection Warning banner, retrieving the
- * current connection information.
- * @private
- */
-FileListBannerController.prototype.maybeShowAuthFailBanner_ = function() {
- var connection = this.volumeManager_.getDriveConnectionState();
- var showDriveNotReachedMessage =
- this.isOnCurrentProfileDrive() &&
- connection.type == VolumeManagerCommon.DriveConnectionType.OFFLINE &&
- connection.reason == VolumeManagerCommon.DriveConnectionReason.NOT_READY;
- this.authFailedBanner_.hidden = !showDriveNotReachedMessage;
-};

Powered by Google App Engine
This is Rietveld 408576698