Gecko
Gecko ist die von Mozilla entwickelte Rendering‑Engine, die für das Darstellen und Interagieren mit Web‑Inhalten (HTML, CSS, XML, SVG, MathML) in Browsern und anderen Anwendungen verantwortlich ist. Sie ist das Kernmodul von Mozilla‑Firefox, dem Thunderbird‑E‑Mail‑Client und weiteren Projekten (z. B. SeaMonkey).
Technische Grundlagen
- Parsing: Analyse von HTML‑, CSS‑ und JavaScript‑Quellcode, Aufbau des Document Object Model (DOM) und des CSS‑Object‑Model (CSSOM).
- Layout‑Engine: Berechnung des Render‑Trees, Ermittlung von Box‑Modell‑Eigenschaften, Positionierung und Größe von Elementen.
- Rendering‑Pipeline: Rasterisierung der Layout‑Informationen in Bitmaps, Nutzung von Skia‑ oder Cairo‑Grafikbibliotheken, Unterstützung von Hardware‑Beschleunigung (GPU‑Kompositing) seit Gecko 30 (Firefox Quantum).
- JavaScript‑Engine: Integrierte SpiderMonkey‑Engine, die JavaScript‑Code kompiliert, ausführt und den DOM/CSSOM aktualisiert.
- Kompatibilität: Implementiert Web‑Standards gemäß W3C‑Spezifikationen (HTML5, CSS 3, DOM‑Level‑3, WebGL, WebAssembly).
Architektur‑Komponenten
- Parser: Zerlegt Quelltexte in Token‑Ströme.
- Tree Builder: Erstellt das DOM‑Baum‑Gerüst.
- Style System: Berechnet CSS‑Selektoren, ermittelt angewandte Stile und erzeugt das CSSOM.
- Layout Engine (Gecko Layout): Kombiniert DOM‑ und CSSOM zu einem Render‑Tree, bestimmt Position und Größe.
- Paint System: Zeichnet jeden Render‑Node auf einen Bitmap‑Layer.
- Compositor: Verbindet mehrere Layer (z. B. Videos, Canvas) zu einem finalen Bild, wobei GPU‑Beschleunigung eingesetzt wird.
Entwicklungs‑ und Lizenzierung
- Open‑Source: Der Quellcode steht unter der Mozilla Public License 2.0 (MPL‑2.0).
- Plattform‑unabhängig: Läuft auf Windows, macOS, Linux, Android (Fenix‑Browser) und anderen Betriebssystemen.
- Erweiterbarkeit: Unterstützt XUL‑ und WebExtension‑Add‑ons, die die Engine über APIs (DOM, CSS, Netzwerk) erweitern können.
Historische Meilensteine
- 1997: Erstveröffentlichung von Gecko 1.0 als Teil des Mozilla 1.0‑Browsers.
- 2015: Einführung von Quantum (Gecko 30) – Multithread‑Layout, Parallel‑CSS‑Parsing und GPU‑Compositing.
- 2020‑heute: Kontinuierliche Optimierungen für Web‑Performance, Web‑GPU‑Support, geringeren Speicherverbrauch und verbesserte Sicherheit (Content‑Security‑Policy, SameSite‑Cookies).
Vergleich zu anderen Engines
Einsatz über den Browser hinaus
- Embedded‑Browser‑Komponenten: GeckoView (Android), XULRunner (veraltete Plattform für Desktop‑Anwendungen).
- Automatisierung & Testing: Selenium‑WebDriver kann mit GeckoDriver (Firefox‑Driver) gesteuert werden.

