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