diff options
Diffstat (limited to 'ext/js/pages')
| -rw-r--r-- | ext/js/pages/settings/storage-controller.js | 12 | 
1 files changed, 11 insertions, 1 deletions
| diff --git a/ext/js/pages/settings/storage-controller.js b/ext/js/pages/settings/storage-controller.js index 07f029f0..6be1fe24 100644 --- a/ext/js/pages/settings/storage-controller.js +++ b/ext/js/pages/settings/storage-controller.js @@ -39,6 +39,8 @@ export class StorageController {          /** @type {?NodeListOf<HTMLElement>} */          this._storageUseFiniteNodes = null;          /** @type {?NodeListOf<HTMLElement>} */ +        this._storageUseExhaustWarnNodes = null; +        /** @type {?NodeListOf<HTMLElement>} */          this._storageUseInfiniteNodes = null;          /** @type {?NodeListOf<HTMLElement>} */          this._storageUseValidNodes = null; @@ -51,6 +53,7 @@ export class StorageController {          this._storageUsageNodes = /** @type {NodeListOf<HTMLElement>} */ (document.querySelectorAll('.storage-usage'));          this._storageQuotaNodes = /** @type {NodeListOf<HTMLElement>} */ (document.querySelectorAll('.storage-quota'));          this._storageUseFiniteNodes = /** @type {NodeListOf<HTMLElement>} */ (document.querySelectorAll('.storage-use-finite')); +        this._storageUseExhaustWarnNodes = /** @type {NodeListOf<HTMLElement>} */ (document.querySelectorAll('.storage-exhaustion-alert'));          this._storageUseInfiniteNodes = /** @type {NodeListOf<HTMLElement>} */ (document.querySelectorAll('.storage-use-infinite'));          this._storageUseValidNodes = /** @type {NodeListOf<HTMLElement>} */ (document.querySelectorAll('.storage-use-valid'));          this._storageUseInvalidNodes = /** @type {NodeListOf<HTMLElement>} */ (document.querySelectorAll('.storage-use-invalid')); @@ -84,13 +87,19 @@ export class StorageController {              const estimate = await this._storageEstimate();              const valid = (estimate !== null); +            let storageIsLow = false;              // Firefox reports usage as 0 when persistent storage is enabled.              const finite = valid && ((typeof estimate.usage === 'number' && estimate.usage > 0) || !(await this._persistentStorageController.isStoragePeristent()));              if (finite) {                  let {usage, quota} = estimate; +                  if (typeof usage !== 'number') { usage = 0; } -                if (typeof quota !== 'number') { quota = 0; } +                if (typeof quota !== 'number') { +                    quota = 0; +                } else { +                    storageIsLow = quota <= (3 * 1000000000); +                }                  const usageString = this._bytesToLabeledString(usage);                  const quotaString = this._bytesToLabeledString(quota);                  for (const node of /** @type {NodeListOf<HTMLElement>} */ (this._storageUsageNodes)) { @@ -105,6 +114,7 @@ export class StorageController {              this._setElementsVisible(this._storageUseInfiniteNodes, valid && !finite);              this._setElementsVisible(this._storageUseValidNodes, valid);              this._setElementsVisible(this._storageUseInvalidNodes, !valid); +            this._setElementsVisible(this._storageUseExhaustWarnNodes, storageIsLow);          } finally {              this._isUpdating = false;          } |