nsIArray
and nsIMutableArray
has been replaced by standard JavaScript arrays and functions which returned a nsISimpleEnumerator
have been changed to return a JavaScript array as well. The following APIs have been updated (links to actual patches, showing how core handled the change):fixIterator()
is no longer needed by any core code and was subsequently removed together with iteratorutils.jsm
. It was mostly used in the following way:MailServices.accounts.accounts
or MailServices.accounts.allIdentities
return a simple array since Thunderbird 75, there is no need to pipe it through fixIterator()
anymore. If your add-on is multi-version compatible and still supports Thunderbird 68 this has to be dealt with separately.
SEC_ALLOW_CROSS_ORIGIN_SEC_CONTEXT_IS_NULL
. This is often used as the aSecurityFlags
argument in calls to Services.io.newChannelFromURI()
. SEC_REQUIRE_SAME_ORIGIN_INHERITS_SEC_CONTEXT
.nsIMsgCompose.sendMsg
. It also returns a Promise now. More details can be found here.
nsIDNSRecord
value, but can be null
if not needed:nsIMsgCopyService.copyFileMessage
.nsIMsgCopyService.copyMessages
.nsIMsgCopyService.copyFolder
and no longer accepts an Array of src folders, but a single src folder.nsIMsgCopyService.notifyCompletion
.Log4moz.jsm
has been removed in Thunderbird 85. Instead, use console
:console.debug()
console.log()
console.trace()
- same as console.log()
, but dumps a trace log additionally.console.info()
console.warn()
console.error()
console.createInstance()
allows to define a custom console logger, with a prefix
and a maxLogLevel
. The maxLogLevel
can be used to disable/enable logging in debug or production builds or set the level based on users choice.Info
, Trace
and Log
are actually identical.MailServices.mfn.notifyMsgsJunkStatusChanged
or MailServices.mfn.notifyFolderReindexTriggered
instead.ftvItem
object has been renamed to FtvItem
in Beta 86.gAttachmentBucket.itemCount
.gAttachmentBucket.selectedCount
.gAlertListener
, gUserInitiated
and gOrigin
parameters when being opened (argument 1-3). Instead, the following parameters are are used now:ExtensionAPI.onShutdown
), even if you use a catch-all unloading solution like CachingFix or the WindowListener API.