Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: a635e17acdc5b0cb49bc55649e2b159cf56f8f9e
      
https://github.com/WebKit/WebKit/commit/a635e17acdc5b0cb49bc55649e2b159cf56f8f9e
  Author: Kimmo Kinnunen <[email protected]>
  Date:   2025-08-21 (Thu, 21 Aug 2025)

  Changed paths:
    M Source/WebKit/GPUProcess/GPUConnectionToWebProcess.cpp
    M Source/WebKit/GPUProcess/GPUProcess.cpp
    M Source/WebKit/GPUProcess/GPUProcess.h
    M Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGL.cpp
    M Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGL.h
    M Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGLCocoa.cpp
    M Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGLGBM.cpp
    M Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGLWC.cpp
    M Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp
    M Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.h
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteGPU.cpp
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteGPU.h
    M Source/WebKit/Platform/IPC/Connection.cpp
    M Source/WebKit/Platform/IPC/MessageReceiveQueueMap.cpp
    M Source/WebKit/Platform/IPC/MessageReceiveQueueMap.h
    M Source/WebKit/Platform/IPC/StreamServerConnection.cpp
    M Source/WebKit/Platform/IPC/StreamServerConnection.h
    M Source/WebKit/Shared/IPCStreamTester.cpp
    M Source/WebKit/Shared/IPCStreamTester.h
    M Source/WebKit/Shared/IPCStreamTester.messages.in
    M Source/WebKit/Shared/LogStream.cpp
    M Source/WebKit/Shared/LogStream.h
    M Source/WebKit/UIProcess/Cocoa/WebProcessProxyCocoa.mm
    M Tools/TestWebKitAPI/Tests/IPC/ConnectionTests.cpp
    M Tools/TestWebKitAPI/Tests/IPC/EventTests.cpp
    M Tools/TestWebKitAPI/Tests/IPC/IPCTestUtilities.cpp
    M Tools/TestWebKitAPI/Tests/IPC/IPCTestUtilities.h
    M Tools/TestWebKitAPI/Tests/IPC/StreamConnectionTests.cpp

  Log Message:
  -----------
  StreamServerConnection does not notify the client about invalid messages
https://bugs.webkit.org/show_bug.cgi?id=297653
rdar://158761082

Reviewed by Mike Wyrzykowski.

Add IPC::StreamServerConnection::Client interface that contains
IPC::StreamServerConnection::Client::didReceiveInvalidMessage(). This is
similar to IPC::Connection::Client.
The connection client interface is intended for the main holder of
the connection, the one that adds the connection to the runloop or
work queue as a "event source". Currently the holders also receive
messages, so to be able to use CheckedPtr, the ::Client interface
is subclass of IPC::MessageReceiver/IPC::StreamMessageReceiver.

Add tests for both
 * IPC::StreamServerConnection::Client::didReceiveInvalidMessage
 * IPC::Connection::Client::didReceiveInvalidMessage

* Source/WebKit/GPUProcess/GPUConnectionToWebProcess.cpp:
(WebKit::GPUConnectionToWebProcess::terminateWebProcess):
* Source/WebKit/GPUProcess/GPUProcess.cpp:
(WebKit::GPUProcess::terminateWebProcess):
* Source/WebKit/GPUProcess/GPUProcess.h:
* Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGL.cpp:
(WebKit::RemoteGraphicsContextGL::workQueueInitialize):
(WebKit::RemoteGraphicsContextGL::didReceiveInvalidMessage):
* Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGL.h:
* Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGLCocoa.cpp:
* Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGLGBM.cpp:
* Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGLWC.cpp:
* Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp:
(WebKit::RemoteRenderingBackend::workQueueInitialize):
(WebKit::RemoteRenderingBackend::didReceiveInvalidMessage):
(WebKit::RemoteRenderingBackend::terminateWebProcess): Deleted.
* Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.h:
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteGPU.cpp:
(WebKit::RemoteGPU::workQueueInitialize):
(WebKit::RemoteGPU::didReceiveInvalidMessage):
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteGPU.h:
* Source/WebKit/Platform/IPC/Connection.cpp:
(IPC::Connection::processIncomingMessage):
(IPC::Connection::dispatchMessage):
* Source/WebKit/Platform/IPC/MessageReceiveQueueMap.cpp:
(IPC::MessageReceiveQueueMap::get const):
* Source/WebKit/Platform/IPC/MessageReceiveQueueMap.h:
(IPC::MessageReceiveQueueMap::isValidMessage): Deleted.
* Source/WebKit/Platform/IPC/StreamServerConnection.cpp:
(IPC::StreamServerConnection::open):
(IPC::StreamServerConnection::invalidate):
(IPC::StreamServerConnection::didReceiveInvalidMessage):
(IPC::StreamServerConnection::dispatchStreamMessages):
(IPC::StreamServerConnection::processSetStreamDestinationID):
(IPC::StreamServerConnection::processOutOfStreamMessage):
(IPC::StreamServerConnection::dispatchStreamMessage):
(IPC::StreamServerConnection::dispatchDidReceiveInvalidMessage):
(IPC::StreamServerConnection::markCurrentlyDispatchedMessageAsInvalid):
* Source/WebKit/Platform/IPC/StreamServerConnection.h:
* Source/WebKit/Shared/IPCStreamTester.cpp:
(WebKit::IPCStreamTester::initialize):
(WebKit::IPCStreamTester::didReceiveInvalidMessage):
(WebKit::IPCStreamTester::checkInvalidMessages):
* Source/WebKit/Shared/IPCStreamTester.h:
* Source/WebKit/Shared/IPCStreamTester.messages.in:
* Source/WebKit/Shared/LogStream.cpp:
(WebKit::LogStream::LogStream):
(WebKit::LogStream::create):
(WebKit::LogStream::didReceiveInvalidMessage):
* Source/WebKit/Shared/LogStream.h:
* Source/WebKit/UIProcess/Cocoa/WebProcessProxyCocoa.mm:
(WebKit::WebProcessProxy::createLogStream):
* Tools/TestWebKitAPI/Tests/IPC/ConnectionTests.cpp:
(TestWebKitAPI::TEST_P):
(TestWebKitAPI::ConnectionDidReceiveInvalidMessageTest::serverIsA const):
(TestWebKitAPI::ConnectionDidReceiveInvalidMessageTest::testType):
(TestWebKitAPI::ConnectionDidReceiveInvalidMessageTest::openServer):
(TestWebKitAPI::ConnectionDidReceiveInvalidMessageTest::openClient):
(TestWebKitAPI::ConnectionDidReceiveInvalidMessageTest::server):
(TestWebKitAPI::ConnectionDidReceiveInvalidMessageTest::client):
(TestWebKitAPI::ConnectionDidReceiveInvalidMessageTest::serverClient):
(TestWebKitAPI::ConnectionDidReceiveInvalidMessageTest::clientClient):
(TestWebKitAPI::ConnectionDidReceiveInvalidMessageTest::deleteServer):
(TestWebKitAPI::ConnectionDidReceiveInvalidMessageTest::deleteClient):
* Tools/TestWebKitAPI/Tests/IPC/EventTests.cpp:
(TestWebKitAPI::TEST_P):
* Tools/TestWebKitAPI/Tests/IPC/IPCTestUtilities.cpp:
(TestWebKitAPI::PrintTo):
* Tools/TestWebKitAPI/Tests/IPC/IPCTestUtilities.h:
(TestWebKitAPI::WaitForMessageMixin::~WaitForMessageMixin):
(TestWebKitAPI::WaitForMessageMixin::takeMessages):
(TestWebKitAPI::WaitForMessageMixin::takeInvalidMessages):
(TestWebKitAPI::WaitForMessageMixin::waitForMessage):
(TestWebKitAPI::WaitForMessageMixin::waitForDidClose):
(TestWebKitAPI::WaitForMessageMixin::gotDidClose const):
(TestWebKitAPI::WaitForMessageMixin::waitForInvalidMessage):
(TestWebKitAPI::WaitForMessageMixin::addMessage):
(TestWebKitAPI::WaitForMessageMixin::addInvalidMessage):
(TestWebKitAPI::WaitForMessageMixin::markDidClose):
(TestWebKitAPI::WaitForMessageMixin::WTF_GUARDED_BY_LOCK):
* Tools/TestWebKitAPI/Tests/IPC/StreamConnectionTests.cpp:
(TestWebKitAPI::StreamConnectionTestBase::setupBase): Deleted.
(TestWebKitAPI::StreamConnectionTestBase::teardownBase): Deleted.
(TestWebKitAPI::StreamConnectionTestBase::localReferenceBarrier): Deleted.
(TestWebKitAPI::StreamConnectionTestBase::serverQueue): Deleted.
(TestWebKitAPI::TEST_F(StreamConnectionTest, OpenConnections)): Deleted.
(TestWebKitAPI::TEST_F(StreamConnectionTest, InvalidateUnopened)): Deleted.
(TestWebKitAPI::StreamMessageTest::StreamMessageTest): Deleted.
(TestWebKitAPI::StreamMessageTest::bufferSizeLog2 const): Deleted.
(TestWebKitAPI::StreamMessageTest::defaultDestinationID): Deleted.
(TestWebKitAPI::TEST_P): Deleted.

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



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

Reply via email to