Freshplayer fails to show any graphics in Firefox 42 on Linux after resize
It seems that Freshplayer fails to properly embed its video in latest Firefox versions on Linux, which now use GTK 3.
Here's the log:
[fresh] [warning] ppb_var_var_to_utf8, 'var' is not a string, (0)
(firefox:29864): Gdk-CRITICAL **: gdk_window_get_user_data: assertion 'GDK_IS_WINDOW (window)' failed
(firefox:29864): Gtk-CRITICAL **: gtk_container_add: assertion 'GTK_IS_CONTAINER (container)' failed
(firefox:29864): Gtk-CRITICAL **: gtk_widget_realize: assertion 'widget->priv->anchored || GTK_IS_INVISIBLE (widget)' failed
(firefox:29864): Gtk-CRITICAL **: gtk_socket_get_id: assertion '_gtk_widget_get_anchored (GTK_WIDGET (socket))' failed
latest Firefox versions on Linux
What version do you use? Where did you get it from?
As far as I know, Firefox supports both GTK+2 and GTK+3. It's selected during compilation which version will you get. Also there are a lot of other configuration options, they can have effect too.
Firefox 42 beta 8, but this happened on slightly older versions. Gentoo build, as I've mentioned, GTK 3 is enabled.
There should be something more. I've just tried to compile GTK+ 3 versions of 41.0.2 and 42.0b8, and they both work fine with all types of flash wmode (transparent, window, direct) on my machine.
Perhaps that XEmbed tension have something with particular version of GTK+ 3? Does it happen on every Flash movie?
By the way, have adding enable_xembed = 0 to ~/.config/freshwrapper.conf any effect?
Settings don't matter. I found that it's switching to theather mode that causes the graphics to disappear... related to resizing.
I've verified the issue, it also happens in GTK2 mode.
Potential culprit that appears after resize: (firefox:31978): Gtk-WARNING **: GtkContainerClass::add not implemented for `GtkSocket'
More version data: gtk+2: 2.24.28-r1 gtk+3: 3.16.7
Settings don't matter.
Which is weird, since without enabled XEmbed in a plugin, browser shouldn't bother with creating GtkSocket at all.
theather mode
What is theater mode?
disappear
Are there any messages containing "caught Xlib error" if you launch browser from terminal emulator?
(firefox:31978): Gtk-WARNING **: GtkContainerClass::add not implemented for `GtkSocket'
Searching the web gives some reports with similar errors:
- http://forum.peppermintos.com/index.php?topic=2284.0
- http://askubuntu.com/questions/661368/cannot-watch-hulu-on-firefox-after-fresh-install-on-14-04
which however, have no signs of freshwrapper used. Could you check whenever Flash 11.2 works fine?
No Xlib errors I can see. Flash also has Z-order trouble - after a resize it blinks instead. I bet on a Firefox bug.
Had you any chance to check whenever Flash 11.2 works?
Yes, it also has problems - in there, it looks like Z fighting. Chromium and Firefox 41 do not have any problems - I think this has to be forwarded to Mozilla Bugzilla instead.
Then it's unlikely I can do anything about it in freshplayerplugin.
Flash also has Z-order trouble - after a resize it blinks instead. I bet on a Firefox bug.
Here is excerpt from Firefox source code:
// The GtkSocket has a visible window, but the plugin's XEmbed plug will
// cover this window. Normally GtkSockets let the X server paint their
// background and this would happen immediately (before the plug is
// created). Setting the background to None prevents the server from
// painting this window, avoiding flicker.
// TODO GTK3
#if (MOZ_WIDGET_GTK == 2)
gdk_window_set_back_pixmap(gtk_widget_get_window(mSocketWidget), nullptr, FALSE);
#endif
Flickering mitigation is not implemented for GTK+ 3 version yet.
I'm not sure whether it's firefox or not. In any case I had the same issue (audio yes, video only blackbox) and managed to get it to work by disabling the enable_3d flag. I'm using Firefox 42, using OpenSUSE leap, using freshplayerplugin from packman repo. I had it working previously under OpenSUSE 13.1 with same firefox version, but obviously different syslibraries such as those for my intel graphics and different builds for firefox and freshplayer.
Best wishes, Mischa
@msalle, the bug looks like https://github.com/i-rinat/freshplayerplugin/issues/275#issuecomment-146226474
As far as I can tell, OpenSuSE leap 42 uses Mesa 11.0.2, exact version that had such issue. But since then, I changed configuration a bit, and now version with GLES2 emulator is built by default. It shouldn't be affected.
Which version of freshplayerplugin do you use? Have you tried version from master branch?
Ah, thanks for pointing me to that link! Indeed, opensuse leap uses Mesa 11.0.2. I'm using plugin 0.3.3 (packman repo build). I will try out the master/trunk version or try to get an updated mesa library, to see which solves it. I'll let you know what comes out of that...
I can confirm Mesa update (to e.g. 11.0.6) or master version fixes the black box. I now only have an issue with my microphone, playing audio is fine, but capture is extremely slow and broken up, also in master version. I'll open a separate issue for that.