Skip to content

Latest commit

 

History

History
58 lines (38 loc) · 3.87 KB

README.md

File metadata and controls

58 lines (38 loc) · 3.87 KB

Supporting WebExtension Developers

The goal of this repository is to provide additional tools, modules, custom elements, Experiment APIs and other resources, to simplify the development of WebExtensions for Thunderbird.

Introduction

To get started with WebExtensions for Thunderbird, we suggest to first read our Thunderbird WebExtension Guide and follow the "Hello World" Example.

You will learn, how WebExtensions use a set of well-defined APIs (called WebExtension APIs), which will be mostly stable, even if the underlying Thunderbird code base is changed. In the past, these internal changes have led to heavy add-on breakages on each new Thunderbird release and the WebExtension API approach aims to minimize that.

You will also learn, that the current set of available WebExtension APIs for Thunderbird is far from being complete. Many aspects of Thunderbird which are of interest for add-ons, cannot be accessed by them. To overcome this limitation, add-on developers can write Experiment APIs, which have direct access to internal Thunderbird functions and can make them available to WebExtensions. Their usage should be minimized. In this repository we provide Experiments, which are currently not planned to be merged into core, but are useful to overcome some of the current limitations. In the webext-experiments repository you will find additional Experiment APIs, which are planned to be merged into core.

Experiment APIs

The experiments folder contains the following Experiment APIs, which may be useful while converting legacy extensions to modern WebExtensions:

Description
FileSystem Grant read/write access to a folder in the users profile folder (file system level).
ImapTools Extract the IMAP UID from a message.
LegacyHelper Register legacy chrome://*/content/ and resource://*/ urls, and open legacy XUL dialogs.
LegacyCSS Add CSS files to Thunderbird windows.
LegacyPrefs Access Thunderbird's system preferences.

Images

The images folder contains the following resources:

Description
get-the-addon A nice looking get-the-add-on badge to be used on websites to promote your Thunderbird Add-on.

JavasScript Modules

The modules folder contains the following helper modules:

Description
i18n Replace __MSG_*__ i18n placeholders in HTML files.
messageLists Convenient wrapper functions for handling MessageLists and the pagination mechanism, simplifying the process of looping over messages
preferences Convenient wrapper functions to manager add-on preferences.

Tools

The tools folder contains the following tools:

Description
locale converter A python script to convert legacy DTD and property files to i18n JSON files.

UI

The ui folder contains the following elements:

Description
data-tables Set of 3rd party libraries to present data in tables.
mail-folder-picker A custom element which allows to select one of the user's mail folders (IMAP, POP, Local, ...).