The Mozilla
Organization
Our Mission
Who We Are
Getting Involved
Community
Editorials
What's New
Projects
Module Owners
Blue Sky
New Layout
Mail/News
Ports
Other
Source Code
Getting It
Documentation
License Terms
Bugs
Search
Feedback
DevEdge Online


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
      • Development Begins
    • 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.



Copyright © 1998 Netscape Communications Corporation.