Incompatible addon

Hi all,

I would like to program a thunderbird-addon and have oriented myself to an example code. Unfortunately I always get the message “The addon is not compatible with Thunderbird 68.2.1” when I try to install the addon. How can I find out what is incompatible with the program? I am a beginner and need some tips. Thank you.

kindley regards
Horst

What message appears in the error console (Tools, Developer tools - or ctrl-shift-j) when you get that message?
Which example addon are you trying?

Hello,
I have received the following error message:

No chrome package registered for chrome://browser/skin/identity-icon.svg 2019-12-03 10:25:44 autosyncActivities ERROR OnDownloadError: Posteingang of horst.meyer.koeln@gmail.com log4moz.js:769 2019-12-03 10:25:44 autosyncActivities ERROR OnDownloadError: Posteingang of horst.meyer.koeln@gmail.com Successfully compiled asm.js code (total compilation time 5ms) openpgp-lib.jsm Successfully compiled asm.js code (total compilation time 7ms) openpgp-lib.jsm Successfully compiled asm.js code (total compilation time 53ms) openpgp-lib.jsm uncaught exception: 2147746065 autosync.jsm:251:30 1575365343399 addons.xpi WARN Invalid XPI: Error: File /home/horald/daten/Prgentw/addon/resub.xpi does not contain a valid manifest(resource://gre/modules/addons/XPIInstall.jsm:666:11) JS Stack trace: loadManifest@XPIInstall.jsm:666:11

I have followed the following instructions: https://developer.mozilla.org/de/docs/Mozilla/Thunderbird/Thunderbird_extensions/Building_a_Thunderbird_extension

I am aware that this manual applies to an outdated Thunderbird version, but unfortunately I am not sure how to adapt it to work with my current 68.2.1 version. Is there a more recent example somewhere? Thank you

Yours sincerely
Horst Meyer

That documentation describes XUL (or ‘legacy’) addons, which worked up to TB version 60. TB is in transition away from XUL - some XUL addons work in v68, but have to be modified in non-trivial ways. From the next release only ‘webextensions’ will work.

So you could develop your legacy addon for TB v60, then maybe modify it for 68 (there is documentation for that) but it would not work in later versions.

The webextension documention is here:
https://thunderbird-webextensions.readthedocs.io/en/68/
(There is no German version AFAICS)

But be aware that the TB webextension APIs are still being developed so what you can do is limited. I suggest you follow this forum where webextensions are being discussed.
https://thunderbird.topicbox.com/groups/addons

The following is a statement from a Thunderbird insider:
"Just to make sure that everything is clear now:

  1. We had up to now full power legacy addons, which have access to all core methods (Services.* and much more).
  2. legacy addons are to be deprecated
  3. the new addon type is called webextension
  4. We no longer can use core methods with webextensions, but only what is available as webextensions API (from firefox) and mailextensions API (from thunderbird)
  5. This of course removes a lot of functionality as we do not have web/mailextensions for all the nice things we could do with core methods
  6. For the time being we are allowed to create our own mailextension APIs as so called experiments to regain the missing features
  7. The implementation.js of such an experiment has again access to all core methods
  8. Over the next 2 years, we as addon authors and the core developers need to create as much mailextensions API as needed and merge them into core
  9. At some day, experiments will be disabled and access to core methods will be not allowed anymore - before this day comes we need to make sure to have all the functionality we once had with legacy addons available via mailextension APIs"

and

“That is why a few weeks ago it was announced that Thunderbird will also stop supporting legacy extensions with TB72.
That would mean, most of the addons will not work anymore, because we do not have all the webextensions API we need.
That is why we are allowed to use experiments. It must be clear, that simply stuffing your legacy code into an experiment will fix the problem
now, but that will stop working as soon as the transition is complete and experiments are disabled (they are already disabled in firefox).”

Or, simplified and in a nutshell: Put your legacy code in the implementation.js of a webextension experiment and it should work with Thunderbird 68.

If you like, you can use my example “Search Button Addon” as a starting point and put in your code: