Mozilla add-ons are installable enhancements to the Mozilla Foundation's projects, including Firefox, Thunderbird, SeaMonkey, and Sunbird. Add-ons allow the user to add or augment application features, use themes to their liking, and handle new types of content.
There are three types of add-ons: "Extensions", "Personas" and "Plug-ins". The main repository for distributing the first two type is the eponymous Mozilla Add-ons website.
There are several types of add-ons:
- Extensions: Modify the behavior of existing features or add new features. The feature could be something in the user interface or a functional feature that manifests itself when a certain action is performed. Themes are examples of extensions that primarily concern themselves with the user interface. Search engine definitions are examples of functional extensions. A list of extensions can be found in the List of Firefox extensions article, although there are others for Thunderbird, SeaMonkey and Sunbird.
- Themes: Formerly known as "Personas". Strictly modify certain elements of the user interface. Their most prominently featured change is the background image that they add to toolbars, menu bars and status bars of the main application window. They may change the text and background color as well.
- Plug-ins: Render web contents that the program cannot natively render. For example, Adobe Flash Player is such a plug-in; it renders embedded Adobe Flash contents in web pages. The framework that enables creation of Mozilla plug-ins is called NPAPI. Mozilla plug-ins are being phased out; Mozilla plans to discontinue most plug-ins in Firefox by 2016.
|This section relies too much on references to primary sources. (May 2014)|
Screenshot of Mozilla Add-ons website
Type of site
|Registration||Free; only needed for developers or for special features|
|Created by||Andy McKay, Chris Howse, Gregory Koberger, Jeff Balogh, Jorge Villalobos (jorgev), Justin Scott (fligtar), Kumar McMillan, Matt Claypotch, Stephen Donner, Wil Clouser, et al.|
The eponymous Mozilla Add-ons website is the official Mozilla Foundation repository for add-ons of Mozilla software, including Mozilla Firefox, Mozilla Thunderbird, SeaMonkey, and Mozilla Sunbird. These add-ons include Mozilla extensions and personas, but not Mozilla plug-ins.
In contrast to mozdev.org which provides free hosting for Mozilla-related projects, Mozilla Add-ons is targeted to end-users, not just software developers. Many Mozilla applications contain direct links to the website, and contain settings to poll for updates to the extensions and the application itself. Firefox 3 includes features for retrieving and displaying content from the website in the add-on manager.
On January 30, 2008, it was announced that over 600 million add-ons had been downloaded from the site and that over 100 million add-ons automatically check the site for updates every day.[clarification needed]
On July 26, 2012, Mozilla announced that 3 billion add-ons were downloaded from the site.
- A major rewrite of the public pages was launched on April 4, 2006.
- A visual refresh of the Firefox pages was pushed on October 24, 2006 to correspond with the launch of Firefox 2 and the newly styled mozilla.com.
- A complete rewrite of both the developer and public pages, codenamed Remora, was launched on March 23, 2007.
- Another visual refresh, "Remora 3.2", launched spring 2008.
- In 2011, Remora (written in PHP/CakePHP) was replaced with Zamboni (written in Python/Django). The site also featured a redesign, codenamed Impala.
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.
Extensions can be developed using the following technologies:
- XUL: Defines the user interface and interactions with users
- Cascading Style Sheets (CSS)
- Document Object Model (DOM): Changes XUL code in real-time and to edits HTML contents that is being loaded
- 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.
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.
Unlike Google Chrome, the Mozilla platform has no mechanism to restrict the privileges of extensions. Extension code is fully trusted by Mozilla applications. There are no restrictions on intercommunication between extensions as well as the operating system. This means that one extension can read or modify the data used by another extension or any file accessible to the user running Mozilla applications.
Mozilla extensions are per default installed into the applications user profile where their code can be overwritten by the user or any program run by the user. Since the Mozilla platform does not check the integrity of installed extensions they can trivially be (ab)used for arbitrary code execution.
From Firefox 40.0, Mozilla began to roll out a requirement for extension signing in the Release and Beta channels to improve end-user security. From 40.0, the browser warns the end user an extension is unsigned, from 43.0, unsigned extensions could only be installed if a special option in the about:config page was enabled. In 44.0 Firefox will block the installation of unsigned extensions. The Developer Edition and Nightly versions of Firefox will have a setting to disable signature enforcement. An unbranded version of Firefox Release and Beta is planned to allow developers to work on extensions without the requirement.
Compatibility and updates
Extensions contain XML files bearing 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 on 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. The success of a formal compatibility check is no guarantee the add-on will work, however. It is even possible to override the compatibility check using various extensions.
The add-on manager periodically checks for updates for extensions installed from the Mozilla Add-ons website, although checks for updates can be manually initiated by the user. If the developer includes provisions to check elsewhere, the add-on manager will do so.
Themes, originally called Personas, allow users to quickly change the look of their applications. Although support for Personas was initially available as an extension, the feature was built into Firefox 3.6, and later other applications. These background themes differ from traditional themes available before, which were implemented as Mozilla extensions. Mozilla themes are more basic, easier to create, and easier to install, but are limited to changing the background image, background color and text color of toolbars, menu bars and status bars. They cannot alter the shape or appearance of toolbar items or tabs in the way that extensions can. In regards to installation, they can be installed and activated with exactly one click.
Originally hosted on GetPersonas.com, they were moved to the Mozilla Add-ons website in 2013. In addition, because to the similarity of the name with an authentication scheme called "Mozilla Persona", Mozilla stopped using this term in favor the more generic word "theme", even though there is a distinction between theme implemented as an extension and Personas, in terms of installation and handling by Add-on Manager.
Although the feature was met with general favor, TechCrunch has criticized Mozilla for focusing on developing eye candy for the browser rather than placing more attention on improving the speed and usability of Firefox.
Mozilla plugins are browser extensions used render web contents that the application itself cannot render. They are created using NPAPI framework. Firefox 41.0 comes with two plug-ins pre-installed: "Open H.264 Video Codec" by Cisco and "Primetime Content Decryption Module" by Adobe Systems. Common third-party Mozilla plugins include Adobe Flash Player, Acrobat Reader, Adobe Shockwave Player, Java SE, QuickTime and RealPlayer. Unlike other types of add-ons, Mozilla does not distribute plug-ins; furthermore the add-on manager cannot update them.
- Smedberg, Benjamin (8 October 2015). "NPAPI Plugins in Firefox". Future Releases. Mozilla Foundation.
- "Site Credits". Mozilla Add-ons. Mozilla Foundation. Retrieved 16 February 2011.
- "Customizing your Firefox with add-ons: Acquiring add-ons". Retrieved 2008-07-07.[dead link]
- "600,000,000 Add-on Downloads < Blog of Metrics". Blog.Mozilla.com.
- "Firefox Add-ons Cross More Than 3 Billion Downloads!". The Mozilla blog. Retrieved 1 November 2013.
- "MozillaWiki: AMO Roadmap". Retrieved 2008-07-07.
- "MozillaWiki: Remora". Retrieved 2008-07-07.
- "Traces of a new AMO".
- "Previewing AMO's new look".
- Chapter 2: Technologies used in developing extensions - Firefox addons developer guide | MDN. Developer.mozilla.org. Retrieved on 2013-07-21.
- User script - GreaseSpot Wiki. Wiki.greasespot.net (2010-11-17). Retrieved on 2013-07-21.
- "Abusing, Exploiting and Pwning with Firefox Add-ons" (PDF).
- "Add-on code stored in profile folder raises security risk".
- Fisher, Dennis. "Firefox 40 Begins Warning Users About Unsigned Add-Ons". Threatpost. Retrieved 20 August 2015.
- "Extension Signing". Mozilla.org Wiki. Mozilla. Retrieved 20 August 2015.
- "Personas for Firefox: Getting Started". Mozilla Foundation. Retrieved 2013-03-29.
- "Make Your Firefox Browser Look Better With Mozilla Labs' Latest Skins". TechCrunch. 2009-03-31. Retrieved 2013-02-10.
- "Check Your Plugins". mozilla.org. Mozilla Foundation. Retrieved 2015-10-09.
- Smedberg, Benjamin (8 October 2015). "NPAPI Plugins in Firefox". Future Releases. Mozilla Foundation.