Mozilla Add-ons
Publish your extension to Mozilla Add-ons.
Mozilla Firefox doesn't share extensions with Google Chrome, so you'll need to publish your extension to it separately.
Here, we'll go through the process of publishing an extension to Mozilla Add-ons.
Prerequisite
Make sure your extension follows the guidelines and other requirements to increase your chances of getting approved.
Developer account
Before you can publish items on Mozilla Add-ons, you must register a developer account. In comparison to the Chrome Web Store, Mozilla Add-ons doesn't require a registration fee.
To register, go to addons.mozilla.org and click on the Register button.
It's important to set at least a display name on your profile to increase transparency with users, add-on reviewers, and the greater community.
You can do it in the Edit My Profile section:
Submission
After registering your developer account, setting it up, and preparing your extension, you're ready to publish it to the store.
You can submit your extension in two ways:
- Manually: By uploading your extension's bundle directly to the store.
- Automatically: By using GitHub Actions to submit your extension to the stores.
The first submission must be done manually, while subsequent updates can be submitted automatically. We'll go through both approaches.
Manual submission
To manually submit your extension to stores, you will first need to get your extension bundle. If you ran the build step locally, you should already have the .zip
file in your extension's build
folder.
If you used GitHub Actions to build your extension, you can find the results in the workflow run. Download the artifacts and save them on your local machine.
Then, use the following steps to upload your item:
Sign in to your developer account
Go to the Add-ons Developer Hub and sign in to your developer account.
Choose distribution method
You should reach the following page:
Here, you have two ways of distributing your extension:
- On this site, if you want your add-on listed on AMO (Add-ons Manager).
- On your own, if you plan to distribute the add-on yourself and don't want it listed on AMO.
We recommend going with the first option, as it will allow you to reach more users and get more feedback. If you decide to go with the second option, please refer to the official documentation for more details.
Submit your extension
On the next page, click on Select file and choose your extension's .zip
bundle.
Once you upload the bundle, the validator checks the add-on for issues and the page updates:
If your add-on passes all the checks, you can proceed to the next step.
You may receive a message that you only have warnings. It's advisable to address these warnings, particularly those flagged as security or privacy issues, as they may result in your add-on failing review. However, you can continue with the submission.
If the validation fails, you'll need to address the issues and upload a new version of your add-on.
Submit source code (if needed)
You'll need to indicate whether you need to provide the source code of your extension:
If you select Yes, a section displays describing what you need to submit. Click Browse and locate and upload your source code package. See Source code submission for more information.
You may receive a message that you only have warnings. It's advisable to address these warnings, particularly those flagged as security or privacy issues, as they may result in your add-on failing review. However, you can continue with the submission.
If the validation fails, you'll need to address the issues and upload a new version of your add-on.
Add metadata
On the next page, you'll need to provide the following additional information about your extension:
- Name: Your add-on's name.
- Add-on URL: The URL for your add-on on AMO. A URL is automatically assigned based on your add-on's name. To change this, click Edit. The URL must be unique. You will be warned if another add-on is using your chosen URL, and you must enter a different one.
- Summary: A useful and descriptive short summary of your add-on.
- Description: A longer description that provides users with details of the extension's features and functionality.
- This add-on is experimental: Indicate if your add-on is experimental or otherwise not ready for general use. The add-on will be listed but with reduced visibility. You can remove this flag when your add-on is ready for general use.
- This add-on requires payment, non-free services or software, or additional hardware: Indicate if your add-on requires users to make an additional purchase for it to work fully.
- Select up to 2 Firefox categories for this add-on: Select categories that describe your add-on.
- Select up to 2 Firefox for Android categories for this add-on: Select categories that describe your add-on.
- Support email and Support website: Provide an email address and website where users can get in touch when they have questions, issues, or compliments.
- License: Select the appropriate license for your add-on. Click Details to learn more about each license.
- This add-on has a privacy policy: If any data is being transmitted from the user's device, a privacy policy explaining what is being sent and how it's used is required. Check this box and provide the privacy policy.
- Notes for Reviewers: Provide information to assist the AMO reviewer, such as login details for a dummy account, source code information, or similar.
Finalize the process
Once you're ready, click on the Submit Version button.
You can still edit your add-on's details from the dedicated page after submission.
Automated submission
First submission must be done manually
The first submission of your extension to Mozilla Add-ons must be done manually because you need to provide the store's credentials and extension ID to automation, which will be available only after the first bundle upload.
TurboStarter comes with a pre-configured GitHub Actions workflow to submit your extension to web stores automatically. It's located in the .github/workflows/publish-extension.yml
file.
What you need to do is fill the keys.json
file with your store's credentials using the keys.template.json
file as a template:
Please refer to the official guide to learn how to get these credentials correctly.
The keys.json
file is ignored by Git, so you don't need to worry about it being exposed as it won't be committed to your repository.
After that, set EXTENSION_SUBMIT_KEYS
as a secret in your GitHub repository to the content of the keys.json
file.
That's it! You can run the workflow and it will submit your extension to the Chrome Web Store.
Automated submission to review
This workflow will also try to send your extension to review, but it's not guaranteed to happen. You need to have all required information filled in your extension's details page to make it possible.
Even then, when you introduce some breaking change (e.g., add another permission), you'll need to update your extension store metadata and automatic submission won't be possible.
Review
Once you submit your extension bundle, it's automatically sent to review and will undergo a review process. The time for this review depends on the nature of your item.
The add-on review process includes the following phases:
- Automatic Review: Upon upload, the add-on undergoes several automatic validation steps to ensure its general safety.
- Content Review: Shortly after submission, a human reviewer inspects the add-on to ensure that the listing adheres to content review guidelines, including metadata such as the add-on name and description.
- Technical Code Review: The add-on's source code is examined to ensure compliance with review policies.
- Basic Functionality Testing: After the source code is verified as safe, the add-on undergoes basic functionality testing to confirm it operates as described.
There are important emails like takedown or rejection notifications that are enabled by default. To receive an email notification when your item is published or staged, you can enable notifications in the Account Settings.
The review status of your item appears in the developer hub next to each item.
You'll receive an email notification when the status of your item changes.
Your submission might be rejected
If your extension has been determined to violate one or more terms or policies, you will receive an email notification that contains the violation description and instructions on how to rectify it.
You can also check the reason behind the rejection on the Status page of your item.
You'll need to fix the issues and upload a new version of your extension. Make sure to follow the guidelines or check publishing troubleshooting for more info.
You can learn more about the review process in the official guides listed below.
Last updated on