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.
{% endtrans %}{{ _('Other resources include:') }}
{% trans %} 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: {% endtrans %}
{{ _('Popular code editors include:') }}
{% trans url="https://developer.mozilla.org/en/Setting_up_extension_development_environment"%} You can also learn more about setting up your development environment via the MDC article Setting up extension development environment {% endtrans %}
{% trans url="https://developer.mozilla.org/En"%} All Mozilla documentation on add-on development including tutorials and APIs can be found via the Mozilla Developer Center. {% endtrans %}
{% trans %} Extensions are packaged and distributed in ZIP files or Bundles, with the XPI (pronounced "zippy") file extension. {% endtrans %}
{% trans %} 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. {% endtrans %}
{% trans url="https://developer.mozilla.org/en/Install_Manifests"%} 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. {% endtrans %}
{% trans %} 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! {% endtrans %}
{% trans url="https://developer.mozilla.org/en/XPCOM"%} 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++. {% endtrans %}
{% trans %} 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. {% endtrans %}
{% trans test_url="https://developer.mozilla.org/en/Building_an_Extension#Test", debug_url="https://developer.mozilla.org/en/Building_an_Extension#Debugging_Extensions", ext_url="https://developer.mozilla.org/en/Building_an_Extension" %} Details on testing your add-on are provided in the Testing & Debugging Extensions sections of the Building an Extension tutorial. {% endtrans %}
{% trans ext_url="https://developer.mozilla.org/en/Building_an_Extension", test_url="https://developer.mozilla.org/en/Building_an_Extension#Test" %} 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. {% endtrans %}
{% trans leak_url="https://wiki.mozilla.org/Performance:Leak_Tools", wiki_url="https://wiki.mozilla.org/QA:Home_Page:Firefox_3.0_TestPlan:Leaks:LeakTesting-How-To" %} 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. {% endtrans %}
{% trans ext_url="https://developer.mozilla.org/en/Building_an_Extension#Localization", l10n_url="https://developer.mozilla.org/en/Localization", bz_url="http://www.babelzilla.org/" %} 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. {% endtrans %}
{# L10n: Heading for a list of resources for developers #}{{ _('Mozilla offers the following support options for add-on developers:') }}
{{ _('No.') }}
{% trans list_url="http://www.mozilla.org/community/developer-forums.html#projectwide-forums", mz_url="http://forums.mozillazine.org/", wiki_url="https://wiki.mozilla.org/Consulting" %} 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. {% endtrans %}
{% trans amo_url="https://addons.mozilla.org", md_url="http://mozdev.org/" %} 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. {% endtrans %}
{% trans url="https://addons.mozilla.org" %} Yes. You can host your add-on on Mozilla's add-on website. {% endtrans %}
{% trans %} 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. {% endtrans %}
{% trans url="https://addons.mozilla.org/en-US/firefox/pages/privacy" %} Yes. Our Privacy Policy describes how your information is managed by Mozilla. {% endtrans %}
{% trans %} 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. {% endtrans %}
{% trans p_url="https://addons.mozilla.org/en-US/firefox/pages/policy", g_url="https://wiki.mozilla.org/AMO:Editors/ReviewingGuide" %} 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. {% endtrans %}
{% trans url="https://wiki.mozilla.org/AMO:Editors/ReviewingGuide"%} 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. {% endtrans %}
{% trans %} You must choose the operating systems on which your add-on will successfully function. {% endtrans %}
{% trans %} 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. {% endtrans %}
{% trans %} Nominated add-ons are new add-ons that the author has nominated to become public via the Developer Tools. {% endtrans %}
{% trans %} 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. {% endtrans %}
{% trans %} 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. {% endtrans %}
{% trans url='https://wiki.mozilla.org/AMO:Editors/ReviewingGuide' %} 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. {% endtrans %}
{% trans url='https://wiki.mozilla.org/AMO:Editors/ReviewingGuide' %} 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 you're add-on is setup correctly and follows the guidelines outlined in the Editors Reviewing Guide. {% endtrans %}
{% trans url="https://wiki.mozilla.org/AMO:Editors/ReviewingGuide"%} 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 {% endtrans %}
{% trans %} 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: {% endtrans %}
{% trans g_url="https://wiki.mozilla.org/AMO:Editors/ReviewingGuide", blog_url="http://blog.mozilla.com/addons/2009/01/14/successfully-getting-your-addon-reviewed/" %} 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. {% endtrans %}
{% trans %} 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. {% endtrans %}
{% trans %} 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. {% endtrans %}
{% trans %} 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. {% endtrans %}
{% trans %} 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. {% endtrans %}
{% trans %} 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. {% endtrans %}
{% trans url="https://wiki.mozilla.org/AMO:Editors/Featured_and_Recommended#Featured_Add-Ons" %} 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. {% endtrans %}
{% trans url="http://blog.mozilla.com/addons/2009/03/10/the-hows-whys-of-the-amo-recommended-rotation/" %} This blog post describes the process by which the Recommended lists are managed. {% endtrans %}
{{ _('No.') }}
{% trans url="http://blog.mozilla.com/addons/2009/03/10/the-hows-whys-of-the-amo-recommended-rotation/" %} This blog post describes the process by which the Recommended lists are managed. {% endtrans %}
{% trans %} 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: {% endtrans %}
{% trans %} 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. {% endtrans %}
{% trans %} No. We do not remove negative reviews from add-ons unless they are found to be false. {% endtrans %}
{% trans %} 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. {% endtrans %}
{% trans %} 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. {% endtrans %}
{% trans %} 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. {% endtrans %}
{% trans %} A table summarizing and comparing how some of the key open source licenses treat distributions, proprietary software linking, and redistribution of code with changes. {% endtrans %}
{% trans %} 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.) {% endtrans %}
{% trans %} Open Source Initiative provides the terms of some of the key open source licenses. {% endtrans %}
{{ _('Wikipedia listing of known open source licenses.') }}