StorageManager.estimate()

Secure context
This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

The estimate() method of the StorageManager interface asks the Storage Manager for how much storage the current origin takes up (usage), and how much space is available (quota).

This method operates asynchronously, so it returns a Promise which resolves once the information is available. The promise's fulfillment handler is called with a StorageEstimate containing the usage and quota data.

Syntax

const estimatePromise = StorageManager.estimate();

Parameters

None.

Return value

A Promise that resolves to an object which conforms to the StorageEstimate dictionary. This dictionary contains estimates of how much space is available to the origin in StorageEstimate.quota, as well as how much is currently used in StorageEstimate.usage.

The returned values are not exact; between compression, deduplication, and obfuscation for security reasons, they will be imprecise.

You may find that the quota varies from origin to origin. This variance is based on factors such as:

  • How often the user visits
  • Public site popularity data
  • User engagement signals like bookmarking, adding to homescreen, or accepting push notifications

Example

In this example, we obtain the usage estimates and present the percentage of storage capacity currently used to the user.

HTML content

<label>
  You’re currently using about <output id="percent">
  </output>% of your available storage.
</label>

JavaScript content

navigator.storage.estimate().then(function(estimate) {
  document.getElementById("percent").value =
      (estimate.usage / estimate.quota * 100).toFixed(2);
});

Result

Specifications

Specification Status Comment
Storage
The definition of 'estimate()' in that specification.
Living Standard Initial definition.

Browser compatibility

DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung Internet
estimateChrome Full support 52Edge Full support ≀79Firefox Full support 51IE ? Opera Full support YesSafari ? WebView Android Full support 52Chrome Android Full support 52Firefox Android Full support 51Opera Android Full support YesSafari iOS ? Samsung Internet Android Full support 6.0

Legend

Full support
Full support
Compatibility unknown
Compatibility unknown

See also