Details
Description
Using QML WebEngineView, clicking on a `<select>` tag crashes the application. This generally shows a dropdown menu. Note I am using QQuickWindow / QQuickRenderControl / QQmlEngine for offscreen rendering with QRhi.
Demo page: https://www.w3schools.com/tags/tryit.asp?filename=tryhtml_select
Dark mode on/off makes no difference.
I tried to stop the menu from showing up in QML, but it makes no difference
onContextMenuRequested: {
request.accepted = true
}
Crash observed on both Linux and Windows.
backtrace
#0 QtWebEngineCore::RenderWidgetHostViewQt::UpdateBackgroundColor() () at /home/qt/work/qt/qtwebengine/src/core/render_widget_host_view_qt.cpp:392 #1 0x00007fffdf1735f1 in content::RenderWidgetHostViewBase::SetBackgroundColor(unsigned int) () at ../../../../../qtwebengine/src/3rdparty/chromium/content/browser/renderer_host/render_widget_host_view_base.cc:316 #2 0x00007fffdc024a99 in QtWebEngineCore::RenderWidgetHostViewQt::OnRendererWidgetCreated() () at /home/qt/work/qt/qtwebengine/src/core/render_widget_host_view_qt.cpp:306 #3 0x00007fffdf16435a in content::RenderWidgetHostImpl::RendererWidgetCreated(bool) () at ../../../../../qtwebengine/src/3rdparty/chromium/content/browser/renderer_host/render_widget_host_impl.cc:776 #4 0x00007fffdf0bcd27 in content::RenderFrameHostImpl::CreateNewPopupWidget(mojo::PendingAssociatedReceiver<blink::mojom::PopupWidgetHost>, mojo::PendingAssociatedReceiver<blink::mojom::WidgetHost>, mojo::PendingAssociatedRemote<blink::mojom::Widget>) () at ../../../../../qtwebengine/src/3rdparty/chromium/content/browser/renderer_host/render_frame_host_impl.cc:9058 #5 0x00007fffde5bd592 in blink::mojom::LocalFrameHostStubDispatch::Accept(blink::mojom::LocalFrameHost*, mojo::Message*) () at /home/user/myproj/linux_x86_64-runtime/lib/libQt6WebEngineCore.so.6 #6 0x00007fffe0c6c55c in mojo::InterfaceEndpointClient::HandleValidatedMessage(mojo::Message*) () at ../../../../../qtwebengine/src/3rdparty/chromium/mojo/public/cpp/bindings/lib/interface_endpoint_client.cc:1022 #7 0x00007fffe0c6d773 in mojo::MessageDispatcher::Accept(mojo::Message*) () at ../../../../../qtwebengine/src/3rdparty/chromium/mojo/public/cpp/bindings/lib/message_dispatcher.cc:48 #8 0x00007fffe0c6beee in mojo::InterfaceEndpointClient::HandleIncomingMessage(mojo::Message*) () at ../../../../../qtwebengine/src/3rdparty/chromium/mojo/public/cpp/bindings/lib/interface_endpoint_client.cc:706 #9 0x00007fffe0ea98f9 in AcceptOnEndpointThread() () at ../../../../../qtwebengine/src/3rdparty/chromium/ipc/ipc_mojo_bootstrap.cc:1180 #10 0x00007fffe0ea5922 in Invoke<void (IPC::ChannelAssociatedGroupController::*)(mojo::Message, IPC::(anonymous namespace)::ScopedUrgentMessageNotification), scoped_refptr<IPC::ChannelAssociatedGroupController>, mojo::Message, IPC::(anonymous namespace)::ScopedUrgentMessageNotification> () at ../../../../../qtwebengine/src/3rdparty/chromium/base/functional/bind_internal.h:711 #11 MakeItSo<void (IPC::ChannelAssociatedGroupController::*)(mojo::Message, IPC::(anonymous namespace)::ScopedUrgentMessageNotification), std::tuple<scoped_refptr<IPC::ChannelAssociatedGroupController>, mojo::Message, IPC::(anonymous namespace)::ScopedUrgentMessageNotification> > () at ../../../../../qtwebengine/src/3rdparty/chromium/base/functional/bind_internal.h:861 #12 RunImpl<void (IPC::ChannelAssociatedGroupController::*)(mojo::Message, IPC::(anonymous namespace)::ScopedUrgentMessageNotification), std::tuple<scoped_refptr<IPC::ChannelAssociatedGroupController>, mojo::Message, IPC::(anonymous namespace)::ScopedUrgentMessageNotification>, 0, 1, 2> () at ../../../../../qtwebengine/src/3rdparty/chromium/base/functional/bind_internal.h:992 #13 RunOnce() () at ../../../../../qtwebengine/src/3rdparty/chromium/base/functional/bind_internal.h:905 #14 0x00007fffe02c6366 in base::OnceCallback<void ()>::Run() && () at ../../../../../qtwebengine/src/3rdparty/chromium/base/functional/callback.h:156 #15 base::TaskAnnotator::RunTaskImpl(base::PendingTask&) () at ./../../../../../qtwebengine/src/3rdparty/chromium/base/task/common/task_annotator.cc:201 #16 0x00007fffe02e5e18 in RunTask<base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWorkImpl(base::LazyNow*)::<lambda(perfetto::EventContext&)> > () at ../../../../../qtwebengine/src/3rdparty/chromium/base/task/common/task_annotator.h:89 #17 base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWorkImpl(base::LazyNow*) () at ./../../../../../qtwebengine/src/3rdparty/chromium/base/task/sequence_manager/thread_controller_with_message_pump_impl.cc:478 #18 0x00007fffe02e68db in base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWork() () at ./../../../../../qtwebengine/src/3rdparty/chromium/base/task/sequence_manager/thread_controller_with_message_pump_impl.cc:343 #19 0x00007fffdbf9463d in QtWebEngineCore::MessagePumpForUIQt::handleScheduledWork() () at /home/qt/work/qt/qtwebengine/src/core/browser_main_parts_qt.cpp:155 #20 QtWebEngineCore::MessagePumpForUIQt::MessagePumpForUIQt()::{lambda()#1}::operator()() const () at /home/qt/work/qt/qtwebengine/src/core/browser_main_parts_qt.cpp:106 #21 std::__invoke_impl<void, QtWebEngineCore::MessagePumpForUIQt::MessagePumpForUIQt()::{lambda()#1}&>(std::__invoke_other, QtWebEngineCore::MessagePumpForUIQt::MessagePumpForUIQt()::{lambda()#1}&) () at /opt/rh/gcc-toolset-10/root/usr/include/c++/10/bits/invoke.h:60 #22 std::__invoke_r<void, QtWebEngineCore::MessagePumpForUIQt::MessagePumpForUIQt()::{lambda()#1}&>(QtWebEngineCore::MessagePumpForUIQt::MessagePumpForUIQt()::{lambda()#1}&) () at /opt/rh/gcc-toolset-10/root/usr/include/c++/10/bits/invoke.h:110 #23 std::_Function_handler<void (), QtWebEngineCore::MessagePumpForUIQt::MessagePumpForUIQt()::{lambda()#1}>::_M_invoke(std::_Any_data const&) () at /opt/rh/gcc-toolset-10/root/usr/include/c++/10/bits/std_function.h:291 #24 0x00007fffd7fd2065 in QObject::event(QEvent*) (this=0x7fff84572a30, e=0x7ffee4c779c0) at /home/qt/work/qt/qtbase/src/corelib/kernel/qobject.cpp:1449 #25 0x00007fffda7901f6 in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x7fff84572a30, e=0x7ffee4c779c0) at /home/qt/work/qt/qtbase/src/widgets/kernel/qapplication.cpp:3294 #26 0x00007fffd7f7bf8a in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x7fff84572a30, event=0x7ffee4c779c0) at /home/qt/work/qt/qtbase/src/corelib/kernel/qcoreapplication.cpp:1165 #27 0x00007fffd7f7f97a in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (receiver=0x0, event_type=0, data=0x7fff84000f70) at /home/qt/work/qt/qtbase/src/corelib/kernel/qcoreapplication.cpp:1965 #28 0x00007fffd82541f7 in postEventSourceDispatch(GSource*, GSourceFunc, gpointer) (s=0x7fff84158ce0) at /home/qt/work/qt/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:246 #29 0x00007ffff78ced3b in g_main_context_dispatch () at /lib/x86_64-linux-gnu/libglib-2.0.so.0 #30 0x00007ffff79242b8 in () at /lib/x86_64-linux-gnu/libglib-2.0.so.0 #31 0x00007ffff78cc3e3 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0 #32 0x00007fffd82538be in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7fff841c76a0, flags=...) at /home/qt/work/qt/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:396 #33 0x00007fffd7f892a2 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fffa55ff560, flags=..., flags@entry=...) at /home/qt/work/qt/qtbase/src/corelib/global/qflags.h:34 #34 0x00007fffd7f85476 in QCoreApplication::exec() () at /home/qt/work/qt/qtbase/src/corelib/global/qflags.h:74 #35 0x00007fffe6cf09d5 in libfoo::LibFoo::_create_app() () at /root/out/gd-webview-linux-x86_64-debug/libfoo/lib/cute_lib.cpp:179 #36 0x00007fffe6d1c97d in std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) (__f=@0x9935b98: 0x7fffe6cf0154 <libfoo::LibFoo::_create_app()>) at /root/x86_64-godot-linux-gnu_sdk-buildroot/x86_64-godot-linux-gnu/include/c++/13.2.0/bits/invoke.h:61 #37 0x00007fffe6d1c935 in std::__invoke<void (*)()>(void (*&&)()) (__fn=@0x9935b98: 0x7fffe6cf0154 <libfoo::LibFoo::_create_app()>) at /root/x86_64-godot-linux-gnu_sdk-buildroot/x86_64-godot-linux-gnu/include/c++/13.2.0/bits/invoke.h:96 #38 0x00007fffe6d1c8e2 in std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) (this=0x9935b98) at /root/x86_64-godot-linux-gnu_sdk-buildroot/x86_64-godot-linux-gnu/include/c++/13.2.0/bits/std_thread.h:292 #39 0x00007fffe6d1c8b6 in std::thread::_Invoker<std::tuple<void (*)()> >::operator()() (this=0x9935b98) at /root/x86_64-godot-linux-gnu_sdk-buildroot/x86_64-godot-linux-gnu/include/c++/13.2.0/bits/std_thread.h:299 #40 0x00007fffe6d1c89a in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() (this=0x9935b90) at /root/x86_64-godot-linux-gnu_sdk-buildroot/x86_64-godot-linux-gnu/include/c++/13.2.0/bits/std_thread.h:244 #41 0x00007fffe6daec83 in execute_native_thread_routine () at /home/user/myproj/libfoo.so #42 0x00007ffff7c94ac3 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442 #43 0x00007ffff7d26850 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81