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
name: mandatory key to set the name of the extension
version: mandatory key to define a number that denotes the version of the extension
description: a brief description of what the extension does
author: should be the name of a person or company representing the extensions developer
applications.geckomanifest key defines the following properties:
id: The id serves as a unique identifier for the extension, common practice is to use
[email protected]. Providing an id is mandatory in order upload an extension to ATN or to be able to install it from an XPI file.
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
iconsmanifest 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_uimanifest 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).
options_uipage allow including scripts via standard HTML
options_ui.open_in_tab: falseis currently broken. Use
getBackgroundPage()to replace the
browserobject of the options page with the
browserobject of your background page.
manifest.jsonfile by defining an implementation script and a schema file describing the interface: