Skip to content

Manifest V3

Ng Guoyou edited this page Jul 10, 2026 · 14 revisions

Save in 4.0.0 is a Manifest V3 extension on both Firefox and Chrome, from a single manifest.json.

Requirements

  • Firefox 121+ — runs the background as an event page (background.scripts).
  • Chrome / Edge 121+ — runs the background as a service worker (background.service_worker).

Older browsers are not supported. If downloads stop working after an update, check your browser version first.

What changed

  • One MV3 manifest serves both browsers; each ignores the other's background key.
  • The background is non-persistent on both — it sleeps when idle and wakes on events. In-flight downloads, the pending counter, and the recovery filename are persisted to session storage so a mid-download restart still fires notifications and keeps the routed name.
  • Feature detection, not browser sniffing, picks each mechanism:
Feature Firefox (event page) Chrome (service worker)
Referer header blocking webRequest declarativeNetRequest session rule
Blob downloads URL.createObjectURL base64 data: URL fallback

User-visible notes

  • Nothing to reconfigure — settings and menus carry over.
  • The Referer feature uses different engine internals per browser but the same option and site whitelist.
  • Very large downloads via the Fetch API fallback are held in memory on Chrome (no createObjectURL in a service worker); prefer it only for sites that need it.

Contributing

The MV3 rules (synchronous listener registration, no window/DOM in the worker, keeping the two background file lists in sync) are documented in AGENTS.md.

Clone this wiki locally