storage

Enables WebExtensions to store and retrieve data, and listen for changes to stored items.

The storage system is based on the Web Storage API, with a few differences.

To use this API you need to include the "storage" permission in your manifest.json file. Each WebExtension has its own storage area, which can be split into different types of storage.

Types

storage.StorageArea
An object representing a storage area.
storage.StorageChange
An object representing a change to a storage area.

Properties

storage has three properties, which represent the different types of available storage area.

storage.sync
Represents the sync storage area. Items in sync storage are synced by the browser, and are available across all instances of that browser that the user is logged into, across different devices.
storage.local
Represents the local storage area. Items in local storage are local to the machine the extension was installed on.
storage.managed
Represents the managed storage area. Items in managed storage are set by the domain administrator and are read-only for the extension. Trying to modify this namespace results in an error.

Events

storage.onChanged
Fired when one or more items change in a storage area.

Browser compatibility

EdgeFirefoxChromeOpera
StorageArea?45.0Yes33
StorageArea.clear?45.0Yes33
StorageArea.get?45.0Yes33
StorageArea.getBytesInUse?45.0Yes33
StorageArea.remove?45.0Yes33
StorageArea.set?45.0Yes33
StorageChange?45.0Yes33
local?45.0Yes33
managed?NoYesNo
onChanged?45.0Yes33
sync?NoYesNo
Firefox
StorageArea48.0
StorageArea.clear48.0
StorageArea.get48.0
StorageArea.getBytesInUse48.0
StorageArea.remove48.0
StorageArea.set48.0
StorageChange48.0
local48.0
managedNo
onChanged48.0
syncNo

Chrome incompatibilities

  • Firefox does not support:
    • managed storage area
    • sync storage area
    • getBytesInUse().
  • The storage API is not supported in content scripts.

Example add-ons

Acknowledgements

This API is based on Chromium's chrome.storage API. This documentation is derived from storage.json in the Chromium code.

Document Tags and Contributors

 Contributors to this page: wbamberg, chrisdavidmills
 Last updated by: wbamberg,