Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: e5215d63d0216296a4378d4d70a4888da093da73
      
https://github.com/WebKit/WebKit/commit/e5215d63d0216296a4378d4d70a4888da093da73
  Author: Matt Woodrow <[email protected]>
  Date:   2025-11-04 (Tue, 04 Nov 2025)

  Changed paths:
    M Source/WebKit/CMakeLists.txt
    M Source/WebKit/DerivedSources-input.xcfilelist
    M Source/WebKit/DerivedSources-output.xcfilelist
    M Source/WebKit/DerivedSources.make
    M Source/WebKit/GPUProcess/graphics/RemoteImageBufferSet.cpp
    M Source/WebKit/GPUProcess/graphics/RemoteImageBufferSet.h
    M Source/WebKit/GPUProcess/graphics/RemoteImageBufferSet.messages.in
    M Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp
    M Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.messages.in
    M Source/WebKit/Platform/IPC/StreamClientConnection.h
    M Source/WebKit/Scripts/webkit/messages.py
    M Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStore.mm
    M Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.mm
    M Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTree.serialization.in
    M 
Source/WebKit/Shared/RemoteLayerTree/RemoteLayerWithInProcessRenderingBackingStore.mm
    M 
Source/WebKit/Shared/RemoteLayerTree/RemoteLayerWithRemoteRenderingBackingStore.mm
    R Source/WebKit/Shared/RemoteLayerTree/SwapBuffersDisplayRequirement.h
    M Source/WebKit/Shared/graphics/ImageBufferSet.h
    M Source/WebKit/SourcesCocoa.txt
    M Source/WebKit/WebKit.xcodeproj/project.pbxproj
    M Source/WebKit/WebProcess/GPU/graphics/PrepareBackingStoreBuffersData.h
    M 
Source/WebKit/WebProcess/GPU/graphics/PrepareBackingStoreBuffersData.serialization.in
    M Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferSetProxy.cpp
    M Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferSetProxy.h
    R 
Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferSetProxy.messages.in
    M Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp
    M Tools/TestWebKitAPI/Tests/IPC/ConnectionTests.cpp
    M Tools/TestWebKitAPI/Tests/IPC/IPCTestUtilities.h
    M Tools/TestWebKitAPI/Tests/IPC/StreamConnectionTests.cpp

  Log Message:
  -----------
  Use an async reply for RemoteImageBufferSet::endPrepareForDisplay.
https://bugs.webkit.org/show_bug.cgi?id=301828
<rdar://problem/163899986>

Reviewed by Kimmo Kinnunen.

This currently uses a separate message (didPrepareForDisplay) as a reply, which
gets delivered to a work queue.

We should be able to use sendWithAsyncReplyOnDispatcher instead, to more closely
link the message and its reply.

This also removes local state in RemoteImageBufferSetProxy tracking the pending
reply message, which should simplify the future case where there are multiple in
flight.

Tests: Tools/TestWebKitAPI/Tests/IPC/ConnectionTests.cpp
       Tools/TestWebKitAPI/Tests/IPC/IPCTestUtilities.h
       Tools/TestWebKitAPI/Tests/IPC/StreamConnectionTests.cpp
* Source/WebKit/CMakeLists.txt:
* Source/WebKit/DerivedSources-input.xcfilelist:
* Source/WebKit/DerivedSources-output.xcfilelist:
* Source/WebKit/DerivedSources.make:
* Source/WebKit/GPUProcess/graphics/RemoteImageBufferSet.cpp:
(WebKit::RemoteImageBufferSet::endPrepareForDisplay):
* Source/WebKit/GPUProcess/graphics/RemoteImageBufferSet.h:
* Source/WebKit/GPUProcess/graphics/RemoteImageBufferSet.messages.in:
* Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.messages.in:
* Source/WebKit/Platform/IPC/StreamClientConnection.h:
(IPC::StreamClientConnection::sendWithAsyncReplyOnDispatcher):
* Source/WebKit/SourcesCocoa.txt:
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:
* 
Source/WebKit/WebProcess/GPU/graphics/PrepareBackingStoreBuffersData.serialization.in:
* Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferSetProxy.cpp:
(WebKit::RemoteImageBufferSetProxy::sendWithAsyncReply):
(WebKit::RemoteImageBufferSetProxy::prepareToDisplay):
(WebKit::RemoteImageBufferSetProxy::close):
(WebKit::RemoteImageBufferSetProxy::flushFrontBufferAsync):
(WebKit::RemoteImageBufferSetProxy::willPrepareForDisplay):
(WebKit::RemoteImageBufferSetProxy::disconnect):
(WebKit::RemoteImageBufferSetProxy::didPrepareForDisplay): Deleted.
* Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferSetProxy.h:
(WebKit::RemoteImageBufferSetProxy::generation const):
* Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferSetProxy.messages.in: 
Removed.
* Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:
* Tools/TestWebKitAPI/Tests/IPC/ConnectionTests.cpp:
(TestWebKitAPI::AutoWorkQueue::WorkQueueWithShutdown::create): Deleted.
(TestWebKitAPI::AutoWorkQueue::WorkQueueWithShutdown::beginShutdown): Deleted.
(TestWebKitAPI::AutoWorkQueue::WorkQueueWithShutdown::waitUntilShutdown): 
Deleted.
(TestWebKitAPI::AutoWorkQueue::WorkQueueWithShutdown::WorkQueueWithShutdown): 
Deleted.
(TestWebKitAPI::AutoWorkQueue::AutoWorkQueue): Deleted.
(TestWebKitAPI::AutoWorkQueue::queue): Deleted.
(TestWebKitAPI::AutoWorkQueue::~AutoWorkQueue): Deleted.
* Tools/TestWebKitAPI/Tests/IPC/IPCTestUtilities.h:
(TestWebKitAPI::AutoWorkQueue::WorkQueueWithShutdown::create):
(TestWebKitAPI::AutoWorkQueue::WorkQueueWithShutdown::beginShutdown):
(TestWebKitAPI::AutoWorkQueue::WorkQueueWithShutdown::waitUntilShutdown):
(TestWebKitAPI::AutoWorkQueue::WorkQueueWithShutdown::WorkQueueWithShutdown):
(TestWebKitAPI::AutoWorkQueue::AutoWorkQueue):
(TestWebKitAPI::AutoWorkQueue::queue):
(TestWebKitAPI::AutoWorkQueue::~AutoWorkQueue):
* Tools/TestWebKitAPI/Tests/IPC/StreamConnectionTests.cpp:

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



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to