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.
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
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.
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:
We had up to now full power legacy addons, which have access to all core methods (Services.* and much more).
legacy addons are to be deprecated
the new addon type is called webextension
We no longer can use core methods with webextensions, but only what is available as webextensions API (from firefox) and mailextensions API (from thunderbird)
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
For the time being we are allowed to create our own mailextension APIs as so called experiments to regain the missing features
The implementation.js of such an experiment has again access to all core methods
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
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: