Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 961097c5d0de061794d8ee19cb8151804c974bb5
https://github.com/WebKit/WebKit/commit/961097c5d0de061794d8ee19cb8151804c974bb5
Author: Brady Eidson <[email protected]>
Date: 2023-08-24 (Thu, 24 Aug 2023)
Changed paths:
M Source/WebKit/Platform/IPC/Connection.h
M Source/WebKit/Platform/IPC/DaemonConnection.h
M Source/WebKit/Platform/IPC/HandleMessage.h
M Source/WebKit/Platform/IPC/MessageReceiver.h
M Source/WebKit/Platform/IPC/MessageSender.cpp
M Source/WebKit/Platform/IPC/MessageSender.h
M Source/WebKit/Platform/IPC/MessageSenderInlines.h
M Source/WebKit/Platform/IPC/cocoa/DaemonConnectionCocoa.mm
M Source/WebKit/Scripts/webkit/messages.py
M Source/WebKit/Scripts/webkit/messages_unittest.py
M Source/WebKit/Scripts/webkit/model.py
M Source/WebKit/Scripts/webkit/parser.py
M Source/WebKit/Scripts/webkit/tests/Makefile
M Source/WebKit/Scripts/webkit/tests/MessageArgumentDescriptions.cpp
M Source/WebKit/Scripts/webkit/tests/MessageNames.cpp
M Source/WebKit/Scripts/webkit/tests/MessageNames.h
A
Source/WebKit/Scripts/webkit/tests/TestWithoutUsingIPCConnection.messages.in
A
Source/WebKit/Scripts/webkit/tests/TestWithoutUsingIPCConnectionMessageReceiver.cpp
A Source/WebKit/Scripts/webkit/tests/TestWithoutUsingIPCConnectionMessages.h
Log Message:
-----------
Add generated messages that can work without using IPC::Connection
https://bugs.webkit.org/show_bug.cgi?id=260660
Reviewed by Alex Christensen and Chris Dumez.
We want to auto generated messages to our daemons, but they don't use
IPC::Connection.
This patch gives generated messages and message handlers the ability to bypass
using IPC::Connection.
The MessageSender implements a few new custom methods to take a completed
Encoder and ship it across its
own transport, as well as create a Decoder for replies.
The MessageReceiver implements a custom method to create its own Encoder from
tranport and its own reply
handler that will be called by automatically generated code.
This just lays the groundwork and exercises it using the script tests.
Coming up next will be generating messages for webpushd
* Source/WebKit/Platform/IPC/Connection.h:
* Source/WebKit/Platform/IPC/DaemonConnection.h:
(WebKit::Daemon::Connection::initializeConnectionIfNeeded const):
* Source/WebKit/Platform/IPC/HandleMessage.h:
(IPC::handleMessageWithoutUsingIPCConnection):
(IPC::handleMessageAsyncWithoutUsingIPCConnection):
* Source/WebKit/Platform/IPC/MessageReceiver.h:
(IPC::MessageReceiver::didReceiveMessageWithReplyHandler):
* Source/WebKit/Platform/IPC/MessageSender.cpp:
(IPC::MessageSender::performSendWithoutUsingIPCConnection):
(IPC::MessageSender::performSendWithAsyncReplyWithoutUsingIPCConnection):
* Source/WebKit/Platform/IPC/MessageSender.h:
* Source/WebKit/Platform/IPC/MessageSenderInlines.h:
(IPC::MessageSender::sendWithoutUsingIPCConnection):
(IPC::MessageSender::sendWithAsyncReplyWithoutUsingIPCConnection):
* Source/WebKit/Platform/IPC/cocoa/DaemonConnectionCocoa.mm:
(WebKit::Daemon::Connection::sendWithReply const):
(WebKit::Daemon::ConnectionToMachService<Traits>::initializeConnectionIfNeeded
const):
* Source/WebKit/Scripts/webkit/messages.py:
(async_message_statement):
(generate_message_handler):
* Source/WebKit/Scripts/webkit/model.py:
(MessageReceiver.__init__):
(generate_global_model):
* Source/WebKit/Scripts/webkit/parser.py:
(parse):
* Source/WebKit/Scripts/webkit/tests/Makefile:
* Source/WebKit/Scripts/webkit/tests/MessageArgumentDescriptions.cpp:
(IPC::jsValueForArguments):
(IPC::jsValueForReplyArguments):
(IPC::messageArgumentDescriptions):
(IPC::messageReplyArgumentDescriptions):
* Source/WebKit/Scripts/webkit/tests/MessageNames.cpp:
* Source/WebKit/Scripts/webkit/tests/MessageNames.h:
* Source/WebKit/Scripts/webkit/tests/TestWithoutUsingIPCConnection.messages.in:
Added.
*
Source/WebKit/Scripts/webkit/tests/TestWithoutUsingIPCConnectionMessageReceiver.cpp:
Added.
(WebKit::TestWithoutUsingIPCConnection::didReceiveMessageWithReplyHandler):
(IPC::jsValueForDecodedMessage<MessageName::TestWithoutUsingIPCConnection_MessageWithoutArgument>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithoutUsingIPCConnection_MessageWithoutArgumentAndEmptyReply>):
(IPC::jsValueForDecodedMessageReply<MessageName::TestWithoutUsingIPCConnection_MessageWithoutArgumentAndEmptyReply>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithoutUsingIPCConnection_MessageWithoutArgumentAndReplyWithArgument>):
(IPC::jsValueForDecodedMessageReply<MessageName::TestWithoutUsingIPCConnection_MessageWithoutArgumentAndReplyWithArgument>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithoutUsingIPCConnection_MessageWithArgument>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithoutUsingIPCConnection_MessageWithArgumentAndEmptyReply>):
(IPC::jsValueForDecodedMessageReply<MessageName::TestWithoutUsingIPCConnection_MessageWithArgumentAndEmptyReply>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithoutUsingIPCConnection_MessageWithArgumentAndReplyWithArgument>):
(IPC::jsValueForDecodedMessageReply<MessageName::TestWithoutUsingIPCConnection_MessageWithArgumentAndReplyWithArgument>):
* Source/WebKit/Scripts/webkit/tests/TestWithoutUsingIPCConnectionMessages.h:
Added.
(Messages::TestWithoutUsingIPCConnection::messageReceiverName):
(Messages::TestWithoutUsingIPCConnection::MessageWithoutArgument::name):
(Messages::TestWithoutUsingIPCConnection::MessageWithoutArgument::arguments):
(Messages::TestWithoutUsingIPCConnection::MessageWithoutArgumentAndEmptyReply::name):
(Messages::TestWithoutUsingIPCConnection::MessageWithoutArgumentAndEmptyReply::asyncMessageReplyName):
(Messages::TestWithoutUsingIPCConnection::MessageWithoutArgumentAndEmptyReply::arguments):
(Messages::TestWithoutUsingIPCConnection::MessageWithoutArgumentAndReplyWithArgument::name):
(Messages::TestWithoutUsingIPCConnection::MessageWithoutArgumentAndReplyWithArgument::asyncMessageReplyName):
(Messages::TestWithoutUsingIPCConnection::MessageWithoutArgumentAndReplyWithArgument::arguments):
(Messages::TestWithoutUsingIPCConnection::MessageWithArgument::name):
(Messages::TestWithoutUsingIPCConnection::MessageWithArgument::MessageWithArgument):
(Messages::TestWithoutUsingIPCConnection::MessageWithArgument::arguments):
(Messages::TestWithoutUsingIPCConnection::MessageWithArgumentAndEmptyReply::name):
(Messages::TestWithoutUsingIPCConnection::MessageWithArgumentAndEmptyReply::asyncMessageReplyName):
(Messages::TestWithoutUsingIPCConnection::MessageWithArgumentAndEmptyReply::MessageWithArgumentAndEmptyReply):
(Messages::TestWithoutUsingIPCConnection::MessageWithArgumentAndEmptyReply::arguments):
(Messages::TestWithoutUsingIPCConnection::MessageWithArgumentAndReplyWithArgument::name):
(Messages::TestWithoutUsingIPCConnection::MessageWithArgumentAndReplyWithArgument::asyncMessageReplyName):
(Messages::TestWithoutUsingIPCConnection::MessageWithArgumentAndReplyWithArgument::MessageWithArgumentAndReplyWithArgument):
(Messages::TestWithoutUsingIPCConnection::MessageWithArgumentAndReplyWithArgument::arguments):
Canonical link: https://commits.webkit.org/267262@main
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes