unlimitedStorage

The unlimitedStorage permission allows an extension to exceed the default storage quotas imposed by the browser.

What it does

  • By default, extensions using chrome.storage.local have a quota of 10 MB (raised from 5 MB in Chrome 114). The storage.sync quota is much smaller (~100 KB total / 8 KB per item).
  • Requesting unlimitedStorage exempts the extension from the storage.local quota and removes the per-origin cap on standard web storage APIs (IndexedDB, Cache Storage, OPFS), letting the extension use as much disk space as is available on the user's machine.
  • Important: This permission does not affect the chrome.storage.sync quota, which remains limited to ensure performance across devices.

When to use it

You should only request this permission if your extension has a clear and justifiable need to store large amounts of data locally.

Examples:

  • A note-taking application that stores large amounts of text and embedded media locally.
  • A caching extension that saves website data for offline access.
  • An extension that processes large user-provided files (e.g., video or audio) in the browser.
  • A developer tool that saves large session logs for later analysis.

Manifest Declaration

This permission triggers a warning on installation.

{
  "name": "My Large Storage Extension",
  "version": "1.0",
  "manifest_version": 3,
  "permissions": [
    "storage",
    "unlimitedStorage"
  ]
}

Security & Privacy

Why is it low risk?

Normally, extensions are only allowed to save a limited amount of data (10 MB by default). This permission lets an extension save much more. It's useful for extensions that need to work offline or store large files.

The risk is low because the extension is only allowed to use empty space on your computer; it cannot read or delete your personal files. The main risk is that a poorly made or malicious extension could fill up your hard drive with junk data, which could slow down your computer.

API Usage Example

There is no special API to use this permission. Once it is granted in the manifest, the existing storage APIs (like chrome.storage.local or IndexedDB) will simply not throw a "QUOTA_EXCEEDED_ERR" error when they would have otherwise.

You use the storage API as you normally would:

// background.js

// This function attempts to store a large amount of data (e.g., 10MB).
// Without 'unlimitedStorage', this would likely fail.
function storeLargeData() {
  const largeString = 'a'.repeat(10 * 1024 * 1024); // 10MB string

  chrome.storage.local.set({ largeData: largeString }, () => {
    if (chrome.runtime.lastError) {
      console.error('Failed to save data:', chrome.runtime.lastError.message);
    } else {
      console.log('Successfully saved 10MB of data.');
    }
  });
}

storeLargeData();

Extensions with the unlimitedStorage permission

Here are some popular browser extensions that use the "unlimitedStorage" permission. To explore more, try our Advanced search.

Permission Metrics

Popularity

Security Risk


Usage by Platform