WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
282409
REGRESSION(
285310@main
): [GTK] Cannot open links on various websites
https://bugs.webkit.org/show_bug.cgi?id=282409
Summary
REGRESSION(285310@main): [GTK] Cannot open links on various websites
Michael Catanzaro
Reported
2024-10-31 14:30:21 PDT
Using Epiphany with WebKitGTK 2.47.1, visit:
https://www.reddit.com/r/news/comments/1ggpaiu/rapper_young_thug_accepts_plea_deal_in_georgia/
Click on the "abcnews.go.com" link (which actually goes to
https://abcnews.go.com/US/rapper-young-thug-accepts-plea-deal-georgia-rico/story?id=115370318
), underneath the image Observe that Epiphany opens an empty tab instead of loading the page as expected. It works fine if you right click the link and select Open Link in New Tab.
Attachments
Add attachment
proposed patch, testcase, etc.
Michael Catanzaro
Comment 1
2024-10-31 14:31:11 PDT
(Interestingly, attempting to close the Blank Page causes the Epiphany UI process to crash, but that's surely a separate bug.)
Michael Catanzaro
Comment 2
2024-11-01 13:34:06 PDT
This UI process crash occurs if the Blank Page is closed *after* its opener page. Epiphany assumes that the opener view is not destroyed before the new view is ready to show. Arguably this is an error, because the user might have a superhuman reaction time, but realistically I'd say this is WebKit's fault for emitting ready-to-show late. (gdb) bt #0 0x00007fc0fb0dd1f5 in gtk_widget_get_root (widget=widget@entry=0x556e5ab888c0) at ../gtk/gtkwidget.c:6205 #1 0x00007fc0fbdc9608 in web_view_ready_cb (web_view=0x556e5bc25390 [EphyWebView], parent_web_view=0x556e5ab888c0) at ../src/ephy-window.c:1940 #6 0x00007fc0fbab51b3 in <emit signal 'ready-to-show' on instance 0x556e5bc25390 [EphyWebView]> (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>) at ../gobject/gsignal.c:3582 #2 0x00007fc0fba9799a in g_closure_invoke (closure=0x556e5ba04d80, return_value=0x0, n_param_values=1, param_values=0x7ffe9c74c950, invocation_hint=0x7ffe9c74c8a0) at ../gobject/gclosure.c:833 #3 0x00007fc0fbaad5c3 in signal_emit_unlocked_R (node=node@entry=0x7ffe9c74ca10, detail=detail@entry=0, instance=instance@entry=0x556e5bc25390, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7ffe9c74c950) at ../gobject/gsignal.c:3887 #4 0x00007fc0fbaaf071 in signal_emit_valist_unlocked (instance=instance@entry=0x556e5bc25390, signal_id=signal_id@entry=277, detail=detail@entry=0, var_args=var_args@entry=0x7ffe9c74cb80) at ../gobject/gsignal.c:3519 #5 0x00007fc0fbab50f1 in g_signal_emit_valist (instance=0x556e5bc25390, signal_id=277, detail=0, var_args=0x7ffe9c74cb80) at ../gobject/gsignal.c:3262 #7 0x00007fc0f61f652b in IPC::callMemberFunction<WebKit::WebPageProxy, WebKit::WebPageProxy, void (), std::tuple<> >(WebKit::WebPageProxy*, void (WebKit::WebPageProxy::*)(), std::tuple<>&&)::{lambda((auto:1&&)...)#1}::operator()<>() const (this=<optimized out>) at /buildstream/gnome/sdk/webkitgtk-6.0.bst/Source/WebKit/Platform/IPC/HandleMessage.h:133 #8 std::__invoke_impl<void, IPC::callMemberFunction<WebKit::WebPageProxy, WebKit::WebPageProxy, void (), std::tuple<> >(WebKit::WebPageProxy*, void (WebKit::WebPageProxy::*)(), std::tuple<>&&)::{lambda((auto:1&&)...)#1}>(std::__invoke_other, IPC::callMemberFunction<WebKit::WebPageProxy, WebKit::WebPageProxy, void (), std::tuple<> >(WebKit::WebPageProxy*, void (WebKit::WebPageProxy::*)(), std::tuple<>&&)::{lambda((auto:1&&)...)#1}&&) (__f=<optimized out>) at /usr/bin/../lib/gcc/x86_64-unknown-linux-gnu/14.2.0/../../../../include/c++/14.2.0/bits/invoke.h:61 #9 std::__invoke<IPC::callMemberFunction<WebKit::WebPageProxy, WebKit::WebPageProxy, void (), std::tuple<> >(WebKit::WebPageProxy*, void (WebKit::WebPageProxy::*)(), std::tuple<>&&)::{lambda((auto:1&&)...)#1}>(IPC::callMemberFunction<WebKit::WebPageProxy, WebKit::WebPageProxy, void (), std::tuple<> >(WebKit::WebPageProxy*, void (WebKit::WebPageProxy::*)(), std::tuple<>&&)::{lambda((auto:1&&)...)#1}&&) (__fn=<optimized out>) at /usr/bin/../lib/gcc/x86_64-unknown-linux-gnu/14.2.0/../../../../include/c++/14.2.0/bits/invoke.h:96 #10 _ZSt12__apply_implIZN3IPC18callMemberFunctionIN6WebKit12WebPageProxyES3_FvvESt5tupleIJEEEEvPT_MT0_T1_OT2_EUlDpOT_E_S6_TpTnmJEEDcOS7_OS9_St16integer_sequenceImJXspT1_EEE (__f=<optimized out>, __t=<optimized out>) at /usr/bin/../lib/gcc/x86_64-unknown-linux-gnu/14.2.0/../../../../include/c++/14.2.0/tuple:2921 #11 _ZSt5applyIZN3IPC18callMemberFunctionIN6WebKit12WebPageProxyES3_FvvESt5tupleIJEEEEvPT_MT0_T1_OT2_EUlDpOT_E_TkSt12__tuple_likeS6_EDcOS7_OS9_ (__f=<optimized out>, __t=<optimized out>) at /usr/bin/../lib/gcc/x86_64-unknown-linux-gnu/14.2.0/../../../../include/c++/14.2.0/tuple:2936 #12 IPC::callMemberFunction<WebKit::WebPageProxy, WebKit::WebPageProxy, void (), std::tuple<> >(WebKit::WebPageProxy*, void (WebKit::WebPageProxy::*)(), std::tuple<>&&) (object=0x7fc0e1b4c680, function=<optimized out>, tuple=<optimized out>) at /buildstream/gnome/sdk/webkitgtk-6.0.bst/Source/WebKit/Platform/IPC/HandleMessage.h:131 #13 IPC::handleMessage<Messages::WebPageProxy::ShowPage, IPC::Connection, WebKit::WebPageProxy, WebKit::WebPageProxy, void()> (connection=..., decoder=..., object=0x7fc0e1b4c680, function=<optimized out>) at /buildstream/gnome/sdk/webkitgtk-6.0.bst/Source/WebKit/Platform/IPC/HandleMessage.h:233 #14 WebKit::WebPageProxy::didReceiveMessage (this=0x7fc0e1b4c680, connection=..., decoder=...) at /buildstream/gnome/sdk/webkitgtk-6.0.bst/_builddir/DerivedSources/WebKit/WebPageProxyMessageReceiver.cpp:326 #15 0x00007fc0f6620321 in IPC::MessageReceiverMap::dispatchMessage (this=<optimized out>, connection=..., decoder=...) at /buildstream/gnome/sdk/webkitgtk-6.0.bst/Source/WebKit/Platform/IPC/MessageReceiverMap.cpp:129 #16 0x00007fc0f673251c in WebKit::WebProcessProxy::dispatchMessage (this=0x556e5ab888c0, connection=..., decoder=...) at /buildstream/gnome/sdk/webkitgtk-6.0.bst/Source/WebKit/UIProcess/WebProcessProxy.cpp:1239 #17 0x00007fc0f6225cea in WebKit::WebProcessProxy::didReceiveMessage (this=0x556e5ab888c0, connection=..., decoder=...) at /buildstream/gnome/sdk/webkitgtk-6.0.bst/_builddir/DerivedSources/WebKit/WebProcessProxyMessageReceiver.cpp:194 #18 0x00007fc0f6619c26 in IPC::Connection::dispatchMessage (this=0x7fc0e1032560, message=...) at /buildstream/gnome/sdk/webkitgtk-6.0.bst/Source/WebKit/Platform/IPC/Connection.cpp:1434 #19 0x00007fc0f661a139 in IPC::Connection::dispatchIncomingMessages (this=0x7fc0e1032560) at /buildstream/gnome/sdk/webkitgtk-6.0.bst/Source/WebKit/Platform/IPC/Connection.cpp:1550 #20 0x00007fc0f54380bb in WTF::Function<void()>::operator() (this=<optimized out>) at /buildstream/gnome/sdk/webkitgtk-6.0.bst/Source/WTF/wtf/Function.h:82 #21 WTF::RunLoop::performWork (this=0x7fc0e10180e0) at /buildstream/gnome/sdk/webkitgtk-6.0.bst/Source/WTF/wtf/RunLoop.cpp:147 #22 0x00007fc0f54d8fed in WTF::RunLoop::RunLoop()::$_0::operator()(void*) const (userData=0x556e5ab888c0, userData@entry=0x7fc0e10180e0, this=<optimized out>) at /buildstream/gnome/sdk/webkitgtk-6.0.bst/Source/WTF/wtf/glib/RunLoopGLib.cpp:80 #23 WTF::RunLoop::RunLoop()::$_0::__invoke(void*) (userData=0x556e5ab888c0) at /buildstream/gnome/sdk/webkitgtk-6.0.bst/Source/WTF/wtf/glib/RunLoopGLib.cpp:79 #24 0x00007fc0f54d8071 in WTF::RunLoop::$_0::operator() (source=0x556e59867e00, callback=0x7fc0f54d8fe0 <WTF::RunLoop::RunLoop()::$_0::__invoke(void*)>, userData=0x7fc0e10180e0, this=<optimized out>) at /buildstream/gnome/sdk/webkitgtk-6.0.bst/Source/WTF/wtf/glib/RunLoopGLib.cpp:53 #25 WTF::RunLoop::$_0::__invoke (source=0x556e59867e00, callback=0x7fc0f54d8fe0 <WTF::RunLoop::RunLoop()::$_0::__invoke(void*)>, userData=0x7fc0e10180e0) at /buildstream/gnome/sdk/webkitgtk-6.0.bst/Source/WTF/wtf/glib/RunLoopGLib.cpp:45 #26 0x00007fc0fb985477 in g_main_dispatch (context=context@entry=0x556e5982d680) at ../glib/gmain.c:3361 #27 0x00007fc0fb987787 in g_main_context_dispatch_unlocked (context=0x556e5982d680) at ../glib/gmain.c:4212 #28 g_main_context_iterate_unlocked (context=context@entry=0x556e5982d680, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4277 #29 0x00007fc0fb987f73 in g_main_context_iteration (context=context@entry=0x556e5982d680, may_block=may_block@entry=1) at ../glib/gmain.c:4342 #30 0x00007fc0fbbe1105 in g_application_run (application=0x556e5986f6b0 [EphyShell], argc=<optimized out>, argv=<optimized out>) at ../gio/gapplication.c:2715 #31 0x0000556e35fb303c in main (argc=<optimized out>, argv=<optimized out>) at ../src/ephy-main.c:445
Carlos Garcia Campos
Comment 3
2024-11-04 02:01:43 PST
I guess related pages are broken, probably after a site isolation related commit.
Carlos Garcia Campos
Comment 4
2024-11-04 02:13:08 PST
Maybe related
https://bugs.webkit.org/show_bug.cgi?id=281747
Jim Mason
Comment 5
2024-11-06 02:14:51 PST
FYI, the issue appeared for me between
285143@main
(working) and
285821@main
(broken)
Jim Mason
Comment 6
2024-11-06 11:23:38 PST
(In reply to Carlos Garcia Campos from
comment #4
)
> Maybe related
https://bugs.webkit.org/show_bug.cgi?id=281747
Confirmed. Reverting
285310@main
cleared this issue for me.
Carlos Garcia Campos
Comment 7
2024-11-07 01:31:17 PST
Pull request:
https://github.com/WebKit/WebKit/pull/36316
EWS
Comment 8
2024-11-07 04:31:49 PST
Committed
286275@main
(c4caec74bda9): <
https://commits.webkit.org/286275@main
> Reviewed commits have been landed. Closing PR #36316 and removing active labels.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug