Add-on Developer FAQ
Developing an Add-on
How do I build an Add-on?
Mozilla provides documentation on how to build an add-on via the Mozilla Developer Network.
Other resources include:
What tools do I need to be able to build an Add-on?
You will need to have a version of the Mozilla software that you're building the add-on for and a code editor of your choice. Add-ons can be built for almost all Mozilla software but are primarily targeted for:
Popular code editors include:
You can also learn more about setting up your development environment via the MDN article Setting up extension development environment
What is a ".xpi" file?
Extensions are packaged and distributed in ZIP files or Bundles, with the XPI (pronounced "zippy") file extension.
What is XUL?
XUL (XML User Interface Language) is Mozilla's XML-based language that lets you build feature-rich cross platform applications. It provides user interface widgets like buttons, menus, toolbars, trees, etc that can be used to enhance add-ons by modifying parts of the browser UI.
What is the "install.rdf" file used for?
This file, called an Install Manifest, is used by Add-on Manager-enabled XUL applications to determine information about an add-on as it is being installed. It contains metadata identifying the add-on, providing information about who created it, where more information can be found about it, which versions of what applications it is compatible with, how it should be updated, and so on. The format of the Install Manifest is RDF/XML.
What does "maxVersion" mean?
This determines the maximum version of Firefox you're saying this extension will work with. Set this to be no newer than the newest currently available version!
Can my add-on contain binary components?
How do I debug my add-on?
You can use the Add-on Debugger.
How do I test for compatibility with the latest version of Mozilla software?
To ensure compatibility with the latest Mozilla software, it's important to download updates as they become available and test your add-on to ensure that it is still functioning as expected. In many cases, the latest version of Mozilla software may be a beta release. Since these releases at times introduce architectural changes that may impact the functionality of your add-on, it's important to be actively involved in the beta process to ensure that your add-on users are not negatively impacted upon final release of Mozilla software.
How to improve the performance of my add-on?
Poorly written extensions can have a severe impact on the browsing experience, including on the overall performance of Firefox itself. The following page contains many good guides that help you improve performance, whether you're developing core Mozilla code or an add-on.
Can my add-on support multiple locales?
Yes. Details on localizing your add-on can be found in the the Mozilla Developer Network Localization page. The BabelZilla project is also a great resource for learning about localization and volunteering to help translate add-ons.
I need some advice building my add-on. Where can I find help?
- #extdev (for add-on development discussions)
- #amo (for support relating to hosting your add-on on AMO)
- #jetpack (for discussions about the Add-ons SDK and cfx/jpm - formerly known as Jetpack)
- Mailing List
- Google Group
- Add-ons forum
- Stack Overflow
Does Mozilla offer development services?
Are there 3rd party developers that I can hire to build my add-on?
Contributing your Add-on
Can I host my own add-on?
Yes. Many developers choose to host their own add-ons. Choosing to host your add-on on Mozilla's add-on site, though, allows for much greater exposure to your add-on due to the large volume of visitors to the site. mozdev.org offers free project hosting for Mozilla applications and extensions providing developers with tools to help manage source code, version control, bug tracking and documentation.
Can Mozilla host my add-on?
Yes. You can host your add-on on Mozilla's add-on website.
What is AMO?
Mozilla's AMO (https://addons.mozilla.org) is the incubator that helps developers build, distribute, and support fantastic consumer products powered by Mozilla. It provides you the tools and infrastructure necessary to manage, host and expose your add-on to a massive base of Mozilla users.
Does Mozilla keep my account information private?
What are the "developer tools" listed on AMO?
The "Developer Tools" dashboard is the area that provides you the tools to successfully manage your add-ons. It provides the functionality necessary to submit your add-ons to AMO, manage add-on information, and review statistics.
Does Mozilla have a policy in place as to what is an acceptable submission?
Yes. Mozilla's Add-on Policy describes what is an acceptable submission. This policy is subject to change without notice. In addition, the AMO editorial team uses the Editors Reviewing Guide to ensure that your add-on meets specific guidelines for functionality and security.
How do I submit my add-on for review?
The Developer Tools dashboard will allow you to upload and submit add-ons to AMO. You must be a registered AMO users before you can submit an add-on. Before submitting your add-on be sure to you have read the AMO Editors Reviewing Guide to ensure that your add-on has met the guidelines used by editors to review add-ons.
What operating system do I choose for my add-on?
You must choose the operating systems on which your add-on will successfully function.
What category do I choose for my add-on?
The choice of category is dependent on what type of audience you are targeting and the functionality of your add-on. If you're unsure of which category your add-on falls into, please choose "Other". The AMO team may re-categorize your add-on if it's determined that it's better suited in a different category.
What does "nominating" my add-on mean?
Nominated add-ons are new add-ons that the author has nominated to become public via the Developer Tools.
Can I specify a license agreement for using my add-on?
Yes. You can specify a license agreement when submitting your add-on. You can also add or update a license agreement via the Developer Tools dashboard after your add-on has been submitted.
Add-on Review Process
Why must my add-on be reviewed?
All add-ons submitted, whether new or updated, are reviewed to ensure that Mozilla users have a stable and safe experience. All add-ons submissions are reviewed using the guidelines outlined in the Editors Reviewing Guide.
Who reviews my add-on?
Add-ons are reviewed by the AMO Editors, a group of talented developers that volunteer to help the Mozilla project by reviewing add-ons to ensure a stable and safe experience for Mozilla users. When communicating with editors, please be courteous, patient and respectful as they are working hard to ensure that your add-on is set up correctly and follows the guidelines outlined in the Editors Reviewing Guide.
What are the guidelines used to review my add-on?
The Mozilla editorial team follows the Editors Reviewing Guide when testing an add-on for acceptance onto AMO. It is important that add-on developers review this guide to ensure that common problem areas are addressed prior to submitting their add-on for review. This will greatly assist in expediting the review process.
How long will it take for my add-on to be reviewed?
We cannot give a time estimate as to how long it will take before an add-on is reviewed. Many factors affect the time including the:
- number of add-on submissions
- complexity of an add-on’s code
- number of problem areas discovered
This is why it's very important to read the Editors Reviewing Guide to ensure that your add-on is setup as expected. It's also a good idea to read the blog post, Successfully Getting your Add-on Reviewed which provides excellent insight into ensuring a smooth review of your add-on.
Managing Your Add-on
How can I see how many times my add-on has been downloaded?
The Statistics Dashboard found in the Developer Tools dashboard provides information that can help you determine your add-on downloads since you've submitted it to AMO.
How can I see how many active users are using my add-on?
The Statistics Dashboard found in the Developer Tools dashboard provides information that can help you determine how many users have been actively using your add-on since you've submitted it to AMO.
How do I submit an update for my add-on?
You can submit an update for your add-on via the Developer Tools dashboard by choosing the option "Upload a new version" and uploading a new .xpi file for your add-on.
Does my update need to be reviewed by editors?
That depends. If you are simply changing a description of your add-on or updating a "maxVersion" to ensure compatibility with a new Mozilla software update, then your add-on does not need to be reviewed again. If, however, you submit a new updated file, then your add-on update will need to be reviewed by an editor.
How do I reply to a user who has posted a negative review of my add-on?
A developer may reply to any review posted to their add-on as long as they are logged into AMO. In addition, any user can flag a review as:
- Spam or otherwise non-review content
- Inappropriate language/dialog
- Misplaced bug report or support request
- Other (provides a pop-up prompt for information)
Currently, AMO does not provide a mechanism to directly communicate with a reviewer but this feature is being investigated and considered for a future update.
Can I request that a review be removed if the review is negative?
No. We do not remove negative reviews from add-ons unless they are found to be false.
Can I request that a review be removed if the review is inaccurate?
If an author contacts us and asks for a review containing false or inaccurate information to be removed, we will review the post and consider removing it.
References for Open Source Licenses
Do you need more information about the various open source licenses? Are you confused as to which license you should select? What rights does a specific license grant? While nothing replaces reading the full terms of a license, below are some sites that contain information about some of the key open source licenses that may help you sort out the differences between them. These sites are being provided solely for your convenience and as a reference for your personal use. These resources do not constitute legal advice nor should they be used in lieu of such advice. Mozilla neither guarantees nor is responsible for the content of these sites or your reliance on such content.
In addition to the full text of the Mozilla Public License("MPL"), this also provides an annotated version of the MPL and an FAQ to help you if you want to use or distribute code licensed under it.
A table summarizing and comparing how some of the key open source licenses treat distributions, proprietary software linking, and redistribution of code with changes.
Free Software Foundation provides short summaries of the key open source licenses, including whether the license qualifies as a free software license or a copyleft license. Also includes a discussion of what constitutes a free software license or a copyleft license (e.g., a Copyleft license is a general method for making a program or other work free, and requiring all modified and extended versions of the program to be free as well.)
Open Source Initiative provides the terms of some of the key open source licenses.
A comparison of known open source licenses on Wikipedia.
A site to provide non-judgmental guidance on choosing a license for your open source project.