OK, i have looked into this and found some connections.

Specifically, all major OSs seem to have APIs providing the following:

1. download progress
2. native notifications.

As older versions don't have those, and linux systems are pretty modular in any 
case, i propose that we use no fallback for download progress (the download 
button has a progress bar in any case), and we use XUL notifications as 
fallback for native notifications.

the available implementations can be seen here (APIs are linked, so click on a 
node to get to the docs): https://cdn.mediacru.sh/ITsCgwM5JrUS.svg

it seems that if we opt not to support growl on older macs or growl4windows or 
snarl on windows, the requirements to get everything are:

OSX 10.9 or windows 8.0 or linux with KDE/unity (as there's no download 
progress API in GNOME 3).

----------

since the opinions seems to be against linking all kinds of libraries on linux, 
we'd need to create the following:

1. a service for DBUS. let's call it nsIDBUSService
2. a wrapper of the DBUS notification API using nsIDBUSService
3. a wrapper of the DBUS unity launcher API using nsIDBUSService
4. a wrapper of the KJob API using nsIDBUSService (if possible)
5. for each one of download progress and notifications: a switching mechanism 
that decides at compile time which native API to use (DBUS, Windows, or OSX), 
and at runtime if the API is available (respective DBUS service running? right 
version of Windows/OSX?)

until then, we can just reactivate libnotify support like ubuntu does: 
https://bugzilla.mozilla.org/show_bug.cgi?id=853104#c18
_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

Reply via email to