Index: chrome/browser/resources/file_manager/js/drive_banners.js |
diff --git a/chrome/browser/resources/file_manager/js/drive_banners.js b/chrome/browser/resources/file_manager/js/drive_banners.js |
deleted file mode 100644 |
index 651c776414d7796da5497a90a3d94a49eb208c31..0000000000000000000000000000000000000000 |
--- a/chrome/browser/resources/file_manager/js/drive_banners.js |
+++ /dev/null |
@@ -1,647 +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 {DOMDocument} document HTML document. |
- * @param {boolean} showOffers True if we should show offer banners. |
- * @constructor |
- */ |
-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]) || 0; |
- this.warningDismissedCounter_ = |
- parseInt(values[WARNING_DISMISSED_KEY]) || 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.fileBrowserPrivate.logoutUser(); |
- 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 = '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 = urlConstants.GOOGLE_DRIVE_REDEEM; |
- } else { |
- title.textContent = str('DRIVE_WELCOME_TITLE'); |
- more = util.createChild(links, 'plain-link', 'a'); |
- more.textContent = str('DRIVE_LEARN_MORE'); |
- more.href = urlConstants.GOOGLE_DRIVE_FAQ_URL; |
- } |
- more.tabIndex = '13'; // 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} sizeStats Size statistics. Should be defined when showing the |
- * warning. |
- * @private |
- */ |
-FileListBannerController.prototype.showLowDriveSpaceWarning_ = |
- function(show, 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 (this.warningDismissedCounter_ == |
- sizeStats.totalSize && // Quota had not changed |
- sizeStats.remainingSize / 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) { |
- 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(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 = urlConstants.GOOGLE_DRIVE_BUY_STORAGE; |
- 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) { |
- window.localStorage[WARNING_DISMISSED_KEY] = total; |
- box.hidden = true; |
- this.requestRelayout_(100); |
- }.bind(this, 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.isOnDrive()) { |
- // 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_.getVolumeInfo(RootDirectory.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) { |
- chrome.fileBrowserPrivate.getSizeStats( |
- util.makeFilesystemUrl(this.directoryModel_.getCurrentRootPath()), |
- 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.isOnDrive() && 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. |
- */ |
-FileListBannerController.prototype.isOnDrive = function() { |
- return this.directoryModel_.getCurrentRootType() === RootType.DRIVE; |
-}; |
- |
-/** |
- * 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 root = PathUtil.getTopDirectory(event.newDirEntry.fullPath); |
- // Show (or hide) the low space warning. |
- this.maybeShowLowSpaceWarning_(root); |
- |
- // Add or remove listener to show low space warning, if necessary. |
- var isLowSpaceWarningTarget = this.isLowSpaceWarningTarget_(root); |
- var previousRoot = event.previousDirEntry ? |
- PathUtil.getTopDirectory(event.previousDirEntry.fullPath) : ''; |
- if (isLowSpaceWarningTarget !== this.isLowSpaceWarningTarget_(previousRoot)) { |
- if (isLowSpaceWarningTarget) { |
- chrome.fileBrowserPrivate.onDirectoryChanged.addListener( |
- this.privateOnDirectoryChangedBound_); |
- } else { |
- chrome.fileBrowserPrivate.onDirectoryChanged.removeListener( |
- this.privateOnDirectoryChangedBound_); |
- } |
- } |
- |
- if (!this.isOnDrive()) { |
- this.cleanupWelcomeBanner_(); |
- this.authFailedBanner_.hidden = true; |
- } |
- |
- this.updateDriveUnmountedPanel_(); |
- if (this.isOnDrive()) { |
- this.unmountedPanel_.classList.remove('retry-enabled'); |
- this.maybeShowAuthFailBanner_(); |
- } |
-}; |
- |
-/** |
- * @param {string} root Root directory 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(root) { |
- return (root == RootDirectory.DOWNLOADS || root == RootDirectory.DRIVE); |
-}; |
- |
-/** |
- * Callback which is invoked when the file system has been changed. |
- * @param {Object} event chrome.fileBrowserPrivate.onDirectoryChanged event. |
- * @private |
- */ |
-FileListBannerController.prototype.privateOnDirectoryChanged_ = function( |
- event) { |
- if (!this.directoryModel_.getCurrentDirEntry()) |
- return; |
- |
- var currentRoot = PathUtil.getTopDirectory( |
- this.directoryModel_.getCurrentDirPath()); |
- var eventRoot = PathUtil.getTopDirectory( |
- util.extractFilePath(event.directoryUrl)); |
- if (currentRoot == eventRoot) { |
- // The file system we are currently on is changed. |
- // So, check the free space. |
- this.maybeShowLowSpaceWarning_(eventRoot); |
- } |
-}; |
- |
-/** |
- * Shows or hides the low space warning. |
- * @param {string} root Root directory of the file system, which we are |
- * interested in. |
- * @private |
- */ |
-FileListBannerController.prototype.maybeShowLowSpaceWarning_ = function(root) { |
- // TODO(kaznacheev): Unify the two low space warning. |
- var threshold = 0; |
- if (root === RootDirectory.DOWNLOADS) { |
- this.showLowDriveSpaceWarning_(false); |
- threshold = 0.2; |
- } else if (root === RootDirectory.DRIVE) { |
- this.showLowDownloadsSpaceWarning_(false); |
- threshold = 0.1; |
- } else { |
- // If the current file system is neither the DOWNLOAD nor the DRIVE, |
- // just hide the warning. |
- this.showLowDownloadsSpaceWarning_(false); |
- this.showLowDriveSpaceWarning_(false); |
- return; |
- } |
- |
- var self = this; |
- chrome.fileBrowserPrivate.getSizeStats( |
- util.makeFilesystemUrl(root), |
- function(sizeStats) { |
- var currentRoot = PathUtil.getTopDirectory( |
- self.directoryModel_.getCurrentDirPath()); |
- if (root != currentRoot) { |
- // 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 (root == RootDirectory.DOWNLOADS) |
- self.showLowDownloadsSpaceWarning_(isLowDiskSpace); |
- else |
- self.showLowDriveSpaceWarning_(isLowDiskSpace, sizeStats); |
- }); |
-}; |
- |
-/** |
- * 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; |
- var link = box.querySelector('a'); |
- link.href = urlConstants.DOWNLOADS_FAQ_URL; |
- link.target = '_blank'; |
- } 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; |
- |
- 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 = urlConstants.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 === util.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.isOnDrive()) { |
- var driveVolume = this.volumeManager_.getVolumeInfo(RootDirectory.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 reasons = connection.reasons; |
- var showDriveNotReachedMessage = |
- this.isOnDrive() && |
- connection.type == util.DriveConnectionType.OFFLINE && |
- // Show the banner only when authentication fails. Don't show it when the |
- // drive service is disabled. |
- reasons.indexOf(util.DriveConnectionReason.NOT_READY) != -1 && |
- reasons.indexOf(util.DriveConnectionReason.NO_SERVICE) == -1; |
- this.authFailedBanner_.hidden = !showDriveNotReachedMessage; |
-}; |