is="something"
attribute. If such a custom element is to be created with createXULElement()
, the is
parameter needs to be passend in via the second argument:type
parameter of the textbox
element are supported by html:input
as well. For proper styling include the following CSS file: chrome://messenger/skin/input-fields.css
flex
parameter is no longer supported and should be removed. Attach the input-container
class to a surrounding hbox
to force the input field to behave like a former flex="1"
textbox
.element.localName == "textbox"
, getElementsByTagName("textbox")
or similar need to be updated as well.toolbar
with attribute customizable
has been re-implemented as a custom element. It needs an additional is
attribute. The following example is taken from the source of the Thunderbird calendar:wizard
may no longer be a top level element, but must be encapsulated by a window
element which includes some fluent locales:wizard
element by document.documentElement.*
, this is now referring to the window
element. Use getElementById()
instead.wizardpage
element via JavaScript during wizard load, it will be ignored. You have to manually call _adjustWizardHeader
after the label has been set. :scrollToIndex(idx)
has been removed, replace it with:document.createElement()
(but HTML elements). To create XUL elements, use:nsIXULWindow
, which for example is used in nsIWindowMediatorListener.onOpenWindow(xulWindow)
.js
to jsm
, now available viaAddRecipient()
in the contact sidebar has been renamed to awAddRecipientsArray()
.MailServices.headerParser.parseHeadersWithArray()
has been removed. Instead, use: nsIPromptService.select()
/ Services.prompt.select()
has dropped the parameter which specifies the length of the array of the item list which the user can choose from. See the patch applied to Thunderbird itself.nsIEditorStyleSheets.addOverrideStyleSheet(uri)
-> windowUtils.loadSheetUsingURIString(uri, windowUtils.AGENT_SHEET)
\nsIEditorStyleSheets.removeOverrideStyleSheet(uri)
-> windowUtils.removeSheet(uri, windowUtils.AGENT_SHEET)
\nsIEditorStyleSheets.enableStyleSheet(uri, enable)
Either manually load or remove the stylesheet:
-> windowUtils.loadStyleSheetUsingURIString(uri, windowUtils.AGENT_SHEET)
-> windowUtils.removeSheet(uri, windowUtils.AGENT_SHEET)
document.getElementById()
, document.querySelectorAll()
or similar methods.nsIAbDirectory
could be searched by simply attaching a search query to the URI of the directory when calling getDirectory()
:getDirectory()
no longer accepts search queries and throws an error. Instead, use the search()
method, which uses an nsIAbDirSearchListener
. A simple promisified implementation could look like so:MailServices.ab.getDirectory(uri).search(search, listener)
will not return anything, if search
is empty.textbox
, radio
, checkbox
and friends. This is no longer supported:preferencesBindings.js
wrapper or by manually reimplementing that functionality using thensIPrefService
.preferencesBindings.js
wrapper has been updated and now supports:nsIPrefService
is not available via WebExtension APIs. It is therefore advised to move away from storing addon preferences in a preference branch and instead use the local storage via the storage
API. More information can be found in the update guide.