Gecko (layout engine)

Gecko (layout engine)
Gecko
Developer(s) Mozilla Foundation / Mozilla Corporation
Stable release 8.0 / November 8, 2011; 6 days ago (2011-11-08) [1]
Preview release 10.0a2 / November 11, 2011; 3 days ago (2011-11-11) [2]
Written in C++
Operating system Cross-platform
Type Layout engine
License MPL/GPL/LGPL
Website devmo:Gecko

Gecko is a free and open source layout engine used in many applications developed by Mozilla Foundation and the Mozilla Corporation (notably the Firefox web browser), as well as in many other open source software projects.

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.[3]

Gecko is written in C++ and is cross-platform, and runs on various operating systems including BSDs, Linux, Mac OS X, Solaris, OS/2, AIX, OpenVMS, and Microsoft Windows. Its development is now overseen by the Mozilla Foundation and is licensed by a tri-license of the Mozilla Public License (MPL), GNU General Public License (GPL) and GNU Lesser General Public License (LGPL).

Gecko is the second most-popular layout engine on the World Wide Web, after Trident (used by Internet Explorer for Windows since version 4), and followed by WebKit (used by Safari and Google Chrome) and Presto (used by Opera).

Contents

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 widely considered to be inferior to the one used in Microsoft Internet Explorer. It 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),[4] 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.[5] 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

Firefox.svg
(category)
Contents
Origins and lineage
This box: view · talk · edit

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

Gecko also partially supports SVG 1.1.[7][8]

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). While this increases compatibility with many documents designed only for Internet Explorer, some purists argue that it harms the cause of standards evangelism.

Usage

Gecko is primarily used in web browsers, the earliest being Netscape 6 and Mozilla Application Suite (later renamed SeaMonkey). It is also used in other Mozilla web browser derivatives such as Firefox, Camino, Flock, K-Meleon and the implementation of Internet Explorer that is part of Wine.[9]

Google's picture-organization software Picasa (for Linux) is based on Gecko.[10]

DevHelp, a GTK+/GNOME browser for API documentation, uses Gecko for rendering docs.[11]

Other products not included in the table include Swiftfox, Portable Firefox, Fennec, Conkeror, Classilla, TenFourFox, HP Secure Web Browser, Oxygen, Minimo, My Internet Browser, Sylera (for mobile), Thunderbird (email), Sunbird (calendar) and Instantbird.

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

The following table compares the different versions of Gecko:

Gecko version All platforms Windows only Mac only *nix only *nix mobile
Firefox Netscape [u 1] Mozilla [u 1] SeaMonkey Flock

[u 1]

Songbird Beonex

[u 1]

Lunascape [u 2][u 3] K-Meleon My Internet Browser Pale Moon Camino Galeon

[u 1]

Epiphany [u 4][u 2] Kazehakase [u 2] MicroB
0.6 6.0 0.6 0.6[13]
0.8 0.8 0.3
0.9.2 6.1 0.9.2
0.9.4 6.2 0.9.4 0.5
0.9.4.1 6.2.2 0.9.4.1 0.7[13]
0.9.5 0.9.5 0.6
0.9.7 0.9.7 1.0.2
1.0.1 7.0 1.0.1 0.8.1[14]
1.0.2 1.0.2 0.8.2[15]
1.1 1.1 0.9pre[13]
1.2b 0.1 1.2b 0.7
1.3a 0.5 1.3a
1.4 7.1 1.4
1.4.1 1.4.1 1.0.4
1.5 0.7 1.5 0.8
1.7 1.0 1.7 2.0 0.2.8
1.7.2 7.2 1.7.2
1.7.5 8.0.2[u 3] 1.7.5 0.9
1.8.0 1.5 1.0 0.7 0.2 1.0 1.0 1.0
1.8.1 2.0 9.0 1.1 1.0 4.8 1.1, 1.5 2.0 1.6.5 2.16
1.9.0 3.0 2.0 - 2.6 0.5 - 1.4 2.2 2.0 2.22
1.9.1 3.5 2.0 5.0 1.6 3.0 3.5
1.9.2 3.6 1.9.3 6.3 1.7 4.0 3.6[u 5] 2.1a1 [16] 1.7.4.8 [u 6]
2.0[u 7] 4.0 2.1 4.0
5.0[u 8] 5.0 2.2 5.0
6.0[u 8] 6.0 2.3 6.0
7.0[u 8] 7.0 2.4 7.0
8.0[u 8] 8.0a2
9.0[u 8] 9.0a1
Gecko version Firefox Netscape [u 1] Mozilla [u 1] SeaMonkey Flock

[u 1]

Songbird Beonex

[u 1]

Lunascape [u 2][u 3] K-Meleon My Internet Browser Pale Moon Camino Galeon

[u 1]

Epiphany [u 4][u 2] Kazehakase [u 2] MicroB
All platforms Windows only Mac only *nix only *nix mobile
  1. ^ a b c d e f g h i j Browser development has been discontinued.
  2. ^ a b c d e f Browser also includes WebKit as an alternative rendering engine.
  3. ^ a b c Browser also includes Trident as an alternative rendering engine.
  4. ^ a b Browser has dropped the Gecko layout engine.
  5. ^ Development of this branch/version actively continued.
  6. ^ Uses Gecko 1.9.2.3pre on Fremantle 1.3.
  7. ^ Alpha and Nightly builds until June 28, 2010 used Firefox version 3.7 and Gecko version 1.9.3.
  8. ^ a b c d e Starting with Firefox 5, the Gecko version numbering will be the same as the Firefox version number.

Criticism

One of the primary reasons for slower market share adoption is the complexity of the Gecko code which aims to provide much more than just an HTML renderer for web browser.[25][26][27] The Gecko engine also provides a versatile XML-based user interface rendering framework called XUL that was used extensively in mail, newsgroup, and other programs. Another reason for much of the complexity in Gecko is the use of XPCOM, a cross-platform component model.[28]

References

  1. ^ http://www.mozilla.com/en-US/firefox/8.0/releasenotes/
  2. ^ http://blog.mozilla.com/futurereleases/2011/11/11/firefoxaurora10/
  3. ^ Embedding Mozilla
  4. ^ nglayout project: identity crisis
  5. ^ Ars Technica interviews Scott Collins
  6. ^ Mozilla CSS support chart
  7. ^ The SVG font, color profile, animation, view, and cursor modules are yet to be implemented and the filter and text modules are only partially implemented. The extensibility module is also implemented but is currently disabled
  8. ^ Mozilla SVG Status
  9. ^ "IE Uses Gecko Under Wine". Wine Wiki. http://wiki.winehq.org/Gecko. Retrieved 2009-09-14. 
  10. ^ "Picasa 3.0 for Linux". Google. http://picasa.google.com/linux/download.html#picasa30. Retrieved 2008-12-28. 
  11. ^ "Official package devhelp (0.19.1-6 and others) on Debian Lenny". Debian Project. http://packages.debian.org/lenny/devhelp. Retrieved 2009-08-12. 
  12. ^ Martens, China (2007-01-03). "One Laptop Per Child readies 'Sugar' interface". IDG News Service. http://www.infoworld.com/article/07/01/03/Hnsugarinterface_1.html. Retrieved 2007-12-28. 
  13. ^ a b c Bucksch, Ben (12 March 2003). "News". http://www.beonex.com/support/announce/news.html. Retrieved 29 January 2011. 
  14. ^ Bucksch, Ben. "0.8.1". http://www.beonex.com/communicator/version/0.8/release-notes/security-alert/081.html. Retrieved 29 January 2011. 
  15. ^ Bucksch, Ben. "Release-notes". http://www.beonex.com/communicator/version/0.8/release-notes/. Retrieved 29 January 2011. 
  16. ^ "Camino 2.1a1 Release Notes". http://wiki.caminobrowser.org/Releases:2.1a1:Notes. Retrieved 2 February 2011. 
  17. ^ Mike Shaver (2003-01-08). "Designate contact sierra-five". Shaver: Noise from signal. self-published. Archived from the original on 2009-09-06. http://www.webcitation.org/5jaol2a4W. Retrieved 2009-09-06. 
  18. ^ David Baron (2003-01-09). "Thursday 2003-01-09". David Baron's weblog. self-published. Archived from the original on 2009-09-06. http://www.webcitation.org/5jaomCQBC. Retrieved 2009-09-06. 
  19. ^ Paul Festa (2003-01-14). "Apple snub stings Mozilla". CNET Networks. Archived from the original on 2009-09-06. http://www.webcitation.org/5jaojY2P3. Retrieved 2009-09-06. 
  20. ^ Jorge O. Castro (June 15, 2004). "Ars Technica sits down with Scott Collins from Mozilla.org". Ars Technica. http://arstechnica.com/open-source/news/2004/06/collins-interview.ars. 

External links


Wikimedia Foundation. 2010.

Игры ⚽ Поможем решить контрольную работу

Look at other dictionaries:

  • Gecko (Rendering Engine) — Gecko / libxul Entwickler: Mozilla Foundation Aktuelle Version: 1.9 (17. Juni 2008) Betriebssystem: Plattformunabhängig Kategorie: Engine …   Deutsch Wikipedia

  • Gecko Rendering Engine — Gecko / libxul Entwickler: Mozilla Foundation Aktuelle Version: 1.9 (17. Juni 2008) Betriebssystem: Plattformunabhängig Kategorie: Engine …   Deutsch Wikipedia

  • Layout engine — A layout engine, or rendering engine, is software that takes marked up content (such as HTML, XML, image files, etc.) and formatting information (such as CSS, XSL, etc.) and displays the formatted content on the screen. It paints on the content… …   Wikipedia

  • Mariner (layout engine) — Mariner was a canceled project to add performance and stability enhancements to the layout engine used in the Netscape Communicator web browser. Mariner became open source in March 1998 when Netscape released its client code and started the… …   Wikipedia

  • Trident (layout engine) — Trident Developer(s) Microsoft Written in C++[1] Operating system Microsoft Windows: Windows XP to 7 (supported …   Wikipedia

  • Presto (layout engine) — Presto Developer(s) Opera Software ASA Stable release 2.9.168 / 28 June 2011; 4 months ago ( …   Wikipedia

  • Gecko (disambiguation) — *A gecko is a type of lizard of the taxonomic family Gekkonidae .Gecko can also refer to: *The The GEICO Gecko, an animated gecko appearing in GEICO insurance commercials *Gecko (layout engine), the open source web browser layout engine used in… …   Wikipedia

  • Gecko (Software) — Gecko / libxul Entwickler Mozilla Foundation Aktuelle Version 7.0 (27. September 2011) Betriebssystem Plattformunabhängig Kategorie Engine Bibliothek …   Deutsch Wikipedia

  • Gecko — Тип Браузерный движок Разработчик Mozilla Foundation / Mozilla Corporation Написана на C++ Операционная система Кроссплатформенное ПО Последняя версия 17 (каждая новая версия соответствует версии …   Википедия

  • Gecko (moteur de rendu) — Pour les articles homonymes, voir Gecko. Gecko (moteur de rendu) Développeur …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”