AMO:Editors/EditorGuide/SpecialAddonTypes
Reviewing Special Add-on Types
An overwhelming majority of add-ons are extensions, so our policies are mostly oriented to those. However, there are checks that are important to keep in mind when reviewing other types of add-ons.
Bootstrapped (Restartless) Add-ons
Bootstrapped add-ons are extensions for Gecko 2 (Firefox 4) which are installed, upgraded, enabled, and disabled all without an aplication restart. They can be identified by the presence of the em:bootstrapped flag in install.rdf.
The main challenge for boostrapped add-ons is to clean up after themselves. They are not allowed to register chrome or overlays because they have no inverse operation. Bootstrapped add-ons that don't perform proper cleanup should receive a Preliminary Approval at most.
Some things to look for:
- The add-on must not require a restart for any of its features to fully work.
- The add-on must not require a restart after being disabled or uninstalled.
- Unregister all observers when disabled or uninstalled.
- Remove all event listeners when disabled or uninstalled.
- Remove all UI when disabled or uninstalled.
The add-on should be installed, uninstalled, disabled and enabled a couple of times during a single session to test the main entry points.
A more detailed treatment of this topic by a member of our team can be found here.
Search Engines
It is required for search engines to have a relevant icon, and a clear, concise name.
We should only approve those search engine add-ons that provide unique access to a given engine. For example, only one eBay.de engine should be allowed to be public, but there can be multiple add-ons that search for online charities (as long as each uses a different domain for the search).
If a nominated search engine is identical to an already public search engine, it should only be approved (and the other must be downgraded to Preliminary Review) if:
1) It provides better functionality, like Search Suggestions, or direct access to the search site (instead of Google Custom Search or other intermediate search pages).
2) It's free of referral codes or unnecessary advertising.
3) It is provided by the official search engine creator.
These rules are ordered by priority, so if (1) applies, there's no need to look at (2) or (3). If none of these rules apply, the oldest add-on should be the one we allow to be public.
It's forbidden to submit search engines that ping third parties, be it through the search suggestions feature or redirecting the search through an intermediate page. It's acceptable if the third party is well-known, like Google Suggestions, and the add-on description is clear about it.
Dealing with referral codes:
- The author should disclose any referral tracking in the add-on description and Privacy Policy.
- How to see if referrals are being used?
- Perform a "pure search" directly on the site and see what URL is generated and compare to the URL generated by the plugin - compare URL parameters and note differences.
- Are there "extra" parameters in the plugin that happen to match the name of the author or author's company?
- Are there URL parameters such as ref= or affiliate= or something similar?
Changing add-ons' statuses
Only senior editors can change the status of an add-on. If you can't modify the search engine status yourself, you can send a message to the mailing list and somebody else will handle this for you.
If you can do this, make sure you send a message to the add-on author explaining why this happened.
Dictionaries
A dictionary is used by Firefox for the built-in spellchecker, and it supports multiple dictionaries. Dictionaries are .xpi files.
Multiple dictionaries for a single locale are fine as long as they all provide value. See for example the multiple French dictionaries available.
One way to test dictionaries is to find the corresponding locale Wikipedia and then open a page for editing. This will give you a good idea of the words that the dictionary includes or doesn't include. You can also type a little and see the word suggestions it gives you. They should generally be approved, unless something is really wrong with the add-on.
If an author wants a dictionary to be featured in the main dictionaries page at AMO, they should contact the mailing list. Admin editors will review the add-on and add the add-on to the list if appropriate.
Language Packs
A language pack is an add-on that enables support for additional language(s) in one Firefox installation. Do not confuse with locales in extensions. Language packs are typically separate XPI or JAR files that contain only locale files.
- Language packs should only include strings and not JavaScript. If they do, they should be flagged for Admin Review. The code validator has a check for this.
- Deny if: XML parsing errors in opening all menus, all pref-dialog panes, Error console and Add-on manager.
- Suggested Tools: run a completeness test using compare-packs.
- Lang packs must not break application updates, in particular they should not override the general.useragent.locale pref.
If an author wants a language pack to be featured in the main language pack page at AMO, they should contact the mailing list. Admin editors will review the add-on and add the add-on to the list if appropriate.