It’s been possible to submit WebExtensions add-ons to addons.mozilla.org (AMO) since February, but I wanted to take a moment to highlight some of the improvements we’ve made since then that make it much easier to get your Chrome or Opera add-on into AMO.
These features have all been deployed to AMO over the last couple of months and are available for use.
New linter
We are now using the add-ons linter for WebExtensions which means that when we parse a WebExtensions add-on, we are running through a new JavaScript-powered linter, instead of the Python one. This parsing occurs each time you upload a new add-on or a new version of an add-on.
It uses eslint to parse the JavaScript and a schema to verify that the WebExtensions manifest is correct. Because we’ve started to implement functionality in the new add-ons linter that didn’t exist in the old version, more things will be showing up as warnings.
As an example, if you request a permission in the manifest that Firefox doesn’t support, you’ll get a warning:
Relaxed upload criteria
If you’ve developed and add-on for Chrome or Opera, we’d like you to upload it to AMO. For this reason, we’ve relaxed a few criteria around AMO. Once you’ve verified that an add-on works correctly using about:debugging, you should then be able to upload it to AMO quite easily. We’ve hopefully made this easier through the following steps:
Optional add-on id
If your WebExtension does not have an id specified in the manifest.json, then AMO will generate an id for your add-on and add it to the add-on signing process. You can then get the add-on id from AMO and re-use that in later API calls, if needed.
The command line tool web-ext also supports optional ids.
Uploads
AMO will now accept an add-on as a zip
file or a crx
file. It will still only emit xpi
files that Firefox and other Mozilla projects can consume. In the case of a crx
file, the extra data added by the Chrome store will be stripped out of the file.
We recommend using a tool like web-ext to generate the appropriate file for your add-on.
Comments in the manifest file
Although comments are not valid in a JSON file, Chrome supports comments in the manifest.json file. To keep compatibility with Chrome, the addons-linter and hence AMO now support comments in the manifest file, but only comments starting with a double slash (//).
Translations
Finally, AMO now supports translations in the manifest. This again follows the Chrome standard, so that:
//in manifest.json: "default_locale": "en", "name": "__MSG_appName__", //in _locales/en/messages.json: { "appName": { "message": "My Add-on", "description": "The name of the add-on." } } //in _locales/de/messages.json: { "appName": { "message": "Mein Add-on" } }
The manifest will be parsed and the translations automatically entered into AMO. You need to ensure that default_locale
is set in the manifest for the localisations to be activated. On the first upload, AMO will process the translations:
If you’d like to get involved then join our mailing list or check out our repositories on Github.
jon
wrote on
Mike
wrote on