mkiol / GNotifier

Thunderbird add-on that replaces built-in notifications with the OS native notifications
https://addons.mozilla.org/thunderbird/addon/gnotifier/
GNU General Public License v3.0
164 stars 25 forks source link

[Announcement] GNotifier on Thunderbird 60 #207

Open mkiol opened 6 years ago

mkiol commented 6 years ago

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:

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 :-(

maximbaz commented 6 years ago

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 😉

carlos22 commented 6 years ago

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?

mkiol commented 6 years ago

@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...

jamtur01 commented 6 years ago

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

jamtur01 commented 6 years ago

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

mkiol commented 6 years ago

@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...

carlos22 commented 6 years ago

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

maximbaz commented 6 years ago

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.

carlos22 commented 6 years ago

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...

nortexoid commented 6 years ago

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?

maximbaz commented 6 years ago

Works for me as well.

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

Native notifications on Linux are now re-enabled

nortexoid commented 6 years ago

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

maximbaz commented 6 years ago

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.

jarmo commented 6 years ago

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