Skip to content

State of build of webkit with QT 6.5.3 on both Linux and Windux (MINGW) #35

@quarcko

Description

@quarcko

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:
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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions