The Mozilla
Organization
Our Mission
Who We Are
Getting Involved
Community
Editorials
What's New
Newsbot
Development
Roadmap
Module Owners
Blue Sky
Projects
Status
Tools
Products
Source Code
Binaries
Documentation
License Terms
Bug Reports
Quality
Search
Feedback


mozilla mail/news architecture

This is an overview of the components involved in mozilla mail/news, with the main contact person for each area. Although it's ok to send mail, we encourage everyone to use the mail-news newsgroup. If you have a question, chances are other people have the same question.

Architecture

Our general plan is to bring the critical pieces of Messenger over to mozilla/5.0 and rewrite/reorganize code as we need to in order to fit in. Some of the major pieces of work are described here.

Networking (owner: Scott MacGregor)

We are porting all of our protocol handlers to work in the new netlib world. We are doing two fundamental things to make this work:

  • We are using a "proxied stream" interface between the netlib thread and the protocol module. So all of the code you're used to seeing in mkpop3.c, mknews.c, etc. will be living on the mozilla thread, and there will be a stream interface across the thread boundary to netlib.
  • We are converting all of the "up-calls" from the protocol handlers to the rest of the backend (see libmsg) into XP-COM interfaces to avoid tight coupling between components.
  • We are converting our big pile of IMAP code into the new world. (owners: David Bienvenu, Scott MacGregor, Jeff Tsai)
Database (owners: David McCusker, David Bienvenu)

We are developing a new database strategy for mail/news (summary files and address books).

  • We have developed a database abstraction called MDB which we hope will be general enough to allow databases great and small to live under its API. Netscape's mail/news group will be providing a relatively simple text-based database under that API for Messenger 5.0.
  • Our 5.0 implementation of MDB is called MORK. If you're interested in mail/news databases, lots of design discussion is happening in the mail-news newsgroup
User Interface (owners: Alec Flett, Candice Huang, Jean-Francois Ducarroz)

We are committed to the XPFE strategy and toolkit. We do not expect to write much, if any, platform specific UI using MFC, PowerPlant, or Motif. Our user interface is written in XUL and CSS. We are working on a new visual appearance for mail/news right now.

RDF Data sources (owner: Scott Putterman)

In mozilla, all mail/news items (e.g. messages in the thread pane, folders/newsgroups in the folder pane) are represented as an RDF graph composed of nodes and properties. The classes which manage the graph also fulfill two other roles

  • Command processing. Most of the commands which can be run on mail/news data are dispatched by RDF's "composite data source" down to individual data sources like mail/news.
  • View layer. The order of view in the UI (e.g. sorting, message threading) is the order that data sources present the graph to RDF. So, in the model/view/controller paradigm, we consider our DB to be model, our data sources to be view, and the XUL FE code to be controller.
libmime (MIME Parsing) (owner: Rich Pizzarro)

We are reworking the client side mime parsing for Messenger 5.0 to be a more modular component with an XP-COM interface rather than a statically linked library as was the case in previous releases. This module will implement a generic stream converter interface that is currently under development. Also a part of this development is the creation of the ability to write Content Type Handler Plugins for libmime. This effort can be seen at the following link: Content Type Handler Plugins
 



Copyright © 1998 The Mozilla Organization.