Trisha Shetty (Editor)

Gecko (software)

Updated on
Edit
Like
Comment
Share on FacebookTweet on TwitterShare on LinkedInShare on Reddit
Developer(s)
  
Mozilla Foundation/Mozilla Corporation, Adobe Systems and others

Stable release
  
Standard 52.0 / March 7, 2017; 3 days ago (2017-03-07) ESR 1 52.0 / March 7, 2017; 3 days ago (2017-03-07) ESR 2 45.8.0 / March 7, 2017; 3 days ago (2017-03-07)

Standard
  
52.0 / March 7, 2017; 3 days ago (2017-03-07)

ESR 1
  
52.0 / March 7, 2017; 3 days ago (2017-03-07)

ESR 2
  
45.8.0 / March 7, 2017; 3 days ago (2017-03-07)

Preview release
  
Beta 52.0beta / January 25, 2017; 44 days ago (2017-01-25) semiweekly release Developer Edition 53.0a2 / January 27, 2017; 42 days ago (2017-01-27) daily release Nightly 54.0a1 / January 29, 2017; 40 days ago (2017-01-29) daily release

Gecko is a web browser engine used in many applications developed by Mozilla Foundation and the Mozilla Corporation (notably the Firefox web browser including its mobile version other than iOS devices, and their e-mail client Thunderbird), as well as in many other open source software projects. Gecko is free and open-source software subject to the terms of the Mozilla Public License version 2.

Contents

It is designed to support open Internet standards, and is used by different applications to display web pages and, in some cases, an application's user interface itself (by rendering XUL). Gecko offers a rich programming API that makes it suitable for a wide variety of roles in Internet-enabled applications, such as web browsers, content presentation, and client/server.

Gecko is written in C++ and is cross-platform, and runs on various operating systems including BSDs, Linux, macOS, Solaris, OS/2, AIX, OpenVMS, and Microsoft Windows. Its development is now overseen by the Mozilla Foundation.

History

Development of the layout engine now known as Gecko began at Netscape in 1997, following the company's purchase of DigitalStyle. The existing Netscape rendering engine, originally written for Netscape Navigator 1.0 and upgraded through the years, was slow, did not comply well with W3C standards, had limited support for dynamic HTML 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 problems. Netscape later rebranded NGLayout as Gecko. While Mozilla Organization (the forerunner of the Mozilla Foundation) 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 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, by this time Netscape's parent company, eventually adopted it for use in CompuServe 7.0 and AOL for Mac OS X (these products had previously embedded Internet Explorer). However, with the exception of a few betas, Gecko was never used in the main Microsoft Windows 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, employees of companies that contribute to the Mozilla project, and volunteers.

Standards support

From the outset, Gecko was designed to support open Internet standards. Some of the standards Gecko supports include:

  • CSS Level 2.1 (partial support for CSS 3)
  • DOM Level 1 and 2 (partial support for DOM 3)
  • HTML4 (partial support for HTML5—see Comparison of layout engines (HTML5))
  • JavaScript 1.8.5 (full ECMAScript 5.1 support), implemented in SpiderMonkey
  • MathML
  • RDF
  • XForms (via an official extension)
  • XHTML 1.0
  • XML 1.0
  • XSLT and XPath, implemented in TransforMiiX
  • Gecko also partially supports SVG 1.1.

    In order to support web pages designed for legacy versions of Netscape and Internet Explorer, Gecko supports DOCTYPE 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 4.x; however, some of the 4.x features (such as layers) are not supported.

    Gecko also has limited support for some non-standard Internet Explorer features, such as the marquee element 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 browsers, the earliest being Netscape 6 and Mozilla Suite (later renamed SeaMonkey). It is also used in other Mozilla web browser derivatives such as Firefox and Firefox for mobile and the implementation of the Internet Explorer-clone that is part of Wine. Mozilla also uses it in their Thunderbird email-client and their Firefox OS.

    Other web browsers using Gecko include Airfox, Waterfox, K-Meleon, Lunascape, Pale Moon, Portable Firefox, Conkeror, Classilla, TenFourFox, HP Secure Web Browser, Oxygen and Sylera (for mobile).

    Other products using Gecko include Nightingale, Instantbird and Google's picture-organization software Picasa (for Linux).

    DevHelp, a GTK+/GNOME browser for API documentation, used Gecko for rendering documents.

    Gecko is also used by Sugar for the OLPC XO-1 computer. Gecko is used as a complete implementation of the XUL (XML User Interface Language). Gecko currently defines the XUL specification.

    Products that have historically used Gecko include Songbird, Epiphany (now known as Web and no longer using Gecko), Sunbird (calendar), and other web browsers including Swiftfox, Flock, Galeon, Camino, Minimo, Beonex Communicator, Kazehakase, and MicroB.

    On Windows and similar platforms, Gecko depends on proprietary compilers. Thus, FOSS distributions of Linux can not include the Gecko package used in the Windows compatibility layer Wine.

    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. Thus in 2001 Apple chose to fork KHTML, not Gecko, to create the WebKit engine for its Safari browser. However, by 2008 Mozilla had addressed some of the bloat problems, resulting in big performance improvements for Gecko.

    Future

    In October 2016 Mozilla announced the Quantum project, which is "the next-generation web engine for Firefox users, building on the Gecko engine as a solid foundation." The plan includes replacing two large Gecko components with those of Mozilla's experimental Servo engine. Mozilla hopes to complete this work by the end of 2017.

    References

    Gecko (software) Wikipedia


    Similar Topics