Open-Source Wikis

/

Gecko

/

Firefox / Gecko overview

/

Glossary

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-dev repo 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 for Fission in 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>. See python/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 to moz.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.yaml file 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 by dom/bindings/.
  • IPDL — Inter-process Protocol Definition Language: the IDL for Mozilla's IPC. Files end in .ipdl. Lives in ipc/ipdl/.
  • IDL — Generic; usually means XPIDL in Gecko docs.
  • nsISomething — Convention for XPCOM interface names (nsI prefix). The ns is a vestige of "Netscape".
  • MOZ_CAN_RUN_SCRIPT — Static analysis annotation marking functions that may invoke JS.

DOM and layout

  • PresShellPresShell (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.
  • DocumentnsIDocument / mozilla::dom::Document. The root of the DOM.
  • WindownsGlobalWindowInner / nsGlobalWindowOuter. The JS global. Outer window survives navigations; inner is replaced.
  • DocShellnsDocShell. 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.
  • ChannelnsIChannel. 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 the neqo crate 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.

Glossary – Gecko wiki | Factory