Description of problem: Firefox crashes when opening links from gtk3 applications. Version-Release number of selected component (if applicable): gtk3-3.17.8-1.fc23.x86_64 firefox-40.0.3-1.fc23.x86_64 How reproducible: always. On every click on any link in gnome-terminal, from gnome-abrt, from any gnome/gtk "About" dialog link, etc. From a fresh firefox profile as well as from an older one. Steps to Reproduce: 1. Open nautilus 2. open the "About" dialog 3. click one of the links Actual results: Firefox crashes. I see the firefox/mozilla crash reporter. Expected results: Clicking a link should not crash firefox – obviously. Additional info: I don't know whether this is specific to wayland. I don't have a non-wayland session on F23 working right now to test.
Yes, I can reproduce that as well - If firefox is not running it will crash, if it's running it won't do anything. This seems to be specific to Wayland, it works fine on X11.
Hm, but Firefox itself run fine, doesn't it? I mean if you launch it from terminal or menu. It crashes when it's launched from active Wayland application, right?
Anyway, can you please attach a backtrace of the crash? See http://fedoraproject.org/wiki/Debugging_guidelines_for_Mozilla_products for details.
Created attachment 1072081 [details] Backtrace as requested in #3, see https://fedoraproject.org/wiki/Debugging_guidelines_for_Mozilla_products#Application_crash What I found weird is that running firefox from gnome-terminal with an URL works fine whereas it crashes with the exact same URL (in fact with the exact same argv pointer in execve) when run from a Gtk application. This led to the assumption that the environment (envp pointer in execve) is culprit. By diff-ing the env (from running `env` and `strace -f -v -s 2000 -e trace=process gedit`) I found out that the environments differ in 2 or 3 variables. Most important: when run from gnome-terminal, you see "DISPLAY=:0", when run from Gtk applications "DISPLAY=wayland-0". Running DISPLAY=:0 firefox http://gnome.org or firefox http://gnome.org works fine while DISPLAY=wayland-0 firefox http://gnome.org crashes. Looks like this is a Gtk/GLib issue, am I right? If yes, please reassign there and change the title.
the DISPLAY variable should not be a wayland display - Firefox is a X11 app and does not expect wayland here. Thanks for the investigation, moving.
I am not entirely sure this is gtk though, but in glib rather. gtk invokes gtk_show_uri() which will call g_desktop_app_info_launch_uris_with_spawn() from glib and this is the one that sets the DISPLAY variable: in glib/gio/gdesktopappinfo.c 2717 display = g_app_launch_context_get_display (launch_context, 2718 G_APP_INFO (info), 2719 launched_files); 2720 if (display) 2721 envp = g_environ_setenv (envp, "DISPLAY", display, TRUE); The problem with this within Wayland is that g_app_launch_context_get_display() will return the GdkWaylandDisplay and not a GdkX11Display, ie "wayland-0" so glib's g_desktop_app_info_launch_uris_with_spawn() set DISPLAY to the wrong value (not gtk).
Patches have been merged upstream
Fixed in Fedora 23 release.