The standard browser extension distribution and installation process is through Firefox using a signed XPI file obtained from addons.mozilla.org (AMO) (for listed add-ons) or a download set up by a developer (for unlisted add-ons).
Here we look at the signing requirements and the related reviews, before discussing how to choose between distributing on AMO or distributing an browser extension yourself. We also look at the channels available on AMO and answer questions about code ownership and disputes.
Signing your extension
Browser extensions need to be signed by Mozilla before they can install in release and beta versions of Firefox. Themes, and other types of add-ons such as spelling dictionaries, don't need to be signed.
This signing process takes place through addons.mozilla.org (AMO), whether you choose to distribute your add-on through AMO or to do it yourself.
Mozilla signs browser extensions through the AMO website. There are three ways to submit your extension for signing:
- upload your add-on through the Developer Hub on AMO.
- use the addons.mozilla.org signing API.
- use web-ext sign.
All the signing options are subject to the Firefox Add-on Distribution Agreement.
If you upload your extension through the AMO Developer Hub, you're given a choice between listing on AMO or self-distribution. If you choose self-distribution, at the end of the process you download signed copies of your add-on.
Using the signing API or web-ext returns your signed add-ons, with no distribution listing created on AMO.
Regardless of the method used, all add-ons must pass an automated validation before they are signed. They may also be subject to a manual code review. The review criteria applied to extensions are found in the Add-on Policies.
Distributing your extension
You aren't required to list or distribute your extension through AMO. You will need to decide whether you want to distribute and list your extension through AMO or distribute it yourself. Here are some things you should consider:
- AMO is a very popular distribution platform, with millions of monthly visitors and installations.
- AMO is integrated into the Firefox Add-ons Manager, allowing for easy installation of extensions published on AMO.
- When an extension is listed on AMO, updates to installed copies are handled automatically by Firefox each time a new version is listed on AMO.
- The URL where Firefox can find updates must be included in the extension manifest's update_link key in order for Firefox to perform automatic updates. Self-distributed extensions that don't have an update URL check AMO for updates and are updated to a listed version, if one is available.
For more information on how to submit an add-on for distribution on AMO or self-distribution, see Submitting an add-on.
Other distribution options
These methods may not suit everyone, for example, where a browser extension is bundled with a native application or an enterprise wishes to install an extension for all their instances of Firefox. This section describes the alternatives.
Sideloading add-ons — enables a user to install an add-on using an XPI file saved on their computer.
Add-ons for use with a desktop app — this section describes the best practices for delivering an extension for use with a desktop application.
Add-ons in an enterprise environment — this page discusses the use of signed compared to unsigned extensions, installation options, the Firefox settings affecting installation, and including add-ons with a custom Firefox install package.