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/

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.