HOME

TheInfoList



OR:

Gecko is a
browser engine A browser engine ( also known as a layout engine or rendering engine) is a core software component of every major web browser. The primary job of a browser engine is to transform HTML documents and other resources of a web page into an interacti ...
developed by
Mozilla Mozilla (stylized as moz://a) is a free software community founded in 1998 by members of Netscape. The Mozilla community uses, develops, spreads and supports Mozilla products, thereby promoting exclusively free software and open standards, ...
. It is used in the
Firefox Mozilla Firefox, or simply Firefox, is a free and open-source web browser developed by the Mozilla Foundation and its subsidiary, the Mozilla Corporation. It uses the Gecko rendering engine to display web pages, which implements current ...
browser, the
Thunderbird Thunderbird, thunder bird or thunderbirds may refer to: * Thunderbird (mythology), a legendary creature in certain North American indigenous peoples' history and culture * Ford Thunderbird, a car Birds * Dromornithidae, extinct flightless birds ...
email client An email client, email reader or, more formally, message user agent (MUA) or mail user agent is a computer program used to access and manage a user's email. A web application which provides message management, composition, and reception functio ...
, and many other projects. Gecko is designed to support
open Open or OPEN may refer to: Music * Open (band), Australian pop/rock band * The Open (band), English indie rock band * Open (Blues Image album), ''Open'' (Blues Image album), 1969 * Open (Gotthard album), ''Open'' (Gotthard album), 1999 * Open (C ...
Internet standards In computer network engineering, an Internet Standard is a normative specification of a technology or methodology applicable to the Internet. Internet Standards are created and published by the Internet Engineering Task Force (IETF). They allow ...
, and is used by different applications to display web pages and, in some cases, an application's
user interface In the industrial design field of human–computer interaction, a user interface (UI) is the space where interactions between humans and machines occur. The goal of this interaction is to allow effective operation and control of the machine f ...
itself (by rendering
XUL XUL ( ), which stands for XML User Interface Language, is a user interface markup language developed by Mozilla. XUL is an XML dialect for writing graphical user interfaces, enabling developers to write user interface elements in a manner sim ...
). Gecko offers a rich programming API that makes it suitable for a wide variety of roles in Internet-enabled applications, such as
web browsers A web browser is application software for accessing websites. When a user requests a web page from a particular website, the browser retrieves its files from a web server and then displays the page on the user's screen. Browsers are used on ...
, content presentation, and client/server. Gecko is written in
C++ C++ (pronounced "C plus plus") is a high-level general-purpose programming language created by Danish computer scientist Bjarne Stroustrup as an extension of the C programming language, or "C with Classes". The language has expanded significan ...
and
JavaScript JavaScript (), often abbreviated as JS, is a programming language that is one of the core technologies of the World Wide Web, alongside HTML and CSS. As of 2022, 98% of websites use JavaScript on the client side for webpage behavior, of ...
, and, since 2016, additionally in
Rust Rust is an iron oxide, a usually reddish-brown oxide formed by the reaction of iron and oxygen in the catalytic presence of water or air moisture. Rust consists of hydrous iron(III) oxides (Fe2O3·nH2O) and iron(III) oxide-hydroxide (FeO( ...
. It is
free and open-source software Free and open-source software (FOSS) is a term used to refer to groups of software consisting of both free software and open-source software where anyone is freely licensed to use, copy, study, and change the software in any way, and the source ...
subject to the terms of the
Mozilla Public License The Mozilla Public License (MPL) is a free and open-source weak copyleft license for most Mozilla Foundation software such as Firefox and Thunderbird The MPL license is developed and maintained by Mozilla, which seeks to balance the conce ...
version 2. Mozilla officially supports its use on Android,
Linux Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, whi ...
,
macOS macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac computers. Within the market of desktop and la ...
, and
Windows Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for se ...
.


History

Development of the layout engine now known as Gecko began at
Netscape Netscape Communications Corporation (originally Mosaic Communications Corporation) was an American independent computer services company with headquarters in Mountain View, California and then Dulles, Virginia. Its Netscape web browser was on ...
in 1997, following the company's purchase of
DigitalStyle DigitalStyle was a small privately held software company in Rancho Bernardo, San Diego, California. It was founded in 1995 by refugees from the failed software company Pages including Rick Gessner, Peter Linss, Greg Kostello, and James Hamerly. Ad ...
. The existing Netscape rendering engine, originally written for
Netscape Navigator Netscape Navigator was a web browser, and the original browser of the Netscape line, from versions 1 to 4.08, and 9.x. It was the flagship product of the Netscape Communications Corp and was the dominant web browser in terms of usage share in ...
1.0 and upgraded through the years, was slow, did not comply well with W3C standards, had limited support for
dynamic HTML Dynamic HTML, or DHTML, is a term which was used by some browser vendors to describe the combination of HTML, style sheets and client-side scripts (JavaScript, VBScript, or any other supported scripts) that enabled the creation of interactive ...
and lacked features such as incremental reflow (when the layout engine rearranges elements on the screen as new data is downloaded and added to the page). The new layout engine was developed in parallel with the old, with the intention being to integrate it into Netscape Communicator when it was mature and stable. At least one more major revision of Netscape was expected to be released with the old layout engine before the switch. After the launch of the Mozilla project in early 1998, the new layout engine code was released under an open-source license. Originally unveiled as ''Raptor'', the name had to be changed to ''NGLayout'' (next generation layout) due to
trademark A trademark (also written trade mark or trade-mark) is a type of intellectual property consisting of a recognizable sign, design, or expression that identifies products or services from a particular source and distinguishes them from ot ...
problems. Netscape later rebranded NGLayout as ''Gecko''. While
Mozilla Organization The Mozilla Foundation (stylized as moz://a) is an American non-profit organization that exists to support and collectively lead the open source Mozilla project. Founded in July 2003, the organization sets the policies that govern developmen ...
(the forerunner of the
Mozilla Foundation The Mozilla Foundation (stylized as moz://a) is an American non-profit organization that exists to support and collectively lead the open source Mozilla project. Founded in July 2003, the organization sets the policies that govern development, ...
) initially continued to use the NGLayout name (Gecko was a Netscape trademark), eventually the Gecko branding won out. In October 1998, Netscape announced that its next browser would use Gecko (which was still called NGLayout at the time) rather than the old layout engine, requiring large parts of the application to be rewritten. While this decision was popular with web standards advocates, it was largely unpopular with Netscape developers, who were unhappy with the six months given for the rewrite. It also meant that most of the work done for Netscape Communicator 5.0 (including development on the
Mariner A sailor, seaman, mariner, or seafarer is a person who works aboard a watercraft as part of its crew, and may work in any one of a number of different fields that are related to the operation and maintenance of a ship. The profession of the ...
improvements to the old layout engine) had to be abandoned. Netscape 6, the first Netscape release to incorporate Gecko, was released in November 2000 (the name Netscape 5 was never used). As Gecko development continued, other applications and embedders began to make use of it.
America Online AOL (stylized as Aol., formerly a company known as AOL Inc. and originally known as America Online) is an American web portal and online service provider based in New York City. It is a brand marketed by the current incarnation of Yahoo! Inc. ...
, by this time Netscape's parent company, eventually adopted it for use in
CompuServe CompuServe (CompuServe Information Service, also known by its initialism CIS) was an American online service provider, the first major commercial one in the world – described in 1994 as "the oldest of the Big Three information services (the oth ...
7.0 and AOL for Mac OS X (these products had previously embedded Internet Explorer). However, with the exception of a few
betas ''Betas'' is an American streaming television series that was produced by Amazon Studios. The show starred Joe Dinicol and Karan Soni as "dating app" developers in Silicon Valley who are looking for an investor. Amazon offered the first three e ...
, Gecko was never used in the main
Microsoft Windows Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for ...
AOL client. On July 15, 2003, AOL laid off the remaining Gecko developers and the Mozilla Foundation (formed on the same day) became the main steward of Gecko development. Today, Gecko is developed by employees of the
Mozilla Corporation The Mozilla Corporation (stylized as moz://a) is a wholly owned subsidiary of the Mozilla Foundation that coordinates and integrates the development of Internet-related applications such as the Firefox web browser, by a global community of ope ...
, employees of companies that contribute to the Mozilla project, and volunteers. In October 2016, Mozilla announced
Quantum In physics, a quantum (plural quanta) is the minimum amount of any physical entity ( physical property) involved in an interaction. The fundamental notion that a physical property can be "quantized" is referred to as "the hypothesis of quantizat ...
, an ongoing project encompassing several
software development Software development is the process of conceiving, specifying, designing, programming, documenting, testing, and bug fixing involved in creating and maintaining applications, frameworks, or other software components. Software development invo ...
efforts to "build the next-generation web engine for
Firefox Mozilla Firefox, or simply Firefox, is a free and open-source web browser developed by the Mozilla Foundation and its subsidiary, the Mozilla Corporation. It uses the Gecko rendering engine to display web pages, which implements current ...
users". It includes numerous improvements to Gecko, taken from the experimental
Servo Servo may refer to: Mechanisms * Servomechanism, or servo, a device used to provide control of a desired operation through the use of feedback ** AI servo, an autofocus mode ** Electrohydraulic servo valve, an electrically operated valve that c ...
project. Firefox 57, also known as "Firefox Quantum", first shipping in November 2017, is the initial version with major components from the Quantum/Servo projects enabled. These include increased performance in the
CSS Cascading Style Sheets (CSS) is a style sheet language used for describing the presentation of a document written in a markup language such as HTML or XML (including XML dialects such as SVG, MathML or XHTML). CSS is a cornerstone technolo ...
and
GPU A graphics processing unit (GPU) is a specialized electronic circuit designed to manipulate and alter memory to accelerate the creation of images in a frame buffer intended for output to a display device. GPUs are used in embedded systems, mobi ...
rendering components. Additional components will be merged from Servo to Gecko incrementally in future versions. In September 2018, Mozilla announced GeckoView, the foundation of Mozilla's next generation of mobile products based on a software library that makes Gecko reusable for Android, encompassing newer software development efforts to "decouple the engine itself from its user interface, and made it easy to embed in other applications". Firefox Focus 7.0, shipped in the same month, is the initial version introduced GeckoView, with increased performance in median page loading. Firefox Reality was also built with GeckoView. In June 2019, Mozilla announced Firefox Preview as an ongoing project that focuses on building an Android web browser with GeckoView. Firefox for Android 79, also known as "Firefox Daylight", first shipping in August 2020, is the first stable release of that with major components powered by GeckoView engine.


Standards support

From the outset, Gecko was designed to support open Internet standards. Some of the standards Gecko supports include: *
CSS Cascading Style Sheets (CSS) is a style sheet language used for describing the presentation of a document written in a markup language such as HTML or XML (including XML dialects such as SVG, MathML or XHTML). CSS is a cornerstone technolo ...
Level 3 * DOM *
HTML5 HTML5 is a markup language used for structuring and presenting content on the World Wide Web. It is the fifth and final major HTML version that is a World Wide Web Consortium (W3C) recommendation. The current specification is known as the HTML ...
*
JavaScript JavaScript (), often abbreviated as JS, is a programming language that is one of the core technologies of the World Wide Web, alongside HTML and CSS. As of 2022, 98% of websites use JavaScript on the client side for webpage behavior, of ...
(
ECMAScript ECMAScript (; ES) is a JavaScript standard intended to ensure the interoperability of web pages across different browsers. It is standardized by Ecma International in the documenECMA-262 ECMAScript is commonly used for client-side scripti ...
ES6 or superior, currently
ECMAScript ECMAScript (; ES) is a JavaScript standard intended to ensure the interoperability of web pages across different browsers. It is standardized by Ecma International in the documenECMA-262 ECMAScript is commonly used for client-side scripti ...
2021 ES12), implemented in
SpiderMonkey SpiderMonkey is the first JavaScript engine, written by Brendan Eich at Netscape Communications, later released as open source and currently maintained by the Mozilla Foundation. It is used in the Firefox web browser. History Eich "wrote ...
*
MathML Mathematical Markup Language (MathML) is a mathematical markup language, an application of XML for describing mathematical notations and capturing both its structure and content. It aims at integrating mathematical formulae into World Wide W ...
* RDF *
XForms XForms is an XML format used for collecting inputs from web forms. XForms was designed to be the next generation of HTML / XHTML forms, but is generic enough that it can also be used in a standalone manner or with presentation languages other th ...
(via an official extension) *
XHTML Extensible HyperText Markup Language (XHTML) is part of the family of XML markup languages. It mirrors or extends versions of the widely used HyperText Markup Language (HTML), the language in which Web pages are formulated. While HTML, prior ...
1.0 *
XML Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing arbitrary data. It defines a set of rules for encoding documents in a format that is both human-readable and machine-readable. T ...
1.0 *
XSLT XSLT (Extensible Stylesheet Language Transformations) is a language originally designed for transforming XML documents into other XML documents, or other formats such as HTML for web pages, plain text or XSL Formatting Objects, which may subseq ...
and
XPath XPath (XML Path Language) is an expression language designed to support the query or transformation of XML documents. It was defined by the World Wide Web Consortium (W3C) and can be used to compute values (e.g., strings, numbers, or Boolean v ...
, implemented in TransforMiiX Gecko also supports
SVG Scalable Vector Graphics (SVG) is an XML-based vector image format for defining two-dimensional graphics, having support for interactivity and animation. The SVG specification is an open standard developed by the World Wide Web Consortium s ...
.


Legacy IE non-standard support

In order to support web pages designed for legacy versions of Netscape and Internet Explorer, Gecko supports
DOCTYPE #REDIRECT Document type declaration {{redirect category shell, {{R move{{R from other capitalisation{{R up ...
switching. Documents with a modern DOCTYPE are rendered in standards compliance mode, which follows the W3C standards strictly. Documents that have no DOCTYPE or an older DOCTYPE are rendered in quirks mode, which emulates some of the non-standard oddities of
Netscape Communicator Netscape Communicator (or ''Netscape 4'') is a discontinued Internet suite produced by Netscape Communications Corporation, and was the fourth major release in the Netscape line of browsers. It was first in beta in 1996 and was released in June ...
4.x; however, some of the 4.x features (such as
layers Layer or layered may refer to: Arts, entertainment, and media * ''Layers'' (Kungs album) * ''Layers'' (Les McCann album) * ''Layers'' (Royce da 5'9" album) *"Layers", the title track of Royce da 5'9"'s sixth studio album * Layer, a female Maveri ...
) are not supported. Gecko also has limited support for some non-standard Internet Explorer features, such as the
marquee element The marquee tag is a non-standard HTML element which causes text to scroll up, down, left or right automatically. The tag was first introduced in early versions of Microsoft's Internet Explorer, and was compared to Netscape's blink element, as a p ...
and the document.all property (though pages explicitly testing for document.all will be told it is not supported).


Usage

Gecko is primarily used in
web browser A web browser is application software for accessing websites. When a user requests a web page from a particular website, the browser retrieves its files from a web server and then displays the page on the user's screen. Browsers are used o ...
s, the earliest being
Netscape 6 Netscape 6 is a discontinued Internet suite developed by Netscape Communications Corporation, and was the sixth major release of the Netscape series of browsers. It superseded Netscape Communicator (4.x), as the release of Netscape Communicato ...
and
Mozilla Suite The Mozilla Application Suite (originally known as Mozilla, marketed as the Mozilla Suite) is a discontinued cross-platform integrated Internet suite. Its development was initiated by Netscape Communications Corporation, before their acquisition ...
(later renamed
SeaMonkey SeaMonkey is a free and open-source Internet suite. It is the continuation of the former Mozilla Application Suite, based on the same source code, which itself grew out of Netscape Communicator and formed the base of Netscape 6 and Netscape ...
). It is also used in other Mozilla web browser derivatives such as
Firefox Mozilla Firefox, or simply Firefox, is a free and open-source web browser developed by the Mozilla Foundation and its subsidiary, the Mozilla Corporation. It uses the Gecko rendering engine to display web pages, which implements current ...
and Firefox for mobile and the implementation of the
Internet Explorer Internet Explorer (formerly Microsoft Internet Explorer and Windows Internet Explorer, commonly abbreviated IE or MSIE) is a series of graphical web browsers developed by Microsoft which was used in the Windows line of operating systems (in ...
-clone that is part of
Wine Wine is an alcoholic drink typically made from Fermentation in winemaking, fermented grapes. Yeast in winemaking, Yeast consumes the sugar in the grapes and converts it to ethanol and carbon dioxide, releasing heat in the process. Different ...
. Mozilla also uses it in their Thunderbird email-client. Other web browsers using Gecko include
GNU IceCat GNU IceCat, formerly known as GNU IceWeasel, is a completely free version of the Mozilla Firefox web browser distributed by the GNU Project. It is compatible with Linux, Windows, Android and macOS. IceCat is released as a part of GNUzilla, GNU ...
,
Waterfox Waterfox is an open-source web browser that is forked from Firefox and developed by System1. There are official Waterfox releases for Windows, macOS, and Linux. Divisions Waterfox Waterfox shares core features and technologies like the Gecko b ...
, K-Meleon, Lunascape, Portable Firefox,
Conkeror Conkeror is a Mozilla-based web browser designed to be navigated primarily by a computer keyboard. Its design is mainly patterned after the text editor GNU Emacs, with some influence from other programs, including vi. It was originally written ...
,
Classilla Classilla is a Gecko-based Internet suite for PowerPC-based classic Macintosh operating systems, essentially an updated descendant of the defunct Mozilla Application Suite by way of the Mac OS port maintained in the aborteWaMComproject. The name ...
, TenFourFox. Gecko is also used by
Sugar Sugar is the generic name for sweet-tasting, soluble carbohydrates, many of which are used in food. Simple sugars, also called monosaccharides, include glucose, fructose, and galactose. Compound sugars, also called disaccharides or do ...
for the
OLPC XO-1 The OLPC XO (formerly known as $100 Laptop, Children's Machine, 2B1) is a low cost laptop computer intended to be distributed to children in developing countries around the world, to provide them with access to knowledge, and opportunities to " ...
computer. Gecko is used as a complete implementation of the
XUL XUL ( ), which stands for XML User Interface Language, is a user interface markup language developed by Mozilla. XUL is an XML dialect for writing graphical user interfaces, enabling developers to write user interface elements in a manner sim ...
(
XML Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing arbitrary data. It defines a set of rules for encoding documents in a format that is both human-readable and machine-readable. T ...
User Interface Language). Gecko currently defines the XUL specification.


Past users

Products that formerly used Gecko include Pale Moon (now using
Goanna A goanna is any one of several species of lizards of the genus '' Varanus'' found in Australia and Southeast Asia. Around 70 species of ''Varanus'' are known, 25 of which are found in Australia. This varied group of carnivorous reptiles ranges ...
), Epiphany (now known as
GNOME Web GNOME Web, called Epiphany until 2012 and still known by that code name, is a free and open-source web browser based on the GTK port of Apple's WebKit rendering engine, called WebKitGTK. It is developed by the GNOME project for Unix-like sy ...
and using
WebKitGTK WebKit is a browser engine developed by Apple and primarily used in its Safari web browser, as well as on the iOS and iPadOS version of any web browser. WebKit is also used by the BlackBerry Browser, PlayStation consoles beginning from the PS3 ...
), and
GNOME DevHelp Devhelp is a GTK/GNOME browser for API documentation; it works natively with gtk-doc (which is the API reference format for GTK/GNOME documentation). It is integrated in GNOME development tools such as GNOME Builder, Glade and Anjuta, and is ...
(now using
WebKitGTK WebKit is a browser engine developed by Apple and primarily used in its Safari web browser, as well as on the iOS and iPadOS version of any web browser. WebKit is also used by the BlackBerry Browser, PlayStation consoles beginning from the PS3 ...
.) Discontinued products that used Gecko include
Swiftfox Swiftfox was a web browser based on Mozilla Firefox. It was available for Linux platforms and distributed by Jason Halme. Swiftfox was a set of builds of Firefox optimized for different Intel and AMD microprocessors. Swiftfox was freely downloa ...
, Flock, Galeon, Camino,
Minimo Minimo (from "Mini Mozilla") was a project to create a version of the Mozilla web browser for small devices like personal digital assistants and mobile phones. The project aimed to make it easier for developers to embed parts of Mozilla into sy ...
,
Beonex Communicator Beonex Communicator is a discontinued open-source Internet suite based on the Mozilla Application Suite (MAS) by Ben Bucksch, a German Mozilla developer. It was intended to have a higher security and privacy level than other commercial products ...
, Kazehakase,
Songbird A songbird is a bird belonging to the suborder Passeri of the perching birds (Passeriformes). Another name that is sometimes seen as the scientific or vernacular name is Oscines, from Latin ''oscen'', "songbird". The Passeriformes contains 5000 ...
, Sunbird (calendar),
MicroB MicroB was a mobile web browser developed by Nokia for use in smartphones and mobile devices that run the Maemo operating system. The browser is Mozilla-based and uses the Gecko layout engine. It is shipped with Nokia's N800, N810 and N900 I ...
,
Nightingale The common nightingale, rufous nightingale or simply nightingale (''Luscinia megarhynchos''), is a small passerine bird best known for its powerful and beautiful song. It was formerly classed as a member of the thrush family Turdidae, but is no ...
,
Instantbird Instantbird is a discontinued cross-platform instant messaging client based on Mozilla's XULRunner and the open-source library ''libpurple'' used in Pidgin. Instantbird is free software available under the GNU General Public License. Over 250 a ...
, and
Picasa Picasa was a cross-platform image organizer and image viewer for organizing and editing digital photos, integrated with a now defunct photo-sharing website, originally created by a company named Lifescape (which at that time was incubated by I ...
for Linux.


Proprietary dependency

On Windows and other platforms, Gecko depends on proprietary compilers. Thus,
FOSS Fos or FOSS may refer to: Companies * Foss A/S, a Danish analytical instrument company *Foss Brewery, a former brewery in Oslo, Norway * Foss Maritime, a tugboat and shipping company Historic houses * Foss House (New Brighton, Minnesota), Unite ...
distributions of
Linux Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, whi ...
cannot include the Gecko package used in the Windows compatibility layer
Wine Wine is an alcoholic drink typically made from Fermentation in winemaking, fermented grapes. Yeast in winemaking, Yeast consumes the sugar in the grapes and converts it to ethanol and carbon dioxide, releasing heat in the process. Different ...
. After Gecko 2.0, the version number was bumped to 5.0 to match Firefox 5, and from then on has been kept in sync with the major version number for both Firefox and Thunderbird, to reflect the fact that it is no longer a separate component.


Bloat

In the Netscape era, a combination of poor technical and management decisions resulted in Gecko
software bloat Software bloat is a process whereby successive versions of a computer program become perceptibly slower, use more memory, disk space or processing power, or have higher hardware requirements than the previous version, while making only dubious us ...
. Thus in 2001
Apple An apple is an edible fruit produced by an apple tree (''Malus domestica''). Apple trees are cultivated worldwide and are the most widely grown species in the genus '' Malus''. The tree originated in Central Asia, where its wild ancest ...
chose to fork
KHTML KHTML is a browser engine developed by the KDE project. It is the default engine of the Konqueror browser, but it has not been actively worked on since 2016. Moreover, KHTML will be discontinued for KDE Frameworks 6. Built on the KParts fra ...
, not Gecko, to create the
WebKit WebKit is a browser engine developed by Apple and primarily used in its Safari web browser, as well as on the iOS and iPadOS version of any web browser. WebKit is also used by the BlackBerry Browser, PlayStation consoles beginning from the ...
engine An engine or motor is a machine designed to convert one or more forms of energy into mechanical energy. Available energy sources include potential energy (e.g. energy of the Earth's gravitational field as exploited in hydroelectric power ...
for its
Safari A safari (; ) is an overland journey to observe wild animals, especially in eastern or southern Africa. The so-called "Big Five" game animals of Africa – lion, leopard, rhinoceros, elephant, and Cape buffalo – particularly form an impor ...
browser. However, by 2008 Mozilla had addressed some of the bloat problems, resulting in big performance improvements for Gecko.


Quantum

Quantum is a
Mozilla Mozilla (stylized as moz://a) is a free software community founded in 1998 by members of Netscape. The Mozilla community uses, develops, spreads and supports Mozilla products, thereby promoting exclusively free software and open standards, ...
project encompassing several
software development Software development is the process of conceiving, specifying, designing, programming, documenting, testing, and bug fixing involved in creating and maintaining applications, frameworks, or other software components. Software development invo ...
efforts to "build the next-generation web engine for
Firefox Mozilla Firefox, or simply Firefox, is a free and open-source web browser developed by the Mozilla Foundation and its subsidiary, the Mozilla Corporation. It uses the Gecko rendering engine to display web pages, which implements current ...
users". It includes numerous improvements to Gecko, largely incorporated from the experimental
Servo Servo may refer to: Mechanisms * Servomechanism, or servo, a device used to provide control of a desired operation through the use of feedback ** AI servo, an autofocus mode ** Electrohydraulic servo valve, an electrically operated valve that c ...
project. Quantum also includes refinements to the user interface and interactions. Firefox 57, released in November 2017, is the initial version with a Servo component enabled. Mozilla dubs this and several planned future releases "Firefox Quantum".


Background

In 2012, Mozilla began the experimental Servo project, which is an engine designed from scratch with the goals of improving concurrency and parallelism while also reducing memory safety vulnerabilities. Servo is written in the Rust programming language, also created by Mozilla, which is designed to generate
compiled In computing, a compiler is a computer program that translates computer code written in one programming language (the ''source'' language) into another language (the ''target'' language). The name "compiler" is primarily used for programs tha ...
code with better memory safety, concurrency, and parallelism than compiled C++ code. As of April 2016, Servo needed at least several years of development to become a full-featured browser engine, hence the decision to start the Quantum project to bring stable portions of Servo into Firefox. Mozilla laid off all Servo developers in August 2020.


Components

The Quantum project is composed of several sub-projects. * CSS:
Servo Servo may refer to: Mechanisms * Servomechanism, or servo, a device used to provide control of a desired operation through the use of feedback ** AI servo, an autofocus mode ** Electrohydraulic servo valve, an electrically operated valve that c ...
's parallel style sheet system integrated into Gecko. Benchmarks suggest that performance scales linearly with number of
CPU A central processing unit (CPU), also called a central processor, main processor or just processor, is the electronic circuitry that executes instructions comprising a computer program. The CPU performs basic arithmetic, logic, controlling, a ...
cores. This was released in Firefox 57. * Render: Servo's rendering architecture, called WebRender, integrated into Gecko. WebRender replaces the immediate mode drawing model with a
retained mode Retained mode in computer graphics is a major pattern of API design in graphics libraries, in which * the graphics library, instead of the client, retains the scene (complete object model of the rendering primitives) to be rendered and * the ...
model that is more easily accelerated by the
GPU A graphics processing unit (GPU) is a specialized electronic circuit designed to manipulate and alter memory to accelerate the creation of images in a frame buffer intended for output to a display device. GPUs are used in embedded systems, mobi ...
by taking advantage of CSS/DOM's similarity to a
scene graph Scene (from Greek σκηνή ''skēnḗ'') may refer to: Arts, entertainment, and media Music * Scene (subculture), a youth subculture from the early 2000s characterized by a distinct music and style. Groups and performers * The Scene who rec ...
. Worst-case scenario rendering in testing exceeds 60 frames per second. Mozilla began enabling the new renderer for select hardware/OS combinations in Firefox 67. * Compositor: Gecko's existing compositor moved to its own process, isolating browser tabs from graphics driver related crashes. Since compositor crashes will not bring down the browser content process, the compositor process can be restarted transparently without losing user data. This was released in Firefox 53. * DOM: Loosely inspired by Servo's Constellation architecture and
Opera Opera is a form of theatre in which music is a fundamental component and dramatic roles are taken by singers. Such a "work" (the literal translation of the Italian word "opera") is typically a collaboration between a composer and a libr ...
's Presto engine, Quantum DOM uses cooperatively scheduled threads within the DOM to increase responsiveness without increasing the number of processes and, thus, memory usage. The core of this shipped in Firefox 57. * Flow: An umbrella for user visible performance improvements driven by a team that works across Gecko components. Focused on real user performance improvements on major webapps, primarily G Suite (now called
Google Workspace Google Workspace (formerly known as Google Apps and later G Suite) is a collection of cloud computing, productivity and collaboration tools, software and products developed and marketed by Google. It consists of Gmail, Contacts, Calendar, Meet ...
) and
Facebook Facebook is an online social media and social networking service owned by American company Meta Platforms. Founded in 2004 by Mark Zuckerberg with fellow Harvard College students and roommates Eduardo Saverin, Andrew McCollum, Dust ...
. This work completed and shipped for Firefox 57. * Photon: A UI refresh of the entire application, with a strong focus on improving UI performance. Treated as a sister project to Quantum Flow. This was released in Firefox 57. * Network: Improve the performance of Necko, Gecko's networking layer, by moving more network activity off the main thread, context dependent prioritization of networking streams, and racing the cache layer with the network. This feature was released in Firefox 59.


Azure

The Mozilla Azure project is a stateless low-level graphics abstraction API used in
Firefox Mozilla Firefox, or simply Firefox, is a free and open-source web browser developed by the Mozilla Foundation and its subsidiary, the Mozilla Corporation. It uses the Gecko rendering engine to display web pages, which implements current ...
. The project has several objectives including more accurate Direct2D compatibility, optimized state interoperability, and improved control over performance characteristics and bugs. Azure will provide 2D hardware acceleration on top of 3D graphics backends. Firefox began using Azure instead of
Cairo Cairo ( ; ar, القاهرة, al-Qāhirah, ) is the capital of Egypt and its largest city, home to 10 million people. It is also part of the largest urban agglomeration in Africa, the Arab world and the Middle East: The Greater Cairo metr ...
in 2012. It is written in
C++ C++ (pronounced "C plus plus") is a high-level general-purpose programming language created by Danish computer scientist Bjarne Stroustrup as an extension of the C programming language, or "C with Classes". The language has expanded significan ...
and used by
Servo Servo may refer to: Mechanisms * Servomechanism, or servo, a device used to provide control of a desired operation through the use of feedback ** AI servo, an autofocus mode ** Electrohydraulic servo valve, an electrically operated valve that c ...
. The Azure name is an ode to the early Netscape founder
James H. Clark James Henry Clark (born March 23, 1944) is an American entrepreneur and computer scientist. He founded several notable Silicon Valley technology companies, including Silicon Graphics, Netscape, myCFO, and Healtheon. His research work in comput ...
and his earlier work at
Silicon Graphics Silicon Graphics, Inc. (stylized as SiliconGraphics before 1999, later rebranded SGI, historically known as Silicon Graphics Computer Systems or SGCS) was an American high-performance computing manufacturer, producing computer hardware and soft ...
where workstations were often named after colors.


References


External links


Gecko - MDN Web Docs

Gecko development wiki (wiki.mozilla.org)



Web Browser Standards Support

JRex
(
Java Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's mo ...
API for Gecko) {{DEFAULTSORT:Gecko (Layout Engine) Cross-platform software Free layout engines Free software programmed in C++ Mozilla Software that uses Cairo (graphics) Free software programmed in Rust