[webkit-changes] [WebKit/WebKit] 069295: [WK2] Provide generic callReply(), cancelReply() f...
Žan Doberšek
noreply at github.com
Tue Nov 22 06:45:45 PST 2022
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 069295b2bd5be1a999e9187001c361c602415b91
https://github.com/WebKit/WebKit/commit/069295b2bd5be1a999e9187001c361c602415b91
Author: Žan Doberšek <zan at falconsigh.net>
Date: 2022-11-22 (Tue, 22 Nov 2022)
Changed paths:
M Source/WebKit/Platform/IPC/Connection.h
M Source/WebKit/Scripts/webkit/messages.py
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/TestWithStreamMessages.h
M Source/WebKit/Scripts/webkit/tests/TestWithSuperclassMessageReceiver.cpp
M Source/WebKit/Scripts/webkit/tests/TestWithSuperclassMessages.h
M Source/WebKit/Scripts/webkit/tests/TestWithoutAttributesMessageReceiver.cpp
M Source/WebKit/Scripts/webkit/tests/TestWithoutAttributesMessages.h
M Source/WebKit/UIProcess/WebPageProxy.cpp
M Source/WebKit/WebProcess/WebCoreSupport/RemoteWebLockRegistry.cpp
M Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp
M Tools/TestWebKitAPI/Tests/IPC/IPCTestUtilities.h
Log Message:
-----------
[WK2] Provide generic callReply(), cancelReply() functions instead of per-message variants
https://bugs.webkit.org/show_bug.cgi?id=248132
Reviewed by Darin Adler.
For each asynchronous IPC message, the callReply() and cancelReply()
static functions are generated. The first decodes each specified reply
argument before invoking the completion handler, bailing if the decoding
failed at any point. The second cancels the reply by invoking the
completion handler with an AsyncReplyError value for every reply
parameter.
These distinct functions can be replaced by single generic variants that
work with the ReplyArguments tuple that's defined for each message that
expects a reply. Connection::callReply() decodes a tuple of reply
arguments before invoking the completion handler, bailing if decoding
failed. Connection::cancelReply() also invokes the completion handler,
but providing AsyncReplyError values for each reply parameter.
Different header inclusions are added to avoid incomplete types. A solid
chunk of code generation is removed from messages.py, and unit tests are
updated to reflect the reduction of generated code.
* Source/WebKit/Platform/IPC/Connection.h:
(IPC::Connection::makeAsyncReplyHandler):
(IPC::Connection::callReply):
(IPC::Connection::cancelReply):
* Source/WebKit/Scripts/webkit/messages.py:
(function_parameter_type):
(message_to_struct_declaration):
(generate_message_handler):
(reply_parameter_type): Deleted.
(move_type): Deleted.
* Source/WebKit/Scripts/webkit/tests/TestWithCVPixelBufferMessageReceiver.cpp:
(Messages::TestWithCVPixelBuffer::ReceiveCVPixelBuffer::callReply): Deleted.
(Messages::TestWithCVPixelBuffer::ReceiveCVPixelBuffer::cancelReply): Deleted.
* Source/WebKit/Scripts/webkit/tests/TestWithCVPixelBufferMessages.h:
* Source/WebKit/Scripts/webkit/tests/TestWithImageDataMessageReceiver.cpp:
(Messages::TestWithImageData::ReceiveImageData::callReply): Deleted.
(Messages::TestWithImageData::ReceiveImageData::cancelReply): Deleted.
* Source/WebKit/Scripts/webkit/tests/TestWithImageDataMessages.h:
* Source/WebKit/Scripts/webkit/tests/TestWithLegacyReceiverMessageReceiver.cpp:
(Messages::TestWithLegacyReceiver::CreatePlugin::callReply): Deleted.
(Messages::TestWithLegacyReceiver::CreatePlugin::cancelReply): Deleted.
(Messages::TestWithLegacyReceiver::RunJavaScriptAlert::callReply): Deleted.
(Messages::TestWithLegacyReceiver::RunJavaScriptAlert::cancelReply): Deleted.
(Messages::TestWithLegacyReceiver::GetPlugins::callReply): Deleted.
(Messages::TestWithLegacyReceiver::GetPlugins::cancelReply): Deleted.
(Messages::TestWithLegacyReceiver::InterpretKeyEvent::callReply): Deleted.
(Messages::TestWithLegacyReceiver::InterpretKeyEvent::cancelReply): Deleted.
* Source/WebKit/Scripts/webkit/tests/TestWithLegacyReceiverMessages.h:
* Source/WebKit/Scripts/webkit/tests/TestWithSemaphoreMessageReceiver.cpp:
(Messages::TestWithSemaphore::ReceiveSemaphore::callReply): Deleted.
(Messages::TestWithSemaphore::ReceiveSemaphore::cancelReply): Deleted.
* Source/WebKit/Scripts/webkit/tests/TestWithSemaphoreMessages.h:
* Source/WebKit/Scripts/webkit/tests/TestWithStreamMessages.h:
* Source/WebKit/Scripts/webkit/tests/TestWithSuperclassMessageReceiver.cpp:
(Messages::TestWithSuperclass::TestAsyncMessage::callReply): Deleted.
(Messages::TestWithSuperclass::TestAsyncMessage::cancelReply): Deleted.
(Messages::TestWithSuperclass::TestAsyncMessageWithNoArguments::callReply): Deleted.
(Messages::TestWithSuperclass::TestAsyncMessageWithNoArguments::cancelReply): Deleted.
(Messages::TestWithSuperclass::TestAsyncMessageWithMultipleArguments::callReply): Deleted.
(Messages::TestWithSuperclass::TestAsyncMessageWithMultipleArguments::cancelReply): Deleted.
(Messages::TestWithSuperclass::TestAsyncMessageWithConnection::callReply): Deleted.
(Messages::TestWithSuperclass::TestAsyncMessageWithConnection::cancelReply): Deleted.
* Source/WebKit/Scripts/webkit/tests/TestWithSuperclassMessages.h:
* Source/WebKit/Scripts/webkit/tests/TestWithoutAttributesMessageReceiver.cpp:
(Messages::TestWithoutAttributes::CreatePlugin::callReply): Deleted.
(Messages::TestWithoutAttributes::CreatePlugin::cancelReply): Deleted.
(Messages::TestWithoutAttributes::RunJavaScriptAlert::callReply): Deleted.
(Messages::TestWithoutAttributes::RunJavaScriptAlert::cancelReply): Deleted.
(Messages::TestWithoutAttributes::GetPlugins::callReply): Deleted.
(Messages::TestWithoutAttributes::GetPlugins::cancelReply): Deleted.
(Messages::TestWithoutAttributes::InterpretKeyEvent::callReply): Deleted.
(Messages::TestWithoutAttributes::InterpretKeyEvent::cancelReply): Deleted.
* Source/WebKit/Scripts/webkit/tests/TestWithoutAttributesMessages.h:
* Source/WebKit/UIProcess/WebPageProxy.cpp:
* Source/WebKit/WebProcess/WebCoreSupport/RemoteWebLockRegistry.cpp:
* Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp:
* Tools/TestWebKitAPI/Tests/IPC/IPCTestUtilities.h:
(TestWebKitAPI::MockTestMessageWithAsyncReply1::callReply): Deleted.
(TestWebKitAPI::MockTestMessageWithAsyncReply1::cancelReply): Deleted.
Canonical link: https://commits.webkit.org/256936@main
More information about the webkit-changes
mailing list