-
Notifications
You must be signed in to change notification settings - Fork 15
Description
So, i made it! Webkit with mingw is kinda-working and semi-usable. This is not an issue report but place for discussion:
Issues present in current builds:
-
1) Scrolling with mouse wheel does not work on both Linux and Windows (mingw)
-
will dive in later, probably related to some of my fixes i did incorrectly in platform events.
-
2) if accelerated rendering is enabled in QtTestBrowser menu - webkit crashes (Linux and Windows)
-
not really interested in fixing, as i won't use accelerated rendering anyway
-
3) Some web-pages that use custom fonts (probably) - text is not displayed (windows mingw only problem)
- maybe some incorrect or missing font rendering libraries? i used MSYS-libs for compilation
-
4) Webkit hangs during page loads with single warning message (Windows mingw only):
- QApplication::exec() - must be started from main thread - or something like that.
i pinpointed that it happens in WTF/wtf/qt/RunLoopQt.cpp function void RunLoop::run()
on line "QCoreApplication::exec(); possible workaround is to set mainEventLoopIsRunning = true
so it never does that part:
- QApplication::exec() - must be started from main thread - or something like that.
void RunLoop::run()
{
static bool mainEventLoopIsRunning = true;
if (!mainEventLoopIsRunning) {
mainEventLoopIsRunning = true;
QCoreApplication::exec();
mainEventLoopIsRunning = false;
} else {
QEventLoop eventLoop;
QEventLoop* previousEventLoop = currentEventLoop;
currentEventLoop = &eventLoop;
eventLoop.exec();
currentEventLoop = previousEventLoop;
}
}
but this seems to be not "real" fix, as now there is no freeze, pages load all good, but after some time i got SIGSEGV:
Thread 1 received signal SIGSEGV, Segmentation fault.
0x00007ff9f10e3155 in WTF::RunLoop::dispatch(WTF::Function<void ()>&&) () from C:\Qt\webkit\build-win\bin\Qt6WebKit.dll
-
5) UPDATE: Huge memory leak discovered (both Linux and Windows)
- Just try to repeatedly refresh some webpage - and memory uncontrollably goes up.
- UPDATE: if you leave it rest for some time - memory gets eventually cleared, but it takes too long.
- If someone knows how this garbage collector is working, we need to call it more often?
so yea, that's all resume for now.