Code Organization
The Firefox project encompasses a web browser user interface and some
application toolkit infrastructure. These components are built on top
of the Gecko rendering engine, which is a separate collection of
Mozilla projects.
The code is organized into two directories, browser/ and toolkit/ at
the top level of the mozilla source tree.
browser/
- app/ - XULRunner glue to configure the app including
profile locations, and basic resources like icons.
- base/ - basic UI components for the browser front
end: browser window, view source, associated dialog boxes.
- components/ - discrete, complex browser subcomponents
including bookmarks/history, preferences, profile migration, system
integration hooks, search, etc.
- config/ - basic build configuration files for
autoconf.
- extensions/ - integration shims for some mozilla/extensions
components.
- installer/ - package listings for the installer.
- locales/ - all localizable files - strings for each
language
- themes/ - default firefox themes - style sheets and
image resources.
toolkit/
components/ - discrete, complex toolkit subcomponents
including autocomplete, command line handling, error console, about:config
etc. NOTE: not all subdirectories here are active, so make sure that the
code you're looking at is actually built and used before working on it.
content/ - basic shared user interface components including
find dialog, customizable toolbar UI, utility javascript etc.
content/widgets/ - XBL implementation of many XUL widgets
library/
locales/ - all localizable files - strings for each
language
mozapps/ - discrete, complex toolkit subcomponents that
are shared between Firefox and Thunderbird applications, e.g. download
manager, extension manager, the installer front end and packager scripts,
shared preferences etc. Note: mozapps really should be a toplevel directory
in the source repository, and code is not cleanly organized between this
directory and components.
obsolete/ - old files we're trying to eliminate over the
space of several releases.
profile/ - profile management infrastructure and user
interface.
themes/ - default toolkit themes - style sheets and
image resources.
xre/ - xulrunner engine. ("XUL Runtime Environment")
Exceptions
Some parts of the Firefox front end are still built from directories
under the Seamonkey "Cross Platform Front End" or "xpfe" directory.
If you can't find the code you're looking for under browser/ or
toolkit/, consult the Makefile.in in xpfe/components.
Other Parts of the Code
Documentation Links to other documentation sites.