Open-Source Wikis

/

Gecko

/

Features

/

Update system

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:

How an update happens

  1. UpdateService periodically checks aus5.mozilla.org (the production AUS) with the user's current version, build ID, channel, and OS.
  2. AUS responds with a MAR (Mozilla ARchive) URL and a signature.
  3. Firefox downloads the MAR (background, low priority).
  4. After download, the updater process is spawned at the next quit/restart.
  5. 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.

Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.

Update system – Gecko wiki | Factory