| /* |
| * Copyright (C) 2021 Apple Inc. All rights reserved. |
| * |
| * Redistribution and use in source and binary forms, with or without |
| * modification, are permitted provided that the following conditions |
| * are met: |
| * 1. Redistributions of source code must retain the above copyright |
| * notice, this list of conditions and the following disclaimer. |
| * 2. Redistributions in binary form must reproduce the above copyright |
| * notice, this list of conditions and the following disclaimer in the |
| * documentation and/or other materials provided with the distribution. |
| * |
| * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND |
| * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
| * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
| * DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR |
| * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
| * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR |
| * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER |
| * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, |
| * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| */ |
| |
| #include "config.h" |
| #include "MessageArgumentDescriptions.h" |
| |
| #if ENABLE(IPC_TESTING_API) || !LOG_DISABLED |
| |
| #include "JSIPCBinding.h" |
| #include "ArgumentCoders.h" |
| #include "TestClassName.h" |
| #if ENABLE(TEST_FEATURE) |
| #include "TestTwoStateEnum.h" |
| #endif |
| #include "TestWithSuperclassMessages.h" |
| #include <optional> |
| #include <wtf/text/WTFString.h> |
| #if (ENABLE(WEBKIT2) && (NESTED_MASTER_CONDITION || MASTER_OR && MASTER_AND)) |
| #include "ArgumentCoders.h" |
| #include "Connection.h" |
| #if ENABLE(DEPRECATED_FEATURE) || ENABLE(FEATURE_FOR_TESTING) |
| #include "DummyType.h" |
| #endif |
| #if PLATFORM(MAC) |
| #include "GestureTypes.h" |
| #endif |
| #if PLATFORM(MAC) |
| #include "MachPort.h" |
| #endif |
| #include "Plugin.h" |
| #include "TestWithLegacyReceiverMessages.h" |
| #include "WebCoreArgumentCoders.h" |
| #include "WebPreferencesStore.h" |
| #if (ENABLE(TOUCH_EVENTS) && (NESTED_MESSAGE_CONDITION && SOME_OTHER_MESSAGE_CONDITION)) || (ENABLE(TOUCH_EVENTS) && (NESTED_MESSAGE_CONDITION || SOME_OTHER_MESSAGE_CONDITION)) |
| #include "WebTouchEvent.h" |
| #endif |
| #include <WebCore/GraphicsLayer.h> |
| #if PLATFORM(MAC) |
| #include <WebCore/KeyboardEvent.h> |
| #endif |
| #include <WebCore/PluginData.h> |
| #include <utility> |
| #include <wtf/HashMap.h> |
| #if PLATFORM(MAC) |
| #include <wtf/OptionSet.h> |
| #endif |
| #include <wtf/Vector.h> |
| #include <wtf/text/WTFString.h> |
| #endif |
| #if (ENABLE(WEBKIT2) && (NESTED_MASTER_CONDITION || MASTER_OR && MASTER_AND)) |
| #include "ArgumentCoders.h" |
| #include "Connection.h" |
| #if ENABLE(DEPRECATED_FEATURE) || ENABLE(FEATURE_FOR_TESTING) |
| #include "DummyType.h" |
| #endif |
| #if PLATFORM(MAC) |
| #include "GestureTypes.h" |
| #endif |
| #if PLATFORM(MAC) |
| #include "MachPort.h" |
| #endif |
| #include "Plugin.h" |
| #include "TestWithoutAttributesMessages.h" |
| #include "WebCoreArgumentCoders.h" |
| #include "WebPreferencesStore.h" |
| #if (ENABLE(TOUCH_EVENTS) && (NESTED_MESSAGE_CONDITION && SOME_OTHER_MESSAGE_CONDITION)) || (ENABLE(TOUCH_EVENTS) && (NESTED_MESSAGE_CONDITION || SOME_OTHER_MESSAGE_CONDITION)) |
| #include "WebTouchEvent.h" |
| #endif |
| #include <WebCore/GraphicsLayer.h> |
| #if PLATFORM(MAC) |
| #include <WebCore/KeyboardEvent.h> |
| #endif |
| #include <WebCore/PluginData.h> |
| #include <utility> |
| #include <wtf/HashMap.h> |
| #if PLATFORM(MAC) |
| #include <wtf/OptionSet.h> |
| #endif |
| #include <wtf/Vector.h> |
| #include <wtf/text/WTFString.h> |
| #endif |
| #if PLATFORM(COCOA) || PLATFORM(GTK) |
| #include "ArgumentCoders.h" |
| #endif |
| #include "TestWithIfMessageMessages.h" |
| #if PLATFORM(COCOA) || PLATFORM(GTK) |
| #include <wtf/text/WTFString.h> |
| #endif |
| #include "IPCSemaphore.h" |
| #include "TestWithSemaphoreMessages.h" |
| #include "ArgumentCoders.h" |
| #include "TestWithImageDataMessages.h" |
| #include "WebCoreArgumentCoders.h" |
| #include <WebCore/ImageData.h> |
| #include <wtf/RefCounted.h> |
| #include "ArgumentCoders.h" |
| #include "TestWithStreamMessages.h" |
| #if PLATFORM(COCOA) |
| #include <wtf/MachSendRight.h> |
| #endif |
| #include <wtf/text/WTFString.h> |
| #include "StreamConnectionBuffer.h" |
| #include "TestWithStreamBufferMessages.h" |
| #if USE(AVFOUNDATION) |
| #include "ArgumentCodersCF.h" |
| #endif |
| #include "TestWithCVPixelBufferMessages.h" |
| #if USE(AVFOUNDATION) |
| #include <wtf/RetainPtr.h> |
| #endif |
| |
| namespace IPC { |
| |
| #if ENABLE(IPC_TESTING_API) |
| |
| std::optional<JSC::JSValue> jsValueForArguments(JSC::JSGlobalObject* globalObject, MessageName name, Decoder& decoder) |
| { |
| switch (name) { |
| case MessageName::TestWithSuperclass_LoadURL: |
| return jsValueForDecodedArguments<Messages::TestWithSuperclass::LoadURL::Arguments>(globalObject, decoder); |
| #if ENABLE(TEST_FEATURE) |
| case MessageName::TestWithSuperclass_TestAsyncMessage: |
| return jsValueForDecodedArguments<Messages::TestWithSuperclass::TestAsyncMessage::Arguments>(globalObject, decoder); |
| case MessageName::TestWithSuperclass_TestAsyncMessageWithNoArguments: |
| return jsValueForDecodedArguments<Messages::TestWithSuperclass::TestAsyncMessageWithNoArguments::Arguments>(globalObject, decoder); |
| case MessageName::TestWithSuperclass_TestAsyncMessageWithMultipleArguments: |
| return jsValueForDecodedArguments<Messages::TestWithSuperclass::TestAsyncMessageWithMultipleArguments::Arguments>(globalObject, decoder); |
| case MessageName::TestWithSuperclass_TestAsyncMessageWithConnection: |
| return jsValueForDecodedArguments<Messages::TestWithSuperclass::TestAsyncMessageWithConnection::Arguments>(globalObject, decoder); |
| #endif |
| case MessageName::TestWithSuperclass_TestSyncMessage: |
| return jsValueForDecodedArguments<Messages::TestWithSuperclass::TestSyncMessage::Arguments>(globalObject, decoder); |
| case MessageName::TestWithSuperclass_TestSynchronousMessage: |
| return jsValueForDecodedArguments<Messages::TestWithSuperclass::TestSynchronousMessage::Arguments>(globalObject, decoder); |
| #if (ENABLE(WEBKIT2) && (NESTED_MASTER_CONDITION || MASTER_OR && MASTER_AND)) |
| case MessageName::TestWithLegacyReceiver_LoadURL: |
| return jsValueForDecodedArguments<Messages::TestWithLegacyReceiver::LoadURL::Arguments>(globalObject, decoder); |
| #if ENABLE(TOUCH_EVENTS) |
| case MessageName::TestWithLegacyReceiver_LoadSomething: |
| return jsValueForDecodedArguments<Messages::TestWithLegacyReceiver::LoadSomething::Arguments>(globalObject, decoder); |
| #endif |
| #if (ENABLE(TOUCH_EVENTS) && (NESTED_MESSAGE_CONDITION || SOME_OTHER_MESSAGE_CONDITION)) |
| case MessageName::TestWithLegacyReceiver_TouchEvent: |
| return jsValueForDecodedArguments<Messages::TestWithLegacyReceiver::TouchEvent::Arguments>(globalObject, decoder); |
| #endif |
| #if (ENABLE(TOUCH_EVENTS) && (NESTED_MESSAGE_CONDITION && SOME_OTHER_MESSAGE_CONDITION)) |
| case MessageName::TestWithLegacyReceiver_AddEvent: |
| return jsValueForDecodedArguments<Messages::TestWithLegacyReceiver::AddEvent::Arguments>(globalObject, decoder); |
| #endif |
| #if ENABLE(TOUCH_EVENTS) |
| case MessageName::TestWithLegacyReceiver_LoadSomethingElse: |
| return jsValueForDecodedArguments<Messages::TestWithLegacyReceiver::LoadSomethingElse::Arguments>(globalObject, decoder); |
| #endif |
| case MessageName::TestWithLegacyReceiver_DidReceivePolicyDecision: |
| return jsValueForDecodedArguments<Messages::TestWithLegacyReceiver::DidReceivePolicyDecision::Arguments>(globalObject, decoder); |
| case MessageName::TestWithLegacyReceiver_Close: |
| return jsValueForDecodedArguments<Messages::TestWithLegacyReceiver::Close::Arguments>(globalObject, decoder); |
| case MessageName::TestWithLegacyReceiver_PreferencesDidChange: |
| return jsValueForDecodedArguments<Messages::TestWithLegacyReceiver::PreferencesDidChange::Arguments>(globalObject, decoder); |
| case MessageName::TestWithLegacyReceiver_SendDoubleAndFloat: |
| return jsValueForDecodedArguments<Messages::TestWithLegacyReceiver::SendDoubleAndFloat::Arguments>(globalObject, decoder); |
| case MessageName::TestWithLegacyReceiver_SendInts: |
| return jsValueForDecodedArguments<Messages::TestWithLegacyReceiver::SendInts::Arguments>(globalObject, decoder); |
| case MessageName::TestWithLegacyReceiver_CreatePlugin: |
| return jsValueForDecodedArguments<Messages::TestWithLegacyReceiver::CreatePlugin::Arguments>(globalObject, decoder); |
| case MessageName::TestWithLegacyReceiver_RunJavaScriptAlert: |
| return jsValueForDecodedArguments<Messages::TestWithLegacyReceiver::RunJavaScriptAlert::Arguments>(globalObject, decoder); |
| case MessageName::TestWithLegacyReceiver_GetPlugins: |
| return jsValueForDecodedArguments<Messages::TestWithLegacyReceiver::GetPlugins::Arguments>(globalObject, decoder); |
| case MessageName::TestWithLegacyReceiver_GetPluginProcessConnection: |
| return jsValueForDecodedArguments<Messages::TestWithLegacyReceiver::GetPluginProcessConnection::Arguments>(globalObject, decoder); |
| case MessageName::TestWithLegacyReceiver_TestMultipleAttributes: |
| return jsValueForDecodedArguments<Messages::TestWithLegacyReceiver::TestMultipleAttributes::Arguments>(globalObject, decoder); |
| case MessageName::TestWithLegacyReceiver_TestParameterAttributes: |
| return jsValueForDecodedArguments<Messages::TestWithLegacyReceiver::TestParameterAttributes::Arguments>(globalObject, decoder); |
| case MessageName::TestWithLegacyReceiver_TemplateTest: |
| return jsValueForDecodedArguments<Messages::TestWithLegacyReceiver::TemplateTest::Arguments>(globalObject, decoder); |
| case MessageName::TestWithLegacyReceiver_SetVideoLayerID: |
| return jsValueForDecodedArguments<Messages::TestWithLegacyReceiver::SetVideoLayerID::Arguments>(globalObject, decoder); |
| #if PLATFORM(MAC) |
| case MessageName::TestWithLegacyReceiver_DidCreateWebProcessConnection: |
| return jsValueForDecodedArguments<Messages::TestWithLegacyReceiver::DidCreateWebProcessConnection::Arguments>(globalObject, decoder); |
| case MessageName::TestWithLegacyReceiver_InterpretKeyEvent: |
| return jsValueForDecodedArguments<Messages::TestWithLegacyReceiver::InterpretKeyEvent::Arguments>(globalObject, decoder); |
| #endif |
| #if ENABLE(DEPRECATED_FEATURE) |
| case MessageName::TestWithLegacyReceiver_DeprecatedOperation: |
| return jsValueForDecodedArguments<Messages::TestWithLegacyReceiver::DeprecatedOperation::Arguments>(globalObject, decoder); |
| #endif |
| #if ENABLE(FEATURE_FOR_TESTING) |
| case MessageName::TestWithLegacyReceiver_ExperimentalOperation: |
| return jsValueForDecodedArguments<Messages::TestWithLegacyReceiver::ExperimentalOperation::Arguments>(globalObject, decoder); |
| #endif |
| #endif |
| #if (ENABLE(WEBKIT2) && (NESTED_MASTER_CONDITION || MASTER_OR && MASTER_AND)) |
| case MessageName::TestWithoutAttributes_LoadURL: |
| return jsValueForDecodedArguments<Messages::TestWithoutAttributes::LoadURL::Arguments>(globalObject, decoder); |
| #if ENABLE(TOUCH_EVENTS) |
| case MessageName::TestWithoutAttributes_LoadSomething: |
| return jsValueForDecodedArguments<Messages::TestWithoutAttributes::LoadSomething::Arguments>(globalObject, decoder); |
| #endif |
| #if (ENABLE(TOUCH_EVENTS) && (NESTED_MESSAGE_CONDITION || SOME_OTHER_MESSAGE_CONDITION)) |
| case MessageName::TestWithoutAttributes_TouchEvent: |
| return jsValueForDecodedArguments<Messages::TestWithoutAttributes::TouchEvent::Arguments>(globalObject, decoder); |
| #endif |
| #if (ENABLE(TOUCH_EVENTS) && (NESTED_MESSAGE_CONDITION && SOME_OTHER_MESSAGE_CONDITION)) |
| case MessageName::TestWithoutAttributes_AddEvent: |
| return jsValueForDecodedArguments<Messages::TestWithoutAttributes::AddEvent::Arguments>(globalObject, decoder); |
| #endif |
| #if ENABLE(TOUCH_EVENTS) |
| case MessageName::TestWithoutAttributes_LoadSomethingElse: |
| return jsValueForDecodedArguments<Messages::TestWithoutAttributes::LoadSomethingElse::Arguments>(globalObject, decoder); |
| #endif |
| case MessageName::TestWithoutAttributes_DidReceivePolicyDecision: |
| return jsValueForDecodedArguments<Messages::TestWithoutAttributes::DidReceivePolicyDecision::Arguments>(globalObject, decoder); |
| case MessageName::TestWithoutAttributes_Close: |
| return jsValueForDecodedArguments<Messages::TestWithoutAttributes::Close::Arguments>(globalObject, decoder); |
| case MessageName::TestWithoutAttributes_PreferencesDidChange: |
| return jsValueForDecodedArguments<Messages::TestWithoutAttributes::PreferencesDidChange::Arguments>(globalObject, decoder); |
| case MessageName::TestWithoutAttributes_SendDoubleAndFloat: |
| return jsValueForDecodedArguments<Messages::TestWithoutAttributes::SendDoubleAndFloat::Arguments>(globalObject, decoder); |
| case MessageName::TestWithoutAttributes_SendInts: |
| return jsValueForDecodedArguments<Messages::TestWithoutAttributes::SendInts::Arguments>(globalObject, decoder); |
| case MessageName::TestWithoutAttributes_CreatePlugin: |
| return jsValueForDecodedArguments<Messages::TestWithoutAttributes::CreatePlugin::Arguments>(globalObject, decoder); |
| case MessageName::TestWithoutAttributes_RunJavaScriptAlert: |
| return jsValueForDecodedArguments<Messages::TestWithoutAttributes::RunJavaScriptAlert::Arguments>(globalObject, decoder); |
| case MessageName::TestWithoutAttributes_GetPlugins: |
| return jsValueForDecodedArguments<Messages::TestWithoutAttributes::GetPlugins::Arguments>(globalObject, decoder); |
| case MessageName::TestWithoutAttributes_GetPluginProcessConnection: |
| return jsValueForDecodedArguments<Messages::TestWithoutAttributes::GetPluginProcessConnection::Arguments>(globalObject, decoder); |
| case MessageName::TestWithoutAttributes_TestMultipleAttributes: |
| return jsValueForDecodedArguments<Messages::TestWithoutAttributes::TestMultipleAttributes::Arguments>(globalObject, decoder); |
| case MessageName::TestWithoutAttributes_TestParameterAttributes: |
| return jsValueForDecodedArguments<Messages::TestWithoutAttributes::TestParameterAttributes::Arguments>(globalObject, decoder); |
| case MessageName::TestWithoutAttributes_TemplateTest: |
| return jsValueForDecodedArguments<Messages::TestWithoutAttributes::TemplateTest::Arguments>(globalObject, decoder); |
| case MessageName::TestWithoutAttributes_SetVideoLayerID: |
| return jsValueForDecodedArguments<Messages::TestWithoutAttributes::SetVideoLayerID::Arguments>(globalObject, decoder); |
| #if PLATFORM(MAC) |
| case MessageName::TestWithoutAttributes_DidCreateWebProcessConnection: |
| return jsValueForDecodedArguments<Messages::TestWithoutAttributes::DidCreateWebProcessConnection::Arguments>(globalObject, decoder); |
| case MessageName::TestWithoutAttributes_InterpretKeyEvent: |
| return jsValueForDecodedArguments<Messages::TestWithoutAttributes::InterpretKeyEvent::Arguments>(globalObject, decoder); |
| #endif |
| #if ENABLE(DEPRECATED_FEATURE) |
| case MessageName::TestWithoutAttributes_DeprecatedOperation: |
| return jsValueForDecodedArguments<Messages::TestWithoutAttributes::DeprecatedOperation::Arguments>(globalObject, decoder); |
| #endif |
| #if ENABLE(FEATURE_FOR_TESTING) |
| case MessageName::TestWithoutAttributes_ExperimentalOperation: |
| return jsValueForDecodedArguments<Messages::TestWithoutAttributes::ExperimentalOperation::Arguments>(globalObject, decoder); |
| #endif |
| #endif |
| #if PLATFORM(COCOA) |
| case MessageName::TestWithIfMessage_LoadURL: |
| return jsValueForDecodedArguments<Messages::TestWithIfMessage::LoadURL::Arguments>(globalObject, decoder); |
| #endif |
| #if PLATFORM(GTK) |
| case MessageName::TestWithIfMessage_LoadURL: |
| return jsValueForDecodedArguments<Messages::TestWithIfMessage::LoadURL::Arguments>(globalObject, decoder); |
| #endif |
| case MessageName::TestWithSemaphore_SendSemaphore: |
| return jsValueForDecodedArguments<Messages::TestWithSemaphore::SendSemaphore::Arguments>(globalObject, decoder); |
| case MessageName::TestWithSemaphore_ReceiveSemaphore: |
| return jsValueForDecodedArguments<Messages::TestWithSemaphore::ReceiveSemaphore::Arguments>(globalObject, decoder); |
| case MessageName::TestWithImageData_SendImageData: |
| return jsValueForDecodedArguments<Messages::TestWithImageData::SendImageData::Arguments>(globalObject, decoder); |
| case MessageName::TestWithImageData_ReceiveImageData: |
| return jsValueForDecodedArguments<Messages::TestWithImageData::ReceiveImageData::Arguments>(globalObject, decoder); |
| case MessageName::TestWithStream_SendString: |
| return jsValueForDecodedArguments<Messages::TestWithStream::SendString::Arguments>(globalObject, decoder); |
| case MessageName::TestWithStream_SendStringSynchronized: |
| return jsValueForDecodedArguments<Messages::TestWithStream::SendStringSynchronized::Arguments>(globalObject, decoder); |
| #if PLATFORM(COCOA) |
| case MessageName::TestWithStream_SendMachSendRight: |
| return jsValueForDecodedArguments<Messages::TestWithStream::SendMachSendRight::Arguments>(globalObject, decoder); |
| case MessageName::TestWithStream_ReceiveMachSendRight: |
| return jsValueForDecodedArguments<Messages::TestWithStream::ReceiveMachSendRight::Arguments>(globalObject, decoder); |
| case MessageName::TestWithStream_SendAndReceiveMachSendRight: |
| return jsValueForDecodedArguments<Messages::TestWithStream::SendAndReceiveMachSendRight::Arguments>(globalObject, decoder); |
| #endif |
| case MessageName::TestWithStreamBuffer_SendStreamBuffer: |
| return jsValueForDecodedArguments<Messages::TestWithStreamBuffer::SendStreamBuffer::Arguments>(globalObject, decoder); |
| #if USE(AVFOUNDATION) |
| case MessageName::TestWithCVPixelBuffer_SendCVPixelBuffer: |
| return jsValueForDecodedArguments<Messages::TestWithCVPixelBuffer::SendCVPixelBuffer::Arguments>(globalObject, decoder); |
| case MessageName::TestWithCVPixelBuffer_ReceiveCVPixelBuffer: |
| return jsValueForDecodedArguments<Messages::TestWithCVPixelBuffer::ReceiveCVPixelBuffer::Arguments>(globalObject, decoder); |
| #endif |
| default: |
| break; |
| } |
| return std::nullopt; |
| } |
| |
| std::optional<JSC::JSValue> jsValueForReplyArguments(JSC::JSGlobalObject* globalObject, MessageName name, Decoder& decoder) |
| { |
| switch (name) { |
| #if ENABLE(TEST_FEATURE) |
| case MessageName::TestWithSuperclass_TestAsyncMessage: |
| return jsValueForDecodedArguments<Messages::TestWithSuperclass::TestAsyncMessage::ReplyArguments>(globalObject, decoder); |
| case MessageName::TestWithSuperclass_TestAsyncMessageWithNoArguments: |
| return jsValueForDecodedArguments<Messages::TestWithSuperclass::TestAsyncMessageWithNoArguments::ReplyArguments>(globalObject, decoder); |
| case MessageName::TestWithSuperclass_TestAsyncMessageWithMultipleArguments: |
| return jsValueForDecodedArguments<Messages::TestWithSuperclass::TestAsyncMessageWithMultipleArguments::ReplyArguments>(globalObject, decoder); |
| case MessageName::TestWithSuperclass_TestAsyncMessageWithConnection: |
| return jsValueForDecodedArguments<Messages::TestWithSuperclass::TestAsyncMessageWithConnection::ReplyArguments>(globalObject, decoder); |
| #endif |
| case MessageName::TestWithSuperclass_TestSyncMessage: |
| return jsValueForDecodedArguments<Messages::TestWithSuperclass::TestSyncMessage::ReplyArguments>(globalObject, decoder); |
| case MessageName::TestWithSuperclass_TestSynchronousMessage: |
| return jsValueForDecodedArguments<Messages::TestWithSuperclass::TestSynchronousMessage::ReplyArguments>(globalObject, decoder); |
| #if (ENABLE(WEBKIT2) && (NESTED_MASTER_CONDITION || MASTER_OR && MASTER_AND)) |
| case MessageName::TestWithLegacyReceiver_GetPluginProcessConnection: |
| return jsValueForDecodedArguments<Messages::TestWithLegacyReceiver::GetPluginProcessConnection::ReplyArguments>(globalObject, decoder); |
| case MessageName::TestWithLegacyReceiver_TestMultipleAttributes: |
| return jsValueForDecodedArguments<Messages::TestWithLegacyReceiver::TestMultipleAttributes::ReplyArguments>(globalObject, decoder); |
| #endif |
| #if (ENABLE(WEBKIT2) && (NESTED_MASTER_CONDITION || MASTER_OR && MASTER_AND)) |
| case MessageName::TestWithoutAttributes_GetPluginProcessConnection: |
| return jsValueForDecodedArguments<Messages::TestWithoutAttributes::GetPluginProcessConnection::ReplyArguments>(globalObject, decoder); |
| case MessageName::TestWithoutAttributes_TestMultipleAttributes: |
| return jsValueForDecodedArguments<Messages::TestWithoutAttributes::TestMultipleAttributes::ReplyArguments>(globalObject, decoder); |
| #endif |
| default: |
| break; |
| } |
| return std::nullopt; |
| } |
| |
| #endif // ENABLE(IPC_TESTING_API) |
| |
| std::optional<Vector<ArgumentDescription>> messageArgumentDescriptions(MessageName name) |
| { |
| switch (name) { |
| case MessageName::TestWithSuperclass_LoadURL: |
| return Vector<ArgumentDescription> { |
| {"url", "String", nullptr, false}, |
| }; |
| #if ENABLE(TEST_FEATURE) |
| case MessageName::TestWithSuperclass_TestAsyncMessage: |
| return Vector<ArgumentDescription> { |
| {"twoStateEnum", "bool", "WebKit::TestTwoStateEnum", false}, |
| }; |
| case MessageName::TestWithSuperclass_TestAsyncMessageWithNoArguments: |
| return Vector<ArgumentDescription> { }; |
| case MessageName::TestWithSuperclass_TestAsyncMessageWithMultipleArguments: |
| return Vector<ArgumentDescription> { }; |
| case MessageName::TestWithSuperclass_TestAsyncMessageWithConnection: |
| return Vector<ArgumentDescription> { |
| {"value", "int", nullptr, false}, |
| }; |
| #endif |
| case MessageName::TestWithSuperclass_TestSyncMessage: |
| return Vector<ArgumentDescription> { |
| {"param", "uint32_t", nullptr, false}, |
| }; |
| case MessageName::TestWithSuperclass_TestSynchronousMessage: |
| return Vector<ArgumentDescription> { |
| {"value", "bool", nullptr, false}, |
| }; |
| #if (ENABLE(WEBKIT2) && (NESTED_MASTER_CONDITION || MASTER_OR && MASTER_AND)) |
| case MessageName::TestWithLegacyReceiver_LoadURL: |
| return Vector<ArgumentDescription> { |
| {"url", "String", nullptr, false}, |
| }; |
| #if ENABLE(TOUCH_EVENTS) |
| case MessageName::TestWithLegacyReceiver_LoadSomething: |
| return Vector<ArgumentDescription> { |
| {"url", "String", nullptr, false}, |
| }; |
| #endif |
| #if (ENABLE(TOUCH_EVENTS) && (NESTED_MESSAGE_CONDITION || SOME_OTHER_MESSAGE_CONDITION)) |
| case MessageName::TestWithLegacyReceiver_TouchEvent: |
| return Vector<ArgumentDescription> { |
| {"event", "WebKit::WebTouchEvent", nullptr, false}, |
| }; |
| #endif |
| #if (ENABLE(TOUCH_EVENTS) && (NESTED_MESSAGE_CONDITION && SOME_OTHER_MESSAGE_CONDITION)) |
| case MessageName::TestWithLegacyReceiver_AddEvent: |
| return Vector<ArgumentDescription> { |
| {"event", "WebKit::WebTouchEvent", nullptr, false}, |
| }; |
| #endif |
| #if ENABLE(TOUCH_EVENTS) |
| case MessageName::TestWithLegacyReceiver_LoadSomethingElse: |
| return Vector<ArgumentDescription> { |
| {"url", "String", nullptr, false}, |
| }; |
| #endif |
| case MessageName::TestWithLegacyReceiver_DidReceivePolicyDecision: |
| return Vector<ArgumentDescription> { |
| {"frameID", "uint64_t", nullptr, false}, |
| {"listenerID", "uint64_t", nullptr, false}, |
| {"policyAction", "uint32_t", nullptr, false}, |
| }; |
| case MessageName::TestWithLegacyReceiver_Close: |
| return Vector<ArgumentDescription> { }; |
| case MessageName::TestWithLegacyReceiver_PreferencesDidChange: |
| return Vector<ArgumentDescription> { |
| {"store", "WebKit::WebPreferencesStore", nullptr, false}, |
| }; |
| case MessageName::TestWithLegacyReceiver_SendDoubleAndFloat: |
| return Vector<ArgumentDescription> { |
| {"d", "double", nullptr, false}, |
| {"f", "float", nullptr, false}, |
| }; |
| case MessageName::TestWithLegacyReceiver_SendInts: |
| return Vector<ArgumentDescription> { |
| {"ints", "Vector<uint64_t>", nullptr, false}, |
| {"intVectors", "Vector<Vector<uint64_t>>", nullptr, false}, |
| }; |
| case MessageName::TestWithLegacyReceiver_CreatePlugin: |
| return Vector<ArgumentDescription> { |
| {"pluginInstanceID", "uint64_t", nullptr, false}, |
| {"parameters", "WebKit::Plugin::Parameters", nullptr, false}, |
| }; |
| case MessageName::TestWithLegacyReceiver_RunJavaScriptAlert: |
| return Vector<ArgumentDescription> { |
| {"frameID", "uint64_t", nullptr, false}, |
| {"message", "String", nullptr, false}, |
| }; |
| case MessageName::TestWithLegacyReceiver_GetPlugins: |
| return Vector<ArgumentDescription> { |
| {"refresh", "bool", nullptr, false}, |
| }; |
| case MessageName::TestWithLegacyReceiver_GetPluginProcessConnection: |
| return Vector<ArgumentDescription> { |
| {"pluginPath", "String", nullptr, false}, |
| }; |
| case MessageName::TestWithLegacyReceiver_TestMultipleAttributes: |
| return Vector<ArgumentDescription> { }; |
| case MessageName::TestWithLegacyReceiver_TestParameterAttributes: |
| return Vector<ArgumentDescription> { |
| {"foo", "uint64_t", nullptr, false}, |
| {"bar", "double", nullptr, false}, |
| {"baz", "double", nullptr, false}, |
| }; |
| case MessageName::TestWithLegacyReceiver_TemplateTest: |
| return Vector<ArgumentDescription> { |
| {"a", "HashMap<String, std::pair<String, uint64_t>>", nullptr, false}, |
| }; |
| case MessageName::TestWithLegacyReceiver_SetVideoLayerID: |
| return Vector<ArgumentDescription> { |
| {"videoLayerID", "WebCore::GraphicsLayer::PlatformLayerID", nullptr, false}, |
| }; |
| #if PLATFORM(MAC) |
| case MessageName::TestWithLegacyReceiver_DidCreateWebProcessConnection: |
| return Vector<ArgumentDescription> { |
| {"connectionIdentifier", "IPC::MachPort", nullptr, false}, |
| {"flags", "OptionSet<WebKit::SelectionFlags>", nullptr, false}, |
| }; |
| case MessageName::TestWithLegacyReceiver_InterpretKeyEvent: |
| return Vector<ArgumentDescription> { |
| {"type", "uint32_t", nullptr, false}, |
| }; |
| #endif |
| #if ENABLE(DEPRECATED_FEATURE) |
| case MessageName::TestWithLegacyReceiver_DeprecatedOperation: |
| return Vector<ArgumentDescription> { |
| {"dummy", "IPC::DummyType", nullptr, false}, |
| }; |
| #endif |
| #if ENABLE(FEATURE_FOR_TESTING) |
| case MessageName::TestWithLegacyReceiver_ExperimentalOperation: |
| return Vector<ArgumentDescription> { |
| {"dummy", "IPC::DummyType", nullptr, false}, |
| }; |
| #endif |
| #endif |
| #if (ENABLE(WEBKIT2) && (NESTED_MASTER_CONDITION || MASTER_OR && MASTER_AND)) |
| case MessageName::TestWithoutAttributes_LoadURL: |
| return Vector<ArgumentDescription> { |
| {"url", "String", nullptr, false}, |
| }; |
| #if ENABLE(TOUCH_EVENTS) |
| case MessageName::TestWithoutAttributes_LoadSomething: |
| return Vector<ArgumentDescription> { |
| {"url", "String", nullptr, false}, |
| }; |
| #endif |
| #if (ENABLE(TOUCH_EVENTS) && (NESTED_MESSAGE_CONDITION || SOME_OTHER_MESSAGE_CONDITION)) |
| case MessageName::TestWithoutAttributes_TouchEvent: |
| return Vector<ArgumentDescription> { |
| {"event", "WebKit::WebTouchEvent", nullptr, false}, |
| }; |
| #endif |
| #if (ENABLE(TOUCH_EVENTS) && (NESTED_MESSAGE_CONDITION && SOME_OTHER_MESSAGE_CONDITION)) |
| case MessageName::TestWithoutAttributes_AddEvent: |
| return Vector<ArgumentDescription> { |
| {"event", "WebKit::WebTouchEvent", nullptr, false}, |
| }; |
| #endif |
| #if ENABLE(TOUCH_EVENTS) |
| case MessageName::TestWithoutAttributes_LoadSomethingElse: |
| return Vector<ArgumentDescription> { |
| {"url", "String", nullptr, false}, |
| }; |
| #endif |
| case MessageName::TestWithoutAttributes_DidReceivePolicyDecision: |
| return Vector<ArgumentDescription> { |
| {"frameID", "uint64_t", nullptr, false}, |
| {"listenerID", "uint64_t", nullptr, false}, |
| {"policyAction", "uint32_t", nullptr, false}, |
| }; |
| case MessageName::TestWithoutAttributes_Close: |
| return Vector<ArgumentDescription> { }; |
| case MessageName::TestWithoutAttributes_PreferencesDidChange: |
| return Vector<ArgumentDescription> { |
| {"store", "WebKit::WebPreferencesStore", nullptr, false}, |
| }; |
| case MessageName::TestWithoutAttributes_SendDoubleAndFloat: |
| return Vector<ArgumentDescription> { |
| {"d", "double", nullptr, false}, |
| {"f", "float", nullptr, false}, |
| }; |
| case MessageName::TestWithoutAttributes_SendInts: |
| return Vector<ArgumentDescription> { |
| {"ints", "Vector<uint64_t>", nullptr, false}, |
| {"intVectors", "Vector<Vector<uint64_t>>", nullptr, false}, |
| }; |
| case MessageName::TestWithoutAttributes_CreatePlugin: |
| return Vector<ArgumentDescription> { |
| {"pluginInstanceID", "uint64_t", nullptr, false}, |
| {"parameters", "WebKit::Plugin::Parameters", nullptr, false}, |
| }; |
| case MessageName::TestWithoutAttributes_RunJavaScriptAlert: |
| return Vector<ArgumentDescription> { |
| {"frameID", "uint64_t", nullptr, false}, |
| {"message", "String", nullptr, false}, |
| }; |
| case MessageName::TestWithoutAttributes_GetPlugins: |
| return Vector<ArgumentDescription> { |
| {"refresh", "bool", nullptr, false}, |
| }; |
| case MessageName::TestWithoutAttributes_GetPluginProcessConnection: |
| return Vector<ArgumentDescription> { |
| {"pluginPath", "String", nullptr, false}, |
| }; |
| case MessageName::TestWithoutAttributes_TestMultipleAttributes: |
| return Vector<ArgumentDescription> { }; |
| case MessageName::TestWithoutAttributes_TestParameterAttributes: |
| return Vector<ArgumentDescription> { |
| {"foo", "uint64_t", nullptr, false}, |
| {"bar", "double", nullptr, false}, |
| {"baz", "double", nullptr, false}, |
| }; |
| case MessageName::TestWithoutAttributes_TemplateTest: |
| return Vector<ArgumentDescription> { |
| {"a", "HashMap<String, std::pair<String, uint64_t>>", nullptr, false}, |
| }; |
| case MessageName::TestWithoutAttributes_SetVideoLayerID: |
| return Vector<ArgumentDescription> { |
| {"videoLayerID", "WebCore::GraphicsLayer::PlatformLayerID", nullptr, false}, |
| }; |
| #if PLATFORM(MAC) |
| case MessageName::TestWithoutAttributes_DidCreateWebProcessConnection: |
| return Vector<ArgumentDescription> { |
| {"connectionIdentifier", "IPC::MachPort", nullptr, false}, |
| {"flags", "OptionSet<WebKit::SelectionFlags>", nullptr, false}, |
| }; |
| case MessageName::TestWithoutAttributes_InterpretKeyEvent: |
| return Vector<ArgumentDescription> { |
| {"type", "uint32_t", nullptr, false}, |
| }; |
| #endif |
| #if ENABLE(DEPRECATED_FEATURE) |
| case MessageName::TestWithoutAttributes_DeprecatedOperation: |
| return Vector<ArgumentDescription> { |
| {"dummy", "IPC::DummyType", nullptr, false}, |
| }; |
| #endif |
| #if ENABLE(FEATURE_FOR_TESTING) |
| case MessageName::TestWithoutAttributes_ExperimentalOperation: |
| return Vector<ArgumentDescription> { |
| {"dummy", "IPC::DummyType", nullptr, false}, |
| }; |
| #endif |
| #endif |
| #if PLATFORM(COCOA) |
| case MessageName::TestWithIfMessage_LoadURL: |
| return Vector<ArgumentDescription> { |
| {"url", "String", nullptr, false}, |
| }; |
| #endif |
| #if PLATFORM(GTK) |
| case MessageName::TestWithIfMessage_LoadURL: |
| return Vector<ArgumentDescription> { |
| {"url", "String", nullptr, false}, |
| {"value", "int64_t", nullptr, false}, |
| }; |
| #endif |
| case MessageName::TestWithSemaphore_SendSemaphore: |
| return Vector<ArgumentDescription> { |
| {"s0", "IPC::Semaphore", nullptr, false}, |
| }; |
| case MessageName::TestWithSemaphore_ReceiveSemaphore: |
| return Vector<ArgumentDescription> { }; |
| case MessageName::TestWithImageData_SendImageData: |
| return Vector<ArgumentDescription> { |
| {"s0", "RefPtr<WebCore::ImageData>", nullptr, false}, |
| }; |
| case MessageName::TestWithImageData_ReceiveImageData: |
| return Vector<ArgumentDescription> { }; |
| case MessageName::TestWithStream_SendString: |
| return Vector<ArgumentDescription> { |
| {"url", "String", nullptr, false}, |
| }; |
| case MessageName::TestWithStream_SendStringSynchronized: |
| return Vector<ArgumentDescription> { |
| {"url", "String", nullptr, false}, |
| }; |
| #if PLATFORM(COCOA) |
| case MessageName::TestWithStream_SendMachSendRight: |
| return Vector<ArgumentDescription> { |
| {"a1", "MachSendRight", nullptr, false}, |
| }; |
| case MessageName::TestWithStream_ReceiveMachSendRight: |
| return Vector<ArgumentDescription> { }; |
| case MessageName::TestWithStream_SendAndReceiveMachSendRight: |
| return Vector<ArgumentDescription> { |
| {"a1", "MachSendRight", nullptr, false}, |
| }; |
| #endif |
| case MessageName::TestWithStreamBuffer_SendStreamBuffer: |
| return Vector<ArgumentDescription> { |
| {"stream", "IPC::StreamConnectionBuffer", nullptr, false}, |
| }; |
| #if USE(AVFOUNDATION) |
| case MessageName::TestWithCVPixelBuffer_SendCVPixelBuffer: |
| return Vector<ArgumentDescription> { |
| {"s0", "RetainPtr<CVPixelBufferRef>", nullptr, false}, |
| }; |
| case MessageName::TestWithCVPixelBuffer_ReceiveCVPixelBuffer: |
| return Vector<ArgumentDescription> { }; |
| #endif |
| default: |
| break; |
| } |
| return std::nullopt; |
| } |
| |
| std::optional<Vector<ArgumentDescription>> messageReplyArgumentDescriptions(MessageName name) |
| { |
| switch (name) { |
| #if ENABLE(TEST_FEATURE) |
| case MessageName::TestWithSuperclass_TestAsyncMessage: |
| return Vector<ArgumentDescription> { |
| {"result", "uint64_t", nullptr, false}, |
| }; |
| case MessageName::TestWithSuperclass_TestAsyncMessageWithNoArguments: |
| return Vector<ArgumentDescription> { }; |
| case MessageName::TestWithSuperclass_TestAsyncMessageWithMultipleArguments: |
| return Vector<ArgumentDescription> { |
| {"flag", "bool", nullptr, false}, |
| {"value", "uint64_t", nullptr, false}, |
| }; |
| case MessageName::TestWithSuperclass_TestAsyncMessageWithConnection: |
| return Vector<ArgumentDescription> { |
| {"flag", "bool", nullptr, false}, |
| }; |
| #endif |
| case MessageName::TestWithSuperclass_TestSyncMessage: |
| return Vector<ArgumentDescription> { |
| {"reply", "uint8_t", nullptr, false}, |
| }; |
| case MessageName::TestWithSuperclass_TestSynchronousMessage: |
| return Vector<ArgumentDescription> { |
| {"optionalReply", "WebKit::TestClassName", nullptr, true}, |
| }; |
| #if (ENABLE(WEBKIT2) && (NESTED_MASTER_CONDITION || MASTER_OR && MASTER_AND)) |
| case MessageName::TestWithLegacyReceiver_GetPluginProcessConnection: |
| return Vector<ArgumentDescription> { |
| {"connectionHandle", "IPC::Connection::Handle", nullptr, false}, |
| }; |
| case MessageName::TestWithLegacyReceiver_TestMultipleAttributes: |
| return Vector<ArgumentDescription> { }; |
| #endif |
| #if (ENABLE(WEBKIT2) && (NESTED_MASTER_CONDITION || MASTER_OR && MASTER_AND)) |
| case MessageName::TestWithoutAttributes_GetPluginProcessConnection: |
| return Vector<ArgumentDescription> { |
| {"connectionHandle", "IPC::Connection::Handle", nullptr, false}, |
| }; |
| case MessageName::TestWithoutAttributes_TestMultipleAttributes: |
| return Vector<ArgumentDescription> { }; |
| #endif |
| default: |
| break; |
| } |
| return std::nullopt; |
| } |
| |
| } // namespace WebKit |
| |
| #endif // ENABLE(IPC_TESTING_API) || !LOG_DISABLED |