mozilla/gecko-dev
Update system
Firefox's auto-update system downloads, verifies, and applies binary patches. The C++ updater process lives in toolkit/mozapps/update/; the patch format / metadata server contract is shared with the AUS (Application Update Service).
Components
toolkit/mozapps/update/
├── updater/ # C++ binary that applies the patch (own process)
├── common/ # Shared C++ code
├── UpdateService.sys.mjs # Front-end: schedules checks, fetches MAR, signals updater
├── UpdateLog.sys.mjs # Logging
├── tests/
└── docs/Plus:
toolkit/mozapps/update/updater/— the standalone updater binary.other-licenses/bsdiff/— the bsdiff-derived patch algorithm.
How an update happens
UpdateServiceperiodically checksaus5.mozilla.org(the production AUS) with the user's current version, build ID, channel, and OS.- AUS responds with a MAR (Mozilla ARchive) URL and a signature.
- Firefox downloads the MAR (background, low priority).
- After download, the updater process is spawned at the next quit/restart.
- The updater:
- Verifies the MAR signature against bundled certificates.
- Applies the patch (file replace + bsdiff partials).
- Restarts Firefox.
Channels
Firefox release channels are defined in defaults/pref/channel-prefs.js style files inside each app:
nightly— daily builds.beta— pre-release.release— production.esr— Extended Support Release.
Related
Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.