GNotifier icon indicating copy to clipboard operation
GNotifier copied to clipboard

[Announcement] GNotifier on Thunderbird 60

Open mkiol opened this issue 6 years ago • 14 comments

Dear GNotifier's friends,

Mozilla has just released Thunderbird 60. This new release comes with many improvements and new exciting features. It is a major update that also introduces some changes in add-ons area. Those changes have negative impact on GNotifier.

Unfortunately, in current form, GNotifier can't be run on TB 60.

There are at least two major issues that I've identified:

  • Options panel has to be rewritten to standalone version (so called "option type 3")
  • TB60 doesn't support extensions written with Add-on SDK framework (so called "jetpack extensions")

Because of the above and having very limited time, I don't see any other option but to close this project. I can't continue to support GNotifier any more :-(

mkiol avatar Aug 08 '18 18:08 mkiol

I'm sad to see this project closed, but I can totally understand your reasoning. On behalf of every GNotifier user who won't see your message, I want to say huge thank you for developing this plugin in the first place, for sticking with us throughout this time and for implementing our feature requests 😉

maximbaz avatar Aug 08 '18 19:08 maximbaz

Really sad this was a great extension for me as gnome user. Thanks for the great work!

TB60 doesn't support extensions written with Add-on SDK framework (so called "jetpack extensions")

Couldn't find anything about that in this guide: https://wiki.mozilla.org/Thunderbird/Add-ons_Guide_57 Do you have any source for this claim? I think for now it only applies to firefox - not thundebird.

EDIT: I think the problem is the simple-prefs (preferences key in package.json) which generates an <em:optionsType>2</em:optionsType> - which is unsupported now. But i think a jetpack extension might still work with the preferencesURL so point one of your list. Right?

carlos22 avatar Aug 09 '18 09:08 carlos22

@carlos22

Do you have any source for this claim? I think for now it only applies to firefox - not thundebird.

Definitely Thunderbird. I can't refer to any source. My conclusion is based on my own investigation and debugging. Maybe I'm wrong..

It appears that all jetpack extensions fail to load on TB60 and this issue is not related to preferences option type. Option type can be easily changed to supported "option 3" but extension will not be loaded as well. It looks like SDK's bootstrap script doesn't exist in TB60 any more.

Here is error console log from Clickguard (also jetpack add-on) and GNotifier:

1533835760229	addons.xpi	WARN	Error loading bootstrap.js for @clickguard: [Exception... "Component returned failure code: 0x80520012 (NS_ERROR_FILE_NOT_FOUND) [nsIXPCComponents_Utils.import]"  nsresult: "0x80520012 (NS_ERROR_FILE_NOT_FOUND)"  location: "JS frame :: resource://gre/modules/addons/XPIProvider.jsm -> jar:file:///home/mkiol/.thunderbird/x21qceoj.mkiol/extensions/@clickguard.xpi!/bootstrap.js :: <TOP_LEVEL> :: line 9"  data: no] Stack trace: resource://gre/modules/addons/XPIProvider.jsm -> jar:file:///home/mkiol/.thunderbird/x21qceoj.mkiol/extensions/@clickguard.xpi!/bootstrap.js:9
[...]
1533835760231	addons.xpi	WARN	Add-on @clickguard is missing bootstrap method startup
1533835760238	addons.xpi	WARN	Error loading bootstrap.js for jid1-OoNOA6XBjznvLQ@jetpack: [Exception... "Component returned failure code: 0x80520012 (NS_ERROR_FILE_NOT_FOUND) [nsIXPCComponents_Utils.import]"  nsresult: "0x80520012 (NS_ERROR_FILE_NOT_FOUND)"  location: "JS frame :: resource://gre/modules/addons/XPIProvider.jsm -> file:///home/mkiol/.thunderbird/x21qceoj.mkiol/extensions/jid1-OoNOA6XBjznvLQ@jetpack/bootstrap.js :: <TOP_LEVEL> :: line 9"  data: no] Stack trace: resource://gre/modules/addons/XPIProvider.jsm -> file:///home/mkiol/.thunderbird/x21qceoj.mkiol/extensions/jid1-OoNOA6XBjznvLQ@jetpack/bootstrap.js:9
[...]
1533835760238	addons.xpi	WARN	Add-on jid1-OoNOA6XBjznvLQ@jetpack is missing bootstrap method startup

The problem is the same in both cases. There is no startup method in bootstrap.js. The SDK's add-on bootstrap.js script looks like this:

const { utils: Cu } = Components;
const rootURI = __SCRIPT_URI_SPEC__.replace("bootstrap.js", "");
const COMMONJS_URI = "resource://gre/modules/commonjs";
const { require } = Cu.import(COMMONJS_URI + "/toolkit/require.js", {});
const { Bootstrap } = require(COMMONJS_URI + "/sdk/addon/bootstrap.js");
var { startup, shutdown, install, uninstall } = new Bootstrap(rootURI);

On TB60, it appears that resource://gre/modules/commonjs/sdk/addon/bootstrap.js doesn't exist, so any SDK/jetpack extension can't be loaded.

I probably should ask someone from Mozilla or report an issue on TB bugzilla...

mkiol avatar Aug 09 '18 18:08 mkiol

I hacked the plug-in to have optionsType 3 and it certainly loads on tb60. But I haven't dug any deeper.

jamtur01 avatar Aug 09 '18 18:08 jamtur01

C.f. happy to help if I can on giving the plug-in continued life.

jamtur01 avatar Aug 09 '18 18:08 jamtur01

@jamtur01

it certainly loads on tb60

Technically you probably right, it loads but it is not being started. TB doesn't call startup method (bootstrap.js) because (this is my theory) there is no add-on SDK implementation in TB60.

Official Mozilla sources mention that TB60 supports XUL and bootstrapped/restartless extensions. There is no information about SDK add-ons.

C.f. happy to help if I can on giving the plug-in continued life

Thank you :-) It is very heartwarming to see that GNotifier (the first thing I've ever coded) has so many users and contributors willing to help. I've never expected that.

The key problem with GNotifier future development is as follows. To make it compatible with TB60, someone has to migrate it to XUL or bootstrapped technology which is already considered by Mozilla as legacy. According Mozilla, TB62 will support only WebExtensions. I'm not convinced whether it is worth to invest anybody time to something that is temporary...

mkiol avatar Aug 10 '18 17:08 mkiol

The notifications in TB 60 seems to be native in linux (gnome/libnotify).

carlos22 avatar Aug 13 '18 08:08 carlos22

They are, but the contents of the notifications is worse comparing to GNotifier; and more importantly (to me 😛) the urgency hint is not being set when new mails arrive.

maximbaz avatar Aug 13 '18 10:08 maximbaz

I'm not saying there is no reason to have GNotifier, but i just noticed that they changed it in TB 60. Not sure if everyone is aware...

carlos22 avatar Aug 13 '18 12:08 carlos22

They're not native on KDE (Manjaro testing) with libnotify installed. That's strange though. carlos22, are you sure you don't have some other relevant package installed?

nortexoid avatar Aug 27 '18 12:08 nortexoid

Works for me as well.

https://www.thunderbird.net/en-US/thunderbird/60.0/releasenotes/

Native notifications on Linux are now re-enabled

maximbaz avatar Aug 27 '18 13:08 maximbaz

That is weird. Possibly a packaging issue? I'll ask other Manjaro users.

nortexoid avatar Aug 27 '18 13:08 nortexoid

The key problem with GNotifier future development is as follows. To make it compatible with TB60, someone has to migrate it to XUL or bootstrapped technology which is already considered by Mozilla as legacy. According Mozilla, TB62 will support only WebExtensions. I'm not convinced whether it is worth to invest anybody time to something that is temporary...

Just to clarify, TB gets major version bumped once a year, so we still have 12 months of suffering before TB 62+ is released.

maximbaz avatar Aug 27 '18 13:08 maximbaz

Damn! Native notifications are not used in Windows 10. Is there any alternative solutions for GNotifier?

jarmo avatar Oct 01 '18 19:10 jarmo