mozilla/gecko-dev
Glossary
Mozilla has its own vocabulary, much of it predating the modern Web. Acronyms and old names are everywhere; this page collects the ones a new contributor will encounter immediately.
Core terms
- mozilla-central / m-c — The main development branch. This
gecko-devrepo mirrors it. - Gecko — The rendering engine: HTML/CSS parsing, layout, graphics, DOM. Lives in
dom/,layout/,gfx/,image/,parser/. - SpiderMonkey — Mozilla's JavaScript engine. Lives in
js/src/. - Servo — A separate Rust-based browser engine project. Pieces of Servo (notably the Stylo CSS engine) are vendored into Gecko under
servo/. - Stylo — The Rust style engine; the bridge between Servo's style code and Gecko layout. Source:
servo/components/style/. - WebRender / WR — The Rust-based GPU compositor.
gfx/wr/. - Quantum — Marketing/engineering name (circa 2017) for the migration to Stylo + WebRender + multi-process. Still appears in code comments.
- Fission — Site isolation: each origin gets its own content process. See
dom/ipc/,docshell/, and search forFissionin source. - GeckoView — The embeddable Gecko library used by Firefox for Android. Lives in
mobile/android/geckoview/. - Fenix — Codename for Firefox for Android (the modern app), built on GeckoView. Lives in
mobile/android/fenix/.
Build and tooling
- mach — The unified developer command-line driver.
./mach <command>. Seepython/mach/. - moz.build — Python-syntax build manifests scattered across the tree. Read by mozbuild to generate Makefiles.
- moz.configure — The configure-time logic, replacing
configure.in. Lives next tomoz.build. - mozbuild — The Python build engine in
python/mozbuild/. - TaskCluster / TC — Mozilla's CI system. The
taskcluster/directory generates the task graph. - try — A separate branch where developers push experimental builds to TaskCluster before landing.
- CLOBBER — The top-level CLOBBER file. Touch to force a rebuild from scratch.
- Phabricator + Lando — Mozilla's code review (Phabricator) and landing automation (Lando). Replaces what GitHub PRs are elsewhere.
- Bugzilla — The issue tracker at bugzilla.mozilla.org. Patch commit messages always begin with
Bug NNNNNN. - mots — Module ownership tool. The
mots.yamlfile lists module peers and owners.
Component framework
- XPCOM — Cross-Platform Component Object Model. The C++ component framework Gecko was originally built on. Defined in
xpcom/. - XPConnect — Bridges XPCOM and JavaScript.
js/xpconnect/. - XPIDL — IDL dialect for XPCOM interfaces. Files end in
.idl. - WebIDL — The W3C standard IDL used for modern Web APIs. Files end in
.webidl. Code generated bydom/bindings/. - IPDL — Inter-process Protocol Definition Language: the IDL for Mozilla's IPC. Files end in
.ipdl. Lives inipc/ipdl/. - IDL — Generic; usually means XPIDL in Gecko docs.
- nsISomething — Convention for XPCOM interface names (
nsIprefix). Thensis a vestige of "Netscape". - MOZ_CAN_RUN_SCRIPT — Static analysis annotation marking functions that may invoke JS.
DOM and layout
- PresShell —
PresShell(presentation shell). Owns layout state for one document.layout/base/PresShell.cpp. - Reflow — Gecko's term for the layout phase that computes positions and sizes.
- Frame — Gecko's name for what other engines call a "render box" or "layout object". Defined in
layout/generic/nsIFrame.h. - Frame tree — The result of layout, parallel to the DOM tree.
- Document —
nsIDocument/mozilla::dom::Document. The root of the DOM. - Window —
nsGlobalWindowInner/nsGlobalWindowOuter. The JS global. Outer window survives navigations; inner is replaced. - DocShell —
nsDocShell. Owns navigation, session history, and the document loading pipeline.docshell/base/. - BrowsingContext — Modern abstraction for a browsing context (tab/iframe/popup).
docshell/base/BrowsingContext.cpp. - WindowGlobalParent / WindowGlobalChild — Per-document IPC actors.
- JSActor — Lightweight scriptable IPC actor pattern.
dom/ipc/JSActor.cpp.
Networking
- necko — Old internal name for
netwerk/. Still appears in comments. - Channel —
nsIChannel. The basic abstraction for a single network request. - NSS — Network Security Services: Mozilla's TLS / X.509 / crypto library.
security/nss/(vendored). - PSM — Personal Security Manager: the Gecko-side glue around NSS.
security/manager/. - Necko — see
netwerk/. - Neqo — Mozilla's pure-Rust QUIC stack.
netwerk/socket/neqo_glue/and theneqocrate in third_party.
JS engine
- JSObject / JSContext / JS::Realm / JS::Compartment — SpiderMonkey core types.
js/public/. - Ion / Warp / Baseline / CacheIR — Names of SpiderMonkey JIT tiers and the IC system.
js/src/jit/. - Wrappers — Cross-realm/cross-compartment proxies.
js/src/proxy/.
Process model
- e10s — "Electrolysis": the multi-process project. Now just "the process model".
- Content process / parent process — Web content runs in the content process; UI and privileged code run in the parent.
- GPU process / RDD process / Socket process / Utility process — Specialized child processes.
- Sandbox — The OS-level confinement applied to child processes.
security/sandbox/.
Test harnesses
- Mochitest — Chrome-privileged in-browser JS tests.
testing/mochitest/. - xpcshell — A headless JS shell for testing non-DOM code.
js/xpconnect/src/xpcshell.cpp,testing/xpcshell/. - Reftest / Crashtest — Layout pixel and crash regression tests.
layout/tools/reftest/. - gtest — Google Test for C++ unit tests.
testing/gtest/. - Marionette — WebDriver-style automation, predates the W3C standard.
testing/marionette/. - Geckodriver — The W3C WebDriver server for Firefox.
testing/geckodriver/. - Talos / Raptor — Performance test harnesses.
testing/talos/,testing/raptor/. - WPT — web-platform-tests, the cross-browser standards test suite.
testing/web-platform/. - AWSY — "Are We Slim Yet": memory regression test.
testing/awsy/. - Try — The try server (see Build/Tooling).
Other
- a11y — Accessibility.
accessible/. - NSPR — Netscape Portable Runtime: an OS abstraction layer predating C++11.
nsprpub/. - mfbt — "Mozilla Framework-Based Templates". The C++ utility headers,
mfbt/. - mozglue — Early-startup glue and platform shims.
mozglue/. - Glean — The next-generation telemetry SDK (originated for mobile, now everywhere).
toolkit/components/glean/. - Necko, Neqo, Nspr — pronounced "necko", "neck-o", "nspr". Yes, naming is overloaded.
Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.