#if defined(__clang__)
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wunused-private-field"
#endif
#include "services/network/public/mojom/websocket.mojom-blink.h"
#include <math.h>
#include <stdint.h>
#include <utility>
#include "base/debug/alias.h"
#include "base/hash/md5_constexpr.h"
#include "base/run_loop.h"
#include "base/strings/string_number_conversions.h"
#include "base/task/thread_pool/thread_pool_instance.h"
#include "base/trace_event/trace_event.h"
#include "base/trace_event/typed_macros.h"
#include "mojo/public/cpp/bindings/features.h"
#include "mojo/public/cpp/bindings/lib/default_construct_tag_internal.h"
#include "mojo/public/cpp/bindings/lib/generated_code_util.h"
#include "mojo/public/cpp/bindings/lib/message_internal.h"
#include "mojo/public/cpp/bindings/lib/proxy_to_responder.h"
#include "mojo/public/cpp/bindings/lib/send_message_helper.h"
#include "mojo/public/cpp/bindings/lib/serialization_util.h"
#include "mojo/public/cpp/bindings/lib/unserialized_message_context.h"
#include "mojo/public/cpp/bindings/lib/validate_params.h"
#include "mojo/public/cpp/bindings/lib/validation_errors.h"
#include "mojo/public/cpp/bindings/mojo_buildflags.h"
#include "mojo/public/cpp/bindings/urgent_message_scope.h"
#include "mojo/public/interfaces/bindings/interface_control_messages.mojom.h"
#include "third_party/perfetto/include/perfetto/tracing/traced_value.h"
#include "services/network/public/mojom/websocket.mojom-params-data.h"
#include "services/network/public/mojom/websocket.mojom-shared-message-ids.h"
#include "services/network/public/mojom/websocket.mojom-blink-import-headers.h"
#include "services/network/public/mojom/websocket.mojom-blink-test-utils.h"
#include "mojo/public/cpp/bindings/lib/wtf_serialization.h"
namespace network::mojom::blink {
HttpHeader::HttpHeader()
: … { … }
HttpHeader::HttpHeader(
const WTF::String& name_in,
const WTF::String& value_in)
: … { … }
HttpHeader::~HttpHeader() = default;
size_t HttpHeader::Hash(size_t seed) const { … }
void HttpHeader::WriteIntoTrace(
perfetto::TracedValue traced_context) const { … }
bool HttpHeader::Validate(
const void* data,
mojo::internal::ValidationContext* validation_context) { … }
WebSocketHandshakeRequest::WebSocketHandshakeRequest()
: … { … }
WebSocketHandshakeRequest::WebSocketHandshakeRequest(
const ::blink::KURL& url_in,
WTF::Vector<HttpHeaderPtr> headers_in,
const WTF::String& headers_text_in)
: … { … }
WebSocketHandshakeRequest::~WebSocketHandshakeRequest() = default;
void WebSocketHandshakeRequest::WriteIntoTrace(
perfetto::TracedValue traced_context) const { … }
bool WebSocketHandshakeRequest::Validate(
const void* data,
mojo::internal::ValidationContext* validation_context) { … }
WebSocketHandshakeResponse::WebSocketHandshakeResponse()
: … { … }
WebSocketHandshakeResponse::WebSocketHandshakeResponse(
const ::blink::KURL& url_in,
::network::mojom::blink::HttpVersionPtr http_version_in,
int32_t status_code_in,
const WTF::String& status_text_in,
const ::net::IPEndPoint& remote_endpoint_in,
WTF::Vector<HttpHeaderPtr> headers_in,
const WTF::String& headers_text_in,
const WTF::String& selected_protocol_in,
const WTF::String& extensions_in)
: … { … }
WebSocketHandshakeResponse::~WebSocketHandshakeResponse() = default;
void WebSocketHandshakeResponse::WriteIntoTrace(
perfetto::TracedValue traced_context) const { … }
bool WebSocketHandshakeResponse::Validate(
const void* data,
mojo::internal::ValidationContext* validation_context) { … }
const char WebSocketAuthenticationHandler::Name_[] = …;
WebSocketAuthenticationHandler::IPCStableHashFunction WebSocketAuthenticationHandler::MessageToMethodInfo_(mojo::Message& message) { … }
const char* WebSocketAuthenticationHandler::MessageToMethodName_(mojo::Message& message) { … }
#if !BUILDFLAG(IS_FUCHSIA)
uint32_t WebSocketAuthenticationHandler::OnAuthRequired_Sym::IPCStableHash() { … }
# endif
class WebSocketAuthenticationHandler_OnAuthRequired_ForwardToCallback
: public mojo::MessageReceiver { … };
WebSocketAuthenticationHandlerProxy::WebSocketAuthenticationHandlerProxy(mojo::MessageReceiverWithResponder* receiver)
: … { … }
void WebSocketAuthenticationHandlerProxy::OnAuthRequired(
const ::net::AuthChallengeInfo& in_info, ::network::mojom::blink::HttpResponseHeadersPtr in_headers, const ::net::IPEndPoint& in_remote_endpoint, OnAuthRequiredCallback callback) { … }
class WebSocketAuthenticationHandler_OnAuthRequired_ProxyToResponder : public ::mojo::internal::ProxyToResponder { … };
bool WebSocketAuthenticationHandler_OnAuthRequired_ForwardToCallback::Accept(
mojo::Message* message) { … }
void WebSocketAuthenticationHandler_OnAuthRequired_ProxyToResponder::Run(
::network::mojom::blink::AuthCredentialsPtr in_credentials) { … }
bool WebSocketAuthenticationHandlerStubDispatch::Accept(
WebSocketAuthenticationHandler* impl,
mojo::Message* message) { … }
bool WebSocketAuthenticationHandlerStubDispatch::AcceptWithResponder(
WebSocketAuthenticationHandler* impl,
mojo::Message* message,
std::unique_ptr<mojo::MessageReceiverWithStatus> responder) { … }
namespace {
}
static const mojo::internal::GenericValidationInfo kWebSocketAuthenticationHandlerValidationInfo[] = …;
bool WebSocketAuthenticationHandlerRequestValidator::Accept(mojo::Message* message) { … }
bool WebSocketAuthenticationHandlerResponseValidator::Accept(mojo::Message* message) { … }
const char WebSocketHandshakeClient::Name_[] = …;
WebSocketHandshakeClient::IPCStableHashFunction WebSocketHandshakeClient::MessageToMethodInfo_(mojo::Message& message) { … }
const char* WebSocketHandshakeClient::MessageToMethodName_(mojo::Message& message) { … }
#if !BUILDFLAG(IS_FUCHSIA)
uint32_t WebSocketHandshakeClient::OnOpeningHandshakeStarted_Sym::IPCStableHash() { … }
uint32_t WebSocketHandshakeClient::OnFailure_Sym::IPCStableHash() { … }
uint32_t WebSocketHandshakeClient::OnConnectionEstablished_Sym::IPCStableHash() { … }
# endif
WebSocketHandshakeClientProxy::WebSocketHandshakeClientProxy(mojo::MessageReceiverWithResponder* receiver)
: … { … }
void WebSocketHandshakeClientProxy::OnOpeningHandshakeStarted(
WebSocketHandshakeRequestPtr in_request) { … }
void WebSocketHandshakeClientProxy::OnFailure(
const WTF::String& in_message, int32_t in_net_error, int32_t in_response_code) { … }
void WebSocketHandshakeClientProxy::OnConnectionEstablished(
::mojo::PendingRemote<WebSocket> in_socket, ::mojo::PendingReceiver<WebSocketClient> in_client_receiver, WebSocketHandshakeResponsePtr in_response, ::mojo::ScopedDataPipeConsumerHandle in_readable, ::mojo::ScopedDataPipeProducerHandle in_writable) { … }
bool WebSocketHandshakeClientStubDispatch::Accept(
WebSocketHandshakeClient* impl,
mojo::Message* message) { … }
bool WebSocketHandshakeClientStubDispatch::AcceptWithResponder(
WebSocketHandshakeClient* impl,
mojo::Message* message,
std::unique_ptr<mojo::MessageReceiverWithStatus> responder) { … }
namespace {
}
static const mojo::internal::GenericValidationInfo kWebSocketHandshakeClientValidationInfo[] = …;
bool WebSocketHandshakeClientRequestValidator::Accept(mojo::Message* message) { … }
const char WebSocketClient::Name_[] = …;
WebSocketClient::IPCStableHashFunction WebSocketClient::MessageToMethodInfo_(mojo::Message& message) { … }
const char* WebSocketClient::MessageToMethodName_(mojo::Message& message) { … }
#if !BUILDFLAG(IS_FUCHSIA)
uint32_t WebSocketClient::OnDataFrame_Sym::IPCStableHash() { … }
uint32_t WebSocketClient::OnDropChannel_Sym::IPCStableHash() { … }
uint32_t WebSocketClient::OnClosingHandshake_Sym::IPCStableHash() { … }
# endif
WebSocketClientProxy::WebSocketClientProxy(mojo::MessageReceiverWithResponder* receiver)
: … { … }
void WebSocketClientProxy::OnDataFrame(
bool in_fin, WebSocketMessageType in_type, uint64_t in_data_length) { … }
void WebSocketClientProxy::OnDropChannel(
bool in_was_clean, uint16_t in_code, const WTF::String& in_reason) { … }
void WebSocketClientProxy::OnClosingHandshake(
) { … }
bool WebSocketClientStubDispatch::Accept(
WebSocketClient* impl,
mojo::Message* message) { … }
bool WebSocketClientStubDispatch::AcceptWithResponder(
WebSocketClient* impl,
mojo::Message* message,
std::unique_ptr<mojo::MessageReceiverWithStatus> responder) { … }
namespace {
}
static const mojo::internal::GenericValidationInfo kWebSocketClientValidationInfo[] = …;
bool WebSocketClientRequestValidator::Accept(mojo::Message* message) { … }
const char WebSocket::Name_[] = …;
WebSocket::IPCStableHashFunction WebSocket::MessageToMethodInfo_(mojo::Message& message) { … }
const char* WebSocket::MessageToMethodName_(mojo::Message& message) { … }
#if !BUILDFLAG(IS_FUCHSIA)
uint32_t WebSocket::SendMessage_Sym::IPCStableHash() { … }
uint32_t WebSocket::StartReceiving_Sym::IPCStableHash() { … }
uint32_t WebSocket::StartClosingHandshake_Sym::IPCStableHash() { … }
# endif
WebSocketProxy::WebSocketProxy(mojo::MessageReceiverWithResponder* receiver)
: … { … }
void WebSocketProxy::SendMessage(
WebSocketMessageType in_type, uint64_t in_data_length) { … }
void WebSocketProxy::StartReceiving(
) { … }
void WebSocketProxy::StartClosingHandshake(
uint16_t in_code, const WTF::String& in_reason) { … }
bool WebSocketStubDispatch::Accept(
WebSocket* impl,
mojo::Message* message) { … }
bool WebSocketStubDispatch::AcceptWithResponder(
WebSocket* impl,
mojo::Message* message,
std::unique_ptr<mojo::MessageReceiverWithStatus> responder) { … }
namespace {
}
static const mojo::internal::GenericValidationInfo kWebSocketValidationInfo[] = …;
bool WebSocketRequestValidator::Accept(mojo::Message* message) { … }
}
namespace mojo {
bool StructTraits<::network::mojom::blink::HttpHeader::DataView, ::network::mojom::blink::HttpHeaderPtr>::Read(
::network::mojom::blink::HttpHeader::DataView input,
::network::mojom::blink::HttpHeaderPtr* output) { … }
bool StructTraits<::network::mojom::blink::WebSocketHandshakeRequest::DataView, ::network::mojom::blink::WebSocketHandshakeRequestPtr>::Read(
::network::mojom::blink::WebSocketHandshakeRequest::DataView input,
::network::mojom::blink::WebSocketHandshakeRequestPtr* output) { … }
bool StructTraits<::network::mojom::blink::WebSocketHandshakeResponse::DataView, ::network::mojom::blink::WebSocketHandshakeResponsePtr>::Read(
::network::mojom::blink::WebSocketHandshakeResponse::DataView input,
::network::mojom::blink::WebSocketHandshakeResponsePtr* output) { … }
}
namespace network::mojom::blink {
void WebSocketAuthenticationHandlerInterceptorForTesting::OnAuthRequired(const ::net::AuthChallengeInfo& info, ::network::mojom::blink::HttpResponseHeadersPtr headers, const ::net::IPEndPoint& remote_endpoint, OnAuthRequiredCallback callback) { … }
WebSocketAuthenticationHandlerAsyncWaiter::WebSocketAuthenticationHandlerAsyncWaiter(
WebSocketAuthenticationHandler* proxy) : … { … }
WebSocketAuthenticationHandlerAsyncWaiter::~WebSocketAuthenticationHandlerAsyncWaiter() = default;
void WebSocketAuthenticationHandlerAsyncWaiter::OnAuthRequired(
const ::net::AuthChallengeInfo& info, ::network::mojom::blink::HttpResponseHeadersPtr headers, const ::net::IPEndPoint& remote_endpoint, ::network::mojom::blink::AuthCredentialsPtr* out_credentials) { … }
::network::mojom::blink::AuthCredentialsPtr WebSocketAuthenticationHandlerAsyncWaiter::OnAuthRequired(
const ::net::AuthChallengeInfo& info, ::network::mojom::blink::HttpResponseHeadersPtr headers, const ::net::IPEndPoint& remote_endpoint) { … }
void WebSocketHandshakeClientInterceptorForTesting::OnOpeningHandshakeStarted(WebSocketHandshakeRequestPtr request) { … }
void WebSocketHandshakeClientInterceptorForTesting::OnFailure(const WTF::String& message, int32_t net_error, int32_t response_code) { … }
void WebSocketHandshakeClientInterceptorForTesting::OnConnectionEstablished(::mojo::PendingRemote<WebSocket> socket, ::mojo::PendingReceiver<WebSocketClient> client_receiver, WebSocketHandshakeResponsePtr response, ::mojo::ScopedDataPipeConsumerHandle readable, ::mojo::ScopedDataPipeProducerHandle writable) { … }
WebSocketHandshakeClientAsyncWaiter::WebSocketHandshakeClientAsyncWaiter(
WebSocketHandshakeClient* proxy) : … { … }
WebSocketHandshakeClientAsyncWaiter::~WebSocketHandshakeClientAsyncWaiter() = default;
void WebSocketClientInterceptorForTesting::OnDataFrame(bool fin, WebSocketMessageType type, uint64_t data_length) { … }
void WebSocketClientInterceptorForTesting::OnDropChannel(bool was_clean, uint16_t code, const WTF::String& reason) { … }
void WebSocketClientInterceptorForTesting::OnClosingHandshake() { … }
WebSocketClientAsyncWaiter::WebSocketClientAsyncWaiter(
WebSocketClient* proxy) : … { … }
WebSocketClientAsyncWaiter::~WebSocketClientAsyncWaiter() = default;
void WebSocketInterceptorForTesting::SendMessage(WebSocketMessageType type, uint64_t data_length) { … }
void WebSocketInterceptorForTesting::StartReceiving() { … }
void WebSocketInterceptorForTesting::StartClosingHandshake(uint16_t code, const WTF::String& reason) { … }
WebSocketAsyncWaiter::WebSocketAsyncWaiter(
WebSocket* proxy) : … { … }
WebSocketAsyncWaiter::~WebSocketAsyncWaiter() = default;
}
#if defined(__clang__)
#pragma clang diagnostic pop
#endif