[webkit-changes] [WebKit/WebKit] a33f8a: RemoteSerializedImageBuffer tracks WP-side reads r...

Kimmo Kinnunen noreply at github.com
Wed Jun 7 02:14:16 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: a33f8a24c752c23225ebeb863f4523b5f2ee4201
      https://github.com/WebKit/WebKit/commit/a33f8a24c752c23225ebeb863f4523b5f2ee4201
  Author: Kimmo Kinnunen <kkinnunen at apple.com>
  Date:   2023-06-07 (Wed, 07 Jun 2023)

  Changed paths:
    M Source/WebKit/GPUProcess/GPUConnectionToWebProcess.cpp
    M Source/WebKit/GPUProcess/GPUConnectionToWebProcess.h
    M Source/WebKit/GPUProcess/GPUConnectionToWebProcess.messages.in
    M Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp
    M Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.h
    M Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.messages.in
    M Source/WebKit/Scripts/webkit/messages.py
    M Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.cpp
    M Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.h
    M Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp
    M Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h
    M Source/WebKit/WebProcess/GPU/graphics/RemoteSerializedImageBufferIdentifier.h
    M Tools/TestWebKitAPI/Tests/IPC/ThreadSafeObjectHeapTests.cpp

  Log Message:
  -----------
  RemoteSerializedImageBuffer tracks WP-side reads redundantly
https://bugs.webkit.org/show_bug.cgi?id=257744
rdar://109799857

Reviewed by Matt Woodrow.

RemoteSerializedImageBuffers are created with MoveToSerializedBuffer
and destroyed with either MoveToImageBuffer or
ReleaseSerializedImageBuffer. These are just create and consume
operations, and as such do not need more complicated read and write
tracking.

The source RemoteImageBuffer identifier is the same as the eventual
destination RemoteImageBuffer identifier. Also
RemoteSerializedImageBuffer can be identified with the same identifier.

Use the thread-ThreadSafeObjectHeap only in the remote side, and only
with add and remove semantics.

* Source/WebKit/GPUProcess/GPUConnectionToWebProcess.cpp:
(WebKit::GPUConnectionToWebProcess::releaseSerializedImageBuffer):
* Source/WebKit/GPUProcess/GPUConnectionToWebProcess.h:
* Source/WebKit/GPUProcess/GPUConnectionToWebProcess.messages.in:
* Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp:
(WebKit::RemoteRenderingBackend::moveToSerializedBuffer):
(WebKit::RemoteRenderingBackend::moveToImageBuffer):
* Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.h:
* Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.messages.in:
* Source/WebKit/Scripts/webkit/messages.py:
(types_that_cannot_be_forward_declared):
(headers_for_type):
* Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.cpp:
(WebKit::RemoteSerializedImageBufferProxy::RemoteSerializedImageBufferProxy):
(WebKit::RemoteSerializedImageBufferProxy::sinkIntoImageBuffer):
(WebKit::RemoteSerializedImageBufferProxy::~RemoteSerializedImageBufferProxy):
* Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.h:
* Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:
(WebKit::RemoteRenderingBackendProxy::moveToSerializedBuffer):
(WebKit::RemoteRenderingBackendProxy::moveToImageBuffer):
* Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:
* Source/WebKit/WebProcess/GPU/graphics/RemoteSerializedImageBufferIdentifier.h:
(): Deleted.
* Tools/TestWebKitAPI/Tests/IPC/ThreadSafeObjectHeapTests.cpp:
(TestWebKitAPI::TEST_F):

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




More information about the webkit-changes mailing list