Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: a38ab639b9f37940f21f2abbadb592ba0ceb2ca3
      
https://github.com/WebKit/WebKit/commit/a38ab639b9f37940f21f2abbadb592ba0ceb2ca3
  Author: Gavin Phillips <[email protected]>
  Date:   2025-09-09 (Tue, 09 Sep 2025)

  Changed paths:
    M LayoutTests/ipc/dispatched-from-to-exposed-to-ipc-testing-api.html
    A LayoutTests/ipc/isasyncreply-exposed-to-ipc-testing-api-expected.txt
    A LayoutTests/ipc/isasyncreply-exposed-to-ipc-testing-api.html
    A LayoutTests/ipc/replyarguments-exposed-to-ipc-testing-api-expected.txt
    A LayoutTests/ipc/replyarguments-exposed-to-ipc-testing-api.html
    M Source/WebKit/Platform/IPC/Connection.cpp
    M Source/WebKit/Platform/IPC/Connection.h
    M Source/WebKit/Platform/IPC/Decoder.h
    M Source/WebKit/Scripts/webkit/messages.py
    M Source/WebKit/Scripts/webkit/model.py
    M Source/WebKit/Scripts/webkit/tests/MessageArgumentDescriptions.cpp
    M Source/WebKit/Scripts/webkit/tests/MessageNames.cpp
    M Source/WebKit/Scripts/webkit/tests/MessageNames.h
    M 
Source/WebKit/Scripts/webkit/tests/TestWithCVPixelBufferMessageReceiver.cpp
    M Source/WebKit/Scripts/webkit/tests/TestWithCVPixelBufferMessages.h
    M Source/WebKit/Scripts/webkit/tests/TestWithImageDataMessageReceiver.cpp
    M Source/WebKit/Scripts/webkit/tests/TestWithImageDataMessages.h
    M 
Source/WebKit/Scripts/webkit/tests/TestWithLegacyReceiverMessageReceiver.cpp
    M Source/WebKit/Scripts/webkit/tests/TestWithLegacyReceiverMessages.h
    M Source/WebKit/Scripts/webkit/tests/TestWithSemaphoreMessageReceiver.cpp
    M Source/WebKit/Scripts/webkit/tests/TestWithSemaphoreMessages.h
    M Source/WebKit/Scripts/webkit/tests/TestWithStreamMessageReceiver.cpp
    M Source/WebKit/Scripts/webkit/tests/TestWithStreamMessages.h
    M Source/WebKit/Scripts/webkit/tests/TestWithSuperclassMessageReceiver.cpp
    M Source/WebKit/Scripts/webkit/tests/TestWithSuperclassMessages.h
    M Source/WebKit/Scripts/webkit/tests/TestWithValidatorMessageReceiver.cpp
    M Source/WebKit/Scripts/webkit/tests/TestWithValidatorMessages.h
    M 
Source/WebKit/Scripts/webkit/tests/TestWithoutAttributesMessageReceiver.cpp
    M Source/WebKit/Scripts/webkit/tests/TestWithoutAttributesMessages.h
    M 
Source/WebKit/Scripts/webkit/tests/TestWithoutUsingIPCConnectionMessageReceiver.cpp
    M Source/WebKit/Scripts/webkit/tests/TestWithoutUsingIPCConnectionMessages.h
    M Source/WebKit/Shared/IPCTester.cpp
    M Source/WebKit/Shared/IPCTester.h
    M Source/WebKit/Shared/IPCTester.messages.in
    M Source/WebKit/WebProcess/WebPage/IPCTestingAPI.cpp
    M Tools/TestWebKitAPI/Tests/IPC/ArgumentCoderTests.cpp
    M Tools/TestWebKitAPI/Tests/IPC/ConnectionTests.cpp
    M Tools/TestWebKitAPI/Tests/IPC/EventTests.cpp
    M Tools/TestWebKitAPI/Tests/IPC/IPCTestUtilities.h

  Log Message:
  -----------
  Treat AsyncReplies as first class messages in the IPCTestingAPI
https://bugs.webkit.org/show_bug.cgi?id=298388
rdar://158580728

Reviewed by Alex Christensen.

This change exposes dispatched(From|To), and other properties, for AsyncReply
messages to the IPCTestingAPI. Previously, our model associated AsyncReplies
with a single global AsyncReply interface and not the original interface they 
belong to.
As a result, properties like dispatched(From|To) & arguments weren't being 
plumbed
through.

This change updates our model so that we now associate all AsyncReply messages
with their correct interface. Messages are now marked as being an async
reply using a new MessageDescriptor property (isAsyncReply) and Message class 
generation
is now performed such that the properties can be correctly accessed from
our testing interfaces.

* LayoutTests/ipc/dispatched-from-to-exposed-to-ipc-testing-api.html:
* LayoutTests/ipc/isasyncreply-exposed-to-ipc-testing-api-expected.txt: Added.
* LayoutTests/ipc/isasyncreply-exposed-to-ipc-testing-api.html: Added.
* LayoutTests/ipc/replyarguments-exposed-to-ipc-testing-api-expected.txt: Added.
* LayoutTests/ipc/replyarguments-exposed-to-ipc-testing-api.html: Added.
* Source/WebKit/Platform/IPC/Connection.cpp:
(IPC::Connection::processIncomingMessage):
(IPC::Connection::dispatchMessage):
* Source/WebKit/Platform/IPC/Connection.h:
(IPC::Connection::waitForAsyncReplyAndDispatchImmediately):
* Source/WebKit/Platform/IPC/Decoder.h:
(IPC::Decoder::isAsyncReplyMessage const):
* Source/WebKit/Scripts/webkit/messages.py:
(receiver_enumerator_order_key):
(MessageEnumerator.__str__):
(generate_message_handler.collect_message_statements):
(generate_message_names_header):
(generate_message_names_implementation):
* Source/WebKit/Scripts/webkit/model.py:
(Message.__init__):
(generate_global_model):
* Source/WebKit/Scripts/webkit/tests/MessageArgumentDescriptions.cpp:
(IPC::jsValueForArguments):
(IPC::messageArgumentDescriptions):
* Source/WebKit/Scripts/webkit/tests/MessageNames.cpp:
* Source/WebKit/Scripts/webkit/tests/MessageNames.h:
(IPC::isAsyncReply):
* Source/WebKit/Scripts/webkit/tests/TestWithCVPixelBufferMessageReceiver.cpp:
(IPC::jsValueForDecodedMessage<MessageName::TestWithCVPixelBuffer_ReceiveCVPixelBufferReply>):
* Source/WebKit/Scripts/webkit/tests/TestWithCVPixelBufferMessages.h:
(Messages::TestWithCVPixelBuffer::ReceiveCVPixelBufferReply::name):
(Messages::TestWithCVPixelBuffer::ReceiveCVPixelBufferReply::ReceiveCVPixelBufferReply):
(Messages::TestWithCVPixelBuffer::ReceiveCVPixelBufferReply::encode):
* Source/WebKit/Scripts/webkit/tests/TestWithImageDataMessageReceiver.cpp:
(IPC::jsValueForDecodedMessage<MessageName::TestWithImageData_ReceiveImageDataReply>):
* Source/WebKit/Scripts/webkit/tests/TestWithImageDataMessages.h:
(Messages::TestWithImageData::ReceiveImageDataReply::name):
(Messages::TestWithImageData::ReceiveImageDataReply::ReceiveImageDataReply):
(Messages::TestWithImageData::ReceiveImageDataReply::encode):
* Source/WebKit/Scripts/webkit/tests/TestWithLegacyReceiverMessageReceiver.cpp:
(WebKit::TestWithLegacyReceiver::didReceiveMessage):
(IPC::jsValueForDecodedMessage<MessageName::TestWithLegacyReceiver_CreatePluginReply>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithLegacyReceiver_RunJavaScriptAlertReply>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithLegacyReceiver_GetPluginsReply>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithLegacyReceiver_InterpretKeyEventReply>):
* Source/WebKit/Scripts/webkit/tests/TestWithLegacyReceiverMessages.h:
(Messages::TestWithLegacyReceiver::CreatePluginReply::name):
(Messages::TestWithLegacyReceiver::CreatePluginReply::CreatePluginReply):
(Messages::TestWithLegacyReceiver::CreatePluginReply::encode):
(Messages::TestWithLegacyReceiver::RunJavaScriptAlertReply::name):
(Messages::TestWithLegacyReceiver::RunJavaScriptAlertReply::RunJavaScriptAlertReply):
(Messages::TestWithLegacyReceiver::RunJavaScriptAlertReply::encode):
(Messages::TestWithLegacyReceiver::GetPluginsReply::name):
(Messages::TestWithLegacyReceiver::GetPluginsReply::GetPluginsReply):
(Messages::TestWithLegacyReceiver::GetPluginsReply::encode):
(Messages::TestWithLegacyReceiver::InterpretKeyEventReply::name):
(Messages::TestWithLegacyReceiver::InterpretKeyEventReply::InterpretKeyEventReply):
(Messages::TestWithLegacyReceiver::InterpretKeyEventReply::encode):
* Source/WebKit/Scripts/webkit/tests/TestWithSemaphoreMessageReceiver.cpp:
(IPC::jsValueForDecodedMessage<MessageName::TestWithSemaphore_ReceiveSemaphoreReply>):
* Source/WebKit/Scripts/webkit/tests/TestWithSemaphoreMessages.h:
(Messages::TestWithSemaphore::ReceiveSemaphoreReply::name):
(Messages::TestWithSemaphore::ReceiveSemaphoreReply::ReceiveSemaphoreReply):
(Messages::TestWithSemaphore::ReceiveSemaphoreReply::encode):
* Source/WebKit/Scripts/webkit/tests/TestWithStreamMessageReceiver.cpp:
(IPC::jsValueForDecodedMessage<MessageName::TestWithStream_SendStringAsyncReply>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithStream_CallWithIdentifierReply>):
* Source/WebKit/Scripts/webkit/tests/TestWithStreamMessages.h:
(Messages::TestWithStream::SendStringAsyncReply::name):
(Messages::TestWithStream::SendStringAsyncReply::SendStringAsyncReply):
(Messages::TestWithStream::SendStringAsyncReply::encode):
(Messages::TestWithStream::CallWithIdentifierReply::name):
(Messages::TestWithStream::CallWithIdentifierReply::CallWithIdentifierReply):
(Messages::TestWithStream::CallWithIdentifierReply::encode):
* Source/WebKit/Scripts/webkit/tests/TestWithSuperclassMessageReceiver.cpp:
(IPC::jsValueForDecodedMessage<MessageName::TestWithSuperclass_TestAsyncMessageReply>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithSuperclass_TestAsyncMessageWithNoArgumentsReply>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithSuperclass_TestAsyncMessageWithMultipleArgumentsReply>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithSuperclass_TestAsyncMessageWithConnectionReply>):
* Source/WebKit/Scripts/webkit/tests/TestWithSuperclassMessages.h:
(Messages::TestWithSuperclass::TestAsyncMessageReply::name):
(Messages::TestWithSuperclass::TestAsyncMessageReply::TestAsyncMessageReply):
(Messages::TestWithSuperclass::TestAsyncMessageReply::encode):
(Messages::TestWithSuperclass::TestAsyncMessageWithNoArgumentsReply::name):
(Messages::TestWithSuperclass::TestAsyncMessageWithNoArgumentsReply::TestAsyncMessageWithNoArgumentsReply):
(Messages::TestWithSuperclass::TestAsyncMessageWithNoArgumentsReply::encode):
(Messages::TestWithSuperclass::TestAsyncMessageWithMultipleArgumentsReply::name):
(Messages::TestWithSuperclass::TestAsyncMessageWithMultipleArgumentsReply::TestAsyncMessageWithMultipleArgumentsReply):
(Messages::TestWithSuperclass::TestAsyncMessageWithMultipleArgumentsReply::encode):
(Messages::TestWithSuperclass::TestAsyncMessageWithConnectionReply::name):
(Messages::TestWithSuperclass::TestAsyncMessageWithConnectionReply::TestAsyncMessageWithConnectionReply):
(Messages::TestWithSuperclass::TestAsyncMessageWithConnectionReply::encode):
* Source/WebKit/Scripts/webkit/tests/TestWithValidatorMessageReceiver.cpp:
(IPC::jsValueForDecodedMessage<MessageName::TestWithValidator_MessageWithReplyReply>):
* Source/WebKit/Scripts/webkit/tests/TestWithValidatorMessages.h:
(Messages::TestWithValidator::MessageWithReplyReply::name):
(Messages::TestWithValidator::MessageWithReplyReply::MessageWithReplyReply):
(Messages::TestWithValidator::MessageWithReplyReply::encode):
* Source/WebKit/Scripts/webkit/tests/TestWithoutAttributesMessageReceiver.cpp:
(WebKit::TestWithoutAttributes::didReceiveMessage):
(IPC::jsValueForDecodedMessage<MessageName::TestWithoutAttributes_CreatePluginReply>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithoutAttributes_RunJavaScriptAlertReply>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithoutAttributes_GetPluginsReply>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithoutAttributes_InterpretKeyEventReply>):
* Source/WebKit/Scripts/webkit/tests/TestWithoutAttributesMessages.h:
(Messages::TestWithoutAttributes::CreatePluginReply::name):
(Messages::TestWithoutAttributes::CreatePluginReply::CreatePluginReply):
(Messages::TestWithoutAttributes::CreatePluginReply::encode):
(Messages::TestWithoutAttributes::RunJavaScriptAlertReply::name):
(Messages::TestWithoutAttributes::RunJavaScriptAlertReply::RunJavaScriptAlertReply):
(Messages::TestWithoutAttributes::RunJavaScriptAlertReply::encode):
(Messages::TestWithoutAttributes::GetPluginsReply::name):
(Messages::TestWithoutAttributes::GetPluginsReply::GetPluginsReply):
(Messages::TestWithoutAttributes::GetPluginsReply::encode):
(Messages::TestWithoutAttributes::InterpretKeyEventReply::name):
(Messages::TestWithoutAttributes::InterpretKeyEventReply::InterpretKeyEventReply):
(Messages::TestWithoutAttributes::InterpretKeyEventReply::encode):
* 
Source/WebKit/Scripts/webkit/tests/TestWithoutUsingIPCConnectionMessageReceiver.cpp:
(IPC::jsValueForDecodedMessage<MessageName::TestWithoutUsingIPCConnection_MessageWithoutArgumentAndEmptyReplyReply>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithoutUsingIPCConnection_MessageWithoutArgumentAndReplyWithArgumentReply>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithoutUsingIPCConnection_MessageWithArgumentAndEmptyReplyReply>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithoutUsingIPCConnection_MessageWithArgumentAndReplyWithArgumentReply>):
* Source/WebKit/Scripts/webkit/tests/TestWithoutUsingIPCConnectionMessages.h:
(Messages::TestWithoutUsingIPCConnection::MessageWithoutArgumentAndEmptyReplyReply::name):
(Messages::TestWithoutUsingIPCConnection::MessageWithoutArgumentAndEmptyReplyReply::MessageWithoutArgumentAndEmptyReplyReply):
(Messages::TestWithoutUsingIPCConnection::MessageWithoutArgumentAndEmptyReplyReply::encode):
(Messages::TestWithoutUsingIPCConnection::MessageWithoutArgumentAndReplyWithArgumentReply::name):
(Messages::TestWithoutUsingIPCConnection::MessageWithoutArgumentAndReplyWithArgumentReply::MessageWithoutArgumentAndReplyWithArgumentReply):
(Messages::TestWithoutUsingIPCConnection::MessageWithoutArgumentAndReplyWithArgumentReply::encode):
(Messages::TestWithoutUsingIPCConnection::MessageWithArgumentAndEmptyReplyReply::name):
(Messages::TestWithoutUsingIPCConnection::MessageWithArgumentAndEmptyReplyReply::MessageWithArgumentAndEmptyReplyReply):
(Messages::TestWithoutUsingIPCConnection::MessageWithArgumentAndEmptyReplyReply::encode):
(Messages::TestWithoutUsingIPCConnection::MessageWithArgumentAndReplyWithArgumentReply::name):
(Messages::TestWithoutUsingIPCConnection::MessageWithArgumentAndReplyWithArgumentReply::MessageWithArgumentAndReplyWithArgumentReply):
(Messages::TestWithoutUsingIPCConnection::MessageWithArgumentAndReplyWithArgumentReply::encode):
* Source/WebKit/Shared/IPCTester.cpp:
(WebKit::IPCTester::emptyMessageWithReply):
* Source/WebKit/Shared/IPCTester.h:
* Source/WebKit/Shared/IPCTester.messages.in:
* Source/WebKit/WebProcess/WebPage/IPCTestingAPI.cpp:
(WebKit::IPCTestingAPI::JSIPC::messages):
* Tools/TestWebKitAPI/Tests/IPC/ArgumentCoderTests.cpp:
(TestWebKitAPI::EncoderDecoderTest::name):
* Tools/TestWebKitAPI/Tests/IPC/ConnectionTests.cpp:
(TestWebKitAPI::MockTestMessageWithConnection::name):
* Tools/TestWebKitAPI/Tests/IPC/EventTests.cpp:
(TestWebKitAPI::MockTestMessageWithSignal::name):
* Tools/TestWebKitAPI/Tests/IPC/IPCTestUtilities.h:
(TestWebKitAPI::copyViaEncoder):
(TestWebKitAPI::MockTestMessage1::name):
(TestWebKitAPI::MockTestMessageWithAsyncReply1::name):
(TestWebKitAPI::MockTestMessageWithAsyncReply1::asyncMessageReplyName):

Canonical link: https://commits.webkit.org/299743@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