Add-ons/AMO-Manual

< Add-ons
Revision as of 23:43, 17 March 2017 by Jorge.villalobos (talk | contribs) (Tweaks)

This is a collection of guides that should help AMO Engineers and other Mozillians navigate the madness that is the add-ons world.

Add-on types

MDN Doc for add-on types.

Type In install.rdf In AMO DB Notes
Extension 2 1
Lightweight theme N/A 9
Dictionary 64 3 Language for the Firefox spellchecker.
Search Engine N/A 4 For the Firefox search box. See doc.
Language pack 8 5 Localization for Firefox UI. Most are automatically published from Firefox sources.
Complete theme 4 2 Deprecated. Will be dropped in Firefox 57.
Multi-package installer 32 1 Discontinued.
Telemetry Experiment 128 N/A
WebExtension Experiment 256 N/A

WebExtension packages don't have types. They are all treated like extensions, with the exception of new themes (WIP).

The AMO DB has a couple more types that are no longer in use: 7 - Plugins, 6 - Language Packs (Add-on), 11 - Apps.

Compatibility

MDN doc on compatibility for legacy add-ons.

Compatibility with the client depends on various factors. They are listed here in order of priority (next one overrides previous one):

  • Default compatibility.
    • Legacy add-ons with a maxVersion lower than Firefox 4.0a1 have strict compatibility, so the maxVersion must be respected.
    • For all other add-ons, the maxVersion doesn't matter.
    • The minVersion for legacy add-ons should always be respected.
    • WebExtensions have default minimum compatibility of Firefox 42.0a1.
    • Application support (Firefox / Thunderbird / SeaMonkey / Android) is read from the manifest and can be altered during submission (All Desktop / Windows / Linux / Mac OS / Android).
  • Strict compatibility.
    • Legacy add-ons with the strictCompatibility manifest flag must have the maxVersion respected.
    • WebExtensions that declare so must have the strict_min_version and strict_max_version respected. A strict_min_version lower than 42.0a1 should be ignored.
  • AMO Metadata (editable in Developer Hub).
    • For add-ons with strict compatibility (legacy and WebExtensions) this overrides what is declared in the manifest.
    • Application support can also be altered here.
  • Compatibility overrides. These are admin overrides that declare a version range for an add-on is not compatible with a version range of an application (usually Firefox).

This doesn't apply to lightweight themes and search engines.