Crash when using qml webengineview
-
Hi,
I am getting random crashes when I use webengineview in debug mode[10980:14076:0114/163619.937:FATAL:com_init_util.cc(71)] Check failed: false. CoCreateInstance calls in Chromium require explicit COM initialization via base::CreateCOMSTATaskRunnerWithTraits() or ScopedCOMInitializer. See the comment in DCheckedCoCreateInstance for more details.
My environment: windows10, msvc2017 32 bit, qt 5.12.0
I also use axcontainer module to load an ActiveX object, this is a must for my application. I use these libraries
QT += qml quick quickcontrols2
QT += widgets
QT += multimedia
QT += core
QT += webengine
QT += axcontainerIs there any caveat when using together with other COM components?
Please let me know if this is known error or give me any clue. I can post most information if required.
-
I wrote to chromium developers, so, here is the summary
- It is not a crash, it is a failed debug assertion
- It happens if:
- you use webview's chromium backend (recent versions, old versions don't have this assertion)
- some part of you code consumes COM and
- that code's thread is not explicitly initializing COM via CoInitialize or CoInitializeEx
My code uses a library that was not properly initializing COM in its threads before calling CoCreateInstance. Calling CoInitialize should fix my issue, but I cannot prove it until I have access to that libraries source code.
What is left to be done by qt/webview team is to fix the failed assertion on "Chrome_InProcGpuThread" which is not created by user.