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 Center. The tutorial, Building an Extension, will help explain how to setup your work environment and move forward with creating an add-on.

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 MDC article Setting up extension development environment

Where can I find documentation on building add-ons?

All Mozilla documentation on add-on development including tutorials and APIs can be found via the Mozilla Developer Center.

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?

Yes. You can use Mozilla's XPCOM component object model to enhance your add-ons. XPCOM components be used and implemented in JavaScript, Java, and Python in addition to C++.

Can I use a JavaScript library like jQuery, MooTools or Prototype to build my add-on?

Yes. It's possible, but some of the functionality provided by these libraries are available through XPCOM, XUL, and JS 1.8. In addition, authors should take care if libraries modify primitive object prototypes (String.prototype, Date.prototype, etc.) and/or define global functions (eg. the $ function). These are prone to cause conflict with other add-ons, in particular if different add-ons use different versions of libraries and so on. Developers need to be very, very careful with using them. Mozilla does not offer documentation on using them to build add-ons.

How do I test my add-on?

Details on testing your add-on are provided in the Testing & Debugging Extensions sections of the Building an Extension tutorial.

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. It's best to follow the steps outlined in the Building an Extension tutorial for testing your add-on. 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 you're add-on users are not negatively impacted upon final release of Mozilla software.

What is leak testing?

Memory leaks are typically bugs in the source code used to build applications which consume system memory without properly releasing it once the application has finished. Leak testing allows you to pinpoint which bit of code is causing the memory leak. The following is a good guide to finding tools and strategies that help manage leak testing. Mozilla's Carsten Book has also written an excellent HOW-TO article on the subject of leak testing in Firefox.

Can my add-on support multiple locales?

Yes. Details on localizing your add-on can be found in the Building an Extension tutorial as well as the Mozilla Developer Center Localization page. The BabelZilla project is also a great resource for learning about localization and volunteering to help translate add-ons.

Support Resources

I need some advice building my add-on. Where can I find help?

Mozilla offers the following support options for add-on developers:

Does Mozilla offer development services?

No.

Are there 3rd party developers that I can hire to build my add-on?

Yes. You may find 3rd party developers via the mozilla.jobs list, mozillaZine forums or the Mozilla Wiki. Please note that Mozilla does not offer developer recommendations.

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?

Yes. Our Privacy Policy describes how your information is managed by Mozilla.

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.

Can I include a privacy policy for my add-on?

Yes. You can specify a privacy policy when submitting your add-on. You can also add or update a privacy policy 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.

What are the Recommended Lists?

The Recommended lists are an important part of exposing AMO visitors to useful and compelling add-ons within a small & focused list. It allows us to feature add-ons that have done a good job of creating a unique and/or exciting enhancement to Mozilla software and increasing awareness of the thousands of add-ons hosted on AMO. The lists are broken down into two categories; Recommended and Category Recommended. The former is shown on the home page of AMO and is typically limited to 40 featured add-ons. The latter are lists of add-ons that are recommended at the category level. The only distinction between the two lists is that Category Recommended add-ons are not featured on the home page. Apart from that, both lists are meant to recognize the achievements of individual add-on authors and the work they’ve produced.

What is a Featured add-on?

The main page of AMO as well as the main page for each category contain three slots which are used to display a set of Featured Add-Ons. These add-ons are pulled from the Recommended and Category Recommended lists respectively and periodically rotated as described in the Featured Add-ons FAQ to allow recommended add-ons a chance for increased visibility to users. Featured add-ons are rotated regularly to prevent staleness.

How can my add-on be listed as Recommended?

This page describes the process by which the Recommended lists are managed.

Can I pay to have my add-on listed as Recommended?

No.

Why is my add-on no longer listed as Recommended?

This page describes the process by which the Recommended lists are managed.

User Reviews

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.

http://www.mozilla.org/MPL/

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.

http://techbase.kde.org/Policies/Licensing_Policy

A table summarizing and comparing how some of the key open source licenses treat distributions, proprietary software linking, and redistribution of code with changes.

http://www.fsf.org/licensing/licenses/

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.)

http://www.opensource.org/licenses/category

Open Source Initiative provides the terms of some of the key open source licenses.

http://en.wikipedia.org/wiki/Open_source_license

Wikipedia listing of known open source licenses.