Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 47dfb60d326b5d2004e4642fcc2b49f138df2b9c
      
https://github.com/WebKit/WebKit/commit/47dfb60d326b5d2004e4642fcc2b49f138df2b9c
  Author: Kimmo Kinnunen <kkinnu...@apple.com>
  Date:   2023-01-17 (Tue, 17 Jan 2023)

  Changed paths:
    M Source/WebKit/Platform/IPC/StreamClientConnection.cpp
    M Source/WebKit/Platform/IPC/StreamClientConnection.h
    A Source/WebKit/Platform/IPC/StreamClientConnectionBuffer.h
    M Source/WebKit/Platform/IPC/StreamConnectionBuffer.cpp
    M Source/WebKit/Platform/IPC/StreamConnectionBuffer.h
    M Source/WebKit/Platform/IPC/StreamServerConnection.cpp
    M Source/WebKit/Platform/IPC/StreamServerConnection.h
    A Source/WebKit/Platform/IPC/StreamServerConnectionBuffer.h
    M Source/WebKit/WebKit.xcodeproj/project.pbxproj
    M Source/WebKit/WebProcess/WebPage/IPCTestingAPI.cpp
    M Tools/TestWebKitAPI/Tests/IPC/StreamConnectionBufferTests.cpp

  Log Message:
  -----------
  IPC stream buffer cannot be tested without the connection
https://bugs.webkit.org/show_bug.cgi?id=250704
rdar://104325129

Reviewed by Antti Koivisto.

The logic to manipulate IPC stream buffer was partly inline
in Stream{Client,Server}Connection. This made both the
connection code harder to understand and the buffer code
harder to understand and modify.

Move the buffer code to Stream{Client,Server}ConnectionBuffer
classes which are subclasses of StreamConnectionBuffer.
The goal is to be able to test the buffer implementation in
isolation. Also, in the future some of the duplicated functionality
should be moved to the base class.

Removes custom Stream{Client,Server}Connection::Span and uses normal
WTF::Span<uint8_t>.

No intended change in functionality.

* Source/WebKit/Platform/IPC/StreamClientConnection.cpp:
(IPC::StreamClientConnection::create):
(IPC::StreamClientConnection::StreamClientConnection):
(IPC::StreamClientConnection::setSemaphores):
(IPC::StreamClientConnection::hasSemaphores const):
(IPC::StreamClientConnection::setMaxBatchSize):
(IPC::StreamClientConnection::wakeUpServer):
(IPC::StreamClientConnection::bufferForTesting):
* Source/WebKit/Platform/IPC/StreamClientConnection.h:
(IPC::StreamClientConnection::send):
(IPC::StreamClientConnection::sendWithAsyncReply):
(IPC::StreamClientConnection::trySendStream):
(IPC::StreamClientConnection::sendSync):
(IPC::StreamClientConnection::trySendSyncStream):
(IPC::StreamClientConnection::trySendDestinationIDIfNeeded):
(IPC::StreamClientConnection::sendProcessOutOfStreamMessage):
(IPC::StreamClientConnection::tryAcquire): Deleted.
(IPC::StreamClientConnection::tryAcquireAll): Deleted.
(IPC::StreamClientConnection::release): Deleted.
(IPC::StreamClientConnection::alignedSpan): Deleted.
(IPC::StreamClientConnection::size): Deleted.
(IPC::StreamClientConnection::toLimit const): Deleted.
* Source/WebKit/Platform/IPC/StreamClientConnectionBuffer.h: Added.
(IPC::StreamClientConnectionBuffer::hasSemaphores const):
(IPC::StreamClientConnectionBuffer::alignOffset const):
(IPC::StreamClientConnectionBuffer::sharedClientOffset):
(IPC::StreamClientConnectionBuffer::sharedClientLimit):
(IPC::StreamClientConnectionBuffer::createMemory):
(IPC::StreamClientConnectionBuffer::StreamClientConnectionBuffer):
(IPC::StreamClientConnectionBuffer::tryAcquire):
(IPC::StreamClientConnectionBuffer::tryAcquireAll):
(IPC::StreamClientConnectionBuffer::release):
(IPC::StreamClientConnectionBuffer::resetClientOffset):
(IPC::StreamClientConnectionBuffer::alignedSpan):
(IPC::StreamClientConnectionBuffer::size):
(IPC::StreamClientConnectionBuffer::toLimit const):
(IPC::StreamClientConnectionBuffer::setSemaphores):
(IPC::StreamClientConnectionBuffer::wakeUpServer):
* Source/WebKit/Platform/IPC/StreamConnectionBuffer.cpp:
(IPC::createMemory): Deleted.
(IPC::StreamConnectionBuffer::map): Deleted.
* Source/WebKit/Platform/IPC/StreamConnectionBuffer.h:
* Source/WebKit/Platform/IPC/StreamServerConnection.cpp:
(IPC::StreamServerConnection::create):
(IPC::StreamServerConnection::StreamServerConnection):
(IPC::StreamServerConnection::dispatchStreamMessages):
(IPC::StreamServerConnection::processSetStreamDestinationID):
(IPC::StreamServerConnection::dispatchStreamMessage):
(IPC::StreamServerConnection::dispatchOutOfStreamMessage):
(IPC::StreamServerConnection::tryAcquire): Deleted.
(IPC::StreamServerConnection::acquireAll): Deleted.
(IPC::StreamServerConnection::release): Deleted.
(IPC::StreamServerConnection::releaseAll): Deleted.
(IPC::StreamServerConnection::alignedSpan): Deleted.
(IPC::StreamServerConnection::size): Deleted.
(IPC::StreamServerConnection::clampedLimit const): Deleted.
* Source/WebKit/Platform/IPC/StreamServerConnection.h:
(IPC::StreamServerConnection::sendSyncReply):
* Source/WebKit/Platform/IPC/StreamServerConnectionBuffer.h: Added.
(IPC::StreamServerConnectionBuffer::clientWaitSemaphore):
(IPC::StreamServerConnectionBuffer::alignOffset const):
(IPC::StreamServerConnectionBuffer::sharedServerLimit):
(IPC::StreamServerConnectionBuffer::sharedServerOffset):
(IPC::StreamServerConnectionBuffer::map):
(IPC::StreamServerConnectionBuffer::tryAcquire):
(IPC::StreamServerConnectionBuffer::acquireAll):
(IPC::StreamServerConnectionBuffer::release):
(IPC::StreamServerConnectionBuffer::releaseAll):
(IPC::StreamServerConnectionBuffer::alignedSpan):
(IPC::StreamServerConnectionBuffer::size):
(IPC::StreamServerConnectionBuffer::clampedLimit const):
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:
* Source/WebKit/WebProcess/WebPage/IPCTestingAPI.cpp:
(WebKit::IPCTestingAPI::JSIPCStreamConnectionBuffer::encode const):
(WebKit::IPCTestingAPI::JSIPCStreamClientConnection::prepareToSendOutOfStreamMessage):
* Tools/TestWebKitAPI/Tests/IPC/StreamConnectionBufferTests.cpp:
(TestWebKitAPI::TEST):
(TestWebKitAPI::StreamConnectionBufferTest::bufferSizeLog2 const):
(TestWebKitAPI::StreamConnectionBufferTest::client):
(TestWebKitAPI::StreamConnectionBufferTest::server):
(TestWebKitAPI::StreamConnectionBufferTest::isValid const):
(TestWebKitAPI::fill):
(TestWebKitAPI::expectFilled):
(TestWebKitAPI::TEST_P):

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


_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to