Thunderbird/Add-ons Guide 57: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
(Updated with the latest positive news :-))
(Updated with the latest positive news :-))
Line 45: Line 45:


== Affected in thunderbird59 ==
== Affected in thunderbird59 ==
* Add-on options dialog not working in Add-ons Manager. Fix on the way in bug {{bug|1419145}}.
* Add-on options (dialog or inline) not working in Add-ons Manager, only tab options work. {{bug|1419145}} provides a menu item to access add-on options. '''That fix has landed on Daily 59 as of 2017-12-22.'''


== Removed in mozilla59 ==
== Removed in mozilla59 ==
* Dialog (1) and Inline (2) options were removed in {{bug|1414406}}. Thunderbird will not support that feature any more, only options in tabs (3) will work in the future. We're working on a fix in {{Bug|1419145}}. Alternatively add-ons need to embed a WebExtension to display inline options [https://developer.mozilla.org/Add-ons/WebExtensions/Embedded_WebExtensions][https://developer.mozilla.org/Add-ons/WebExtensions/manifest.json/options_ui]. This should be working now that {{bug|1418914}} has been fixed.
* Dialog (1) and Inline (2) options were removed in {{bug|1414406}}. Thunderbird will not support that feature any more, only options in tabs (3) work now. Alternatively add-ons need to embed a WebExtension to display inline options [https://developer.mozilla.org/Add-ons/WebExtensions/Embedded_WebExtensions][https://developer.mozilla.org/Add-ons/WebExtensions/manifest.json/options_ui]. This should be working now that {{bug|1418914}} has been fixed.


== Changes to JS changes in mozilla59 ==  
== Changes to JS changes in mozilla59 ==  
Line 55: Line 55:


== Outlook and Suggestion ==
== Outlook and Suggestion ==
'''Suggestion for add-on authors wishing to be compatible with Thunderbird 59: Wait!''' The fix for {{bug|1414398}} (see above) has arrived (2017-12-12). {{Bug|1419145}} will provide a menu to access add-on options and to make add-on tab options (3) work again. {{Bug|1418914}} has been fixed and then inline options can be achieved via an embedded WebExtension.
'''Suggestion for add-on authors wishing to be compatible with Thunderbird 59: Go, go, go!''' The fix for {{bug|1414398}} (default preferences) and {{Bug|1419145}} (menu to access add-on options, tab options (3) work) has arrived (2017-12-12 and 2017-12-22). {{Bug|1418914}} has been fixed and then inline options can be achieved via an embedded WebExtension. We will prepare a sample of how this is done in early 2018. All add-ons compatible with TB 58 beta should also be compatible with TB 59 Daily.


== Also Note ==
== Also Note ==
The list above only contains selected changes relevant to add-ons. The full list of changes can be seen at [https://developer.mozilla.org/en-US/Firefox/Releases Firefox developer release notes] where all the details, bugzilla bug reports and patches implementing those changes can be found.
The list above only contains selected changes relevant to add-ons. The full list of changes can be seen at [https://developer.mozilla.org/en-US/Firefox/Releases Firefox developer release notes] where all the details, bugzilla bug reports and patches implementing those changes can be found.

Revision as of 22:38, 21 December 2017

Add-ons Guide for Thunderbird 57 and beyond

Mozilla core have disabled "legacy" add-ons (not based purely on WebExtensions) in Firefox 57. Because this type of add-on is not supported from mozilla57 any more, many interfaces have been removed from Mozilla core.

However, Thunderbird 57-59 and Seamonkey still support these add-ons if the appropriate modifications are done to adapt to the changed interfaces. In general, Thunderbird is adding WebExtension support (bug 1396172) while maintaining "legacy" add-ons and hybrid add-ons.

Removed interfaces in mozilla57

  • nsILocalFile -- replacement: nsIFile
  • extIApplication, nsIEntityConverter
  • nsIProgrammingLanguage
  • nsILocaleService and friends
  • nsIScriptableDateFormat -- replacement: Intl.DateTimeFormat and mozIntl.DateTimeFormat
  • nsIFilePicker.show() -- replacement: nsIFilePicker.open() (async), example: Changeset where Thunderbird implemented that change
  • nsIDownloadManager
  • Promise.jsm -- replacement: PromiseUtils.jsm
  • nsIPrefBranch2 and nsIPrefBranchInternal -- replacement: nsIPrefBranch
  • nsIExternalProtocolService.loadUrl -- replacement: nsIExternalProtocolService.loadURI
  • nsIInputStreamPump.init: Change of arguments
  • nsIAtomService - see bug 1393692 for removal from Thunderbird

Changes to JS and XUL in mozilla57

[1]

  • `for each ()` construct [2] -- replacement: 'for (x of object)' or 'for (x of Object.values())'
  • `with` construct [3]
  • catch (ex if ex instanceof ExceptionType) (removed in mozilla47 already)
  • versioned Javascript support -- replacement: In XUL files, links to JS files using <script type="application/x-javascript" ... > or <script type="application/x-javascript;version=1.7" ... >, change to <script type="application/javascript" ... >
  • __iterator__ and Iterator()
  • "legacy" generators, now need to use `function*` syntax (removed in mozilla? already)
  • imports must be 100% correct now: Components.utils.import("resource://gre/modules/...") for Mozilla central imports, Components.utils.import("resource:///modules/...") for Thunderbird imports.

Changes in thunderbird57

  • steelIApplication (removed due to removal of extIApplication) -- replacement: Services, AppConstants
  • for (x in fixIterator(obj)) (removed due to removal of __iterator__) -- replacement: for (x of fixIterator(obj))

Removed in mozilla58

  • Date.prototype.toLocaleFormat
  • {get,set}ComplexValue use of nsISupportsString -- replacement: {get,set}StringPref(), example: Changeset where Thunderbird implemented that change
  • Mechanism to store add-on preferences in defaults/preferences/xx.js. Thunderbird 58 Beta not affected due to backout of this core change. A fix has landed on Daily 59 as of 2017-12-12, see bug 1414398.

Changes to JS in mozilla58

[4]

  • StopIteration [5]

Affected in thunderbird59

  • Add-on options (dialog or inline) not working in Add-ons Manager, only tab options work. bug 1419145 provides a menu item to access add-on options. That fix has landed on Daily 59 as of 2017-12-22.

Removed in mozilla59

  • Dialog (1) and Inline (2) options were removed in bug 1414406. Thunderbird will not support that feature any more, only options in tabs (3) work now. Alternatively add-ons need to embed a WebExtension to display inline options [6][7]. This should be working now that bug 1418914 has been fixed.

Changes to JS changes in mozilla59

[8]

  • catch (ex if ...)

Outlook and Suggestion

Suggestion for add-on authors wishing to be compatible with Thunderbird 59: Go, go, go! The fix for bug 1414398 (default preferences) and bug 1419145 (menu to access add-on options, tab options (3) work) has arrived (2017-12-12 and 2017-12-22). bug 1418914 has been fixed and then inline options can be achieved via an embedded WebExtension. We will prepare a sample of how this is done in early 2018. All add-ons compatible with TB 58 beta should also be compatible with TB 59 Daily.

Also Note

The list above only contains selected changes relevant to add-ons. The full list of changes can be seen at Firefox developer release notes where all the details, bugzilla bug reports and patches implementing those changes can be found.