Comment 143 for bug 434476

Revision history for this message
In , Sergey Kondakov (virtuousfox) wrote :

(In reply to Bastien Nocera from comment #83)
> I'll add that xdg-screensaver is an unmitigated piece of ****. It
> reimplements the bugs that using D-Bus for inhibition is supposed to fix
> (namely that if the app disappears, the screensaver shouldn't be left
> inhibited).

Mh, yeah, it's odd that it still doesn't do something like periodically checking that calling app is still alive.

> You could add D-Bus support to xscreensaver without linking to a D-Bus
> implementation. Look at the SDL2 code, it implements the same inhibition
> mechanism that Firefox and VLC implement through a dlopen()'ed libdbus.so.

If so, it probably should be at least communicated to the XSS author. But he doesn't seem to give much shits about Linux & X these days, ironically (http://www.jwz.org/xscreensaver/faq.html).

> However, I would recommend that you use a modern screensaver if you expect
> modern features.

It would be nice, except:
1) KDE screensaver doesn't seem to be even coming as separate binary, let alone DE-independent one. At one point KDE devs even tried to completely remove it and forcibly replace with their NIH plasma locking (http://ostatic.com/blog/kde-to-say-buh-bye-to-screensavers). The thing still draws plasma lock screen (which supposed to be disabled) and only few seconds after the screensaver above it. And they don't give a damn.
2) GNOME screensaver requires the core GNOME framework to go with it, not just GTK. Kinda overkill for a screensaver.

And i don't exactly expect "modern features". I expect _Firefox to inhibit/suspend a screensaver when it draws a video. Any videos and any screensavers_.

(In reply to Anthony Jones (:kentuckyfriedtakahe, :k17e) from comment #85)
> (In reply to Milan Bouchet-Valat from comment #84)
> > Is that supposed to work when watching a fullscreen Flash video, like
> > Youtube? It doesn't here on Fedora 20 with Firefox 33 (and the D-Bus
> > interface is present).
>
> No.

Which makes whole thing pretty much useless. It should:
1) Work with any unpaused (like mplayer does) HTML5 video, fullscreen or not.
Time to put that famous "platform-independent" video abstraction (from gstreamer, proprietary renderers and etc.) code, that makes video scaling, pausing and any interaction to be laggy as hell (even laggier than flash) on any machine, to good use of detecting paused state.
2) Work on flash spawn.
3) Work with any screensaver.
I hate to say it, but maybe such disparity warrants a dirty "Windows-way" of simulating user activity periodically while video is playing. Examples of this probably can be found in KDE/GNOME code that creates dbus "SimulateUserActivity" "method" or in Firefox's code itself.

Moreover, aforementioned "Caffeine" Ubuntu hack is pretty crude (it supposed to somehow force screensavers off when detecting a fullscreen window). It didn't seem to work for me with HTML5 video in Firefox. And going for fullscreen windows is a questionable approach anyway.