Details
-
Bug
-
Resolution: Done
-
P1: Critical
-
None
-
5.15.3
-
None
-
26f33dd7938ab03c586ff0e12e4d600c5852a351 (qt/qtwebengine-chromium/87-based) 7e0951307f5f38eb4d612403c365fd77e916c2ca (qt/qtwebengine-chromium/88-based) 124ade1c93dc84628f578b760023c171d13f2f85 (qt/qtwebengine-chromium/90-based)
Description
As mentioned in QTBUG-91856, I can't get screen sharing to work with QtWebEngine 5.15.3.
When refreshing after attempting to share the screen, I get a crash:
Thread 1 "python3" received signal SIGSEGV, Segmentation fault. 0x00007fffe103449a in webrtc_event_logging::WebRtcEventLogManager::IsRemoteLoggingAllowedForBrowserContext (this=0x0, browser_context=0x55555611d200) at ../../3rdparty/chromium/chrome/browser/media/webrtc/webrtc_event_log_manager.cc:508 508 if (!remote_logging_feature_enabled_) { (gdb) bt #0 0x00007fffe103449a in webrtc_event_logging::WebRtcEventLogManager::IsRemoteLoggingAllowedForBrowserContext (this=0x0, browser_context=0x55555611d200) at ../../3rdparty/chromium/chrome/browser/media/webrtc/webrtc_event_log_manager.cc:508 #1 0x00007fffe1033651 in webrtc_event_logging::WebRtcEventLogManager::StartRemoteLogging(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long, int, unsigned long, base::OnceCallback<void (bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)>) (this=0x0, render_process_id=5, session_id="5422087987364289433", max_file_size_bytes=4268032, output_period_ms=-1, web_app_id=1, reply=...) at ../../3rdparty/chromium/chrome/browser/media/webrtc/webrtc_event_log_manager.cc:406 #2 0x00007fffe107ed6b in WebRtcLoggingController::StartEventLogging(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long, int, unsigned long, base::RepeatingCallback<void (bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)> const&) (this=0x55555686ca30, session_id="5422087987364289433", max_log_size_bytes=4268032, output_period_ms=-1, web_app_id=1, callback=...) at ../../3rdparty/chromium/chrome/browser/media/webrtc/webrtc_logging_controller.cc:270 #3 0x00007fffe101c4a2 in extensions::WebrtcLoggingPrivateStartEventLoggingFunction::Run (this=0x7fff00122650) at ../../3rdparty/chromium/chrome/browser/extensions/api/webrtc_logging_private/webrtc_logging_private_api.cc:566 #4 0x00007fffe68f6922 in ExtensionFunction::RunWithValidation (this=0x7fff00122650) at ./../../3rdparty/chromium/extensions/browser/extension_function.cc:449 #5 0x00007fffe68f8bf7 in extensions::ExtensionFunctionDispatcher::DispatchWithCallbackInternal(ExtensionHostMsg_Request_Params const&, content::RenderFrameHost*, int, base::RepeatingCallback<void (ExtensionFunction::ResponseType, base::ListValue const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)> const&) (this=0x555556f6ff00, params=..., render_frame_host=0x555556f672f0, render_process_id=7, callback=...) at ./../../3rdparty/chromium/extensions/browser/extension_function_dispatcher.cc:383 #6 0x00007fffe68f831f in extensions::ExtensionFunctionDispatcher::Dispatch (this=0x555556f6ff00, params=..., render_frame_host=0x555556f672f0, render_process_id=7) at ./../../3rdparty/chromium/extensions/browser/extension_function_dispatcher.cc:257 #7 0x00007fffe695d8e7 in extensions::ExtensionWebContentsObserver::OnRequest (this=0x555556f6fee0, render_frame_host=0x555556f672f0, params=...) at ./../../3rdparty/chromium/extensions/browser/extension_web_contents_observer.cc:315 #8 0x00007fffe696bb59 in IPC::DispatchToMethodImpl<extensions::ExtensionWebContentsObserver, void (extensions::ExtensionWebContentsObserver::*)(content::RenderFrameHost*, ExtensionHostMsg_Request_Params const&), content::RenderFrameHost, std::tuple<ExtensionHostMsg_Request_Params>, 0ul> (obj=0x555556f6fee0, method= (void (extensions::ExtensionWebContentsObserver::*)(extensions::ExtensionWebContentsObserver * const, content::RenderFrameHost *, const ExtensionHostMsg_Request_Params &)) 0x7fffe695d826 <extensions::ExtensionWebContentsObserver::OnRequest(content::RenderFrameHost*, ExtensionHostMsg_Request_Params const&)>, parameter=0x555556f672f0, tuple=...) at ../../3rdparty/chromium/ipc/ipc_message_templates.h:65 #9 0x00007fffe6968c34 in IPC::DispatchToMethod<extensions::ExtensionWebContentsObserver, content::RenderFrameHost, ExtensionHostMsg_Request_Params const&, std::tuple<ExtensionHostMsg_Request_Params> > (obj=0x555556f6fee0, method= (void (extensions::ExtensionWebContentsObserver::*)(extensions::ExtensionWebContentsObserver * const, content::RenderFrameHost *, const ExtensionHostMsg_Request_Params &)) 0x7fffe695d826 <extensions::ExtensionWebContentsObserver::OnRequest(content::RenderFrameHost*, ExtensionHostMsg_Request_Params const&)>, parameter=0x555556f672f0, tuple=...) at ../../3rdparty/chromium/ipc/ipc_message_templates.h:77 #10 0x00007fffe6966570 in IPC::MessageT<ExtensionHostMsg_Request_Meta, std::tuple<ExtensionHostMsg_Request_Params>, void>::Dispatch<extensions::ExtensionWebContentsObserver, extensions::ExtensionWebContentsObserver, content::RenderFrameHost, void (extensions::ExtensionWebContentsObserver::*)(content::RenderFrameHost*, ExtensionHostMsg_Request_Params const&)> (msg=0x7fff00150ed0, obj=0x555556f6fee0, sender=0x555556f6fee0, parameter=0x555556f672f0, func= (void (extensions::ExtensionWebContentsObserver::*)(extensions::ExtensionWebContentsObserver * const, content::RenderFrameHost *, const ExtensionHostMsg_Request_Params &)) 0x7fffe695d826 <extensions::ExtensionWebContentsObserver::OnRequest(content::RenderFrameHost*, ExtensionHostMsg_Request_Params const&)>) at ../../3rdparty/chromium/ipc/ipc_message_templates.h:140 #11 0x00007fffe695d17a in extensions::ExtensionWebContentsObserver::OnMessageReceived (this=0x555556f6fee0, message=..., render_frame_host=0x555556f672f0) at ./../../3rdparty/chromium/extensions/browser/extension_web_contents_observer.cc:239 #12 0x00007fffee5df9b1 in content::WebContentsImpl::OnMessageReceived (this=0x555556f65880, render_frame_host=0x555556f672f0, message=...) at ../../3rdparty/chromium/content/browser/web_contents/web_contents_impl.cc:1167 #13 0x00007fffedaeba0d in content::RenderFrameHostImpl::OnMessageReceived (this=0x555556f672f0, msg=...) at ../../3rdparty/chromium/content/browser/renderer_host/render_frame_host_impl.cc:1774 #14 0x00007fffedf604eb in content::RenderProcessHostImpl::OnMessageReceived (this=0x555556f45cf0, msg=...) at ../../3rdparty/chromium/content/browser/renderer_host/render_process_host_impl.cc:3721 #15 0x00007fffe856970f in IPC::ChannelProxy::Context::OnDispatchMessage (this=0x7fff0009ea80, message=...) at ../../3rdparty/chromium/ipc/ipc_channel_proxy.cc:325 #16 0x00007fffe85715d1 in base::internal::FunctorTraits<void (IPC::ChannelProxy::Context::*)(IPC::Message const&), void>::Invoke<void (IPC::ChannelProxy::Context::*)(IPC::Message const&), scoped_refptr<IPC::ChannelProxy::Context>, IPC::Message> (method=(void (IPC::ChannelProxy::Context::*)(IPC::ChannelProxy::Context * const, const IPC::Message &)) 0x7fffe8569666 <IPC::ChannelProxy::Context::OnDispatchMessage(IPC::Message const&)>, receiver_ptr=...) at ../../3rdparty/chromium/base/bind_internal.h:498 #17 0x00007fffe857030c in base::internal::InvokeHelper<false, void>::MakeItSo<void (IPC::ChannelProxy::Context::*)(IPC::Message const&), scoped_refptr<IPC::ChannelProxy::Context>, IPC::Message> (functor= @0x7fff00150ec0: (void (IPC::ChannelProxy::Context::*)(IPC::ChannelProxy::Context * const, const IPC::Message &)) 0x7fffe8569666 <IPC::ChannelProxy::Context::OnDispatchMessage(IPC::Message const&)>) at ../../3rdparty/chromium/base/bind_internal.h:637 #18 0x00007fffe856df60 in base::internal::Invoker<base::internal::BindState<void (IPC::ChannelProxy::Context::*)(IPC::Message const&), scoped_refptr<IPC::ChannelProxy::Context>, IPC::Message>, void ()>::RunImpl<void (IPC::ChannelProxy::Context::*)(IPC::Message const&), std::tuple<scoped_refptr<IPC::ChannelProxy::Context>, IPC::Message>, 0ul, 1ul>(void (IPC::ChannelProxy::Context::*&&)(IPC::Message const&), std::tuple<scoped_refptr<IPC::ChannelProxy::Context>, IPC::Message>&&, std::integer_sequence<unsigned long, 0ul, 1ul>) (functor= @0x7fff00150ec0: (void (IPC::ChannelProxy::Context::*)(IPC::ChannelProxy::Context * const, const IPC::Message &)) 0x7fffe8569666 <IPC::ChannelProxy::Context::OnDispatchMessage(IPC::Message const&)>, bound=...) at ../../3rdparty/chromium/base/bind_internal.h:711 #19 0x00007fffe856caf5 in base::internal::Invoker<base::internal::BindState<void (IPC::ChannelProxy::Context::*)(IPC::Message const&), scoped_refptr<IPC::ChannelProxy::Context>, IPC::Message>, void ()>::RunOnce(base::internal::BindStateBase*) (base=0x7fff00150ea0) at ../../3rdparty/chromium/base/bind_internal.h:679 #20 0x00007fffe0ddbd94 in base::OnceCallback<void ()>::Run() && (this=0x5555562202c0) at ../../3rdparty/chromium/base/callback.h:100 #21 0x00007fffe7600bb5 in base::TaskAnnotator::RunTask (this=0x555556215ef8, trace_event_name=0x7fffda54a5df "SequenceManager RunTask", pending_task=0x5555562202c0) at ./../../3rdparty/chromium/base/task/common/task_annotator.cc:163 #22 0x00007fffe764b316 in base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWorkImpl (this=0x555556215d60, continuation_lazy_now=0x7fffffffbc80) at ./../../3rdparty/chromium/base/task/sequence_manager/thread_controller_with_message_pump_impl.cc:332 #23 0x00007fffe764ab38 in base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWork (this=0x555556215d60) at ./../../3rdparty/chromium/base/task/sequence_manager/thread_controller_with_message_pump_impl.cc:252 #24 0x00007fffe0d7f4a4 in QtWebEngineCore::MessagePumpForUIQt::handleScheduledWork (this=0x555556196250) at ../browser_main_parts_qt.cpp:208 #25 0x00007fffe0d7f1c5 in QtWebEngineCore::MessagePumpForUIQt::MessagePumpForUIQt()::{lambda()#1}::operator()() const (__closure=0x555556196278) at ../browser_main_parts_qt.cpp:121 [...]
Note I can't reproduce this with simplebrowser for some reason, only with qutebrowser - however, I don't believe this is an issue in my code.
Additionally, with a debug build, the DCHECK in ExtensionFunction::~ExtensionFunction() in chromium/extensions/browser/extension_function.cc gets hit:
extensions::ExtensionsBrowserClient* browser_client = extensions::ExtensionsBrowserClient::Get(); DCHECK(!browser_client || browser_client->IsShuttingDown() || did_respond() || ignore_all_did_respond_for_testing_do_not_use) << name();