Details
Description
Using File > Save Online in MuseScore we use WebEngine to upload score files to musescore.com, resp. to show a dialog to set some score properties.
In (64-bit) builds using Qt 5.14.2 (msvc2017_64) or 5.15.0-RC2 (msvc2019_64) this crashes, apparently right after the file got uploaded and just before the Web dialog should show to set these score properties (nice name, whether Public Domain or Original Work or some foreign copyright, whether to share publicly, etc).
No such crash happens with QT 5.9.8 nor with Qt 5.12.8. 32-bit builds have not (yet) been tried.
Particularly annoying in connection with QTBUG-81727, as with VS2019 16.6 we can't use those older working Qt versions and not the new crashing ones either.
Crash:
Exception thrown: read access violation. content::WebContentsDelegate::GetJavaScriptDialogManager[virtual](...) returned nullptr.
Function where the crash occurs:
void WebContentsDelegateQt::CloseContents(content::WebContents *source) { m_viewClient->close(); GetJavaScriptDialogManager(source)->CancelDialogs(source, /* whatever?: */false); }
Stack trace, produced with VS2019 16.6 and Qt 5.14.2 (but the same happens with VS2019 16.5.4 and Qt 5.15.0 RC2):
Qt5WebEngineCore.dll!QtWebEngineCore::WebContentsDelegateQt::CloseContents(content::WebContents * source) Line 256 Qt5WebEngineCore.dll!content::WebContentsImpl::Close(content::RenderViewHost * rvh) Line 5882 [Inline Frame] Qt5WebEngineCore.dll!base::DispatchToMethodImpl(content::RenderWidgetHostImpl * const &) Line 52 [Inline Frame] Qt5WebEngineCore.dll!base::DispatchToMethod(content::RenderWidgetHostImpl * const &) Line 60 [Inline Frame] Qt5WebEngineCore.dll!IPC::DispatchToMethod(content::RenderWidgetHostImpl *) Line 51 Qt5WebEngineCore.dll!IPC::MessageT,void>::Dispatch(const IPC::Message * msg, content::RenderWidgetHostImpl * obj, content::RenderWidgetHostImpl * sender, void * parameter, void(content::RenderWidgetHostImpl::*)() func) Line 146 Qt5WebEngineCore.dll!content::RenderWidgetHostImpl::OnMessageReceived(const IPC::Message & msg) Line 618 Qt5WebEngineCore.dll!content::RenderProcessHostImpl::OnMessageReceived(const IPC::Message & msg) Line 3358 Qt5WebEngineCore.dll!IPC::ChannelProxy::Context::OnDispatchMessage(const IPC::Message & message) Line 324 [Inline Frame] Qt5WebEngineCore.dll!base::OnceCallback::Run() Line 98 Qt5WebEngineCore.dll!base::TaskAnnotator::RunTask(const char * trace_event_name, base::PendingTask * pending_task) Line 142 Qt5WebEngineCore.dll!base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWorkImpl(base::sequence_manager::LazyNow * continuation_lazy_now, bool * ran_task) Line 366 Qt5WebEngineCore.dll!base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWork() Line 270 [Inline Frame] Qt5WebEngineCore.dll!QtWebEngineCore::MessagePumpForUIQt::handleScheduledWork() Line 204 [Inline Frame] Qt5WebEngineCore.dll!QtWebEngineCore::MessagePumpForUIQt::::operator()() Line 117 [Inline Frame] Qt5WebEngineCore.dll!std::_Invoker_functor::_Call(QtWebEngineCore::MessagePumpForUIQt:: &) [Inline Frame] Qt5WebEngineCore.dll!std::invoke(QtWebEngineCore::MessagePumpForUIQt:: &) [Inline Frame] Qt5WebEngineCore.dll!std::_Invoker_ret::_Call(QtWebEngineCore::MessagePumpForUIQt:: &) Qt5WebEngineCore.dll!std::_Func_impl_no_alloc<,void>::_Do_call() Qt5Core.dll!QObject::event(QEvent * e) Line 1366 Qt5Widgets.dll!QApplicationPrivate::notify_helper(QObject * receiver, QEvent * e) Line 3687 Qt5Widgets.dll!QApplication::notify(QObject * receiver, QEvent * e) Line 3639 Qt5Core.dll!QCoreApplication::notifyInternal2(QObject * receiver, QEvent * event) Line 1075 [Inline Frame] Qt5Core.dll!QCoreApplication::sendEvent(QObject *) Line 1470 Qt5Core.dll!QCoreApplicationPrivate::sendPostedEvents(QObject * receiver, int event_type, QThreadData * data) Line 1815 qwindows.dll!QWindowsGuiEventDispatcher::sendPostedEvents() Line 82 Qt5Core.dll!QEventDispatcherWin32::processEvents(QFlags flags) Line 525 qwindows.dll!QWindowsGuiEventDispatcher::processEvents(QFlags flags) Line 75 [Inline Frame] Qt5Core.dll!QEventLoop::processEvents(QFlags) Line 138 Qt5Core.dll!QEventLoop::exec(QFlags flags) Line 225 Qt5Core.dll!QCoreApplication::exec() Line 1383 MuseScore3.exe!Ms::runApplication(int & argc, char * * av) Line 7835 MuseScore3.exe!main(int argc, char * * argv) Line 92 [Inline Frame] MuseScore3.exe!invoke_main() Line 78 MuseScore3.exe!__scrt_common_main_seh() Line 288 kernel32.dll!BaseThreadInitThunk() Unknown ntdll.dll!RtlUserThreadStart() Unknown
See also MuseScore issue #305700
Attachments
Issue Links
- resulted from
-
QTBUG-74166 Implement page lifecycle API
- Closed
For Gerrit Dashboard: QTBUG-84355 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
301468,4 | Fix crash on WebContentsDelegateQt::CloseContents() | 5.15 | qt/qtwebengine | Status: MERGED | +2 | 0 |