Contents

Types

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.[1]

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.[citation needed] Firefox 3 includes features for retrieving and displaying content from the website in the add-on manager.[3]

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.[4][clarification needed]

On July 26, 2012, Mozilla announced that 3 billion add-ons were downloaded from the site.[5]

History

Formerly, Mozilla Add-ons was known as Mozilla Update (or UMO, as the hostname was update.mozilla.org). The site underwent several changes between its launch and when it became the AMO.[6]

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,[7] 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).[8] The site also featured a redesign,[9] codenamed Impala.

Extensions

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.

Mozilla Jetpack: A development kit aiming to lower the learning curve and development time for making add-ons

Uses

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.

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.[11]

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.

Security

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.[12]

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.[13]

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.[14][15]

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

Themes,[16] 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.[17][18]

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.[19]