Changes up to Thunderbird 115 ESR
Thunderbird 105 Beta
action API (MV3)
Added the action API, which is part of the Manifest v3 changes and replaces the
browserAction.
Thunderbird 106 Beta
action API
Introduced a
default_windowsmanifest property, to allow a action buttons to be displayed in stand alone message windows.
commands API
Added the
tabparameter to onCommand, to get information about the active tab, when a command occurs.
compose API
Added onAfterSave event, to be notified when saving a message as a draft or a template succeeded or failed.
Added onAfterSend event, to be notified when sending a message succeeded or failed.
contacts API
Added contacts.getPhoto to be able to retrieve the photo of a contact.
mailTabs API
messages API
Added the
messagemember to the MessageAttachment type, to provide access to attached messages.Added the
externalmember to the MessageHeader type, to indicate if a message is an external message, not stored in a message folder (message attachments or messages opened from file).Added the
newmember to the MessageHeader type, to indicate if a message has been received recently and is marked as new.Added import(file, folderId, [properties]) to import messages into Thunderbird (currently only supported for local folders).
Renamed
MessageChangePropertiesto MessageProperties, as it is now also used by import(file, folderId, [properties]), to define the properties of the imported message.Added the
newmember to the MessageProperties type (currently only supported by import(file, folderId, [properties])).
messageDisplay API
Fixed messageDisplay.onMessageDisplayed to be triggered for external messages.
Thunderbird 107 Beta
contacts API
Added contacts.setPhoto to be able to set the photo of a contact.
Thunderbird 111 Beta
messageDisplay API
Improved open(openProperties) to honour the
locationproperty also for external messages. They can now also be opened in tabs.
protocol_handler API
Fix Thunderbird to properly support the protocol_handlers API.
windows API
Fix create([createData]) to properly support
topandleftproperties.Fix
beforeunloadevent not fired in popup windows. Note: There must have been some sort of interaction with the window (for example a mouse click into the window), for this event to be fired when the window is closed.
Thunderbird 113 Beta
action APIs
Removed the user input requirement from openPopup([options]), openPopup([options]) and openPopup([options]). Also added support for the
windowIdproperty, to open the popup of a specific window. Furthermore,openPopup()now returns a boolean value, indicating whether opening of the popup has failed, because the action button or the entire toolbar has been removed by the user.Fixed the annoying issue on MacOS, where the popup was opened empty after the second time it was opened. A big shout out to Arnd Issler for helping to track this down.
Added
allowed_spacesmanifest entry, to let extensions define in which space the action button should be allowed in.
compose API
Fix compose API to no longer clear all (!) headers, if setComposeDetails(tabId, details) is used to update the non-standard
X-headers.
protocol_handler API
Add support for WebExtension defined protocols to be accepted as command line arguments. More details can be found in the bug.
Thunderbird 115.0 ESR
WebExtensions usually are not reviewed when submitted but instead are made available instantly. The WebExtension permission system should guard against malicious actors. However, the data available to extensions is very sensitive and if a user granted access to messages and contacts he mostly assumes the data is only used locally. Extensions however, can unknowingly send this data to remote servers. We therefore started to enforce review of all extensions, which request sensitive permissions like or . We also introduce an additional permission, which allows to by-pass this human review, but prompts the user for the following permission: Transfer sensitive user data (if access has been granted) to a remote server for further processing.
If an extension is not requesting that permission, but a reviewer concludes that it is indeed sending data to a remote server not under the control of the user, the reviewer may request the permission to be added.
action API
Deprecate the
default_areamanifest entry in favour of the recently addedallowed_spacesmanifest entry.Add support for the
typemanifest entry to define amenubutton, whose menu entries can be controlled through the menus API and a newbrowser_action_menucontext.
addressBooks API
commands API
Add the onChanged event to be notified when a command shortcut has been changed.
compose API
Add support for the
typemanifest entry to define amenubutton, whose menu entries can be controlled through the menus API and a newcompose_action_menucontext.
messages API
The
queryInfoparameter for query([queryInfo]) is now optional.Added openAttachment(messageId, partName, tabId) to open message attachments with the registered application. A big thank you to Mark Banner.
Add support for the
typemanifest entry to define amenubutton, whose menu entries can be controlled through the menus API and a newmessage_display_action_menucontext.
messageDisplay API
Added support for open(openProperties) to open messages from a DOM File object.
spaces API & spacesToolbar API
The button-centric
spacesToolbar APIwas removed for Manifest v3 and has been replaced by the spaces-centricspaces API.
sessions API
Add a first simple version of the sessions API to allow extensions to store tab related session data, which is restored on app restart.
tabs API
The
queryInfoparameter for query([queryInfo]) is now optional.Add a
spaceIdmember to the Tab type.Add a
cookieStoreIdmember to the Tab type. A big thank you to Neil Rashbrook.Add support for the
previousTabIdparameter to the onActivated event.Changed handling of URLs in update([tabId], updateProperties): If the URL points to a content page (a web page, an extension page or a registered WebExtension protocol handler page), the tab will navigate to the requested page. All other URLs will be opened externally without changing the tab. Note: The function will throw an error, if a content page is loaded into a non-content tab (its type must be either content or mail).
Thunderbird 115.3.2 ESR
messages API
Backported the optional
data_formatparameter to getRaw(messageId, [options]) to request the message as a DOMFileobject.