mozilla/gecko-dev
WebExtensions
WebExtensions is the cross-browser extension API (originally Chrome's; now W3C-tracked). Firefox's runtime lives in toolkit/components/extensions/, with browser-specific glue in browser/components/extensions/ and mobile/android/ for Android.
Components
toolkit/components/extensions/
├── Extension.sys.mjs
├── ExtensionAPIs.jsm / *.sys.mjs
├── parent/ # Parent-process API implementations
├── child/ # Content-process API implementations
├── schemas/ # JSON-schema describing every API
├── webrequest/ # WebRequest API
├── storage/ # Extension storage (sync + local)
├── test/
└── ...Architecture
graph LR
XPI[.xpi extension package] --> Extension[Extension.sys.mjs]
Extension --> Sandbox[Background page<br/>(extension content process)]
Sandbox --> ExtAPI["browser.* APIs"]
ExtAPI -->|RPC| ParentAPI[Parent-side implementation]
ParentAPI --> Browser[browser.tabs / .windows / .storage / ...]
Sandbox --> ContentScript[Content script<br/>per-page injection]Extensions run in a special extension process (separate from web content processes) for isolation.
Schemas
Every API has a JSON schema under toolkit/components/extensions/schemas/ (e.g., tabs.json, webRequest.json). The runtime auto-generates browser.* namespaces from the schemas, type-checks calls, and dispatches to parent-side handlers.
Built-in extensions
The browser ships several built-in WebExtensions:
browser/extensions/formautofill/— form autofill (addresses, credit cards).browser/extensions/webcompat/— site-specific compat shims.browser/extensions/screenshots/— Firefox Screenshots.browser/extensions/proxy-failover/— proxy fallback.
Manifest V2 vs V3
Firefox supports both Manifest V2 and V3 with feature parity gradually closing. See toolkit/components/extensions/Schemas.jsm and the manifest docs.
Related
Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.