Spokes.wiki Search About
Software Application source ↗ source url updated Sun Aug 09 2026 00:00:00 GMT+0000 (Coordinated Universal Time)

Gecko

Mozilla’s rendering engine, and the reason Firefox is the one mainstream browser this spoke tracks that is not Chromium underneath. Mozilla’s own platform documentation defines it broadly: “Gecko is Mozilla’s rendering engine for the web. It is made up of HTML parsing and rendering, networking, JavaScript, IPC, DOM, OS widget abstractions and much much more.” It powers Firefox on desktop and Android, Thunderbird, and the rest of the Mozilla platform — including downstream builds like zen.

Tier: T1 — first-party engineering documentation from the vendor, describing its own architecture. Used here for what Gecko is; not for market or performance claims.

The pipeline

The docs lay the engine out as a chain, each stage handing structure to the next:

  • DOM + WebIDL — the DOM implements page behaviour; WebIDL declares the interfaces, which are callable from both C++ and JavaScript. The same interface machinery serves web content and Firefox’s own internals.
  • Style system — “responsible for parsing the document’s CSS and using that to resolve a value for every CSS property on every element in the document.” This is the component that shipped as Stylo, which is also what kitesurf borrows for its Workers engine.
  • Layout — turns the styled DOM into a frame tree ready to present.
  • Graphics — draws the frame tree to the screen.

SpiderMonkey is the JavaScript engine, and it runs two quite different workloads: page scripts in content processes, and “the JavaScript code that makes up the bulk of the UI in applications like Firefox and Thunderbird.” Firefox’s interface is itself a JS application on top of the engine.

Process separation

Firefox splits content across processes for security. Fission (2021) took that further into site isolation: “each content process only loads and executes instructions from a single site,” which is the structural answer to Spectre and Meltdown — a page cannot speculatively read what was never mapped into its process. Processes talk asynchronously through IPDL and JSActors.

Why it matters here

The spoke argues about engine diversity constantly, and its examples are the small end: ladybird building from scratch, Falco as a one-person Rust engine, kitesurf as an assembly funded by infrastructure economics. Gecko is the other case — an independent engine that already ships to hundreds of millions of people and has done for two decades. What it does not have is share: 3.34% worldwide in July 2026. Engine diversity survives in Firefox on merit that users are not choosing.