Survey of mozilla
How is mozilla ?
On this section, I give the outline of mozilla to see how mozilla is made up.
Strictly speaking, mozilla has various projects. And the browser front-end project which is called "mozilla" as a whole, is the project "SeaMonkey".
The projects other than SeaMonkey are such as
Because mozilla is massive, to understand its structure, it is necessary to see it from various aspects.
The source code of mozilla is managed by being divided into various modules. They correspond to directories which are placed on top level on the mozilla source tree (mozilla/*/).
I show the main modules below.
There are various Web tools to use mozilla conveniently. These can be accessed from HP of mozilla
CVS (Concurrent Versions System)
This is the tool used for managing the source code of mozilla. This is used for source code generation management and helps development by multiple persons. Client program widely used in mozilla for Macintosh is MacCVS Pro, but there are other candidates.
LXR (Mozilla Cross-Reference)
Contents of the latest mozilla source code can be browsed and searched.
This is the tool for the source tree management. This enables us to search check-in history of mozilla source code which is managed by CVS, to see logs or to get Diffs.
At mozilla.org, there are machines building the latest source on every platform all the time. Tinderbox is the page made by cgi, in which this building status are shown graphically (shown in colors). Let's check Tinderbox before we check-out.
This is the system to manage bugs of mozilla. This enables us to search contents of bugs already posted, and post bugs you found.
Technology of mozilla
XPCOM (Cross Platform Component Object Model)
This is the technology to change program modules into components. This was modeled after COM of Microsoft, and mozilla enhance it to be used as cross-platform.
Characteristics of COM itself are such as
This XPCOM is the most important technological key point for modularization and cross platform of mozilla.
This is a smart pointer for XPCOM. This is more convinient than a raw COM Interface pointer, 'cause nsCOMPtr manages AddRef, Release and QueryInterface automatically. Just like a pointer of C or C++, you can apply * or -> to it to `get to' what it points at.
This is a (character) string class for XPCOM.
XPIDL (Cross Platform Interface Description Language)
This is a cross-platform interface description language used to define XPCOM Interface classes.
XBL (Extensible Bindings Language)
This is a markup language for defining "binding" that is attached to elements of external documents. This is based on XML. Binding can be attached to elements by using CSS or DOM. These elements are called "bound elements" and come to work according to new action specified by binding.
XPFE (Mozilla's Cross Platform Front End)
This is a general term of cross-platform front-end of mozilla. This is worked synthetically by a gathering of parts such as XPToolKit and XUL.
This is concrete individual user interface parts used for actualization of the above XPFE.
XUL (XML-based User-interface Language)
This is a language based on XML for describing the structure of user interface of mozilla. By making this external file and modify this file, you can change mozilla's look and feel dynamically.
NSPR (Cross Platform operating system facilities)
This is a cross-platform OS runtime library. This has functions such as thread management, file management, network management, date & time management, memory management (malloc, free) and shared library linking.
News group & mailing list
Mozilla is ever-changing.
The best shortcut to get an information of the latest mozilla is to take part in the news group or mailing list of modules and fields you are interested in.
When you fall into some trouble and you can't get the answer by yourself, let's ask the corresponding mailing list about it.
In mozilla, there are persons responsible for each module, who are called "module owners".
And, there is a person who is not actually a module owner but responsible for the whole fields about Macintosh (including embedding). His name is
Mr. Mike Pinkerton [ email ]
Copyright (C) 2000-2002 Symphony, Inc. All Rights Reserved.