{"id":28690591,"url":"https://github.com/thunderbird/webext-support","last_synced_at":"2025-07-18T11:33:36.858Z","repository":{"id":50098680,"uuid":"281185165","full_name":"thunderbird/webext-support","owner":"thunderbird","description":"Additional resources for extension developers (tools, scripts, custom elements, Experiment APIs)","archived":false,"fork":false,"pushed_at":"2025-03-24T20:22:04.000Z","size":2153,"stargazers_count":24,"open_issues_count":1,"forks_count":20,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-07-03T05:04:13.724Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/thunderbird.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-07-20T17:38:31.000Z","updated_at":"2025-07-01T22:31:54.000Z","dependencies_parsed_at":"2022-08-25T16:12:13.223Z","dependency_job_id":"54d29196-7d34-4d5f-a9a9-6afc085c0982","html_url":"https://github.com/thunderbird/webext-support","commit_stats":null,"previous_names":["thunderbird/addon-developer-support","thunderbird/webext-support","thundernest/addon-developer-support"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/thunderbird/webext-support","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thunderbird%2Fwebext-support","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thunderbird%2Fwebext-support/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thunderbird%2Fwebext-support/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thunderbird%2Fwebext-support/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thunderbird","download_url":"https://codeload.github.com/thunderbird/webext-support/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thunderbird%2Fwebext-support/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265751050,"owners_count":23822706,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-06-14T06:05:32.157Z","updated_at":"2025-07-18T11:33:34.895Z","avatar_url":"https://github.com/thunderbird.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Supporting WebExtension Developers\n\nThe 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.\n\n## Introduction\n\nTo get started with WebExtensions for Thunderbird, we suggest to first read our [Thunderbird WebExtension Guide](https://developer.thunderbird.net/add-ons/mailextensions) and follow the [\"Hello World\" Example](https://developer.thunderbird.net/add-ons/hello-world-add-on).\n\nYou 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.\n\nYou 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](https://developer.thunderbird.net/add-ons/mailextensions/experiments), 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](https://github.com/thunderbird/webext-experiments) repository you will find additional Experiment APIs, which *are* planned to be merged into core.\n\n## Experiment APIs\n\nThe `experiments` folder contains the following Experiment APIs, which may be useful while converting legacy extensions to modern WebExtensions:\n\n|                | Description |\n| -------------- | ----------- |\n| [FileSystem](experiments/FileSystem/)   | Grant read/write access to a folder in the users profile folder (file system level). |\n| [ImapTools](experiments/ImapTools/)     | Extract the IMAP UID from a message. |\n| [LegacyHelper](experiments/LegacyHelper/) | Register legacy `chrome://*/content/` and `resource://*/` urls, and open legacy XUL dialogs. |\n| [LegacyCSS](experiments/LegacyCSS/)     | Add CSS files to Thunderbird windows. |\n| [LegacyPrefs](experiments/LegacyPrefs/) | Access Thunderbird's system preferences. |\n\n## Images\n\nThe `images` folder contains the following resources:\n\n|             | Description |\n| ----------- | ----------- |\n| ![get-the-addon](https://raw.githubusercontent.com/thunderbird/webext-support/refs/heads/master/images/get-the-addon.svg)     | A nice looking get-the-add-on badge to be used on websites to promote your Thunderbird Add-on. |\n\n## JavasScript Modules\n\nThe `modules` folder contains the following helper modules:\n\n|             | Description |\n| ----------- | ----------- |\n| [i18n](modules/i18n/)                 | Replace `__MSG_*__` i18n placeholders in HTML files. |\n| [messageLists](modules/messageLists/) | Convenient wrapper functions for handling `MessageLists` and the pagination mechanism, simplifying the process of looping over messages |\n| [preferences](modules/preferences/)   | Convenient wrapper functions to manager add-on preferences. |\n\n## Tools\n\nThe `tools` folder contains the following tools:\n\n|                  | Description |\n| ---------------- | ----------- |\n| [locale converter](tools/locale-converter/) | A python script to convert legacy DTD and property files to i18n JSON files. |\n\n## UI\n\nThe `ui` folder contains the following elements:\n\n|                    | Description |\n| ------------------ | ----------- |\n| [data-tables](ui/data-tables/)         | Set of 3rd party libraries to present data in tables. | \n| [mail-folder-picker](ui/mail-folder-picker/) | A custom element which allows to select one of the user's mail folders (IMAP, POP, Local, ...). |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthunderbird%2Fwebext-support","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthunderbird%2Fwebext-support","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthunderbird%2Fwebext-support/lists"}