GTK3 build cannot display Flash contents.

RESOLVED FIXED in Firefox 35

Status

()

defect
RESOLVED FIXED
5 years ago
5 years ago

People

(Reporter: hidenosuke, Assigned: glandium)

Tracking

Trunk
mozilla35
x86_64
Linux
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(firefox34 affected, firefox35 fixed)

Details

Attachments

(1 attachment)

Firefox GTK3 build cannot display Flash contents.

Steps to reroduce:
1. Open http://japanese.engadget.com/video/5min/518281818/

Actual result:
1. Flash player are not displayed.

Environment:
OS: Debian GNU/Linux adm64 unstable(most recent)
GNOME 3.12
GTK: 3.12.2-1+b1
The output to console is following:

(plugin-container:4781): Gtk-ERROR **: GTK+ 2.x symbols detected. Using GTK+ 2.x and GTK+ 3 in the same process is not supported
[4682] WARNING: pipe error (93): 接続が相手からリセットされました: file /home/hideo/develop/mozilla-central/ipc/chromium/src/chrome/common/ipc_channel_posix.cc, line 452
What version of Firefox (cset, ideally?) are you using? What version of flash player?
Blocks: gtk3
Component: General → Widget: Gtk
Flags: needinfo?(hidenosuke)
Product: Firefox → Core
Version: unspecified → Trunk
(In reply to :Gijs Kruitbosch from comment #2)
> What version of Firefox (cset, ideally?) are you using? What version of
> flash player?

I pulled source codes form mozilla-central and built them.
Version of Flash player is 11.2.202.394.

.mozconfig is following:
. $topsrcdir/browser/config/mozconfig
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/fx-opt
mk_add_options AUTOCONF=autoconf2.13
# Options for 'configure' (same as command-line options).
# Enable parallel compiling
mk_add_options MOZ_MAKE_FLAGS="-j4"

# Avoid dependency on libstdc++ 4.5
ac_add_options --enable-stdcxx-compat

# Use ccache
ac_add_options --with-ccache=/usr/bin/ccache

# Enable Profile-guided Optimization
mk_add_options PROFILE_GEN_SCRIPT='$(MAKE) -C $(MOZ_OBJDIR) pgo-profile-run'
ac_add_options --enable-profiling

# Use gtk3 for default toolkit
ac_add_options --enable-default-toolkit=cairo-gtk3
#ac_add_options --disable-crashreporter
ac_add_options --without-system-nspr
ac_add_options --without-system-nss

#ac_add_options --disable-optimize
#ac_add_options --enable-debug

mk_add_options AUTOCLOBBER=1
Flags: needinfo?(hidenosuke)
plugin-container should not be loading GTK3 libraries.

http://hg.mozilla.org/mozilla-central/annotate/0c7eb00d3ef6/ipc/glue/GeckoChildProcessHost.cpp#l542
should mean that libmozgtk2.so is loaded instead of GTK3 libraries.

Check that libmozgtk2.so does not depend on GTK3 libraries.
Yes, I can reproduce it, with latest trunk.
I have this too since Aurora was updated to 34. It was working fine before.
Libxul.so directly depends on libgtk-3.so.0. Seems like something screwed up the linking. I've also noticed that the build fails since 34 if the LDFLAGS contain -Wl,--as-needed.
libxu.so is linked with gtk3 (there are -lgtk-3 -lgdk-3 on the linker command line).
I created bug 1063359 for the --as-needed FTBFS.
I don't think the --as-needed is the problem here. Looks like a regression caused by Bug 1045783, which explicitly links libxul.so with the gtk3 libraries. See:

http://hg.mozilla.org/mozilla-central/annotate/db7212847c14/toolkit/library/moz.build#l287
(In reply to Martin Stránský from comment #10)
> I don't think the --as-needed is the problem here. Looks like a regression
> caused by Bug 1045783, which explicitly links libxul.so with the gtk3
> libraries. See:
> 
> http://hg.mozilla.org/mozilla-central/annotate/db7212847c14/toolkit/library/
> moz.build#l287

It's the exact opposite: that adds all flags from TK_LIBS *except* -lgtk-3 and -lgdk-3.
What does grep gtk-3 $objdir/config/autoconf.mk say?
grep gtk-3 $objdir/config/autoconf.mk:

MOZ_GTK3_CFLAGS = -I/home/komat/tmp675-trunk-try/src/widget/gtk/compat-gtk3 -pthread -I/usr/include/gtk-3.0/unix-print -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libdrm -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include

MOZ_GTK3_LIBS = -lgtk-3 -lgdk-3 -lpangocairo-1.0 -lpango-1.0 -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0
TK_LIBS='$(MOZ_GTK3_LIBS)'
doh.
Try removing those single quotes.
Assignee: nobody → mh+mozilla
Status: NEW → ASSIGNED
Comment on attachment 8484848 [details] [diff] [review]
Properly link libxul.so on GTK+3 builds after bug 1045783

Works for me.
(In reply to Martin Stránský from comment #17)
> Comment on attachment 8484848 [details] [diff] [review]
> Properly link libxul.so on GTK+3 builds after bug 1045783
> 
> Works for me.

I tried this patch and it works for me too.
Thanks.
I can confirm the patch above fixed the issue for me too.
Blocks: 1045783
Comment on attachment 8484848 [details] [diff] [review]
Properly link libxul.so on GTK+3 builds after bug 1045783

Why does MOZ_GTK3_LIBS need to be different from MOZ_GTK2_LIBS and MOZ_GTK3_CFLAGS? If the single-quotes break MOZ_GTK3_LIBS, I'd expect it to be similarly broken for those other two variables. It isn't clear why they can't be consistent.
Flags: needinfo?(mh+mozilla)
MOZ_GTK3_LIBS needs to be different from MOZ_GTK2_LIBS and MOZ_GTK3_CFLAGS because of
http://hg.mozilla.org/mozilla-central/annotate/db7212847c14/toolkit/library/moz.build#l286
Flags: needinfo?(mh+mozilla)
Comment on attachment 8484848 [details] [diff] [review]
Properly link libxul.so on GTK+3 builds after bug 1045783

Ugh, please document that somehow in configure.in It's really not obvious at all from that file why it should be different.
Attachment #8484848 - Flags: review?(mshal) → review+
https://hg.mozilla.org/mozilla-central/rev/652274acc306
Status: ASSIGNED → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla35
You need to log in before you can comment on or make changes to this bug.