nglayout project / gecko layout engine
FAQ
Last updated 23 March 1999In this document:
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:
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:How does Gecko help content developers?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)
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:
Copyright © 1998 The Mozilla Organization.