Changes

Jump to: navigation, search

Add-ons/Reviewers/Guide/Reviewing

2,594 bytes removed, 23:01, 17 August 2016
Removed references to preliminary review, legal text updates, minor tweaks
Add-on reviewers have a big responsibility. We need to ensure add-ons are safe to use, of good quality, and clearly presented to users. We also need to make sure developers get quick, clear, and actionable reviews.
AMO is designed so that popular add-ons bubble to the top search rankings. The full and preliminary review levels also create two layers that allow us to list add-ons that are not quite ready for general consumption. Since we have good filtering mechanisms on AMO, our Our general policy is to '''only reject when strictly necessary'''. Rejection is necessary when an add-on has security or privacy issues, doesn't meet our content policies, or fits one of the special cases spelled out later in this guide. If an add-on doesn't meet the criteria for rejection, it should at the least be granted preliminary approval.
== Policies and actions ==
= Step 1: Review Add-on Metadata =
Before getting started, here's a very important legal note: reviews '''must Our review process does not''' involve checking reviewing for copyright or trademark violations. You should not take '''infringement of any''' action on an add-on because you suspect it copies code from others without permission, or may otherwise infringe somebody else's copyright or trademarkkind. We are granted special legal protection against liability for copyright infringement by the The [http://en.wikipedia.org/wiki/Digital_Millennium_Copyright_Act DMCA]gives us protection from liability for hosting content that infringes copyright because of how hard it would be to review each add-on we host for copyright infringement. If you see something egregious, feel free to escalate it for super-review but only under strict conditions, which include a requirement that we do not screen the specifically review any content that we host for copyright issuesconcerns.
If you have any concerns about the legality or legitimacy of an add-on, please email amo-editors AT mozilla DOT org.
! style="border-bottom: 2px solid black" scope="col" | Notes
|- style="vertical-align: top;"
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | The add-on doesn't meet AMO content policiescomply with the Mozilla Conditions of Use.
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Reject
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | These are add-ons whichdo things like:* Embed known spyware or malwareAnything illegal.* Engage in illegal activitiesThreaten, harass, such as click fraudor violate privacy.* Have the primary purpose of facilitating illegal activities, Harm users such as access online gambling by using viruses, malware, or pirated materials, including warez and unlicensed music/video downloadsother malicious code.* Have the direct purpose of facilitating access to pornography. This includes, for instance add-ons which that specifically interact with, or direct users to, porn sites, but does not include, for instance, add-ons such as image downloaders why that may, but need not, be used for pornographic to access pornography but also have other purposes.|- style="vertical-align: top;"| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | The add-on uses Mozilla trademarks in its name.| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Reject| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | We allow Make sure to read the use rest of certain trademarks when appended to the name of an add-on (elist [https://www.gmozilla., "Video downloader for Firefox", "Inspector for Mozilla") in such a way as not to cause confusion as to the origin of the addorg/en-on. We do not allow uses which may suggest that the addUS/about/legal/acceptable-on is a Mozilla product (e.g., "Firefox downloader", "My Mozilla downloader", "Firefox++"). When in doubt, ask on the list or request super-reviewuse/ here].
|- style="vertical-align: top;"
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | The add-on version number is identical to previous version numberimproperly uses Mozilla trademarks in its name.
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Reject
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Due We allow the use of certain trademarks when appended to the inner workings name of our content delivery networkan add-on (e.g., "Video downloader for Firefox", uploads which re-use "Inspector for Mozilla") in such a version number will way as not reliably replace to cause confusion as to the previous versionorigin of the add-on. Every new submission needs We do not allow uses which may suggest that the add-on is a new version numberMozilla product (e.g., "Firefox downloader", "My Mozilla downloader", "Firefox++"). When in doubt, ask an admin or request super-review.
|- style="vertical-align: top;"
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | The add-on doesn't provide enough information in its descriptions for users to figure out what it does.
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | The add-on name and/or code appear copied or very similar to a popular add-on (like AdBlock Plus).
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Request super-review
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | These add-ons often can include malicious code, and may trick users into mistaking them for the original. We accept add-on forks, and add-ons with similar features to other add-ons, but we need to be very careful to ensure that they do not mislead users.
|- style="vertical-align: top;"
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Other copyright Copyright suspicions.
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | No action
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | We have a legal obligation ''not'' don’t review for copyright infringement, so unless you think it really needs to take get passed up for super-review, no action. See note at the beginning of this sectionis required.
|- style="vertical-align: top;"
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Missing Privacy Policy when necessary.
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Preliminary review Request more information| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | A Privacy Policy is required if an add-on sends any user information to a remote server, even if it is not personally-identifying. Even stats pings require a Privacy Policy. Reject if there's no reply from the developer.
|}
Add-ons must not be rejected because a reviewer doesn't find them useful. We let AMO users make that call, and add-ons that aren't very useful won't gain much usage and have low search rankings, so they'll stay mostly out of the way.
In some cases, however, reviewers should deny full review to add-ons due to their usefulness. Add-ons that commonly fall into this category are:* Add-ons that help access very specific webpages. For example, an add-on that makes it easier to use an internal business site or a university library. * Add-ons targeted to potentially dangerous and have a limited geographical area. For example, an add-on for a small, local newspaper or radio station. * Add-ons that don't do more than link to websites through buttons or menu items.* YouTube audience (or otherlike SSL certificate installers) video downloaders. We already have too many add-ons of this kindshould be Rejected, with little while noting to no distinction between them. Unless the developer that they can submit the add-on provides especially innovative features, it should not be granted full approvalas [https://developer.mozillaWhen in doubt, don't apply this policyorg/en-US/Add-ons/Distribution Unlisted].
= Step 2: Automatic validation =
We have a an extensive set of tests that identify common bad practices and possible security problems with add-on code. Reviewers must run the code validator and inspect the results when performing a review. Each Add-on History entry has a validation link, and you'll want to validate the latest one.
[[Image:Validation-link.png|center|Add-on validation link]]
Clicking on the link will take you to the validation page, where the automatic code validator will run for that version of the add-on and then the results will be displayed. We recommend opening this link in a new tab.
 
If the validator shows a validation error and no results, it's possible that reloading the validation page will fix the problem. If the problem persists contact the review team on the #amo-editors IRC channel or pick a different add-on to review.
==== Policies and actions ====
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Reject
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | See the [https://developer.mozilla.org/en/XUL/iframe#a-browser.type iframe documentation]. The type must be one of <code>"content"</code>, <code>"content-targetable"</code>, or <code>"content-primary"</code>. This must be done ''before'' anything is loaded on that <code>iframe</code>. If the <code>iframe</code> or <code>browser</code> is used to load only chrome content, and it is clear from the code that it will never load anything else, <code>type="chrome"</code> may be used when necessary.
|- style="vertical-align: top;"
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Storing passwords or other sensitive user data in the preferences.
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Reject
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Passwords and other sensitive data should be stored in the login service rather than in preferences.
|- style="vertical-align: top;"
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Changing Firefox preferences without user consent.
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Reject
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | These include: network preferences, update system preferences, homepage, User Agent string. They also must be restored to their previous values when the add-on is uninstalled.
|- style="vertical-align: top;"
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Inserting content with <code>innerHTML</code>.
|- style="vertical-align: top;"
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Using DOM Mutation events.
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Preliminary review Add note | style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | [https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver Mutation Observers] are the recommended alternative. For instances of this issue which were approved in past reviews, this should only result in a warning that it must be fixed.
|- style="vertical-align: top;"
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Native object prototype extension / Using the Prototype library.
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Preliminary review Add note
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | This only applies in XUL overlays, where the prototype extension affects the prototypes used by Firefox code and other overlays.
|- style="vertical-align: top;"
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Storing passwords or other sensitive user data in the preferences.
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Preliminary review
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Passwords and other sensitive data should be stored in the login service rather than in preferences.
|- style="vertical-align: top;"
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Changing Firefox preferences without user consent.
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Preliminary review
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | These include: network preferences, update system preferences, homepage, User Agent string. They also must be restored to their previous values when the add-on is uninstalled.
|- style="vertical-align: top;"
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Changing security preferences, permissions, certificates (<code>nsIX509CertDB</code>).
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Localization errors.
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Ignore
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Errors which result in breakage of user interfaces should result in rejection when built-in Firefox UIs are rejectedaffected, and preliminary review when just a note if only add-on interfaces are affected. Otherwise, they should be ignored.
|}
= Step 3: Code Review =
All add-on code must be reviewed. The code validator Automation can't detect all possible security or code quality issues, which is why we have a review teamhuman reviewers.
All Add-on History entries have a View Contents link that take you to the code browser page. Updates also have a Compare link, which will show you the code with the changed sections highlighted. For updates, the compare link should be used. Validation results are integrated into the code viewer, so you can see validation warnings in context. It's okay if you prefer to use other tools for code analysis and diffing.
== Libraries, frameworks and other unreadable code ==
It's very common for add-ons to use libraries or frameworks such as jQuery or Bootstrap. Some add-ons use complex frameworks like Kango, usually to achieve cross-browser compatibility. Finally, the Add-ons SDK generates various files around the actual add-on code. Our code validator will try to detect them, but it isnwon't very reliable currentlywork in every case. If detected, the library code won't generate validator warnings and it will be greyed out in the code viewer.
All libraries on [https://github.com/mozilla/amo-validator/blob/master/validator/testcases/hashes.txt this list] should be ignored, even if the validator doesn't detect them correctly. All other libraries should be handled carefully. The reviewer should find the original library file and diff it against the one included in the add-on, and also ensure the library doesn't do anything dangerous.
Aside from libraries, many add-ons can include minified, obfuscated or compiled code. Since this code can't be easily reviewed without the original sources, only admin reviewers can should review them. The Add-on History entry should indicate if the source code has been provided by the developer. If that's not the case, you can use the canned info request.
== Policies and Actions ==
|- style="vertical-align: top;"
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Using non-release version of Add-ons SDK.
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Preliminary reviewReject| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | The validator can detect many experimental versions of the SDK, but that doesn't make it OK to use in public add-ons. Public add-ons should use release versions of the SDK. Others should only get preliminary review.
|- style="vertical-align: top;"
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Using outdated Add-ons SDK library.
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Preliminary reviewReject| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | We accept the two most recent minor releases of the Add-on SDK. If the validator warns that the add-on is using an outdated SDK version, it is acceptable for full review if it is one release older than the suggested release. Otherwise, it is only eligible for preliminary review.
|- style="vertical-align: top;"
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Bad or no namespacing.
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Preliminary review Reject
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | All scripts that are included in the main window overlay should have proper namespacing to avoid name conflicts with other add-ons. The name should normally correspond to the add-on name in order to guarantee its uniqueness.
|- style="vertical-align: top;"
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Preference names without "extensions." or "services.sync.extensions." prefix.
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Preliminary review
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Add-on preferences should use the "extensions." prefix, and should also have a reasonable namespace (like "extensions.myVideoDownloader."). If the add-on is already public, this rule should be ignored.
|- style="vertical-align: top;"
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Privacy issues.
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Preliminary review Reject
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | An add-on can claim to work with a popular website like Twitter, but then send the user data through some other site, most likely owned by the developer. There needs to be a justified reason to handle user data in this manner, and the privacy policy and add-on descriptions need to be very clear about this. Passwords should never be handled in this way, and they should only be transmitted directly to the original API provider (Reject otherwise).
|- style="vertical-align: top;"
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Preference names without "extensions." or "services.sync.extensions." prefix.
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Add note
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Add-on preferences should use the "extensions." prefix, and should also have a reasonable namespace (like "extensions.myVideoDownloader.").
|- style="vertical-align: top;"
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Performance problems.
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Preliminary review Add note| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Synchronous (non-local) HTTP requests, synchronous SQL queries, noticeably inefficient code, random UI freezes, loading large amounts of JS code directly in overlays. Reject if the issues cause noticeable lag while testing.
|- style="vertical-align: top;"
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Writing files outside of the profile folder.
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Preliminary review Add note
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Some add-ons need helper files like SQL DBs or logs. Those files must be written in the profile folder, not the extension installation folder or other locations.
|- style="vertical-align: top;"
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Bootstrapped or SDK add-on doesn't clean up after itself.
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Preliminary review Add note
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Some things to look for: the add-on must not require a restart for any of its features to fully work, must not require a restart after being disabled or uninstalled, must unregister all observers and remove all UI when disabled or uninstalled. [http://maglione-k.users.sourceforge.net/bootstrapped.xhtml More details].
|- style="vertical-align: top;"
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | New version doesn't follow previous review requests.
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Preliminary review
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | If the author keeps submitting the same version, contact the mailing list.
|- style="vertical-align: top;"
| style="padding: 0.5ex 1ex 1ex 0pt; border-bottom: 1px solid black;" | Using non-standard preferences UI.
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Add note
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | See canned response.
|- style="vertical-align: top;"
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | New version doesn't follow previous review requests.
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Reject
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Ignore if they are minor issues.
|}
In general you should apply your judgement and try to identify code that may appear suspicious or out of place. Try to understand what everything does and how it all fits together.
 
If the add-on version is not nominated for full review, or if by this point you have sufficient information to deny the add-on full review, you can stop reviewing and submit what you have.
= Step 4: Feature Review =
The last step in a review is to install and test the add-on. This step is only necessary for an add-ons that are requesting Full Review.
Add-ons are normally cross-platform, in which case there will only be a single XPI to test. If the add-on is offered for a limited number of platforms or has different files for different platforms, there will be individual links for each one in the Add-on History entry. In this case all supported platforms should be tested.
Regarding application support(Firefox / SeaMonkey / Thunderbird), you don't need to test the add-on for on all of them. If the add-on supports Firefox and others, it's OK to only test on using Firefox.
== Testing setup ==
* '''Always use a separate profile for testing''', never your main profile. See [https://developer.mozilla.org/en/Setting_up_extension_development_environment Setting up an extension development environment].
* Ideally you should perform your tests in a virtual machine. It is always useful in case you need to test in multiple platforms. [httphttps://www.virtualbox.org/ VirtualBox] is free and works well. * Use [https://firefox.com/developer Firefox Developer Edition] for testing. If something needs to be tested on Beta or Release, you'll need to use the [[Addons/Extension_Signing|unbranded builds that can disable add-on signing enforcement]].
* The [https://addons.mozilla.org/addon/extension-test Extension Test add-on] helps detect loose variables and DOM IDs, prototype extension, dangerous category registration, and other difficult to spot problems.
* Test with the Browser Console always open, and look for errors or log messages generated by the add-on.
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Adding HTTP content to HTTPS pages. If the add-on injects content like iframes or images, make sure to visit HTTPS sites the add-on supports and look for any security warnings in the URL bar.
|- style="vertical-align: top;" id="no-surprises-violations"
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | [https://addonsdeveloper.mozilla.org/en-US/developersAdd-ons/docsAMO/policiesPolicy/reviewsReviews#section-defaults Privacy_and_User_Consent No Surprises] violation | style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Preliminary review Reject
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Changing homepage, default search provider, including unexpected ads or content changes without explicit user opt-in.
|- style="vertical-align: top;" id="affiliate"
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Affiliate linking.
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Reject
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Some add-ons add affiliate codes to Amazon links (or similar) in order to make money. At the moment we allow this as long as (1) the add-on follows the No Surprises policy, (2) the feature doesn't replace or remove any existing affiliate codes, (3) the affiliate codes aren't inserted in the merchant website's links (inserting Amazon affiliate codes in Amazon.com pages).
|- style="vertical-align: top;" id="privacy-violations"
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Privacy violations.
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Preliminary review Reject
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Incorrect or insufficient privacy policies, not respecting Private Browsing Mode.
|- style="vertical-align: top;" id="modal-startup"
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Showing a modal dialog at startup.
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Preliminary review Reject
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Opening modal (blocking) dialogs at startup is not allowed. Non-modal dialogs, separate windows or new tabs are allowed.
|- style="vertical-align: top;" id="errors"
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Errors in the Browser Console.
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Preliminary review Add note
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Make sure the errors only occur with the add-on installed and are generated from add-on code and not Firefox code. In the latter case, it should only be noted.
|- style="vertical-align: top;" id="confusing"
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Add-on is very hard to use even with instructions.
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Preliminary review Add note | style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | If the testing instructions for the add-on are missing, use Request more information. We have [[Add-ons/Reviewers/Guide/Logins|frequently-used test accounts listed here]] (ask an admin for the password). If even then it is too hard to use, give Preliminary review.
|- style="vertical-align: top;" id="sticky-toolbar-buttons"
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Toolbar buttons are not customizable.
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Preliminary review Add note
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | It must be possible to remove add-on buttons from the toolbar and move them to the menu panel.
|- style="vertical-align: top;" id="affiliate"
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Affiliate linking.
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Preliminary review
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Some add-ons add affiliate codes to Amazon links (or similar) in order to make money. At the moment we allow this as long as (1) the add-on follows the No Surprises policy, (2) the feature doesn't replace or remove any existing affiliate codes, (3) the affiliate codes aren't inserted in the merchant website's links (inserting Amazon affiliate codes in Amazon.com pages).
|- style="vertical-align: top;" id="third-party-software"
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Requires third party software or paid registration.
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Inserts ads into content.
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | Request super-review
| style="padding: .5ex 1ex 1ex 0; border-bottom: 1px solid black;" | The rules in these cases are complex. They need to be clearly labeled as coming from the add-on (otherwise Prelim). They , can't remove or replace existing ads (otherwise Reject). They , and need to follow No Surprises (otherwise Prelim). And there There are also security concerns (Reject) and privacy concerns (Prelim)that can lead to rejection.
|}
Other tests to perform:
*Test all add-on features, within reason. If there are too many, focus on the main features.*Remove all added toolbar buttons, disable all added toolbars, and restart the browser. Make sure that buttons and toolbars are all removable and do not reappear on restart. Make sure that missing toolbar buttons to do not cause errors to appear in the Error Console.*Open the Customize Toolbar dialog UI and make sure that all buttons have appropriate icons and label text.
*Open the add-on's preferences window, from the Add-ons Manager and elsewhere, and verify that preference changes apply properly. Make sure the window fits all of its contents (a common problem in Mac OS).
= Step 5: Resolution =
Choose the appropriate resolution and include all of your notes. Make sure you use a corteous courteous and professional tone, and be as helpful as you can when pointing out problems or areas for improvement. The canned responses are very useful in formatting a response. Once you're ready, click the ''Save'' button.
'''Reviewer Intro Tour:''' remember to ask the guide to give your response a look before sending it. After submitting your first review, make sure you spend some time reading the rest of the guide.
[[Add-ons/Reviewers/Guide/Moderation|Next: Moderation]]
Canmove, confirm
1,448
edits

Navigation menu