AMO API inconsistent with Firefox behavior

While packaging the extension for Arch Linux, I found that the GNOME Keyring integration extension installs just fine on my Firefox 49, despite the API reporting it only to be compatible up to version 45.*. Add-On compatibility checking was not manually disabled.

I expected this API path to be exactly the place a Firefox installation queries to see whether a locally installed Add-On is compatible. Where can I find the compatibility information Firefox actually considers?

Compatibility is a complicated thing. Firefox by default will ignore the maxVersion in an add-on and assume it’s compatible. Exceptions to this rule are:

  • If the add-on includes the strictCompatibility flag in its manifest. In this case the maxVersion determines compatibility. It looks like the API doesn’t expose that flag, though.
  • If a compatibility problem and a compatibility override is added by an admin. This could even override versions included between the max and min versions in the add-on manifest. Also not exposed in the API.