In this document:
What is NGT?
NGT is Mozilla's next generation, high performance layout engine based on open
Internet standards such as HTML 4.0, CSS 1/2, XML 1.0, and the Document Object
Model. Built using a modular, XPCOM-based architecture, NGT is an
embeddable component.
What is a layout engine?
A layout engine defines the placement policy for a document and places content
on a page.
NGT also offers the ability to parse
various document types (HTML, XML, CSS, etc), advanced rendering capabilities including compositing
and tranforms, and it supports embedded JavaScript and Java applets.
How is a NGT
different from a Web browser?
NGT provides the foundation needed to build a browser interface,
including a layout engine and a complementary set of browser components.
However, NGT does not package all of these components alongside other
interface modules in a coherent, user friendly Web browser application,
such as Navigator. The Mozilla team will
assemble the necessary components into a user friendly application. Third
party ISVs will pick and choose the components they want to embed in their
applications. Certain components are not provided as part of NGT,
such as bookmarks, history, address book, etc.
Why are we
building a new layout engine?
Mozilla 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, we have
assembled the finest team available to redesign and redevelop the next generation layout engine.
NGT 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. You are encouraged to join this team by getting
involved.
How can independent
software developers use NGT?
Built as a set of modular, embeddable components, ISVs can integrate
NGT into their applications with a high degree of control. 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
NGT offers, and package these components alongside those that are specific
to the ISV's application.
Which open standards does NGT
support, and to what extent does it support them?
NGT supports the following recommended open Internet standards completely
(100%) unless specifically noted:
Are NGT's embedding APIs
based on ActiveX? COM? JavaBeans?
NGT is embeddable on all platforms using XPCOM, a subset of COM
that works across platforms.
On the Windows platform, thanks to Adam Lock's contributions, NGT's XPCOM interfaces
are wrapped in an ActiveX control that VB developers can utilize
A JavaBean wrapper is not currently under development, but
there shouldn't be anything in NGT's architecture that precludes such development
in the future. Source code and documentation for these interfaces is available
in our technical documentation area.
Are NGT's embedding APIs
compatible with Microsoft's WebBrowser control APIs?
NGT's XPCOM embedding interfaces are different than Microsoft's.
One difference between the two models involves reflection
of the Document Object Model (DOM) in the interfaces. Microsoft's
interfaces reflect the DOM in a proprietary API, whereas NGT 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
NGT engine.
Which platforms does NGT run on?
NGT runs today on Windows 95, Windows 98, Windows NT 4, Windows
NT 5, Linux, Irix and Mac PPC. Porting projects for other platforms (OS/2, Rhapsody, Be, etc.) are reportedly
underway.
What are the components
of NGT?
NGT includes the following components:
Components marked with an asterisk are currently being modularized out of the 5.0 codebase with XPCOM interfaces, and haven't yet landed in the NGT tree.