Title: [271243] trunk/Source/WebKit
Revision
271243
Author
[email protected]
Date
2021-01-07 10:47:58 -0800 (Thu, 07 Jan 2021)

Log Message

WebKit IPC message names should indicate if the message is synchronous
https://bugs.webkit.org/show_bug.cgi?id=220319

Patch by Kimmo Kinnunen <[email protected]> on 2021-01-07
Reviewed by Chris Dumez.

Order WebKit IPC MessageName enumerators by listing asynchronous
messages first. This enables relatively efficient implementation of
isMessageSync().

Remove MessageFlags::SyncMessage. This information is already stored
in the MessageName -- a message is either synchronous or asynchronous,
but not both.

* Platform/IPC/Connection.cpp:
(IPC::Connection::createSyncMessageEncoder):
* Platform/IPC/Decoder.cpp:
(IPC::Decoder::alignBufferPosition):
* Platform/IPC/Decoder.h:
(IPC::Decoder::isSyncMessage const):
* Platform/IPC/Encoder.cpp:
(IPC::Encoder::grow):
* Platform/IPC/Encoder.h:
* Platform/IPC/MessageArgumentDescriptions.h:
* Platform/IPC/MessageFlags.h:
* Scripts/webkit/messages.py:
* Scripts/webkit/messages_unittest.py:
(GeneratedFileContentsTest):
* Scripts/webkit/model.py:
(check_global_model_inputs):
* Scripts/webkit/model_unittest.py:
(test_mismatch_message_attribute_sync):
* Scripts/webkit/tests/MessageArgumentDescriptions.cpp:
* Scripts/webkit/tests/MessageNames.cpp:
(IPC::description):
(IPC::receiverName):
(IPC::isValidMessageName):
* Scripts/webkit/tests/MessageNames.h:
(IPC::messageIsSync):

Modified Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (271242 => 271243)


--- trunk/Source/WebKit/ChangeLog	2021-01-07 18:17:44 UTC (rev 271242)
+++ trunk/Source/WebKit/ChangeLog	2021-01-07 18:47:58 UTC (rev 271243)
@@ -1,3 +1,44 @@
+2021-01-07  Kimmo Kinnunen  <[email protected]>
+
+        WebKit IPC message names should indicate if the message is synchronous
+        https://bugs.webkit.org/show_bug.cgi?id=220319
+
+        Reviewed by Chris Dumez.
+
+        Order WebKit IPC MessageName enumerators by listing asynchronous
+        messages first. This enables relatively efficient implementation of
+        isMessageSync().
+
+        Remove MessageFlags::SyncMessage. This information is already stored
+        in the MessageName -- a message is either synchronous or asynchronous,
+        but not both.
+
+        * Platform/IPC/Connection.cpp:
+        (IPC::Connection::createSyncMessageEncoder):
+        * Platform/IPC/Decoder.cpp:
+        (IPC::Decoder::alignBufferPosition):
+        * Platform/IPC/Decoder.h:
+        (IPC::Decoder::isSyncMessage const):
+        * Platform/IPC/Encoder.cpp:
+        (IPC::Encoder::grow):
+        * Platform/IPC/Encoder.h:
+        * Platform/IPC/MessageArgumentDescriptions.h:
+        * Platform/IPC/MessageFlags.h:
+        * Scripts/webkit/messages.py:
+        * Scripts/webkit/messages_unittest.py:
+        (GeneratedFileContentsTest):
+        * Scripts/webkit/model.py:
+        (check_global_model_inputs):
+        * Scripts/webkit/model_unittest.py:
+        (test_mismatch_message_attribute_sync):
+        * Scripts/webkit/tests/MessageArgumentDescriptions.cpp:
+        * Scripts/webkit/tests/MessageNames.cpp:
+        (IPC::description):
+        (IPC::receiverName):
+        (IPC::isValidMessageName):
+        * Scripts/webkit/tests/MessageNames.h:
+        (IPC::messageIsSync):
+
 2021-01-07  Sihui Liu  <[email protected]>
 
         ASSERTION FAILED: !m_messageReceiverMapCount under WebKit::SpeechRecognitionServer::~SpeechRecognitionServer()

Modified: trunk/Source/WebKit/Platform/IPC/Connection.cpp (271242 => 271243)


--- trunk/Source/WebKit/Platform/IPC/Connection.cpp	2021-01-07 18:17:44 UTC (rev 271242)
+++ trunk/Source/WebKit/Platform/IPC/Connection.cpp	2021-01-07 18:47:58 UTC (rev 271243)
@@ -439,7 +439,6 @@
 std::unique_ptr<Encoder> Connection::createSyncMessageEncoder(MessageName messageName, uint64_t destinationID, uint64_t& syncRequestID)
 {
     auto encoder = makeUnique<Encoder>(messageName, destinationID);
-    encoder->setIsSyncMessage(true);
 
     // Encode the sync request ID.
     syncRequestID = ++m_syncRequestID;

Modified: trunk/Source/WebKit/Platform/IPC/Decoder.cpp (271242 => 271243)


--- trunk/Source/WebKit/Platform/IPC/Decoder.cpp	2021-01-07 18:17:44 UTC (rev 271242)
+++ trunk/Source/WebKit/Platform/IPC/Decoder.cpp	2021-01-07 18:47:58 UTC (rev 271243)
@@ -96,11 +96,6 @@
     // FIXME: We need to dispose of the mach ports in cases of failure.
 }
 
-bool Decoder::isSyncMessage() const
-{
-    return m_messageFlags.contains(MessageFlags::SyncMessage);
-}
-
 ShouldDispatchWhenWaitingForSyncReply Decoder::shouldDispatchMessageWhenWaitingForSyncReply() const
 {
     if (m_messageFlags.contains(MessageFlags::DispatchMessageWhenWaitingForSyncReply))
@@ -165,7 +160,7 @@
         markInvalid();
         return false;
     }
-    
+
     m_bufferPos = alignedPosition;
     return true;
 }

Modified: trunk/Source/WebKit/Platform/IPC/Decoder.h (271242 => 271243)


--- trunk/Source/WebKit/Platform/IPC/Decoder.h	2021-01-07 18:17:44 UTC (rev 271242)
+++ trunk/Source/WebKit/Platform/IPC/Decoder.h	2021-01-07 18:47:58 UTC (rev 271243)
@@ -58,7 +58,7 @@
     MessageName messageName() const { return m_messageName; }
     uint64_t destinationID() const { return m_destinationID; }
 
-    bool isSyncMessage() const;
+    bool isSyncMessage() const { return messageIsSync(messageName()); }
     ShouldDispatchWhenWaitingForSyncReply shouldDispatchMessageWhenWaitingForSyncReply() const;
     bool shouldUseFullySynchronousModeForTesting() const;
 

Modified: trunk/Source/WebKit/Platform/IPC/Encoder.cpp (271242 => 271243)


--- trunk/Source/WebKit/Platform/IPC/Encoder.cpp	2021-01-07 18:17:44 UTC (rev 271242)
+++ trunk/Source/WebKit/Platform/IPC/Encoder.cpp	2021-01-07 18:47:58 UTC (rev 271243)
@@ -90,11 +90,6 @@
     // FIXME: We need to dispose of the attachments in cases of failure.
 }
 
-bool Encoder::isSyncMessage() const
-{
-    return messageFlags().contains(MessageFlags::SyncMessage);
-}
-
 ShouldDispatchWhenWaitingForSyncReply Encoder::shouldDispatchMessageWhenWaitingForSyncReply() const
 {
     if (messageFlags().contains(MessageFlags::DispatchMessageWhenWaitingForSyncReply))
@@ -104,14 +99,6 @@
     return ShouldDispatchWhenWaitingForSyncReply::No;
 }
 
-void Encoder::setIsSyncMessage(bool isSyncMessage)
-{
-    if (isSyncMessage)
-        messageFlags().add(MessageFlags::SyncMessage);
-    else
-        messageFlags().remove(MessageFlags::SyncMessage);
-}
-
 void Encoder::setShouldDispatchMessageWhenWaitingForSyncReply(ShouldDispatchWhenWaitingForSyncReply shouldDispatchWhenWaitingForSyncReply)
 {
     switch (shouldDispatchWhenWaitingForSyncReply) {
@@ -205,7 +192,7 @@
 
     m_bufferSize = alignedSize + size;
     m_bufferPointer = m_buffer + alignedSize + size;
-    
+
     return m_buffer + alignedSize;
 }
 

Modified: trunk/Source/WebKit/Platform/IPC/Encoder.h (271242 => 271243)


--- trunk/Source/WebKit/Platform/IPC/Encoder.h	2021-01-07 18:17:44 UTC (rev 271242)
+++ trunk/Source/WebKit/Platform/IPC/Encoder.h	2021-01-07 18:47:58 UTC (rev 271243)
@@ -50,8 +50,7 @@
     MessageName messageName() const { return m_messageName; }
     uint64_t destinationID() const { return m_destinationID; }
 
-    void setIsSyncMessage(bool);
-    bool isSyncMessage() const;
+    bool isSyncMessage() const { return messageIsSync(messageName()); }
 
     void setShouldDispatchMessageWhenWaitingForSyncReply(ShouldDispatchWhenWaitingForSyncReply);
     ShouldDispatchWhenWaitingForSyncReply shouldDispatchMessageWhenWaitingForSyncReply() const;

Modified: trunk/Source/WebKit/Platform/IPC/MessageArgumentDescriptions.h (271242 => 271243)


--- trunk/Source/WebKit/Platform/IPC/MessageArgumentDescriptions.h	2021-01-07 18:17:44 UTC (rev 271242)
+++ trunk/Source/WebKit/Platform/IPC/MessageArgumentDescriptions.h	2021-01-07 18:47:58 UTC (rev 271243)
@@ -52,6 +52,5 @@
 
 Optional<Vector<ArgumentDescription>> messageArgumentDescriptions(MessageName);
 Optional<Vector<ArgumentDescription>> messageReplyArgumentDescriptions(MessageName);
-bool messageIsSync(MessageName);
 
 }

Modified: trunk/Source/WebKit/Platform/IPC/MessageFlags.h (271242 => 271243)


--- trunk/Source/WebKit/Platform/IPC/MessageFlags.h	2021-01-07 18:17:44 UTC (rev 271242)
+++ trunk/Source/WebKit/Platform/IPC/MessageFlags.h	2021-01-07 18:47:58 UTC (rev 271243)
@@ -28,10 +28,9 @@
 namespace IPC {
 
 enum class MessageFlags : uint8_t {
-    SyncMessage = 1 << 0,
-    DispatchMessageWhenWaitingForSyncReply = 1 << 1,
-    DispatchMessageWhenWaitingForUnboundedSyncReply = 1 << 2,
-    UseFullySynchronousModeForTesting = 1 << 3,
+    DispatchMessageWhenWaitingForSyncReply = 1 << 0,
+    DispatchMessageWhenWaitingForUnboundedSyncReply = 1 << 1,
+    UseFullySynchronousModeForTesting = 1 << 2,
 };
 
 enum class ShouldDispatchWhenWaitingForSyncReply : uint8_t {
@@ -47,7 +46,6 @@
 template<> struct EnumTraits<IPC::MessageFlags> {
     using values = EnumValues<
         IPC::MessageFlags,
-        IPC::MessageFlags::SyncMessage,
         IPC::MessageFlags::DispatchMessageWhenWaitingForSyncReply,
         IPC::MessageFlags::DispatchMessageWhenWaitingForUnboundedSyncReply,
         IPC::MessageFlags::UseFullySynchronousModeForTesting

Modified: trunk/Source/WebKit/Scripts/webkit/messages.py (271242 => 271243)


--- trunk/Source/WebKit/Scripts/webkit/messages.py	2021-01-07 18:17:44 UTC (rev 271242)
+++ trunk/Source/WebKit/Scripts/webkit/messages.py	2021-01-07 18:47:58 UTC (rev 271243)
@@ -25,7 +25,7 @@
 import sys
 
 from webkit import parser
-from webkit.model import BUILTIN_ATTRIBUTE, ASYNC_ATTRIBUTE
+from webkit.model import BUILTIN_ATTRIBUTE, ASYNC_ATTRIBUTE, SYNCHRONOUS_ATTRIBUTE
 
 _license_header = """/*
  * Copyright (C) 2010-2021 Apple Inc. All rights reserved.
@@ -58,7 +58,6 @@
 WANTS_ASYNC_DISPATCH_MESSAGE_ATTRIBUTE = 'WantsAsyncDispatchMessage'
 LEGACY_RECEIVER_ATTRIBUTE = 'LegacyReceiver'
 NOT_REFCOUNTED_RECEIVER_ATTRIBUTE = 'NotRefCounted'
-SYNCHRONOUS_ATTRIBUTE = 'Synchronous'
 
 
 def receiver_enumerator_order_key(receiver_name):
@@ -84,7 +83,7 @@
 
     @classmethod
     def sort_key(cls, obj):
-        return receiver_enumerator_order_key(obj.receiver.name), str(obj)
+        return obj.messages[0].has_attribute(SYNCHRONOUS_ATTRIBUTE), receiver_enumerator_order_key(obj.receiver.name), str(obj)
 
 
 def get_message_enumerators(receivers):
@@ -974,6 +973,15 @@
     result.append('ReceiverName receiverName(MessageName);\n')
     result.append('const char* description(MessageName);\n')
     result.append('bool isValidMessageName(MessageName);\n')
+    result.append('constexpr bool messageIsSync(MessageName name)\n')
+    result.append('{\n')
+    first_synchronous = next((e for e in message_enumerators if e.messages[0].has_attribute(SYNCHRONOUS_ATTRIBUTE)), None)
+    if first_synchronous:
+        result.append('    return name >= MessageName::%s;\n' % first_synchronous)
+    else:
+        result.append('    UNUSED_PARAM(name);\n')
+        result.append('    return false;\n')
+    result.append('}\n')
     result.append('\n')
     result.append('} // namespace IPC\n')
     result.append('\n')
@@ -1173,36 +1181,6 @@
     result += generate_js_argument_descriptions(receivers, 'messageReplyArgumentDescriptions', lambda message: message.reply_parameters if message.has_attribute(SYNCHRONOUS_ATTRIBUTE) or message.has_attribute(ASYNC_ATTRIBUTE) else None)
 
     result.append('\n')
-    result.append('bool messageIsSync(MessageName name)\n')
-    result.append('{\n')
-    result.append('    switch (name) {\n')
-    for receiver in receivers:
-        has_emit_receiver_condition = False
-        previous_message_condition = None
-        for message in receiver.messages:
-            if message.reply_parameters is None or not message.has_attribute(SYNCHRONOUS_ATTRIBUTE):
-                continue
-            if not has_emit_receiver_condition and receiver.condition:
-                has_emit_receiver_condition = True
-                result.append('#if %s\n' % receiver.condition)
-            if previous_message_condition != message.condition:
-                if previous_message_condition:
-                    result.append('#endif\n')
-                if message.condition:
-                    result.append('#if %s\n' % message.condition)
-            previous_message_condition = message.condition
-            result.append('    case MessageName::%s:\n' % MessageEnumerator(receiver, [message]))
-            result.append('        return true;\n')
-        if previous_message_condition:
-            result.append('#endif\n')
-        if has_emit_receiver_condition:
-            result.append('#endif\n')
-    result.append('    default:\n')
-    result.append('        break;\n')
-    result.append('    }\n')
-    result.append('    return false;\n')
-    result.append('}\n')
-    result.append('\n')
 
     result.append('} // namespace WebKit\n')
     result.append('\n')

Modified: trunk/Source/WebKit/Scripts/webkit/model.py (271242 => 271243)


--- trunk/Source/WebKit/Scripts/webkit/model.py	2021-01-07 18:17:44 UTC (rev 271242)
+++ trunk/Source/WebKit/Scripts/webkit/model.py	2021-01-07 18:47:58 UTC (rev 271243)
@@ -22,10 +22,11 @@
 
 import itertools
 
-from collections import Counter
+from collections import Counter, defaultdict
 
 BUILTIN_ATTRIBUTE = "Builtin"
 ASYNC_ATTRIBUTE = "Async"
+SYNCHRONOUS_ATTRIBUTE = 'Synchronous'
 
 class MessageReceiver(object):
     def __init__(self, name, superclass, attributes, messages, condition):
@@ -68,7 +69,7 @@
 
 
 ipc_receiver = MessageReceiver(name="IPC", superclass=None, attributes=[BUILTIN_ATTRIBUTE], messages=[
-    Message('WrappedAsyncMessageForTesting', [], [], attributes=[BUILTIN_ATTRIBUTE], condition=None),
+    Message('WrappedAsyncMessageForTesting', [], [], attributes=[BUILTIN_ATTRIBUTE, SYNCHRONOUS_ATTRIBUTE], condition=None),
     Message('SyncMessageReply', [], [], attributes=[BUILTIN_ATTRIBUTE], condition=None),
     Message('InitializeConnection', [], [], attributes=[BUILTIN_ATTRIBUTE], condition="PLATFORM(COCOA)"),
     Message('LegacySessionState', [], [], attributes=[BUILTIN_ATTRIBUTE], condition=None)
@@ -82,6 +83,21 @@
     if receiver_duplicates:
         errors.append('Duplicate message receiver names: %s' % (', '.join(receiver_duplicates)))
 
+    # A message might be defined multiple times using ifdef conditions.
+    # Certain attributes must match in this case. E.g. USE(COCOA) cannot have a sync message that
+    # would be non-sync in USE(GTK).
+    matching_attributes = [SYNCHRONOUS_ATTRIBUTE]
+    for receiver in receivers:
+        receiver_messages = defaultdict(list)
+        for message in receiver.messages:
+            receiver_messages[message.name].append(message)
+        for messages in receiver_messages.values():
+            m0 = messages[0]
+            for i in range(1, len(messages)):
+                mi = messages[i]
+                if any(m0.has_attribute(a) != mi.has_attribute(a) for a in matching_attributes):
+                    errors.append('Receiver %s message %s attribute mismatch: %s (%s) != %s (%s))' % (receiver.name, message.name,
+                                  m0.attributes, m0.condition, mi.attributes, mi.condition))
     return errors
 
 

Modified: trunk/Source/WebKit/Scripts/webkit/model_unittest.py (271242 => 271243)


--- trunk/Source/WebKit/Scripts/webkit/model_unittest.py	2021-01-07 18:17:44 UTC (rev 271242)
+++ trunk/Source/WebKit/Scripts/webkit/model_unittest.py	2021-01-07 18:47:58 UTC (rev 271243)
@@ -63,6 +63,23 @@
         self.assertEquals(len(errors), 1)
         self.assertTrue("Duplicate" in errors[0])
 
+    def test_mismatch_message_attribute_sync(self):
+        contents = """
+messages -> WebPage {
+#if USE(COCOA)
+    LoadURL(String url) Synchronous
+#endif
+#if USE(GTK)
+    LoadURL(String url)
+#endif
+}"""
+        receiver = parser.parse(StringIO(contents))
+        self.assertEquals(receiver.name, 'WebPage')
+        self.assertEquals(receiver.messages[0].name, 'LoadURL')
+        errors = model.check_global_model_inputs([receiver])
+        self.assertEquals(len(errors), 1)
+        self.assertTrue("attribute mismatch" in errors[0])
 
+
 if __name__ == '__main__':
     unittest.main()

Modified: trunk/Source/WebKit/Scripts/webkit/tests/MessageArgumentDescriptions.cpp (271242 => 271243)


--- trunk/Source/WebKit/Scripts/webkit/tests/MessageArgumentDescriptions.cpp	2021-01-07 18:17:44 UTC (rev 271242)
+++ trunk/Source/WebKit/Scripts/webkit/tests/MessageArgumentDescriptions.cpp	2021-01-07 18:47:58 UTC (rev 271243)
@@ -573,31 +573,6 @@
     return WTF::nullopt;
 }
 
-bool messageIsSync(MessageName name)
-{
-    switch (name) {
-    case MessageName::TestWithSuperclass_TestSyncMessage:
-        return true;
-    case MessageName::TestWithSuperclass_TestSynchronousMessage:
-        return true;
-#if (ENABLE(WEBKIT2) && (NESTED_MASTER_CONDITION || MASTER_OR && MASTER_AND))
-    case MessageName::TestWithLegacyReceiver_GetPluginProcessConnection:
-        return true;
-    case MessageName::TestWithLegacyReceiver_TestMultipleAttributes:
-        return true;
-#endif
-#if (ENABLE(WEBKIT2) && (NESTED_MASTER_CONDITION || MASTER_OR && MASTER_AND))
-    case MessageName::TestWithoutAttributes_GetPluginProcessConnection:
-        return true;
-    case MessageName::TestWithoutAttributes_TestMultipleAttributes:
-        return true;
-#endif
-    default:
-        break;
-    }
-    return false;
-}
-
 } // namespace WebKit
 
 #endif

Modified: trunk/Source/WebKit/Scripts/webkit/tests/MessageNames.cpp (271242 => 271243)


--- trunk/Source/WebKit/Scripts/webkit/tests/MessageNames.cpp	2021-01-07 18:17:44 UTC (rev 271242)
+++ trunk/Source/WebKit/Scripts/webkit/tests/MessageNames.cpp	2021-01-07 18:47:58 UTC (rev 271243)
@@ -46,8 +46,6 @@
         return "TestWithLegacyReceiver_DidReceivePolicyDecision";
     case MessageName::TestWithLegacyReceiver_ExperimentalOperation:
         return "TestWithLegacyReceiver_ExperimentalOperation";
-    case MessageName::TestWithLegacyReceiver_GetPluginProcessConnection:
-        return "TestWithLegacyReceiver_GetPluginProcessConnection";
     case MessageName::TestWithLegacyReceiver_GetPlugins:
         return "TestWithLegacyReceiver_GetPlugins";
     case MessageName::TestWithLegacyReceiver_InterpretKeyEvent:
@@ -70,8 +68,6 @@
         return "TestWithLegacyReceiver_SetVideoLayerID";
     case MessageName::TestWithLegacyReceiver_TemplateTest:
         return "TestWithLegacyReceiver_TemplateTest";
-    case MessageName::TestWithLegacyReceiver_TestMultipleAttributes:
-        return "TestWithLegacyReceiver_TestMultipleAttributes";
     case MessageName::TestWithLegacyReceiver_TestParameterAttributes:
         return "TestWithLegacyReceiver_TestParameterAttributes";
     case MessageName::TestWithLegacyReceiver_TouchEvent:
@@ -86,10 +82,6 @@
         return "TestWithSuperclass_TestAsyncMessageWithMultipleArguments";
     case MessageName::TestWithSuperclass_TestAsyncMessageWithNoArguments:
         return "TestWithSuperclass_TestAsyncMessageWithNoArguments";
-    case MessageName::TestWithSuperclass_TestSyncMessage:
-        return "TestWithSuperclass_TestSyncMessage";
-    case MessageName::TestWithSuperclass_TestSynchronousMessage:
-        return "TestWithSuperclass_TestSynchronousMessage";
     case MessageName::TestWithoutAttributes_AddEvent:
         return "TestWithoutAttributes_AddEvent";
     case MessageName::TestWithoutAttributes_Close:
@@ -104,8 +96,6 @@
         return "TestWithoutAttributes_DidReceivePolicyDecision";
     case MessageName::TestWithoutAttributes_ExperimentalOperation:
         return "TestWithoutAttributes_ExperimentalOperation";
-    case MessageName::TestWithoutAttributes_GetPluginProcessConnection:
-        return "TestWithoutAttributes_GetPluginProcessConnection";
     case MessageName::TestWithoutAttributes_GetPlugins:
         return "TestWithoutAttributes_GetPlugins";
     case MessageName::TestWithoutAttributes_InterpretKeyEvent:
@@ -128,8 +118,6 @@
         return "TestWithoutAttributes_SetVideoLayerID";
     case MessageName::TestWithoutAttributes_TemplateTest:
         return "TestWithoutAttributes_TemplateTest";
-    case MessageName::TestWithoutAttributes_TestMultipleAttributes:
-        return "TestWithoutAttributes_TestMultipleAttributes";
     case MessageName::TestWithoutAttributes_TestParameterAttributes:
         return "TestWithoutAttributes_TestParameterAttributes";
     case MessageName::TestWithoutAttributes_TouchEvent:
@@ -140,8 +128,6 @@
         return "LegacySessionState";
     case MessageName::SyncMessageReply:
         return "SyncMessageReply";
-    case MessageName::WrappedAsyncMessageForTesting:
-        return "WrappedAsyncMessageForTesting";
     case MessageName::TestWithSuperclass_TestAsyncMessageReply:
         return "TestWithSuperclass_TestAsyncMessageReply";
     case MessageName::TestWithSuperclass_TestAsyncMessageWithConnectionReply:
@@ -150,6 +136,20 @@
         return "TestWithSuperclass_TestAsyncMessageWithMultipleArgumentsReply";
     case MessageName::TestWithSuperclass_TestAsyncMessageWithNoArgumentsReply:
         return "TestWithSuperclass_TestAsyncMessageWithNoArgumentsReply";
+    case MessageName::TestWithLegacyReceiver_GetPluginProcessConnection:
+        return "TestWithLegacyReceiver_GetPluginProcessConnection";
+    case MessageName::TestWithLegacyReceiver_TestMultipleAttributes:
+        return "TestWithLegacyReceiver_TestMultipleAttributes";
+    case MessageName::TestWithSuperclass_TestSyncMessage:
+        return "TestWithSuperclass_TestSyncMessage";
+    case MessageName::TestWithSuperclass_TestSynchronousMessage:
+        return "TestWithSuperclass_TestSynchronousMessage";
+    case MessageName::TestWithoutAttributes_GetPluginProcessConnection:
+        return "TestWithoutAttributes_GetPluginProcessConnection";
+    case MessageName::TestWithoutAttributes_TestMultipleAttributes:
+        return "TestWithoutAttributes_TestMultipleAttributes";
+    case MessageName::WrappedAsyncMessageForTesting:
+        return "WrappedAsyncMessageForTesting";
     }
     ASSERT_NOT_REACHED();
     return "<invalid message name>";
@@ -167,7 +167,6 @@
     case MessageName::TestWithLegacyReceiver_DidCreateWebProcessConnection:
     case MessageName::TestWithLegacyReceiver_DidReceivePolicyDecision:
     case MessageName::TestWithLegacyReceiver_ExperimentalOperation:
-    case MessageName::TestWithLegacyReceiver_GetPluginProcessConnection:
     case MessageName::TestWithLegacyReceiver_GetPlugins:
     case MessageName::TestWithLegacyReceiver_InterpretKeyEvent:
     case MessageName::TestWithLegacyReceiver_LoadSomething:
@@ -179,7 +178,6 @@
     case MessageName::TestWithLegacyReceiver_SendInts:
     case MessageName::TestWithLegacyReceiver_SetVideoLayerID:
     case MessageName::TestWithLegacyReceiver_TemplateTest:
-    case MessageName::TestWithLegacyReceiver_TestMultipleAttributes:
     case MessageName::TestWithLegacyReceiver_TestParameterAttributes:
     case MessageName::TestWithLegacyReceiver_TouchEvent:
         return ReceiverName::TestWithLegacyReceiver;
@@ -188,8 +186,6 @@
     case MessageName::TestWithSuperclass_TestAsyncMessageWithConnection:
     case MessageName::TestWithSuperclass_TestAsyncMessageWithMultipleArguments:
     case MessageName::TestWithSuperclass_TestAsyncMessageWithNoArguments:
-    case MessageName::TestWithSuperclass_TestSyncMessage:
-    case MessageName::TestWithSuperclass_TestSynchronousMessage:
         return ReceiverName::TestWithSuperclass;
     case MessageName::TestWithoutAttributes_AddEvent:
     case MessageName::TestWithoutAttributes_Close:
@@ -198,7 +194,6 @@
     case MessageName::TestWithoutAttributes_DidCreateWebProcessConnection:
     case MessageName::TestWithoutAttributes_DidReceivePolicyDecision:
     case MessageName::TestWithoutAttributes_ExperimentalOperation:
-    case MessageName::TestWithoutAttributes_GetPluginProcessConnection:
     case MessageName::TestWithoutAttributes_GetPlugins:
     case MessageName::TestWithoutAttributes_InterpretKeyEvent:
     case MessageName::TestWithoutAttributes_LoadSomething:
@@ -210,7 +205,6 @@
     case MessageName::TestWithoutAttributes_SendInts:
     case MessageName::TestWithoutAttributes_SetVideoLayerID:
     case MessageName::TestWithoutAttributes_TemplateTest:
-    case MessageName::TestWithoutAttributes_TestMultipleAttributes:
     case MessageName::TestWithoutAttributes_TestParameterAttributes:
     case MessageName::TestWithoutAttributes_TouchEvent:
         return ReceiverName::TestWithoutAttributes;
@@ -217,7 +211,6 @@
     case MessageName::InitializeConnection:
     case MessageName::LegacySessionState:
     case MessageName::SyncMessageReply:
-    case MessageName::WrappedAsyncMessageForTesting:
         return ReceiverName::IPC;
     case MessageName::TestWithSuperclass_TestAsyncMessageReply:
     case MessageName::TestWithSuperclass_TestAsyncMessageWithConnectionReply:
@@ -224,6 +217,17 @@
     case MessageName::TestWithSuperclass_TestAsyncMessageWithMultipleArgumentsReply:
     case MessageName::TestWithSuperclass_TestAsyncMessageWithNoArgumentsReply:
         return ReceiverName::AsyncReply;
+    case MessageName::TestWithLegacyReceiver_GetPluginProcessConnection:
+    case MessageName::TestWithLegacyReceiver_TestMultipleAttributes:
+        return ReceiverName::TestWithLegacyReceiver;
+    case MessageName::TestWithSuperclass_TestSyncMessage:
+    case MessageName::TestWithSuperclass_TestSynchronousMessage:
+        return ReceiverName::TestWithSuperclass;
+    case MessageName::TestWithoutAttributes_GetPluginProcessConnection:
+    case MessageName::TestWithoutAttributes_TestMultipleAttributes:
+        return ReceiverName::TestWithoutAttributes;
+    case MessageName::WrappedAsyncMessageForTesting:
+        return ReceiverName::IPC;
     }
     ASSERT_NOT_REACHED();
     return ReceiverName::Invalid;
@@ -261,8 +265,6 @@
     if (messageName == IPC::MessageName::TestWithLegacyReceiver_ExperimentalOperation)
         return true;
 #endif
-    if (messageName == IPC::MessageName::TestWithLegacyReceiver_GetPluginProcessConnection)
-        return true;
     if (messageName == IPC::MessageName::TestWithLegacyReceiver_GetPlugins)
         return true;
 #if PLATFORM(MAC)
@@ -291,8 +293,6 @@
         return true;
     if (messageName == IPC::MessageName::TestWithLegacyReceiver_TemplateTest)
         return true;
-    if (messageName == IPC::MessageName::TestWithLegacyReceiver_TestMultipleAttributes)
-        return true;
     if (messageName == IPC::MessageName::TestWithLegacyReceiver_TestParameterAttributes)
         return true;
 #if (ENABLE(TOUCH_EVENTS) && (NESTED_MESSAGE_CONDITION || SOME_OTHER_MESSAGE_CONDITION))
@@ -317,10 +317,6 @@
     if (messageName == IPC::MessageName::TestWithSuperclass_TestAsyncMessageWithNoArguments)
         return true;
 #endif
-    if (messageName == IPC::MessageName::TestWithSuperclass_TestSyncMessage)
-        return true;
-    if (messageName == IPC::MessageName::TestWithSuperclass_TestSynchronousMessage)
-        return true;
 #if (ENABLE(TOUCH_EVENTS) && (NESTED_MESSAGE_CONDITION && SOME_OTHER_MESSAGE_CONDITION))
     if (messageName == IPC::MessageName::TestWithoutAttributes_AddEvent)
         return true;
@@ -343,8 +339,6 @@
     if (messageName == IPC::MessageName::TestWithoutAttributes_ExperimentalOperation)
         return true;
 #endif
-    if (messageName == IPC::MessageName::TestWithoutAttributes_GetPluginProcessConnection)
-        return true;
     if (messageName == IPC::MessageName::TestWithoutAttributes_GetPlugins)
         return true;
 #if PLATFORM(MAC)
@@ -373,8 +367,6 @@
         return true;
     if (messageName == IPC::MessageName::TestWithoutAttributes_TemplateTest)
         return true;
-    if (messageName == IPC::MessageName::TestWithoutAttributes_TestMultipleAttributes)
-        return true;
     if (messageName == IPC::MessageName::TestWithoutAttributes_TestParameterAttributes)
         return true;
 #if (ENABLE(TOUCH_EVENTS) && (NESTED_MESSAGE_CONDITION || SOME_OTHER_MESSAGE_CONDITION))
@@ -389,8 +381,6 @@
         return true;
     if (messageName == IPC::MessageName::SyncMessageReply)
         return true;
-    if (messageName == IPC::MessageName::WrappedAsyncMessageForTesting)
-        return true;
 #if ENABLE(TEST_FEATURE)
     if (messageName == IPC::MessageName::TestWithSuperclass_TestAsyncMessageReply)
         return true;
@@ -407,6 +397,20 @@
     if (messageName == IPC::MessageName::TestWithSuperclass_TestAsyncMessageWithNoArgumentsReply)
         return true;
 #endif
+    if (messageName == IPC::MessageName::TestWithLegacyReceiver_GetPluginProcessConnection)
+        return true;
+    if (messageName == IPC::MessageName::TestWithLegacyReceiver_TestMultipleAttributes)
+        return true;
+    if (messageName == IPC::MessageName::TestWithSuperclass_TestSyncMessage)
+        return true;
+    if (messageName == IPC::MessageName::TestWithSuperclass_TestSynchronousMessage)
+        return true;
+    if (messageName == IPC::MessageName::TestWithoutAttributes_GetPluginProcessConnection)
+        return true;
+    if (messageName == IPC::MessageName::TestWithoutAttributes_TestMultipleAttributes)
+        return true;
+    if (messageName == IPC::MessageName::WrappedAsyncMessageForTesting)
+        return true;
     return false;
 };
 

Modified: trunk/Source/WebKit/Scripts/webkit/tests/MessageNames.h (271242 => 271243)


--- trunk/Source/WebKit/Scripts/webkit/tests/MessageNames.h	2021-01-07 18:17:44 UTC (rev 271242)
+++ trunk/Source/WebKit/Scripts/webkit/tests/MessageNames.h	2021-01-07 18:47:58 UTC (rev 271243)
@@ -47,7 +47,6 @@
     , TestWithLegacyReceiver_DidCreateWebProcessConnection
     , TestWithLegacyReceiver_DidReceivePolicyDecision
     , TestWithLegacyReceiver_ExperimentalOperation
-    , TestWithLegacyReceiver_GetPluginProcessConnection
     , TestWithLegacyReceiver_GetPlugins
     , TestWithLegacyReceiver_InterpretKeyEvent
     , TestWithLegacyReceiver_LoadSomething
@@ -59,7 +58,6 @@
     , TestWithLegacyReceiver_SendInts
     , TestWithLegacyReceiver_SetVideoLayerID
     , TestWithLegacyReceiver_TemplateTest
-    , TestWithLegacyReceiver_TestMultipleAttributes
     , TestWithLegacyReceiver_TestParameterAttributes
     , TestWithLegacyReceiver_TouchEvent
     , TestWithSuperclass_LoadURL
@@ -67,8 +65,6 @@
     , TestWithSuperclass_TestAsyncMessageWithConnection
     , TestWithSuperclass_TestAsyncMessageWithMultipleArguments
     , TestWithSuperclass_TestAsyncMessageWithNoArguments
-    , TestWithSuperclass_TestSyncMessage
-    , TestWithSuperclass_TestSynchronousMessage
     , TestWithoutAttributes_AddEvent
     , TestWithoutAttributes_Close
     , TestWithoutAttributes_CreatePlugin
@@ -76,7 +72,6 @@
     , TestWithoutAttributes_DidCreateWebProcessConnection
     , TestWithoutAttributes_DidReceivePolicyDecision
     , TestWithoutAttributes_ExperimentalOperation
-    , TestWithoutAttributes_GetPluginProcessConnection
     , TestWithoutAttributes_GetPlugins
     , TestWithoutAttributes_InterpretKeyEvent
     , TestWithoutAttributes_LoadSomething
@@ -88,23 +83,32 @@
     , TestWithoutAttributes_SendInts
     , TestWithoutAttributes_SetVideoLayerID
     , TestWithoutAttributes_TemplateTest
-    , TestWithoutAttributes_TestMultipleAttributes
     , TestWithoutAttributes_TestParameterAttributes
     , TestWithoutAttributes_TouchEvent
     , InitializeConnection
     , LegacySessionState
     , SyncMessageReply
-    , WrappedAsyncMessageForTesting
     , TestWithSuperclass_TestAsyncMessageReply
     , TestWithSuperclass_TestAsyncMessageWithConnectionReply
     , TestWithSuperclass_TestAsyncMessageWithMultipleArgumentsReply
     , TestWithSuperclass_TestAsyncMessageWithNoArgumentsReply
-    , Last = TestWithSuperclass_TestAsyncMessageWithNoArgumentsReply
+    , TestWithLegacyReceiver_GetPluginProcessConnection
+    , TestWithLegacyReceiver_TestMultipleAttributes
+    , TestWithSuperclass_TestSyncMessage
+    , TestWithSuperclass_TestSynchronousMessage
+    , TestWithoutAttributes_GetPluginProcessConnection
+    , TestWithoutAttributes_TestMultipleAttributes
+    , WrappedAsyncMessageForTesting
+    , Last = WrappedAsyncMessageForTesting
 };
 
 ReceiverName receiverName(MessageName);
 const char* description(MessageName);
 bool isValidMessageName(MessageName);
+constexpr bool messageIsSync(MessageName name)
+{
+    return name >= MessageName::TestWithLegacyReceiver_GetPluginProcessConnection;
+}
 
 } // namespace IPC
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to