HOME

TheInfoList




Gecko is a
browser engine A browser engine (also known as A pseudonym () or alias () (originally: ψευδώνυμος in Greek) is a fictitious name that a person or group assumes for a particular purpose, which differs from their original or true name (orthonym). This a ...
developed by
Mozilla Mozilla (stylized as moz://a) is a free software Free software (or libre software) is computer software distributed under terms that allow users to run the software for any purpose as well as to study, change, and distribute it and any a ...

Mozilla
. It is used in the
Firefox Mozilla Firefox or simply Firefox is a free and open-source Free and open-source software (FOSS) is software that is both free software and open-source software where anyone is free software license, freely licensed to use, copy, study, ...

Firefox
browser, the
Thunderbird Thunderbird or Thunderbirds may refer to: * Thunderbird (mythology), a legendary creature in certain North American indigenous peoples' history and culture Arts, entertainment and media Fictional characters * Thunderbird (John Proudstar), a Marvel ...
email client An email client, email reader or, more formally, message user agent (MUA) or mail user agent is a computer program In imperative programming, a computer program is a sequence of instructions in a programming language that a computer can execut ...
, and many other projects. Gecko is designed to support
open Open or OPEN may refer to: Music * Open (band) Open is a band. Background Drummer Pete Neville has been involved in the Sydney/Australian music scene for a number of years. He has recently completed a Masters in screen music at the Australia ...
Internet standards An Internet Standard in computer network engineering refers to the normative specification of a technology that is appropriate for the Internet. Internet Standards allow interoperation of hardware and software from different sources which allows t ...
, and is used by different applications to display
web page A web page (or webpage) is a hypertext Hypertext is text displayed on a or other with references () to other text that the reader can immediately access. Hypertext documents are interconnected by hyperlinks, which are typically acti ...

web page
s and, in some cases, an application's
user interface In the industrial design Industrial design is a process of design A design is a plan or specification for the construction of an object or system or for the implementation of an activity or process, or the result of that plan or specificati ...
itself (by rendering
XUL XUL ( ), which stands for XML User Interface Language, is a user interface markup language A user interface markup language is a markup language In computer text processing, a markup language is a system for annotation, annotating a document i ...
). Gecko offers a rich programming
API In computing Computing is any goal-oriented activity requiring, benefiting from, or creating computing machinery. It includes the study and experimentation of algorithmic processes and development of both computer hardware , hardware and so ...
that makes it suitable for a wide variety of roles in Internet-enabled applications, such as
web browsers A web browser (commonly referred to as a browser) is application software Application software (app for short) is computing software designed to carry out a specific task other than one relating to the operation of the computer itself, typical ...
, content presentation, and client/server. Gecko is written in
C++ C++ () is a general-purpose programming language In computer software, a general-purpose programming language is a programming language dedicated to a general-purpose, designed to be used for writing software in a wide variety of application ...

C++
and
JavaScript JavaScript (), often abbreviated JS, is a programming language A programming language is a formal language In mathematics Mathematics (from Ancient Greek, Greek: ) includes the study of such topics as quantity (number theory), ma ...

JavaScript
, 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 ferric oxides, hydrous iron(III) oxides (Fe2O3·nH2O) and iron(III) oxi ...
. It is
free and open-source software Free and open-source software (FOSS) is software Software is a collection of Instruction (computer science), instructions that tell a computer how to work. This is in contrast to Computer hardware, hardware, from which the system is built ...
subject to the terms of the
Mozilla Public License The Mozilla Public License (MPL) is a free and open-source software Free and open-source software (FOSS) is software Software is a collection of Instruction (computer science), instructions that tell a computer how to work. This is i ...
version 2. Mozilla officially supports its use on
Android Android may refer to: Science and technology * Android (robot), a humanoid robot or synthetic organism designed to imitate a human * Android (operating system), Google's mobile operating system ** Android (operating system)#Mascot, Unnamed Androi ...

Android
,
Linux Linux ( or ) is a family of open-source Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product ...

Linux
,
macOS macOS (; previously Mac OS X and later OS X) is a proprietary {{Short pages monitor used in the Windows compatibility layer
Wine Wine is an alcoholic drink An alcoholic drink is a drink A drink (or beverage) is a liquid A liquid is a nearly incompressible fluid In physics, a fluid is a substance that continually Deformation (mechanics), deforms (flow ...
. 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 In imperative programming, a computer program is a sequence of instructions in a programming language that a computer can execute or interpret. In declarative programm ...
. Thus in 2001
Apple An apple is an edible fruit In botany Botany, also called , plant biology or phytology, is the science of plant life and a branch of biology. A botanist, plant scientist or phytologist is a scientist who specialises in this fie ...
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 framewor ...
, not Gecko, to create the
WebKit #REDIRECT WebKit#REDIRECT WebKit WebKit is a browser engine developed by Apple Inc., Apple and primarily used in its Safari (web browser), Safari web browser, as well as all iOS web browsers. WebKit is also used by the BlackBerry Browser, PlaySta ...
engine An engine or motor is a machine A machine is any physical system with ordered structural and functional properties. It may represent human-made or naturally occurring device molecular machine that uses Power (physics), power to apply For ...
for its
Safari A safari (; ) is an overland journey to hunt Hunting is the practice of seeking, pursuing and capturing or killing wildlife Wildlife traditionally refers to undomesticated animal species (biology), species, but has come to inclu ...
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 Free software (or libre software) is computer software distributed under terms that allow users to run the software for any purpose as well as to study, change, and distribute it and any a ...

Mozilla
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 Application may refer to: Mathematics and computing * Application ...
efforts to "build the next-generation web engine for
Firefox Mozilla Firefox or simply Firefox is a free and open-source Free and open-source software (FOSS) is software that is both free software and open-source software where anyone is free software license, freely licensed to use, copy, study, ...

Firefox
users". It includes numerous improvements to Gecko, largely incorporated from the experimental
Servo Servo may refer to: Mechanisms * Servomechanism In control engineering Control engineering or control systems engineering is an engineering discipline that applies control theory to design equipment and systems with desired behaviors in Cont ...
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 Memory safety is the state of being protected from various software bugs A software bug is an error, flaw or fault Fault commonly refers to: *Fault (geology), planar rock fractures showing evidence of relative movement *Fault (law), blamewor ...
vulnerabilities. Servo is written in the
Rust programming language Rust is a multi-paradigm Programming paradigms are a way to classify programming languages based on their features. Languages can be classified into multiple paradigms. Some paradigms are concerned mainly with implications for the executi ...
, also created by Mozilla, which is designed to generate
compiled In computing, a compiler is a computer program that Translator (computing), translates computer code written in one programming language (the ''source'' language) into another language (the ''target'' language). The name "compiler" is primarily ...

compiled
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.


Components

The Quantum project is composed of several sub-projects. * CSS:
Servo Servo may refer to: Mechanisms * Servomechanism In control engineering Control engineering or control systems engineering is an engineering discipline that applies control theory to design equipment and systems with desired behaviors in Cont ...
's parallel 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 circuit File:PExdcr01CJC.jpg, 200px, A circuit built on a printed circuit board (PCB). An electronic circuit is composed of ...

CPU
cores. This was released in Firefox 57. * Render: Servo's rendering architecture, called WebRender, integrated into Gecko. WebRender replaces the
immediate modeImmediate mode may refer to * Immediate mode (computer graphics), a graphical rendering mode ** Immediate mode GUI, GUI or widget toolkit implemented using immediate mode style * Direct mode, an operational mode for Interpreter (computing), interpre ...
drawing model with a
retained mode Retained mode in computer graphics is a major pattern of application programming interface, API design in graphics libraries, in which * the graphics library, instead of the Client (computing), client, retains the scene (complete object model of ...
model that is more easily accelerated by the
GPU A graphics processing unit (GPU) is a specialized electronic circuit An electronic circuit is composed of individual electronic component An electronic component is any basic discrete device or physical entity in an electronic system Ele ...
by taking advantage of CSS/DOM's similarity to a
scene graph A scene graph is a general data structure In computer science Computer science deals with the theoretical foundations of information, algorithms and the architectures of its computation as well as practical techniques for their applica ...
. 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 Theatre or theater is a collaborative form of performing art that uses live performers, usually actor, actors or actresses, to present the experience of a real or imagined event before a live audience in a s ...
'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 Cloud computing is the on-demand availability of computer A computer is a machine that can be programmed to carry out sequences ...
) and
Facebook Facebook is an American online social media and social networking service owned by Meta Platforms. Founded in 2004 by Mark Zuckerberg with fellow Harvard College students and roommates Eduardo Saverin, Andrew McCollum, Dustin Moskovitz, an ...

Facebook
. 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 Free and open-source software (FOSS) is software that is both free software and open-source software where anyone is free software license, freely licensed to use, copy, study, ...

Firefox
. 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, , Coptic Coptic may refer to: Afro-Asia * Copts, an ethnoreligious group mainly in the area of modern Egypt but also in Sudan and Libya * Coptic language, a Northern Afro-Asiatic language spoken in E ...
in 2012. It is written in
C++ C++ () is a general-purpose programming language In computer software, a general-purpose programming language is a programming language dedicated to a general-purpose, designed to be used for writing software in a wide variety of application ...

C++
and used by
Servo Servo may refer to: Mechanisms * Servomechanism In control engineering Control engineering or control systems engineering is an engineering discipline that applies control theory to design equipment and systems with desired behaviors in Cont ...
. The Azure name is an ode to the early Netscape founder 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 A supercomputer is a computer with a hig ...
where workstations were often named after colors.


References


External links


Gecko - Mozilla Developer Network

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 147.7 million people, Java is the world's List of ...
API for Gecko) {{DEFAULTSORT:Gecko (Layout Engine) Cross-platform software Free layout engines Free software programmed in C++ Mozilla Software that uses Cairo Free software programmed in Rust