Mozilla's getting a new look. What do you think? https://mzl.la/brandsurvey

Publishing your WebExtension

Once you've finished writing and testing your WebExtension, you'll probably want to share it with other people. Mozilla operates a website: addons.mozilla.org (commonly abbreviated to AMO), where developers can publish add-ons and users can find them. By publishing your add-on on AMO, you can participate in our community of users and creators, and find an audience for your add-on.

You don't have to publish your add-on on AMO. However, even if you are not intending to publish your add-on on AMO, you do have to submit it to AMO so it can be reviewed and signed. Release versions of Firefox will refuse to install add-ons that are not signed by AMO.

So the process for publishing an add-on is, in outline:

  1. zip up your add-on's files
  2. create an account on AMO
  3. upload your zip to AMO for signing and review, and choose whether to publish it in AMO or not
  4. fix any problems that are found in review
  5. if you chose not to publish on AMO, retrieve the signed add-on, and publish it yourself

When you're ready to release a new version of your add-on, you can update it by visiting the add-on's page on addons.mozilla.org, and uploading the new version there. Note that you must update it on the add-on's page, so AMO recognizes it as an update to an existing add-on, and not a brand-new one.

If you chose to publish your add-on on AMO, then Firefox will automatically check for updates. If you chose to publish it yourself, you'll need to include the applications key in your manifest.json, with the update_url attribute set to point to an update manifest file.

Packaged extensions in Firefox are called "XPI files", which are just ZIP files with a different extension.

You don't have to use the XPI extension when uploading to AMO.

1. Zip up your add-on's files

At this point your add-on will consist of a directory containing a manifest.json and any other files it needs - scripts, icons, HTML documents, and so on. You'll need to zip these into a single file for uploading to AMO.

One trick is that the ZIP file must be a ZIP of the add-on's files themselves, not of the containing directory.

Windows

  1. Open the folder with your add-on's files.
  2. Select all of the files.
  3. Right click and choose Send to → Compressed (zipped) Folder.

Mac OS X

  1. Open the folder with your add-on's files.
  2. Select all of the files.
  3. Right click and choose Compress n Items.

Linux / Mac OS X Terminal

  1. cd path/to/my-addon/
  2. zip -r ../my-addon.zip *

2. Create an account on addons.mozilla.org

Visit https://addons.mozilla.org/. If you already have a Firefox Account, you can use that to log in. Otherwise, click "Register" and you'll be asked to create a Firefox account.

3. Upload your zip

Next, upload the zipped add-on to AMO for signing and review, and choose whether to publish it in AMO or not. For more details on this, see Submitting to AMO.

Note that once you have uploaded your WebExtension to AMO, you can't then update it to use the Add-on SDK or legacy XUL/XPCOM techniques. If you do switch to one of these platforms, you must submit it as a distinct new add-on.

4. Fix review problems

As soon as you upload the add-on, the AMO server will run some basic checks and immediately notify you about any problems. Problems are presented in two categories: "errors" and "warnings". If you have errors, you must fix them and resubmit. If you only have warnings, it's advisable to address them, but not mandatory: you can continue with the submission.

If the automated checker doesn't report any errors, the add-on will go for a more detailed review. You'll be contacted with the review results and will need to fix any problems and resubmit.

If you have chosen to have the add-on hosted on AMO, this is the end of the publication process. AMO will sign the add-on and publish it, and users will then be able to download and install it.

5. Publish your add-on

If you chose not to publish on AMO, retrieve the signed add-on, and publish it yourself.

 

Document Tags and Contributors

 Contributors to this page: wbamberg
 Last updated by: wbamberg,