blob: 630a865b13a698aaef922e256a1e6cc10faf0ab6 [file] [log] [blame]
/*
* 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