Name Date Size #Lines LOC

..--

DIR_METADATAH A D25-Apr-2025145 87

README.mdH A D25-Apr-20251.8 KiB3632

websocket_basic_handshake_stream.ccH A D25-Apr-202519.9 KiB562443

websocket_basic_handshake_stream.hH A D25-Apr-20256.9 KiB189114

websocket_basic_handshake_stream_test.ccH A D25-Apr-20256.8 KiB168146

websocket_basic_stream.ccH A D25-Apr-202520.4 KiB540425

websocket_basic_stream.hH A D25-Apr-202510.9 KiB277127

websocket_basic_stream_adapters.ccH A D25-Apr-202510.1 KiB362272

websocket_basic_stream_adapters.hH A D25-Apr-20257.9 KiB235141

websocket_basic_stream_adapters_test.ccH A D25-Apr-202565.4 KiB1,7171,363

websocket_basic_stream_test.ccH A D25-Apr-202541.3 KiB1,017757

websocket_channel.ccH A D25-Apr-202537.3 KiB1,047802

websocket_channel.hH A D25-Apr-202517.5 KiB414190

websocket_channel_test.ccH A D25-Apr-2025114.7 KiB2,8792,221

websocket_deflate_parameters.ccH A D25-Apr-20256.2 KiB183149

websocket_deflate_parameters.hH A D25-Apr-20254.8 KiB14197

websocket_deflate_parameters_test.ccH A D25-Apr-20259.9 KiB262211

websocket_deflate_predictor.hH A D25-Apr-20252.2 KiB6324

websocket_deflate_predictor_impl.ccH A D25-Apr-2025644 2413

websocket_deflate_predictor_impl.hH A D25-Apr-2025960 3420

websocket_deflate_predictor_impl_test.ccH A D25-Apr-2025785 3117

websocket_deflate_stream.ccH A D25-Apr-202514.2 KiB403352

websocket_deflate_stream.hH A D25-Apr-20254.6 KiB12478

websocket_deflate_stream_fuzzer.ccH A D25-Apr-20255.8 KiB149111

websocket_deflate_stream_test.ccH A D25-Apr-202550.7 KiB1,3851,204

websocket_deflater.ccH A D25-Apr-20254.7 KiB153102

websocket_deflater.hH A D25-Apr-20252.2 KiB8039

websocket_deflater_test.ccH A D25-Apr-20254.8 KiB138106

websocket_end_to_end_test.ccH A D25-Apr-202531.3 KiB796606

websocket_errors.ccH A D25-Apr-20251.1 KiB4226

websocket_errors.hH A D25-Apr-20251.9 KiB5527

websocket_errors_test.ccH A D25-Apr-20251.1 KiB3421

websocket_event_interface.hH A D25-Apr-20256.6 KiB17072

websocket_extension.ccH A D25-Apr-20252.2 KiB7749

websocket_extension.hH A D25-Apr-20252 KiB6535

websocket_extension_parser.ccH A D25-Apr-20253.3 KiB152118

websocket_extension_parser.hH A D25-Apr-20251.9 KiB6538

websocket_extension_parser_fuzzer.ccH A D25-Apr-2025459 178

websocket_extension_parser_test.ccH A D25-Apr-20256.3 KiB173131

websocket_extension_test.ccH A D25-Apr-20252.1 KiB7254

websocket_frame.ccH A D25-Apr-20259.5 KiB261178

websocket_frame.hH A D25-Apr-20257.8 KiB20882

websocket_frame_parser.ccH A D25-Apr-20257.6 KiB213174

websocket_frame_parser.hH A D25-Apr-20253.5 KiB9435

websocket_frame_parser_fuzzer.ccH A D25-Apr-2025864 2717

websocket_frame_parser_test.ccH A D25-Apr-202521.2 KiB602526

websocket_frame_perftest.ccH A D25-Apr-20252.6 KiB7957

websocket_frame_test.ccH A D25-Apr-202515.1 KiB379300

websocket_handshake_challenge.ccH A D25-Apr-2025531 1910

websocket_handshake_challenge.hH A D25-Apr-2025624 229

websocket_handshake_challenge_test.ccH A D25-Apr-2025599 2512

websocket_handshake_constants.ccH A D25-Apr-2025812 2513

websocket_handshake_constants.hH A D25-Apr-20252.1 KiB6518

websocket_handshake_request_info.ccH A D25-Apr-2025507 199

websocket_handshake_request_info.hH A D25-Apr-2025992 3519

websocket_handshake_response_info.ccH A D25-Apr-2025747 2716

websocket_handshake_response_info.hH A D25-Apr-20251.3 KiB4426

websocket_handshake_stream_base.ccH A D25-Apr-20255.3 KiB153124

websocket_handshake_stream_base.hH A D25-Apr-20257.7 KiB19095

websocket_handshake_stream_create_helper.ccH A D25-Apr-20252.9 KiB7961

websocket_handshake_stream_create_helper.hH A D25-Apr-20252.8 KiB7748

websocket_handshake_stream_create_helper_test.ccH A D25-Apr-202527.2 KiB629535

websocket_http2_handshake_stream.ccH A D25-Apr-202512.6 KiB402316

websocket_http2_handshake_stream.hH A D25-Apr-20257.3 KiB205123

websocket_http3_handshake_stream.ccH A D25-Apr-202512.2 KiB393292

websocket_http3_handshake_stream.hH A D25-Apr-20256.8 KiB194122

websocket_inflater.ccH A D25-Apr-20258.2 KiB284224

websocket_inflater.hH A D25-Apr-20254.3 KiB13466

websocket_inflater_test.ccH A D25-Apr-20257.1 KiB223169

websocket_quic_spdy_stream.ccH A D25-Apr-20251.7 KiB7152

websocket_quic_spdy_stream.hH A D25-Apr-20252.2 KiB6849

websocket_stream.ccH A D25-Apr-202520.2 KiB558424

websocket_stream.hH A D25-Apr-202513.1 KiB310140

websocket_stream_cookie_test.ccH A D25-Apr-202516.6 KiB520402

websocket_stream_create_test_base.ccH A D25-Apr-20255.6 KiB164132

websocket_stream_create_test_base.hH A D25-Apr-20254.1 KiB12686

websocket_stream_test.ccH A D25-Apr-202574 KiB1,8861,529

websocket_test_util.ccH A D25-Apr-202511.8 KiB310262

websocket_test_util.hH A D25-Apr-202510.6 KiB275177

README.md

1# WebSocket protocol
2
3This directory contains the implementation of
4[the WebSocket protocol](https://tools.ietf.org/html/rfc6455).
5
6## Design docs
7
8* [WebSocketBasicHandshakeStream design
9  memo](https://docs.google.com/document/d/1r7dQDA9AQBD_kOk-z-yMi0WgLQZ-5m7psMO5pYLFUL8/edit).
10  Some details have changed, but still a mostly-accurate description of
11  Chromium's current implementation.
12* [WebSocket Throttling
13  Design](https://docs.google.com/document/d/1a8sUFQsbN5uve7ziW61ATkrFr3o9A-Tiyw8ig6T3puA/edit)
14  discusses how we enforce WebSocket connection throttling. Also contains
15  detailed discussion of how WebSockets integrate with the socket pools. Dates
16  from 2014, but still mostly relevant.
17* [WebSockets over
18  HTTP/2](https://docs.google.com/document/d/1ZxaHz4j2BDMa1aI5CQHMjtFI3UxGT459pjYv4To9rFY/edit).
19  Current as of 2019 description of WebSocket over H/2 implementation.
20* [WebSocket + Network Service + WebRequest
21  API](https://docs.google.com/document/d/1L85aXX-m5NaV-g223lH7kKB2HPg6kMi1cjrDVeEptE8/edit):
22  design for how extension callbacks are called when the network service is
23  enabled.
24* [WebSocket HTTP Auth
25  Design](https://docs.google.com/document/d/129rLtf5x3hvhP5rayLiSxnEjOXS8Z7EnLJgBL4CdwjI/edit).
26  This document is very low on detail, but can serve as an overview of how auth
27  works for WebSockets.
28* [Per-renderer WebSocket
29  throttling](https://docs.google.com/document/d/1aw2oN5PKfk-1gLnBrlv1OwLA8K3-ykM2ckwX2lubTg4/edit).
30  While the algorithm described in this document is still used, the code has
31  moved around significantly due to network servicification.
32* [WebSocket Protocol Stack in
33  chrome/net](https://docs.google.com/document/d/11n3hpwb9lD9YVqnjX3OwzE_jHgTmKIqd6GvXE9bDGUg/edit).
34  Early design doc for the current implementation. Mostly of historical interest
35  only.
36