#include "third_party/blink/renderer/modules/websockets/websocket_common.h"
#include <stddef.h>
#include "base/metrics/histogram_macros.h"
#include "services/network/public/cpp/is_potentially_trustworthy.h"
#include "third_party/blink/public/common/security_context/insecure_request_policy.h"
#include "third_party/blink/public/mojom/security_context/insecure_request_policy.mojom-blink.h"
#include "third_party/blink/renderer/core/execution_context/execution_context.h"
#include "third_party/blink/renderer/core/execution_context/security_context.h"
#include "third_party/blink/renderer/core/frame/csp/content_security_policy.h"
#include "third_party/blink/renderer/core/frame/web_feature.h"
#include "third_party/blink/renderer/core/loader/mixed_content_checker.h"
#include "third_party/blink/renderer/modules/websockets/websocket_channel.h"
#include "third_party/blink/renderer/platform/bindings/exception_state.h"
#include "third_party/blink/renderer/platform/instrumentation/use_counter.h"
#include "third_party/blink/renderer/platform/weborigin/security_origin.h"
#include "third_party/blink/renderer/platform/wtf/text/string_builder.h"
#include "third_party/blink/renderer/platform/wtf/text/string_utf8_adaptor.h"
#include "third_party/blink/renderer/platform/wtf/wtf_size_t.h"
namespace blink {
namespace {
constexpr char kWebSocketSubprotocolSeparator[] = …;
constexpr size_t kMaxReasonSizeInBytes = …;
}
WebSocketCommon::ConnectResult WebSocketCommon::Connect(
ExecutionContext* execution_context,
const String& url,
const Vector<String>& protocols,
WebSocketChannel* channel,
ExceptionState& exception_state) { … }
void WebSocketCommon::CloseInternal(std::optional<uint16_t> code,
const String& reason,
WebSocketChannel* channel,
ExceptionState& exception_state) { … }
inline bool WebSocketCommon::IsValidSubprotocolCharacter(UChar character) { … }
bool WebSocketCommon::IsValidSubprotocolString(const String& protocol) { … }
String WebSocketCommon::EncodeSubprotocolString(const String& protocol) { … }
String WebSocketCommon::JoinStrings(const Vector<String>& strings,
const char* separator) { … }
std::optional<uint16_t> WebSocketCommon::ValidateCloseCodeAndReason(
std::optional<uint16_t> code,
const String& reason,
ExceptionState& exception_state) { … }
}