manifest.json
, also referred to as the manifest. Besides defining some of the extension's basic properties like name, description and ID, it also defines how the extension hooks into Thunderbird:manifest_version
: mandatory key to signal compatibility to Thunderbird, must be set to 2
name
: mandatory key to set the name of the extensionversion
: mandatory key to define a number that denotes the version of the extensiondescription
: a brief description of what the extension doesauthor
: should be the name of a person or company representing the extensions developername
and the description
of the given example are only in English. This MDN article about Localization explains how to use the WebExtension i18n API to localize these keys.applications.gecko
manifest key defines the following properties:id
: The id serves as a unique identifier for the extension and is mandatory in order upload an extension to ATN or to be able to install it from an XPI file.
[email protected]
, if you own example.com
. As the id of your add-on cannot be changed once it is published, it is highly recommended to use a domain that you plan to keep for the forseeable future. If you don't have a domain that fits the bill, feel free to use your-atn-username.addons.thunderbird.net
(based on your username on ATN).
{e4aa2097-8ee9-49a4-9ec7-c633b1e8dfda}
. Make sure you generate a new UUID for each add-on you want to develop, you can find free UUID generators throughout the internet.strict_min_version
: Defines the lowest targeted version of Thunderbird.strict_max_version
: Defines the highest targeted version of Thunderbird. It can be set to a specific version or a broader match to limit it to a branch (for example 78.*
).icons
manifest key tells Thunderbird the location of icons, which should be used to represent the MailExtension. Thunderbird supports basic image types like PNG files, but also SVG files. Thunderbird uses different file icon sizes in different places and allows registering a dedicated file for each size. The MailExtension will use the standard puzzle icon, if no icons have been defined.options_ui
manifest key defines the standard MailExtension options page. The defined page will be displayed in the add-on manager.open_in_tab
: Open the options page in a tab instead of inline in the add-ons property page.browser_style
: Use default browser styles for the options page (recommended).permissions
manifest key:options_ui
page allow including scripts via standard HTML <script>
tags.type
attribute of its script
tag must be set to module
.options_ui.open_in_tab: false
is currently broken. Use getBackgroundPage()
to replace the browser
object of the options page with the browser
object of your background page.management_url
has access to a limited subset of the WebExtension APIs:manifest.json
file by defining an implementation script and a schema file describing the interface: