Gecko (layout engine)

Gecko is the open source web browser layout engine used in Mozilla, later Netscape releases and several other products. Written in C++, Gecko is designed to support open Internet standards. Originally created by Netscape Communications Corporation, its development is now overseen by the Mozilla Foundation.

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 [1] (http://www.mozilla.org/projects/embedding/). Primarily it is used for the Mozilla browser derivatives such as Netscape and Mozilla Firefox, but it is used elsewhere as well. Gecko is cross-platform and works on a number of different operating systems, including Microsoft Windows, Linux and Mac OS X.

Gecko is generally considered to be the second most-popular layout engine on the Web, after Trident (used by Internet Explorer for Windows), but before KHTML (used by Konqueror), WebCore (used by Safari), Presto (used by Opera) and Tasman (used by Internet Explorer for Mac).

Contents

Standards support

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

Like Tasman, the layout engine used in Internet Explorer 5 for Mac, Gecko supports DOCTYPE sniffing. 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 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> tag 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.

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)[2] (http://www.mozilla.org/newlayout/gecko.html), eventually the Gecko branding won out. For a time, Gecko was used to refer to both the old NGLayout layout engine and XPFE (cross-platform front-end) — the new XML-based Mozilla user interface, rendered by NGLayout — but it is now used solely to refer to the layout engine.

In October 1998, Netscape announced that its next browser would use Gecko (which was still called NGLayout) 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 Foundation, employees of companies that contribute to the Mozilla project and volunteers.

Future

Gecko will support more open standards which are currently missing, such as XForms and SVG. It appears likely that Gecko will add support for some of the technologies developed by the Web Hypertext Application Technology Working Group in the near future. Support for the HTML canvas element specified by the WHATWG was checked in on April 19, 2005 [3] (http://www.mozillazine.org/talkback.html?article=6461).

One of the big initiatives in 1.9 will be an overhaul of the graphics infrastructure. Instead of using the platforms' API, Cairo will be used for all graphics outputs. This will result in improved 2D graphics capabilities and, via Glitz, acceleration using 3D graphics hardware. It will also mean that there will be a single rendering pipeline for HTML/CSS, canvas and SVG, so that SVG effects can be applied to HTML content. Because of Cairo, it will also be possible to output the graphics as formats like PNG and PDF, e.g. "Save this page as a PDF".

Gecko-based applications

Web browsers

Other applications

* Also uses Gecko to render its entire user interface via XUL.

See also

External links

es:Gecko fr:Gecko (moteur de rendu) it:Gecko ja:Geckoレイアウトエンジン pl:Gecko fi:Gecko zh-min-nan:Gecko

Navigation

  • Art and Cultures
    • Art (https://academickids.com/encyclopedia/index.php/Art)
    • Architecture (https://academickids.com/encyclopedia/index.php/Architecture)
    • Cultures (https://www.academickids.com/encyclopedia/index.php/Cultures)
    • Music (https://www.academickids.com/encyclopedia/index.php/Music)
    • Musical Instruments (http://academickids.com/encyclopedia/index.php/List_of_musical_instruments)
  • Biographies (http://www.academickids.com/encyclopedia/index.php/Biographies)
  • Clipart (http://www.academickids.com/encyclopedia/index.php/Clipart)
  • Geography (http://www.academickids.com/encyclopedia/index.php/Geography)
    • Countries of the World (http://www.academickids.com/encyclopedia/index.php/Countries)
    • Maps (http://www.academickids.com/encyclopedia/index.php/Maps)
    • Flags (http://www.academickids.com/encyclopedia/index.php/Flags)
    • Continents (http://www.academickids.com/encyclopedia/index.php/Continents)
  • History (http://www.academickids.com/encyclopedia/index.php/History)
    • Ancient Civilizations (http://www.academickids.com/encyclopedia/index.php/Ancient_Civilizations)
    • Industrial Revolution (http://www.academickids.com/encyclopedia/index.php/Industrial_Revolution)
    • Middle Ages (http://www.academickids.com/encyclopedia/index.php/Middle_Ages)
    • Prehistory (http://www.academickids.com/encyclopedia/index.php/Prehistory)
    • Renaissance (http://www.academickids.com/encyclopedia/index.php/Renaissance)
    • Timelines (http://www.academickids.com/encyclopedia/index.php/Timelines)
    • United States (http://www.academickids.com/encyclopedia/index.php/United_States)
    • Wars (http://www.academickids.com/encyclopedia/index.php/Wars)
    • World History (http://www.academickids.com/encyclopedia/index.php/History_of_the_world)
  • Human Body (http://www.academickids.com/encyclopedia/index.php/Human_Body)
  • Mathematics (http://www.academickids.com/encyclopedia/index.php/Mathematics)
  • Reference (http://www.academickids.com/encyclopedia/index.php/Reference)
  • Science (http://www.academickids.com/encyclopedia/index.php/Science)
    • Animals (http://www.academickids.com/encyclopedia/index.php/Animals)
    • Aviation (http://www.academickids.com/encyclopedia/index.php/Aviation)
    • Dinosaurs (http://www.academickids.com/encyclopedia/index.php/Dinosaurs)
    • Earth (http://www.academickids.com/encyclopedia/index.php/Earth)
    • Inventions (http://www.academickids.com/encyclopedia/index.php/Inventions)
    • Physical Science (http://www.academickids.com/encyclopedia/index.php/Physical_Science)
    • Plants (http://www.academickids.com/encyclopedia/index.php/Plants)
    • Scientists (http://www.academickids.com/encyclopedia/index.php/Scientists)
  • Social Studies (http://www.academickids.com/encyclopedia/index.php/Social_Studies)
    • Anthropology (http://www.academickids.com/encyclopedia/index.php/Anthropology)
    • Economics (http://www.academickids.com/encyclopedia/index.php/Economics)
    • Government (http://www.academickids.com/encyclopedia/index.php/Government)
    • Religion (http://www.academickids.com/encyclopedia/index.php/Religion)
    • Holidays (http://www.academickids.com/encyclopedia/index.php/Holidays)
  • Space and Astronomy
    • Solar System (http://www.academickids.com/encyclopedia/index.php/Solar_System)
    • Planets (http://www.academickids.com/encyclopedia/index.php/Planets)
  • Sports (http://www.academickids.com/encyclopedia/index.php/Sports)
  • Timelines (http://www.academickids.com/encyclopedia/index.php/Timelines)
  • Weather (http://www.academickids.com/encyclopedia/index.php/Weather)
  • US States (http://www.academickids.com/encyclopedia/index.php/US_States)

Information

  • Home Page (http://academickids.com/encyclopedia/index.php)
  • Contact Us (http://www.academickids.com/encyclopedia/index.php/Contactus)

  • Clip Art (http://classroomclipart.com)
Toolbox
Personal tools