Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 5a0e48592bf4c531cef63cc1b7210149ac3dc28d
      
https://github.com/WebKit/WebKit/commit/5a0e48592bf4c531cef63cc1b7210149ac3dc28d
  Author: Carlos Garcia Campos <cgar...@igalia.com>
  Date:   2025-08-29 (Fri, 29 Aug 2025)

  Changed paths:
    M Source/WebCore/platform/graphics/PlatformDisplay.cpp
    M Source/WebCore/platform/graphics/PlatformDisplay.h
    M Source/WebCore/platform/graphics/skia/PlatformDisplaySkia.cpp
    M Source/WebKit/UIProcess/API/glib/WebKitProtocolHandler.cpp
    M Source/WebKit/WebProcess/WebPage/WebPage.cpp
    M Source/WebKit/WebProcess/glib/WebProcessGLib.cpp

  Log Message:
  -----------
  [GTK][WPE] Web process sometimes gets locked on exit
https://bugs.webkit.org/show_bug.cgi?id=298025

Reviewed by Nikolas Zimmermann.

It happens when the network connection is closed before WebPage::close
is called. In that case WebPage::close() tries to get a network process
connection to send ClearPageSpecificData message, but
WebProcess::ensureNetworkProcessConnection() fails causing a process
exit. In the exit handlers PlatformDisplay::invalidateSkiaGLContexts()
is called, which tries to invalidate the GL contexts of the painting
threads that are still running. We use RunLoop::dispatch() and a
semaphore to wait to clear context from painting threads, but that
doesn't work because painting threads don't run a loop. We should avoid
the early exit first by not calling
WebProcess::ensureNetworkProcessConnection() from WebPage::close(), but
we should also stop trying to invalidate the skia gl contexts from the
main thread. LayerTreeHost is the owner of the WorkerPool that runs the
painting tasks, so the gl contexts will be released when the threads
finish on LayerTreeHost destructor. We only need to care about the main
thread gl context for which we can just set to nullptr.

Canonical link: https://commits.webkit.org/299312@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to