nglayout project / gecko layout engine

FAQ

Last updated 23 March 1999

In this document:

What is Gecko?
Gecko is Netscape's revolutionary next-generation browser engine based entirely on open Internet standards such as HTML 4.0, CSS 1/2, XML 1.0, and the W3C Document Object Model. Gecko also includes a set of complementary browser components that work alongside the layout engine to form the founding platform of Netscape's next generation Web browser. Gecko is currently under development. Gecko has been known previously by the code names "Raptor"  and "NGLayout"; the new name was chosen following a trademark infringement dispute.

What is the relationship between the mozilla.org "NGLayout Project" and the "Gecko layout engine"?
mozilla.org's "NGLayout Project" is creating the "Gecko layout engine." Although the layout engine's name has been changed to Gecko, the project's name has remained "NGLayout Project" for historical reasons.

What is a layout engine?
Basically, a layout engine takes content (such as HTML, XML, image files, applets, and so on) and formatting information (such as Cascading Style Sheets, hard-code HTML tags, etc.) and displays the formatted content on the screen. It "paints" the browser's content area, which is the blank area inside the browser window's "chrome."

Formally, a layout engine defines the placement policy for a document and places content on a page. Gecko's core is a very fast layout engine. Gecko also offers the ability to parse various document types (HTML, XML, CSS, etc), advanced rendering capabilities including compositing and tranforms, and support for embedded JavaScript and applets.

Note: Gecko is so fast and so powerful that it's being used to create the browser's user interface ("chrome") as well. In other words, Gecko will not only be displaying the document's content, but it will also be painting the scroll bars, tool bars, and menus on the screen as well.

How is a layout engine like Gecko different from a Web browser?
Gecko provides the foundation needed to display content on the screen, including a layout engine and a complementary set of browser components. However, Gecko does not package all of these components alongside other interface modules in a coherent, user friendly Web browser application (including menus, tool bars, etc.), such as Netscape Navigator.

mozilla.org will assemble the necessary components into an application called the Mozilla browser, which will be available for free download from mozilla.org. Netscape will release its own version of the browser branded as Netscape Navigator, which will be available for free download from netscape.com.

Third parties such as ISVs and hardware vendors will pick and choose the components they want to use in their applications or hardware devices. Certain browser components are not provided as part of Gecko, such as bookmarks, history, address book, etc. However, the source for all those components is available for free download from mozilla.org.

Why are we building a new layout engine?
The original Mozilla browser, first released as Navigator 1.0, was developed rapidly by a small team that was passionate about creating the next killer app -- and they succeeded wildly. Now that the web has evolved, Netscape has assembed the finest team available to redesign and redevelop the next generation layout engine upon which it will build future products. Gecko enables a pioneering new class of dynamic content that is more interactive and offers greater presentation control to Web developers, using open and recommended Internet standards instead of proprietary APIs. You are encouraged to join this team by getting involved.

How is mozilla.org using Gecko?
mozilla.org will assemble the Gecko layout engine and other browser components into the Mozilla browser application.

How is Netscape planning to use Gecko?
Gecko lies at the heart of Communicator, powering all of the individual components including Navigator and Messenger. Gecko technologies will also power the display of Netcenter, the Web's leading portal site, speedily delivering more exciting content and services. Gecko's architecture will serve Netscape well into the future, enabling faster time to market, more innovation, less costly development, easier distribution and updating, and better cross platform support.

How can other companies and organizations use Gecko?
Because Gecko is small, lightweight, and open source, other companies and organizations can easily reuse it. Many hardware vendors are creating devices with network access and wish to include web browsing functionality. Likewise, many software developers want to include Web browsing capability in their applications, but don't want to independently develop browser software. These developers can pick and choose the browser components they want from among those that Gecko offers, and package these components alongside their own within their finished products.

Which open standards does Gecko support, and to what extent does it support them?
The first release of Gecko will support the following recommended open Internet standards completely (100%) unless specifically noted:

How will Gecko format XML documents?
Gecko will support the use of CSS1 to format XML documents.

For XML formatting, why is Gecko supporting CSS rather than XSL in the first release?

Simple: CSS1 is a finished, fully adopted, and mature two-year-old standard; XSL isn't done yet. As Tim Bray, the coeditor of the XML standard, has written:

"Microsoft's XSL efforts are very impressive, but (readers will pardon us being something of a broken record on this subject) XSL is in the future. We are convinced that from the point of view of the largest number of users, the most important things that Microsoft could do in IE 5 would be:

1.Ensure interoperability of XML and stylesheets with other browsers, and
2.Build in conformance to existing, stable, well-understood standards such as CSS 1.0.

Innovation, of course, is fine and necessary, and we salute Microsoft's leadership in this area. But innovation needs to be built on a foundation of interoperability and playing by existing well-understood rules." He further adds that "It seems obvious to me that for anyone who wants to deploy XML in production mode right now, XML + CSS is the way to go �" ("Microsoft Outlines XML Support in IE5 Beta 2" at
http://www.xml.com/xml/pub/98/10/ie5-2.html)

How does Gecko help content developers?
Content developers are sick and tired of developing and testing every single web page multiple times in order to support the different, incompatible, proprietary DOMs of browsers from different vendors. They have been demanding that all vendors fully support the W3C DOM and the other standards listed above so that they can (1) have a rich, powerful formatting system and object model at their disposal, and (2) "write once, view anywhere." Gecko's full support of HTML 4.0, CSS1, DOM1, XML, XML+CSS1, and RDF will make Gecko the content platform of choice for content developers worldwide.

Are Gecko's APIs based on ActiveX? COM? JavaBeans?
Gecko is reusable on all platforms thanks to XPCOM, a subset of COM that works across platforms. COM, developed by Digital and later adopted by Microsoft, is the de facto standard for modular interfaces on Windows platforms. Additionally, on the Windows platform, Gecko's XPCOM interfaces are wrapped in an ActiveX control that VB developers can utilize (ActiveX wrappers are not available on other platforms because ActiveX is a Windows-only technology). A JavaBean wrapper is not currently under development, but there is nothing in Gecko's architecture that precludes such development in the future. Source code and documentation for these interfaces are available through mozilla.org.

Are Gecko's APIs compatible with Microsoft's Trident APIs?
Gecko's XPCOM interfaces are different than Microsoft's. The most important differences between the two models involve reflection of the Document Object Model (DOM) in the interfaces. Microsoft's Trident interfaces reflect the DOM in a proprietary API, whereas Gecko exposes the DOM according to the W3C's recommended standard. Other incompatibilities exist. Adam Lock is creating a partial compatibility layer that may enable developers to easily migrate from Microsoft's engine to the NGLayout engine.

Which platforms does Gecko run on?
Gecko runs today on Win32 (Windows 95, Windows 98, Windows NT 4, Windows NT 5), PowerMac, and Linux. OEMs and contributors from the Net participating in mozilla.org will port Gecko to other platforms. Such porting efforts are underway for Solaris, Irix, OS/2, and BeOS, among others.

What are the components of Gecko?
Gecko includes the following components:

Components marked with an asterisk are currently being extracted from the 5.0 codebase and given XPCOM interfaces and haven't yet landed in the Gecko tree.

Copyright © 1998 The Mozilla Organization.