||This article needs additional citations for verification. (June 2007)|
Add-ons are installable enhancements to the Mozilla Foundation's projects, and projects based on them. Add-ons allow the user to add or augment application features, use themes to their liking, and handle new types of content.
Types of add-ons 
Extensions can be used to modify the behavior of existing features to the application or add entirely new features. Extensions are especially popular with Firefox, because Mozilla developers intend for the browser to be a fairly minimalistic application in order to reduce software bloat and bugs, while retaining a high degree of extensibility, so that individual users can add the features that they prefer.
- CSS (Cascading Style Sheets)
- DOM (Document Object Model) – Used to change XUL in real-time or to edit HTML that is currently loaded
- XPCOM (Cross-Platform Component Object Model)
- XPI (Cross-Platform Installer)
- XUL (XML User Interface Language) – Used to define the UI (User Interface) and interaction with user.
- Mozilla Jetpack – a development kit aiming to lower the learning curve and development time for making add-ons.
Interface changes 
Some extensions are used to change the interface of the application. These are not to be confused with personas, which are a theme management feature. For example, several add-ons exist to change the color of the Firefox button, such as ColorizedButton. There is also an add-on which moves the menu bar to where the window title normally is on windows machines.
Adding features 
Extensions are generally used to add functions to the application. Examples of functions which an extension might add include RSS readers, bookmark organizers, toolbars, website-specific client programs, FTP, e-mail, mouse gestures, proxy server switching, or developer tools. Many Firefox extensions implement features formerly part of the Mozilla Suite, such as the ChatZilla IRC client and a calendar.
Modifying how the user views web pages 
Many extensions can change the content of a webpage as it is rendered. For example, Adblock extensions can prevent the browser from loading images which are advertisements. Another popular extension, Greasemonkey, allows the user to install scripts which modify a targeted subset of webpages on the fly in a manner which is the programmatic complement to user style sheets.
Other uses 
Extensions also exist for frivolous, humorous or satirical purposes. Some allude to historical features of the Firefox browser, for example restoring the "delicious delicacies" placeholder text removed in Firefox 0.9, or generating random browser names to allude to the Firefox name changes.
Compatibility and updates 
Add-ons contain files with XML metadata utilized by the mechanism which controls add-on installation. Among other things, this file identifies maximum and minimum versions of a Mozilla project application with which the add-on may be used. If an attempt is made to install the add-on on a version outside of this range, it will install but will be disabled. Add-ons will often work outside of their compatibility range, and indeed some advanced users edit the metadata file to allow the released version of the add-on to run on their install. It is even possible to override the compatibility check using various extensions.
The success of a formal compatibility check is no guarantee the add-on will work, however.
The add-on manager periodically checks for updates to installed add-ons, although checks for updates can be manually initiated by the user. By default, the update service will look for updates at Mozilla Add-ons, but if the developer includes provisions to check elsewhere, the service will do so.
See also 
- Mozilla Add-ons, the official add-ons repository
- Extensions documentation on Mozilla Developer Center