![]() |
|
|
nglayout project
|
||||||||
|
For the good of the code... Are you a JavaScript hacker interested in writing some test cases for NGLayout's W3C DOM implementation? Let us know. |
In this document:
What is NGLayout?
NGLayout 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, NGLayout 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.
NGLayout 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 NGLayout
different from a Web browser?
NGLayout provides the foundation needed to build a browser interface,
including a layout engine and a complementary set of browser components.
However, NGLayout 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 NGLayout,
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.
NGLayout 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 NGLayout?
Built as a set of modular, embeddable components, ISVs can integrate
NGLayout 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
NGLayout offers, and package these components alongside those that are specific
to the ISV's application.
Which open standards does NGLayout
support, and to what extent does it support them?
NGLayout supports the following recommended open Internet standards completely
(100%) unless specifically noted:
Are NGLayout's embedding APIs
based on ActiveX? COM? JavaBeans?
NGLayout 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, NGLayout'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 NGLayout's architecture that precludes such development
in the future. Source code and documentation for these interfaces is available
in our technical documentation area.
Are NGLayout's embedding APIs
compatible with Microsoft's WebBrowser control APIs?
NGLayout'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 NGLayout 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 NGLayout run on?
NGLayout 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 NGLayout?
NGLayout 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 NGLayout tree.