 |
 |
|
 |
 |
 |
nglayout project
overview
This document is intended to describe what NGLayout is, and provide a
rough timeline for major milestones.
If you're looking for the source, it's
here.
NGLayout is the next-generation layout engine currently under development
for Netscape Navigator. Like the Navigator source, the source code for
the NGLayout engine will be freely available from mozilla.org under the standard
NPL license agreement. This technology will be integrated into the Mozilla
open-source browser as soon as it is ready later this year.
-
The NGLayout engine was designed from the ground up to offer the following
benefits:
-
Layout
-
Very fast; really fast; as fast as possible
-
Incremental reflow, including tables and integration with DOM
-
Backward compatibility with Netscape Navigator 4.0;
-
Support for HTML 4.0
-
Pagination, control over running matter
-
Rendering
-
High-performance rendering enhancements
-
Double-buffered rendering on demand
-
High-end graphic capabilities, including alpha blending
-
Style
-
Full HTML 3.x style support; limited HTML 4.x style support
-
Full CSS implementation; limited CSS 2 support
-
DOM
-
Compatible with previous Netscape navigator releases.
-
Full W3C Level 1 DOM support
available in JavaScript and C++.
-
Parser
-
Fully backward-compatible with Navigator 4.x and Internet Explorer
-
Limited DTD support
-
Extensible tag handling
-
Embeddable
-
"WebWidget" API allows developers to embed NGLayout in their own custom applications.
-
Configurable
-
XPCom interface support allows for run-time extensions to the underlying
system
-
Portions of the UI are expressable as HTML
-
Extensible
-
Dynamic tag handling, making it possible to give layout and rendering behavior
to your new tags
-
XML and RDF support
-
XPCom-based implementation permitting incremental upgrade of underlying
systems
general roadmap
It is our major objective to release significant improvements to NGLayout
as quickly as possible. Therefore, incremental releases may occur in addition
to those given below. Also, note that the usual mozilla.org rules apply
and that patches and updates will be available more frequently when the
CVS repository goes "live".
-
Target 0: February 1, 1998
-
Target 1: April 15, 1998
-
"Technology" release of early system.
-
What's working (or at least limping along):
-
Netlib (URL loading) and XPCOM
-
Rendering, with on-demand double buffering
-
Partial incremental reflow
-
Plain Text with simple styles <B>, <I>, <S>, <U> (Very limited
CSS, Fonts)
-
<BR>
-
<HR>
-
<HREF>
-
<FORM> (limited)
-
<H1..6>
-
<IMG> (including background images, limited run-around support, and
animated gifs, limited image maps)
-
<PRE>
-
<UL>, <OL>, <LI>
-
<TABLE> (html 3.x); rowgroups and colgroups (html 4.0)
-
What's missing:
-
Full incremental reflow
-
Full CSS1 and CSS2
-
Full HTML 4.0 support
-
Full backward compatibility with Nav, IE.
-
Full support for inline images
-
Printing
-
Applet's and plugins
-
<FRAMESET>, <FRAME>, <IFRAME>
-
Full image map support
-
<SCRIPT> (and javascript support)
-
Mac and Unix support
-
Web-shell API
-
Performance tuning
-
Full DOM level 0 support
-
Target 2: June 1998
-
"Viewer" release -- by now, you should be able to view your favorite pages.
-
Target 3: July 1998
-
"Browser" release -- by now NGLayout should begin to look and feel like a
real browser. This implies being able to visit most pages and also correct
operation of form submission, session history and other application
interactions. This doesn't imply that the standalone test rig used for
embedding NGLayout will be a first class "browser" application.
-
Target 4: September 1998
-
"Integration" -- by now NGLayout should be getting well integrated into public
source version of Navigator. Note that this integration will be occuring
on a branch until such time as it's appropriate to land the branch onto
the tip.
where we really are today
From the list given above, it should be apparent that NGLayout is not "ready
for prime time". For example, NGLayout parses HTML files just fine, but our
document model still requires well formed HTML. Netlib and Imagelib have
only been integrated for a few weeks, so bugs in these systems have not
been completely shaken out. Most of the the HTML elements are still "work-in-progress",
as are the style and layout systems. In terms of completeness, our DOM
implementation is only a faint shadow of what it will become over the next
few months and the API's present in the this release are not up to snuff.
The bottom line is that you can't just browse your favorite
website and expect great results, at least not quite yet anyway.
Why then, are we releasing it this early? Simple -- we want and need
your feedback and assistance. We're hoping to find a set of net developers
who share the same passion for a great HTML layout system that we have.
We would greatly appreciate your feedback, and if possible, your help in
areas of the system where we don't have resources already committed. If
you're willing to build and test the system, we're ready to take your feedback.
If you want to go the next step and actually get NGLayout out the door, then
please read on...
getting involved
There are already a number of opportunities for net developers to add
value to NGLayout. Areas where we'd like your input and co-development include:
-
Short-term
-
Macintosh and Unix porting. The NGLayout team is (currently, unfortunately,
sadly, regrettably) under staffed in the Mac and Unix departments.
We could really use your help here!
-
XML parsing, XML processing, XSL transformations
-
RDF
-
Integrating NGLayout into the public source browser. The integration team at Netscape
is already hard at work on this issue. If you would like to help them,
please contact Jim
Everingham.
-
Long-term
-
Non-HTML document conversion
-
Graphics handling (new formats)
-
Multimedia graphics
-
Publishing features (toc/index generation)
-
Print to postscript
-
etc.
If you, your team, or someone you know is interested in this opportunity,
please send email to Rick
Gessner.
|
 |
 |