@fails-components/webtransport 0.0.1-rc.0 → 0.0.1-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (384) hide show
  1. package/.github/workflows/npm-publish-packages.yml +0 -0
  2. package/CMakeLists.txt +2 -0
  3. package/package.json +1 -1
  4. package/readme.md +0 -0
  5. package/src/http3serversession.h +1 -1
  6. package/src/webtransport.js +4 -2
  7. package/third_party/boringssl/src/CMakeLists.txt +9 -12
  8. package/third_party/boringssl/src/crypto/CMakeLists.txt +2 -3
  9. package/third_party/boringssl/src/crypto/asn1/time_support.c +206 -206
  10. package/third_party/boringssl/src/crypto/bio/socket_helper.c +124 -122
  11. package/third_party/boringssl/src/crypto/evp/digestsign.c +268 -231
  12. package/third_party/boringssl/src/crypto/evp/p_ec.c +286 -286
  13. package/third_party/boringssl/src/crypto/fipsmodule/aes/key_wrap.c +246 -236
  14. package/third_party/boringssl/src/crypto/fipsmodule/aes/mode_wrappers.c +124 -122
  15. package/third_party/boringssl/src/crypto/fipsmodule/bcm.c +3 -0
  16. package/third_party/boringssl/src/crypto/fipsmodule/bn/bytes.c +246 -230
  17. package/third_party/boringssl/src/crypto/fipsmodule/bn/internal.h +734 -715
  18. package/third_party/boringssl/src/crypto/fipsmodule/bn/random.c +349 -341
  19. package/third_party/boringssl/src/crypto/fipsmodule/cipher/cipher.c +670 -648
  20. package/third_party/boringssl/src/crypto/fipsmodule/cipher/e_aes.c +1504 -1472
  21. package/third_party/boringssl/src/crypto/{cipher_extra → fipsmodule/cipher}/e_aesccm.c +435 -446
  22. package/third_party/boringssl/src/crypto/{cmac → fipsmodule/cmac}/cavp_3des_cmac_tests.txt +0 -0
  23. package/third_party/boringssl/src/crypto/{cmac → fipsmodule/cmac}/cavp_aes128_cmac_tests.txt +0 -0
  24. package/third_party/boringssl/src/crypto/{cmac → fipsmodule/cmac}/cavp_aes192_cmac_tests.txt +0 -0
  25. package/third_party/boringssl/src/crypto/{cmac → fipsmodule/cmac}/cavp_aes256_cmac_tests.txt +0 -0
  26. package/third_party/boringssl/src/crypto/{cmac → fipsmodule/cmac}/cmac.c +318 -278
  27. package/third_party/boringssl/src/crypto/{cmac → fipsmodule/cmac}/cmac_test.cc +268 -267
  28. package/third_party/boringssl/src/crypto/fipsmodule/dh/dh.c +5 -1
  29. package/third_party/boringssl/src/crypto/fipsmodule/ec/ec.c +11 -17
  30. package/third_party/boringssl/src/crypto/fipsmodule/ec/ec_key.c +15 -4
  31. package/third_party/boringssl/src/crypto/fipsmodule/ec/internal.h +2 -6
  32. package/third_party/boringssl/src/crypto/fipsmodule/ec/p224-64.c +1164 -1180
  33. package/third_party/boringssl/src/crypto/fipsmodule/ec/p256-nistz.c +3 -3
  34. package/third_party/boringssl/src/crypto/fipsmodule/ec/p256-nistz_test.cc +2 -2
  35. package/third_party/boringssl/src/crypto/fipsmodule/ec/p256.c +44 -33
  36. package/third_party/boringssl/src/crypto/fipsmodule/ec/scalar.c +169 -175
  37. package/third_party/boringssl/src/crypto/fipsmodule/ec/simple.c +352 -357
  38. package/third_party/boringssl/src/crypto/fipsmodule/ecdh/ecdh.c +4 -0
  39. package/third_party/boringssl/src/crypto/fipsmodule/ecdsa/ecdsa.c +14 -9
  40. package/third_party/boringssl/src/crypto/fipsmodule/hmac/hmac.c +256 -235
  41. package/third_party/boringssl/src/crypto/fipsmodule/rand/ctrdrbg.c +204 -202
  42. package/third_party/boringssl/src/crypto/fipsmodule/rsa/padding.c +702 -695
  43. package/third_party/boringssl/src/crypto/fipsmodule/rsa/rsa_impl.c +7 -2
  44. package/third_party/boringssl/src/crypto/fipsmodule/self_check/self_check.c +7 -0
  45. package/third_party/boringssl/src/crypto/fipsmodule/service_indicator/internal.h +89 -0
  46. package/third_party/boringssl/src/crypto/fipsmodule/service_indicator/service_indicator.c +333 -0
  47. package/third_party/boringssl/src/crypto/fipsmodule/service_indicator/service_indicator_test.cc +2410 -0
  48. package/third_party/boringssl/src/crypto/fipsmodule/sha/sha1.c +359 -357
  49. package/third_party/boringssl/src/crypto/fipsmodule/sha/sha256.c +325 -321
  50. package/third_party/boringssl/src/crypto/fipsmodule/sha/sha512.c +510 -508
  51. package/third_party/boringssl/src/crypto/fipsmodule/tls/kdf.c +177 -165
  52. package/third_party/boringssl/src/crypto/internal.h +13 -0
  53. package/third_party/boringssl/src/crypto/trust_token/trust_token_test.cc +884 -884
  54. package/third_party/boringssl/src/crypto/x509/internal.h +0 -2
  55. package/third_party/boringssl/src/crypto/x509/t_crl.c +148 -148
  56. package/third_party/boringssl/src/crypto/x509/t_req.c +249 -250
  57. package/third_party/boringssl/src/crypto/x509/t_x509.c +2 -3
  58. package/third_party/boringssl/src/crypto/x509/x509_req.c +262 -304
  59. package/third_party/boringssl/src/crypto/x509/x509_set.c +250 -240
  60. package/third_party/boringssl/src/crypto/x509/x509_test.cc +466 -4
  61. package/third_party/boringssl/src/crypto/x509/x509cset.c +292 -279
  62. package/third_party/boringssl/src/crypto/x509/x509rset.c +89 -86
  63. package/third_party/boringssl/src/crypto/x509/x_crl.c +37 -125
  64. package/third_party/boringssl/src/crypto/x509/x_req.c +114 -109
  65. package/third_party/boringssl/src/crypto/x509/x_x509.c +394 -394
  66. package/third_party/boringssl/src/crypto/x509v3/v3_akey.c +11 -16
  67. package/third_party/boringssl/src/crypto/x509v3/v3_alt.c +644 -642
  68. package/third_party/boringssl/src/crypto/x509v3/v3_bcons.c +130 -133
  69. package/third_party/boringssl/src/crypto/x509v3/v3_bitst.c +149 -144
  70. package/third_party/boringssl/src/crypto/x509v3/v3_cpols.c +496 -500
  71. package/third_party/boringssl/src/crypto/x509v3/v3_enum.c +105 -106
  72. package/third_party/boringssl/src/crypto/x509v3/v3_ia5.c +126 -121
  73. package/third_party/boringssl/src/crypto/x509v3/v3_info.c +206 -218
  74. package/third_party/boringssl/src/crypto/x509v3/v3_int.c +97 -91
  75. package/third_party/boringssl/src/crypto/x509v3/v3_pci.c +290 -289
  76. package/third_party/boringssl/src/crypto/x509v3/v3_skey.c +161 -156
  77. package/third_party/boringssl/src/crypto/x509v3/v3_utl.c +5 -3
  78. package/third_party/boringssl/src/include/openssl/aead.h +480 -480
  79. package/third_party/boringssl/src/include/openssl/asn1.h +2 -0
  80. package/third_party/boringssl/src/include/openssl/base.h +1 -1
  81. package/third_party/boringssl/src/include/openssl/service_indicator.h +96 -0
  82. package/third_party/boringssl/src/include/openssl/ssl.h +7 -0
  83. package/third_party/boringssl/src/include/openssl/x509.h +11 -33
  84. package/third_party/boringssl/src/include/openssl/x509v3.h +990 -1018
  85. package/third_party/boringssl/src/sources.cmake +4 -4
  86. package/third_party/boringssl/src/ssl/internal.h +10 -0
  87. package/third_party/boringssl/src/ssl/ssl_lib.cc +3081 -3072
  88. package/third_party/boringssl/src/ssl/ssl_test.cc +46 -0
  89. package/third_party/boringssl/src/ssl/tls13_server.cc +4 -6
  90. package/third_party/boringssl/src/util/bot/DEPS +14 -27
  91. package/third_party/boringssl/src/util/bot/UPDATING +3 -9
  92. package/third_party/boringssl/src/util/bot/update_clang.py +172 -172
  93. package/third_party/boringssl/src/util/bot/vs_toolchain.py +3 -3
  94. package/third_party/quiche/.bazelrc +8 -0
  95. package/third_party/quiche/BUILD.bazel +7 -0
  96. package/third_party/quiche/WHITESPACE +3 -1
  97. package/third_party/quiche/WORKSPACE.bazel +87 -0
  98. package/third_party/quiche/build/BUILD.bazel +7 -0
  99. package/third_party/quiche/build/source_list.bzl +1511 -0
  100. package/third_party/quiche/build/source_list.gni +1511 -0
  101. package/third_party/quiche/build/source_list.json +1511 -0
  102. package/third_party/quiche/build/test.bzl +26 -0
  103. package/third_party/quiche/build/zlib.BUILD +25 -0
  104. package/third_party/quiche/quiche/BUILD.bazel +270 -0
  105. package/third_party/quiche/quiche/{common/balsa → balsa}/balsa_enums.cc +3 -3
  106. package/third_party/quiche/quiche/{common/balsa → balsa}/balsa_enums.h +7 -7
  107. package/third_party/quiche/quiche/{common/balsa → balsa}/balsa_frame.cc +39 -18
  108. package/third_party/quiche/quiche/{common/balsa → balsa}/balsa_frame.h +11 -10
  109. package/third_party/quiche/quiche/{common/balsa → balsa}/balsa_frame_test.cc +67 -63
  110. package/third_party/quiche/quiche/{common/balsa → balsa}/balsa_headers.cc +13 -12
  111. package/third_party/quiche/quiche/{common/balsa → balsa}/balsa_headers.h +16 -8
  112. package/third_party/quiche/quiche/{common/balsa → balsa}/balsa_headers_test.cc +9 -9
  113. package/third_party/quiche/quiche/{common/balsa → balsa}/balsa_visitor_interface.h +4 -4
  114. package/third_party/quiche/quiche/{common/balsa → balsa}/framer_interface.h +3 -3
  115. package/third_party/quiche/quiche/{common/balsa → balsa}/header_api.h +3 -3
  116. package/third_party/quiche/quiche/{common/balsa → balsa}/header_properties.cc +1 -1
  117. package/third_party/quiche/quiche/{common/balsa → balsa}/header_properties.h +3 -3
  118. package/third_party/quiche/quiche/{common/balsa → balsa}/header_properties_test.cc +1 -1
  119. package/third_party/quiche/quiche/{common/balsa → balsa}/http_validation_policy.cc +1 -1
  120. package/third_party/quiche/quiche/{common/balsa → balsa}/http_validation_policy.h +3 -3
  121. package/third_party/quiche/quiche/{common/balsa → balsa}/noop_balsa_visitor.h +4 -4
  122. package/third_party/quiche/quiche/{common/balsa → balsa}/simple_buffer.cc +22 -29
  123. package/third_party/quiche/quiche/{common/balsa → balsa}/simple_buffer.h +18 -16
  124. package/third_party/quiche/quiche/{common/balsa → balsa}/simple_buffer_test.cc +79 -32
  125. package/third_party/quiche/quiche/{common/balsa → balsa}/standard_header_map.cc +1 -1
  126. package/third_party/quiche/quiche/{common/balsa → balsa}/standard_header_map.h +3 -3
  127. package/third_party/quiche/quiche/common/platform/api/quiche_command_line_flags.h +6 -1
  128. package/third_party/quiche/quiche/common/platform/api/quiche_flags.h +8 -0
  129. package/third_party/quiche/quiche/common/platform/api/quiche_logging.h +0 -3
  130. package/third_party/quiche/quiche/common/platform/api/quiche_lower_case_string_test.cc +29 -0
  131. package/third_party/quiche/quiche/common/platform/api/quiche_test.h +5 -7
  132. package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quic_flags_impl.h +1 -1
  133. package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_bug_tracker_impl.h +3 -2
  134. package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_command_line_flags_impl.cc +41 -0
  135. package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_command_line_flags_impl.h +33 -0
  136. package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_expect_bug_impl.h +15 -0
  137. package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_logging_impl.h +84 -50
  138. package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_lower_case_string_impl.h +25 -0
  139. package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_stack_trace_impl.cc +1 -1
  140. package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_test_impl.cc +25 -0
  141. package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_test_impl.h +56 -0
  142. package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_test_output_impl.h +27 -0
  143. package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_thread_impl.h +26 -0
  144. package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_url_utils_impl.cc +1 -0
  145. package/third_party/quiche/quiche/common/quiche_buffer_allocator_test.cc +1 -1
  146. package/third_party/quiche/quiche/common/quiche_mem_slice_storage.h +2 -3
  147. package/third_party/quiche/quiche/common/structured_headers.cc +14 -12
  148. package/third_party/quiche/quiche/http2/adapter/event_forwarder.cc +7 -5
  149. package/third_party/quiche/quiche/http2/adapter/event_forwarder.h +4 -2
  150. package/third_party/quiche/quiche/http2/adapter/event_forwarder_test.cc +14 -9
  151. package/third_party/quiche/quiche/http2/adapter/header_validator.cc +43 -19
  152. package/third_party/quiche/quiche/http2/adapter/header_validator.h +11 -40
  153. package/third_party/quiche/quiche/http2/adapter/header_validator_base.h +69 -0
  154. package/third_party/quiche/quiche/http2/adapter/header_validator_test.cc +73 -1
  155. package/third_party/quiche/quiche/http2/adapter/nghttp2_adapter_test.cc +66 -0
  156. package/third_party/quiche/quiche/http2/adapter/nghttp2_session_test.cc +8 -5
  157. package/third_party/quiche/quiche/http2/adapter/nghttp2_test.cc +1 -1
  158. package/third_party/quiche/quiche/http2/adapter/noop_header_validator.cc +22 -0
  159. package/third_party/quiche/quiche/http2/adapter/noop_header_validator.h +25 -0
  160. package/third_party/quiche/quiche/http2/adapter/noop_header_validator_test.cc +523 -0
  161. package/third_party/quiche/quiche/http2/adapter/oghttp2_adapter_test.cc +186 -5
  162. package/third_party/quiche/quiche/http2/adapter/oghttp2_session.cc +37 -43
  163. package/third_party/quiche/quiche/http2/adapter/oghttp2_session.h +22 -23
  164. package/third_party/quiche/quiche/http2/adapter/test_utils.cc +1 -1
  165. package/third_party/quiche/quiche/http2/adapter/window_manager_test.cc +11 -5
  166. package/third_party/quiche/quiche/http2/core/http2_trace_logging.cc +13 -11
  167. package/third_party/quiche/quiche/http2/core/http2_trace_logging.h +5 -4
  168. package/third_party/quiche/quiche/http2/core/priority_write_scheduler.h +42 -36
  169. package/third_party/quiche/quiche/http2/core/priority_write_scheduler_test.cc +2 -2
  170. package/third_party/quiche/quiche/http2/decoder/decode_buffer_test.cc +9 -9
  171. package/third_party/quiche/quiche/http2/decoder/decode_http2_structures_test.cc +1 -1
  172. package/third_party/quiche/quiche/http2/decoder/http2_frame_decoder_test.cc +14 -14
  173. package/third_party/quiche/quiche/http2/decoder/http2_structure_decoder_test.cc +17 -17
  174. package/third_party/quiche/quiche/http2/decoder/payload_decoders/altsvc_payload_decoder_test.cc +1 -1
  175. package/third_party/quiche/quiche/http2/decoder/payload_decoders/continuation_payload_decoder_test.cc +1 -1
  176. package/third_party/quiche/quiche/http2/decoder/payload_decoders/data_payload_decoder_test.cc +2 -2
  177. package/third_party/quiche/quiche/http2/decoder/payload_decoders/goaway_payload_decoder_test.cc +1 -1
  178. package/third_party/quiche/quiche/http2/decoder/payload_decoders/headers_payload_decoder_test.cc +1 -1
  179. package/third_party/quiche/quiche/http2/decoder/payload_decoders/ping_payload_decoder_test.cc +1 -1
  180. package/third_party/quiche/quiche/http2/decoder/payload_decoders/priority_payload_decoder_test.cc +1 -1
  181. package/third_party/quiche/quiche/http2/decoder/payload_decoders/priority_update_payload_decoder_test.cc +1 -1
  182. package/third_party/quiche/quiche/http2/decoder/payload_decoders/push_promise_payload_decoder_test.cc +1 -1
  183. package/third_party/quiche/quiche/http2/decoder/payload_decoders/rst_stream_payload_decoder_test.cc +1 -1
  184. package/third_party/quiche/quiche/http2/decoder/payload_decoders/settings_payload_decoder_test.cc +1 -1
  185. package/third_party/quiche/quiche/http2/decoder/payload_decoders/unknown_payload_decoder_test.cc +1 -1
  186. package/third_party/quiche/quiche/http2/decoder/payload_decoders/window_update_payload_decoder_test.cc +1 -1
  187. package/third_party/quiche/quiche/http2/hpack/decoder/hpack_block_decoder_test.cc +2 -2
  188. package/third_party/quiche/quiche/http2/hpack/decoder/hpack_decoder_state_test.cc +8 -8
  189. package/third_party/quiche/quiche/http2/hpack/decoder/hpack_decoder_string_buffer_test.cc +4 -3
  190. package/third_party/quiche/quiche/http2/hpack/decoder/hpack_decoder_tables_test.cc +17 -17
  191. package/third_party/quiche/quiche/http2/hpack/decoder/hpack_decoder_test.cc +25 -25
  192. package/third_party/quiche/quiche/http2/hpack/decoder/hpack_entry_decoder_test.cc +2 -2
  193. package/third_party/quiche/quiche/http2/hpack/decoder/hpack_entry_type_decoder_test.cc +7 -6
  194. package/third_party/quiche/quiche/http2/hpack/decoder/hpack_string_decoder_test.cc +6 -6
  195. package/third_party/quiche/quiche/http2/hpack/decoder/hpack_whole_entry_buffer_test.cc +1 -1
  196. package/third_party/quiche/quiche/http2/hpack/huffman/hpack_huffman_decoder_test.cc +2 -2
  197. package/third_party/quiche/quiche/http2/hpack/huffman/hpack_huffman_encoder_test.cc +1 -1
  198. package/third_party/quiche/quiche/http2/hpack/huffman/hpack_huffman_transcoder_test.cc +5 -5
  199. package/third_party/quiche/quiche/http2/hpack/varint/hpack_varint_decoder_test.cc +4 -4
  200. package/third_party/quiche/quiche/http2/hpack/varint/hpack_varint_round_trip_test.cc +1 -1
  201. package/third_party/quiche/quiche/http2/http2_constants_test.cc +1 -1
  202. package/third_party/quiche/quiche/http2/http2_structures_test.cc +23 -22
  203. package/third_party/quiche/quiche/http2/test_tools/frame_decoder_state_test_util.cc +1 -1
  204. package/third_party/quiche/quiche/http2/test_tools/frame_decoder_state_test_util.h +1 -1
  205. package/third_party/quiche/quiche/http2/test_tools/frame_parts.cc +38 -38
  206. package/third_party/quiche/quiche/http2/test_tools/hpack_block_collector.cc +15 -15
  207. package/third_party/quiche/quiche/http2/test_tools/hpack_entry_collector.cc +24 -22
  208. package/third_party/quiche/quiche/http2/test_tools/hpack_string_collector.cc +5 -5
  209. package/third_party/quiche/quiche/http2/test_tools/http2_frame_builder_test.cc +70 -89
  210. package/third_party/quiche/quiche/http2/test_tools/payload_decoder_base_test_util.cc +1 -1
  211. package/third_party/quiche/quiche/http2/test_tools/payload_decoder_base_test_util.h +29 -26
  212. package/third_party/quiche/quiche/http2/test_tools/{random_decoder_test.cc → random_decoder_test_base.cc} +13 -10
  213. package/third_party/quiche/quiche/http2/test_tools/{random_decoder_test.h → random_decoder_test_base.h} +15 -17
  214. package/third_party/quiche/quiche/http2/test_tools/{random_decoder_test_test.cc → random_decoder_test_base_test.cc} +1 -1
  215. package/third_party/quiche/quiche/http2/test_tools/verify_macros.h +32 -0
  216. package/third_party/quiche/quiche/quic/core/congestion_control/bbr2_sender.cc +2 -1
  217. package/third_party/quiche/quiche/quic/core/congestion_control/bbr2_simulator_test.cc +3 -2
  218. package/third_party/quiche/quiche/quic/core/congestion_control/bbr_sender_test.cc +3 -2
  219. package/third_party/quiche/quiche/quic/core/congestion_control/rtt_stats.cc +3 -2
  220. package/third_party/quiche/quiche/quic/core/congestion_control/rtt_stats.h +2 -1
  221. package/third_party/quiche/quiche/quic/core/congestion_control/rtt_stats_test.cc +2 -13
  222. package/third_party/quiche/quiche/quic/core/crypto/certificate_view.cc +15 -0
  223. package/third_party/quiche/quiche/quic/core/crypto/certificate_view.h +7 -0
  224. package/third_party/quiche/quiche/quic/core/crypto/certificate_view_test.cc +16 -0
  225. package/third_party/quiche/quiche/quic/core/crypto/crypto_protocol.h +1 -0
  226. package/third_party/quiche/quiche/quic/core/crypto/proof_source.h +2 -2
  227. package/third_party/quiche/quiche/quic/core/crypto/proof_source_x509.cc +3 -5
  228. package/third_party/quiche/quiche/quic/core/crypto/proof_source_x509.h +1 -2
  229. package/third_party/quiche/quiche/quic/core/crypto/quic_crypto_server_config.cc +1 -1
  230. package/third_party/quiche/quiche/quic/core/crypto/quic_crypto_server_config.h +3 -3
  231. package/third_party/quiche/quiche/quic/core/frames/quic_blocked_frame.cc +2 -8
  232. package/third_party/quiche/quiche/quic/core/frames/quic_blocked_frame.h +0 -1
  233. package/third_party/quiche/quiche/quic/core/frames/quic_crypto_frame.h +2 -0
  234. package/third_party/quiche/quiche/quic/core/frames/quic_frames_test.cc +2 -1
  235. package/third_party/quiche/quiche/quic/core/http/capsule.cc +2 -22
  236. package/third_party/quiche/quiche/quic/core/http/capsule.h +0 -2
  237. package/third_party/quiche/quiche/quic/core/http/capsule_test.cc +1 -2
  238. package/third_party/quiche/quiche/quic/core/http/end_to_end_test.cc +148 -57
  239. package/third_party/quiche/quiche/quic/core/http/http_constants.cc +1 -1
  240. package/third_party/quiche/quiche/quic/core/http/http_constants.h +2 -2
  241. package/third_party/quiche/quiche/quic/core/http/quic_header_list_test.cc +2 -2
  242. package/third_party/quiche/quiche/quic/core/http/quic_headers_stream_test.cc +18 -14
  243. package/third_party/quiche/quiche/quic/core/http/quic_send_control_stream.h +2 -1
  244. package/third_party/quiche/quiche/quic/core/http/quic_send_control_stream_test.cc +3 -7
  245. package/third_party/quiche/quiche/quic/core/http/quic_server_session_base.h +4 -0
  246. package/third_party/quiche/quiche/quic/core/http/quic_spdy_session.cc +47 -65
  247. package/third_party/quiche/quiche/quic/core/http/quic_spdy_session.h +5 -17
  248. package/third_party/quiche/quiche/quic/core/http/quic_spdy_session_test.cc +63 -54
  249. package/third_party/quiche/quiche/quic/core/http/quic_spdy_stream.cc +34 -91
  250. package/third_party/quiche/quiche/quic/core/http/quic_spdy_stream.h +1 -9
  251. package/third_party/quiche/quiche/quic/core/http/quic_spdy_stream_test.cc +27 -134
  252. package/third_party/quiche/quiche/quic/core/http/spdy_utils.cc +0 -41
  253. package/third_party/quiche/quiche/quic/core/http/spdy_utils.h +0 -9
  254. package/third_party/quiche/quiche/quic/core/http/spdy_utils_test.cc +0 -32
  255. package/third_party/quiche/quiche/quic/core/http/web_transport_http3.cc +0 -1
  256. package/third_party/quiche/quiche/quic/core/packet_number_indexed_queue_test.cc +2 -2
  257. package/third_party/quiche/quiche/quic/core/qpack/qpack_header_table.cc +2 -1
  258. package/third_party/quiche/quiche/quic/core/qpack/qpack_send_stream.h +2 -1
  259. package/third_party/quiche/quiche/quic/core/quic_arena_scoped_ptr_test.cc +2 -2
  260. package/third_party/quiche/quiche/quic/core/quic_connection.cc +68 -46
  261. package/third_party/quiche/quiche/quic/core/quic_connection.h +7 -6
  262. package/third_party/quiche/quiche/quic/core/quic_connection_context_test.cc +2 -2
  263. package/third_party/quiche/quiche/quic/core/quic_connection_id_manager_test.cc +2 -2
  264. package/third_party/quiche/quiche/quic/core/quic_connection_id_test.cc +2 -2
  265. package/third_party/quiche/quiche/quic/core/quic_connection_test.cc +45 -132
  266. package/third_party/quiche/quiche/quic/core/quic_constants.h +0 -7
  267. package/third_party/quiche/quiche/quic/core/quic_control_frame_manager.cc +11 -3
  268. package/third_party/quiche/quiche/quic/core/quic_control_frame_manager.h +1 -1
  269. package/third_party/quiche/quiche/quic/core/quic_control_frame_manager_test.cc +2 -2
  270. package/third_party/quiche/quiche/quic/core/quic_crypto_client_handshaker.cc +13 -1
  271. package/third_party/quiche/quiche/quic/core/quic_crypto_client_handshaker.h +3 -0
  272. package/third_party/quiche/quiche/quic/core/quic_crypto_client_handshaker_test.cc +2 -2
  273. package/third_party/quiche/quiche/quic/core/quic_crypto_client_stream.cc +6 -0
  274. package/third_party/quiche/quiche/quic/core/quic_crypto_client_stream.h +8 -0
  275. package/third_party/quiche/quiche/quic/core/quic_crypto_server_stream.cc +26 -13
  276. package/third_party/quiche/quiche/quic/core/quic_crypto_server_stream.h +5 -2
  277. package/third_party/quiche/quiche/quic/core/quic_crypto_stream.cc +55 -47
  278. package/third_party/quiche/quiche/quic/core/quic_crypto_stream.h +15 -10
  279. package/third_party/quiche/quiche/quic/core/quic_crypto_stream_test.cc +34 -5
  280. package/third_party/quiche/quiche/quic/core/quic_dispatcher.cc +20 -11
  281. package/third_party/quiche/quiche/quic/core/quic_dispatcher_test.cc +37 -13
  282. package/third_party/quiche/quiche/quic/core/quic_flags_list.h +6 -10
  283. package/third_party/quiche/quiche/quic/core/quic_flow_controller.cc +3 -3
  284. package/third_party/quiche/quiche/quic/core/quic_flow_controller.h +2 -2
  285. package/third_party/quiche/quiche/quic/core/quic_flow_controller_test.cc +15 -10
  286. package/third_party/quiche/quiche/quic/core/quic_framer.cc +1 -1
  287. package/third_party/quiche/quiche/quic/core/quic_one_block_arena.h +3 -2
  288. package/third_party/quiche/quiche/quic/core/quic_one_block_arena_test.cc +2 -2
  289. package/third_party/quiche/quiche/quic/core/quic_packet_creator.cc +3 -11
  290. package/third_party/quiche/quiche/quic/core/quic_packet_creator.h +0 -8
  291. package/third_party/quiche/quiche/quic/core/quic_ping_manager.cc +14 -14
  292. package/third_party/quiche/quiche/quic/core/quic_ping_manager_test.cc +48 -0
  293. package/third_party/quiche/quiche/quic/core/quic_received_packet_manager.cc +3 -18
  294. package/third_party/quiche/quiche/quic/core/quic_received_packet_manager_test.cc +4 -14
  295. package/third_party/quiche/quiche/quic/core/quic_server_id_test.cc +2 -2
  296. package/third_party/quiche/quiche/quic/core/quic_session.cc +4 -4
  297. package/third_party/quiche/quiche/quic/core/quic_session.h +1 -1
  298. package/third_party/quiche/quiche/quic/core/quic_session_test.cc +21 -1
  299. package/third_party/quiche/quiche/quic/core/quic_stream.cc +4 -7
  300. package/third_party/quiche/quiche/quic/core/quic_stream_test.cc +2 -4
  301. package/third_party/quiche/quiche/quic/core/quic_trace_visitor_test.cc +2 -2
  302. package/third_party/quiche/quiche/quic/core/quic_types.h +3 -8
  303. package/third_party/quiche/quiche/quic/core/quic_udp_socket_posix.cc +5 -4
  304. package/third_party/quiche/quiche/quic/core/quic_unacked_packet_map_test.cc +1 -1
  305. package/third_party/quiche/quiche/quic/core/quic_utils.cc +1 -1
  306. package/third_party/quiche/quiche/quic/core/quic_utils.h +2 -2
  307. package/third_party/quiche/quiche/quic/core/quic_versions_test.cc +0 -1
  308. package/third_party/quiche/quiche/quic/core/tls_client_handshaker.cc +13 -0
  309. package/third_party/quiche/quiche/quic/core/tls_client_handshaker.h +2 -0
  310. package/third_party/quiche/quiche/quic/core/tls_server_handshaker.cc +17 -3
  311. package/third_party/quiche/quiche/quic/core/tls_server_handshaker.h +3 -1
  312. package/third_party/quiche/quiche/quic/core/uber_received_packet_manager_test.cc +18 -10
  313. package/third_party/quiche/quiche/quic/masque/masque_client_bin.cc +6 -4
  314. package/third_party/quiche/quiche/quic/masque/masque_client_session.cc +23 -7
  315. package/third_party/quiche/quiche/quic/masque/masque_client_session.h +1 -1
  316. package/third_party/quiche/quiche/quic/masque/masque_server_backend.cc +13 -0
  317. package/third_party/quiche/quiche/quic/masque/masque_server_backend.h +2 -0
  318. package/third_party/quiche/quiche/quic/masque/masque_server_bin.cc +5 -4
  319. package/third_party/quiche/quiche/quic/masque/masque_server_session.cc +30 -40
  320. package/third_party/quiche/quiche/quic/masque/masque_server_session.h +1 -1
  321. package/third_party/quiche/quiche/quic/platform/api/quic_export.h +4 -4
  322. package/third_party/quiche/quiche/quic/platform/api/quic_flags.h +0 -1
  323. package/third_party/quiche/quiche/quic/platform/api/quic_logging.h +0 -6
  324. package/third_party/quiche/quiche/quic/platform/api/quic_test.h +6 -5
  325. package/third_party/quiche/quiche/quic/qbone/bonnet/icmp_reachable_test.cc +2 -2
  326. package/third_party/quiche/quiche/quic/qbone/bonnet/mock_qbone_tunnel.h +2 -0
  327. package/third_party/quiche/quiche/quic/qbone/bonnet/qbone_tunnel_interface.h +2 -0
  328. package/third_party/quiche/quiche/quic/qbone/bonnet/tun_device_controller_test.cc +2 -2
  329. package/third_party/quiche/quiche/quic/qbone/bonnet/tun_device_packet_exchanger_test.cc +2 -2
  330. package/third_party/quiche/quiche/quic/qbone/bonnet/tun_device_test.cc +2 -2
  331. package/third_party/quiche/quiche/quic/qbone/platform/netlink_test.cc +2 -2
  332. package/third_party/quiche/quiche/quic/qbone/platform/tcp_packet.cc +5 -4
  333. package/third_party/quiche/quiche/quic/qbone/qbone_client_session.cc +4 -2
  334. package/third_party/quiche/quiche/quic/qbone/qbone_packet_processor.cc +2 -1
  335. package/third_party/quiche/quiche/quic/qbone/qbone_packet_processor_test.cc +2 -2
  336. package/third_party/quiche/quiche/quic/qbone/qbone_server_session.cc +4 -2
  337. package/third_party/quiche/quiche/quic/qbone/qbone_session_base.cc +3 -2
  338. package/third_party/quiche/quiche/quic/qbone/qbone_stream.cc +4 -4
  339. package/third_party/quiche/quiche/quic/test_tools/quic_connection_peer.cc +1 -1
  340. package/third_party/quiche/quiche/quic/test_tools/quic_http_response_cache_data/test.example.com/index.html +63 -0
  341. package/third_party/quiche/quiche/quic/test_tools/quic_http_response_cache_data/test.example.com/map.html +65 -0
  342. package/third_party/quiche/quiche/quic/test_tools/quic_test_utils.cc +4 -3
  343. package/third_party/quiche/quiche/quic/test_tools/quic_test_utils.h +18 -1
  344. package/third_party/quiche/quiche/quic/test_tools/simulator/quic_endpoint_test.cc +1 -1
  345. package/third_party/quiche/quiche/quic/test_tools/simulator/simulator_test.cc +1 -1
  346. package/third_party/quiche/quiche/quic/test_tools/test_ticket_crypter.cc +1 -1
  347. package/third_party/quiche/quiche/quic/test_tools/test_ticket_crypter.h +2 -2
  348. package/third_party/quiche/quiche/quic/{core/crypto → tools}/crypto_message_printer_bin.cc +0 -0
  349. package/third_party/quiche/quiche/quic/{core/qpack → tools}/qpack_offline_decoder_bin.cc +0 -0
  350. package/third_party/quiche/quiche/quic/tools/quic_client_interop_test_bin.cc +4 -3
  351. package/third_party/quiche/quiche/quic/tools/quic_memory_cache_backend_test.cc +3 -31
  352. package/third_party/quiche/quiche/quic/tools/quic_packet_printer_bin.cc +2 -2
  353. package/third_party/quiche/quiche/quic/tools/quic_simple_server_session.h +1 -1
  354. package/third_party/quiche/quiche/quic/tools/quic_simple_server_session_test.cc +1 -1
  355. package/third_party/quiche/quiche/quic/tools/quic_toy_client.cc +52 -38
  356. package/third_party/quiche/quiche/quic/tools/quic_toy_server.cc +10 -7
  357. package/third_party/quiche/quiche/quic/tools/simple_ticket_crypter.cc +1 -1
  358. package/third_party/quiche/quiche/quic/tools/simple_ticket_crypter.h +1 -1
  359. package/third_party/quiche/quiche/quic/tools/web_transport_test_visitors.h +3 -2
  360. package/third_party/quiche/quiche/spdy/core/array_output_buffer.h +1 -1
  361. package/third_party/quiche/quiche/spdy/core/hpack/hpack_decoder_adapter_test.cc +1 -1
  362. package/third_party/quiche/quiche/spdy/core/hpack/hpack_encoder_test.cc +2 -1
  363. package/third_party/quiche/quiche/spdy/core/hpack/hpack_header_table_test.cc +1 -1
  364. package/third_party/quiche/quiche/spdy/core/hpack/hpack_round_trip_test.cc +2 -1
  365. package/third_party/quiche/quiche/spdy/core/hpack/hpack_static_table_test.cc +1 -1
  366. package/third_party/quiche/quiche/spdy/core/http2_frame_decoder_adapter.cc +8 -6
  367. package/third_party/quiche/quiche/spdy/core/http2_frame_decoder_adapter.h +17 -6
  368. package/third_party/quiche/quiche/spdy/core/metadata_extension.cc +1 -1
  369. package/third_party/quiche/quiche/spdy/core/metadata_extension_test.cc +1 -1
  370. package/third_party/quiche/quiche/spdy/core/spdy_framer_test.cc +21 -17
  371. package/third_party/quiche/quiche/spdy/core/spdy_intrusive_list_test.cc +3 -3
  372. package/third_party/quiche/quiche/spdy/core/spdy_no_op_visitor.h +6 -4
  373. package/third_party/quiche/quiche/spdy/core/spdy_pinnable_buffer_piece_test.cc +1 -1
  374. package/third_party/quiche/quiche/spdy/core/spdy_prefixed_buffer_reader_test.cc +1 -1
  375. package/third_party/quiche/quiche/spdy/core/spdy_protocol_test.cc +1 -1
  376. package/third_party/quiche/quiche/spdy/test_tools/mock_spdy_framer_visitor.h +5 -4
  377. package/third_party/boringssl/src/util/bot/cmake-win32.zip.sha1 +0 -1
  378. package/third_party/quiche/quiche/common/platform/api/quiche_mock_log.h +0 -18
  379. package/third_party/quiche/quiche/common/platform/api/quiche_test_helpers.h +0 -8
  380. package/third_party/quiche/quiche/quic/platform/api/quic_mock_log.h +0 -19
  381. package/third_party/quiche/quiche/quic/tools/quic_transport_simple_server_dispatcher.cc +0 -51
  382. package/third_party/quiche/quiche/quic/tools/quic_transport_simple_server_dispatcher.h +0 -41
  383. package/third_party/quiche/quiche/quic/tools/quic_transport_simple_server_session.cc +0 -168
  384. package/third_party/quiche/quiche/quic/tools/quic_transport_simple_server_session.h +0 -78
@@ -27,7 +27,7 @@ using ::testing::IsEmpty;
27
27
  const size_t kBufferSize = 64 * 1024;
28
28
  char kBuffer[kBufferSize];
29
29
 
30
- class MetadataExtensionTest : public QuicheTest {
30
+ class MetadataExtensionTest : public quiche::test::QuicheTest {
31
31
  protected:
32
32
  MetadataExtensionTest() : test_buffer_(kBuffer, kBufferSize) {}
33
33
 
@@ -353,12 +353,13 @@ class TestSpdyVisitor : public SpdyFramerVisitorInterface,
353
353
  ++goaway_count_;
354
354
  }
355
355
 
356
- void OnHeaders(SpdyStreamId stream_id, bool has_priority, int weight,
357
- SpdyStreamId parent_stream_id, bool exclusive, bool fin,
358
- bool end) override {
359
- QUICHE_VLOG(1) << "OnHeaders(" << stream_id << ", " << has_priority << ", "
360
- << weight << ", " << parent_stream_id << ", " << exclusive
361
- << ", " << fin << ", " << end << ")";
356
+ void OnHeaders(SpdyStreamId stream_id, size_t payload_length,
357
+ bool has_priority, int weight, SpdyStreamId parent_stream_id,
358
+ bool exclusive, bool fin, bool end) override {
359
+ QUICHE_VLOG(1) << "OnHeaders(" << stream_id << ", " << payload_length
360
+ << ", " << has_priority << ", " << weight << ", "
361
+ << parent_stream_id << ", " << exclusive << ", " << fin
362
+ << ", " << end << ")";
362
363
  ++headers_frame_count_;
363
364
  InitHeaderStreaming(SpdyFrameType::HEADERS, stream_id);
364
365
  if (fin) {
@@ -386,8 +387,10 @@ class TestSpdyVisitor : public SpdyFramerVisitorInterface,
386
387
  last_push_promise_promised_stream_ = promised_stream_id;
387
388
  }
388
389
 
389
- void OnContinuation(SpdyStreamId stream_id, bool end) override {
390
- QUICHE_VLOG(1) << "OnContinuation(" << stream_id << ", " << end << ")";
390
+ void OnContinuation(SpdyStreamId stream_id, size_t payload_size,
391
+ bool end) override {
392
+ QUICHE_VLOG(1) << "OnContinuation(" << stream_id << ", " << payload_size
393
+ << ", " << end << ")";
391
394
  ++continuation_count_;
392
395
  }
393
396
 
@@ -568,7 +571,7 @@ class TestSpdyUnknownIR : public SpdyUnknownIR {
568
571
 
569
572
  enum Output { USE, NOT_USE };
570
573
 
571
- class SpdyFramerTest : public QuicheTestWithParam<Output> {
574
+ class SpdyFramerTest : public quiche::test::QuicheTestWithParam<Output> {
572
575
  public:
573
576
  SpdyFramerTest()
574
577
  : output_(output_buffer, kSize),
@@ -852,7 +855,7 @@ TEST_P(SpdyFramerTest, OversizedHeadersPaddingError) {
852
855
  sizeof(kH2FrameData), false);
853
856
 
854
857
  EXPECT_CALL(visitor, OnCommonHeader(1, 5, 0x1, 0x8));
855
- EXPECT_CALL(visitor, OnHeaders(1, false, 0, 0, false, false, false));
858
+ EXPECT_CALL(visitor, OnHeaders(1, 5, false, 0, 0, false, false, false));
856
859
  EXPECT_CALL(visitor, OnHeaderFrameStart(1)).Times(1);
857
860
  EXPECT_CALL(visitor, OnError(Http2DecoderAdapter::SPDY_INVALID_PADDING, _));
858
861
  EXPECT_EQ(frame.size(), deframer_->ProcessInput(frame.data(), frame.size()));
@@ -883,7 +886,7 @@ TEST_P(SpdyFramerTest, CorrectlySizedHeadersPaddingNoError) {
883
886
  SpdySerializedFrame frame(kH2FrameData, sizeof(kH2FrameData), false);
884
887
 
885
888
  EXPECT_CALL(visitor, OnCommonHeader(1, 5, 0x1, 0x8));
886
- EXPECT_CALL(visitor, OnHeaders(1, false, 0, 0, false, false, false));
889
+ EXPECT_CALL(visitor, OnHeaders(1, 5, false, 0, 0, false, false, false));
887
890
  EXPECT_CALL(visitor, OnHeaderFrameStart(1)).Times(1);
888
891
 
889
892
  EXPECT_EQ(frame.size(), deframer_->ProcessInput(frame.data(), frame.size()));
@@ -1316,14 +1319,14 @@ TEST_P(SpdyFramerTest, BasicWithError) {
1316
1319
 
1317
1320
  testing::InSequence s;
1318
1321
  EXPECT_CALL(visitor, OnCommonHeader(1, 1, 0x1, 0x4));
1319
- EXPECT_CALL(visitor, OnHeaders(1, false, 0, 0, false, false, true));
1322
+ EXPECT_CALL(visitor, OnHeaders(1, 1, false, 0, 0, false, false, true));
1320
1323
  EXPECT_CALL(visitor, OnHeaderFrameStart(1));
1321
1324
  EXPECT_CALL(visitor, OnHeaderFrameEnd(1));
1322
1325
  EXPECT_CALL(visitor, OnCommonHeader(1, 12, 0x0, 0x0));
1323
1326
  EXPECT_CALL(visitor, OnDataFrameHeader(1, 12, false));
1324
1327
  EXPECT_CALL(visitor, OnStreamFrameData(1, _, 12));
1325
1328
  EXPECT_CALL(visitor, OnCommonHeader(3, 6, 0x1, 0x24));
1326
- EXPECT_CALL(visitor, OnHeaders(3, true, 131, 0, false, false, true));
1329
+ EXPECT_CALL(visitor, OnHeaders(3, 6, true, 131, 0, false, false, true));
1327
1330
  EXPECT_CALL(visitor, OnHeaderFrameStart(3));
1328
1331
  EXPECT_CALL(visitor, OnHeaderFrameEnd(3));
1329
1332
  EXPECT_CALL(visitor, OnCommonHeader(3, 8, 0x0, 0x0));
@@ -2935,7 +2938,7 @@ TEST_P(SpdyFramerTest, PushPromiseFramesWithIterator) {
2935
2938
  EXPECT_FALSE(frame_it.HasNextFrame());
2936
2939
  }
2937
2940
 
2938
- class SpdyControlFrameIteratorTest : public QuicheTest {
2941
+ class SpdyControlFrameIteratorTest : public quiche::test::QuicheTest {
2939
2942
  public:
2940
2943
  SpdyControlFrameIteratorTest() : output_(output_buffer, kSize) {}
2941
2944
 
@@ -4196,7 +4199,7 @@ TEST_P(SpdyFramerTest, HeadersFrameFlags) {
4196
4199
  exclusive = true;
4197
4200
  }
4198
4201
  EXPECT_CALL(visitor, OnCommonHeader(stream_id, _, 0x1, set_flags));
4199
- EXPECT_CALL(visitor, OnHeaders(stream_id, has_priority, weight,
4202
+ EXPECT_CALL(visitor, OnHeaders(stream_id, _, has_priority, weight,
4200
4203
  parent_stream_id, exclusive, fin, end));
4201
4204
  EXPECT_CALL(visitor, OnHeaderFrameStart(57)).Times(1);
4202
4205
  if (end) {
@@ -4338,7 +4341,7 @@ TEST_P(SpdyFramerTest, ContinuationFrameFlags) {
4338
4341
  EXPECT_CALL(debug_visitor,
4339
4342
  OnReceiveCompressedFrame(42, SpdyFrameType::HEADERS, _));
4340
4343
  EXPECT_CALL(visitor, OnCommonHeader(42, _, 0x1, 0));
4341
- EXPECT_CALL(visitor, OnHeaders(42, false, 0, 0, false, false, false));
4344
+ EXPECT_CALL(visitor, OnHeaders(42, _, false, 0, 0, false, false, false));
4342
4345
  EXPECT_CALL(visitor, OnHeaderFrameStart(42)).Times(1);
4343
4346
 
4344
4347
  SpdyHeadersIR headers_ir(/* stream_id = */ 42);
@@ -4367,7 +4370,8 @@ TEST_P(SpdyFramerTest, ContinuationFrameFlags) {
4367
4370
  EXPECT_CALL(debug_visitor,
4368
4371
  OnReceiveCompressedFrame(42, SpdyFrameType::CONTINUATION, _));
4369
4372
  EXPECT_CALL(visitor, OnCommonHeader(42, _, 0x9, flags));
4370
- EXPECT_CALL(visitor, OnContinuation(42, flags & HEADERS_FLAG_END_HEADERS));
4373
+ EXPECT_CALL(visitor,
4374
+ OnContinuation(42, _, flags & HEADERS_FLAG_END_HEADERS));
4371
4375
  bool end = flags & HEADERS_FLAG_END_HEADERS;
4372
4376
  if (end) {
4373
4377
  EXPECT_CALL(visitor, OnHeaderFrameEnd(42)).Times(1);
@@ -29,11 +29,11 @@ void swap(TestItem &a, TestItem &b) {
29
29
  swap(a.n, b.n);
30
30
  }
31
31
 
32
- class IntrusiveListTest : public QuicheTest {
32
+ class IntrusiveListTest : public quiche::test::QuicheTest {
33
33
  protected:
34
34
  void CheckLists() {
35
35
  CheckLists(l1, ll1);
36
- if (QuicheTest::HasFailure()) return;
36
+ if (quiche::test::QuicheTest::HasFailure()) return;
37
37
  CheckLists(l2, ll2);
38
38
  }
39
39
 
@@ -402,7 +402,7 @@ TEST(NewIntrusiveListTest, HandleInheritanceHierarchies) {
402
402
  }
403
403
  }
404
404
 
405
- class IntrusiveListTagTypeTest : public QuicheTest {
405
+ class IntrusiveListTagTypeTest : public quiche::test::QuicheTest {
406
406
  protected:
407
407
  struct Tag {};
408
408
  class Element : public SpdyIntrusiveLink<Element, Tag> {};
@@ -46,15 +46,17 @@ class QUICHE_EXPORT_PRIVATE SpdyNoOpVisitor
46
46
  void OnSettingsAck() override {}
47
47
  void OnGoAway(SpdyStreamId /*last_accepted_stream_id*/,
48
48
  SpdyErrorCode /*error_code*/) override {}
49
- void OnHeaders(SpdyStreamId /*stream_id*/, bool /*has_priority*/,
50
- int /*weight*/, SpdyStreamId /*parent_stream_id*/,
51
- bool /*exclusive*/, bool /*fin*/, bool /*end*/) override {}
49
+ void OnHeaders(SpdyStreamId /*stream_id*/, size_t /*payload_length*/,
50
+ bool /*has_priority*/, int /*weight*/,
51
+ SpdyStreamId /*parent_stream_id*/, bool /*exclusive*/,
52
+ bool /*fin*/, bool /*end*/) override {}
52
53
  void OnWindowUpdate(SpdyStreamId /*stream_id*/,
53
54
  int /*delta_window_size*/) override {}
54
55
  void OnPushPromise(SpdyStreamId /*stream_id*/,
55
56
  SpdyStreamId /*promised_stream_id*/,
56
57
  bool /*end*/) override {}
57
- void OnContinuation(SpdyStreamId /*stream_id*/, bool /*end*/) override {}
58
+ void OnContinuation(SpdyStreamId /*stream_id*/, size_t /*payload_size*/,
59
+ bool /*end*/) override {}
58
60
  void OnAltSvc(SpdyStreamId /*stream_id*/, absl::string_view /*origin*/,
59
61
  const SpdyAltSvcWireFormat::AlternativeServiceVector&
60
62
  /*altsvc_vector*/) override {}
@@ -13,7 +13,7 @@ namespace spdy {
13
13
 
14
14
  namespace test {
15
15
 
16
- class SpdyPinnableBufferPieceTest : public QuicheTest {
16
+ class SpdyPinnableBufferPieceTest : public quiche::test::QuicheTest {
17
17
  protected:
18
18
  SpdyPrefixedBufferReader Build(const std::string& prefix,
19
19
  const std::string& suffix) {
@@ -15,7 +15,7 @@ namespace test {
15
15
 
16
16
  using testing::ElementsAreArray;
17
17
 
18
- class SpdyPrefixedBufferReaderTest : public QuicheTest {
18
+ class SpdyPrefixedBufferReaderTest : public quiche::test::QuicheTest {
19
19
  protected:
20
20
  SpdyPrefixedBufferReader Build(const std::string& prefix,
21
21
  const std::string& suffix) {
@@ -8,8 +8,8 @@
8
8
  #include <limits>
9
9
  #include <memory>
10
10
 
11
+ #include "quiche/common/platform/api/quiche_expect_bug.h"
11
12
  #include "quiche/common/platform/api/quiche_test.h"
12
- #include "quiche/common/platform/api/quiche_test_helpers.h"
13
13
  #include "quiche/spdy/core/spdy_bitmasks.h"
14
14
  #include "quiche/spdy/test_tools/spdy_test_utils.h"
15
15
 
@@ -59,9 +59,9 @@ class QUICHE_NO_EXPORT MockSpdyFramerVisitor
59
59
  MOCK_METHOD(bool, OnGoAwayFrameData, (const char* goaway_data, size_t len),
60
60
  (override));
61
61
  MOCK_METHOD(void, OnHeaders,
62
- (SpdyStreamId stream_id, bool has_priority, int weight,
63
- SpdyStreamId parent_stream_id, bool exclusive, bool fin,
64
- bool end),
62
+ (SpdyStreamId stream_id, size_t payload_length, bool has_priority,
63
+ int weight, SpdyStreamId parent_stream_id, bool exclusive,
64
+ bool fin, bool end),
65
65
  (override));
66
66
  MOCK_METHOD(void, OnWindowUpdate,
67
67
  (SpdyStreamId stream_id, int delta_window_size), (override));
@@ -69,7 +69,8 @@ class QUICHE_NO_EXPORT MockSpdyFramerVisitor
69
69
  (SpdyStreamId stream_id, SpdyStreamId promised_stream_id,
70
70
  bool end),
71
71
  (override));
72
- MOCK_METHOD(void, OnContinuation, (SpdyStreamId stream_id, bool end),
72
+ MOCK_METHOD(void, OnContinuation,
73
+ (SpdyStreamId stream_id, size_t payload_length, bool end),
73
74
  (override));
74
75
  MOCK_METHOD(
75
76
  void, OnAltSvc,
@@ -1 +0,0 @@
1
- b106d66bcdc8a71ea2cdf5446091327bfdb1bcd7
@@ -1,18 +0,0 @@
1
- // Copyright (c) 2017 The Chromium Authors. All rights reserved.
2
- // Use of this source code is governed by a BSD-style license that can be
3
- // found in the LICENSE file.
4
-
5
- #ifndef QUICHE_COMMON_PLATFORM_API_QUICHE_MOCK_LOG_H_
6
- #define QUICHE_COMMON_PLATFORM_API_QUICHE_MOCK_LOG_H_
7
-
8
- #include "quiche_platform_impl/quiche_mock_log_impl.h"
9
-
10
- using QuicheMockLog = QuicheMockLogImpl;
11
- #define CREATE_QUICHE_MOCK_LOG(log) CREATE_QUICHE_MOCK_LOG_IMPL(log)
12
-
13
- #define EXPECT_QUICHE_LOG_CALL(log) EXPECT_QUICHE_LOG_CALL_IMPL(log)
14
-
15
- #define EXPECT_QUICHE_LOG_CALL_CONTAINS(log, level, content) \
16
- EXPECT_QUICHE_LOG_CALL_CONTAINS_IMPL(log, level, content)
17
-
18
- #endif // QUICHE_COMMON_PLATFORM_API_QUICHE_MOCK_LOG_H_
@@ -1,8 +0,0 @@
1
- #ifndef QUICHE_COMMON_PLATFORM_API_QUICHE_TEST_HELPERS_H_
2
- #define QUICHE_COMMON_PLATFORM_API_QUICHE_TEST_HELPERS_H_
3
-
4
- #include "quiche_platform_impl/quiche_test_helpers_impl.h"
5
-
6
- #define EXPECT_QUICHE_BUG EXPECT_QUICHE_BUG_IMPL
7
-
8
- #endif // QUICHE_COMMON_PLATFORM_API_QUICHE_TEST_HELPERS_H_
@@ -1,19 +0,0 @@
1
- // Copyright (c) 2017 The Chromium Authors. All rights reserved.
2
- // Use of this source code is governed by a BSD-style license that can be
3
- // found in the LICENSE file.
4
-
5
- #ifndef QUICHE_QUIC_PLATFORM_API_QUIC_MOCK_LOG_H_
6
- #define QUICHE_QUIC_PLATFORM_API_QUIC_MOCK_LOG_H_
7
-
8
- #include "quiche/common/platform/api/quiche_mock_log.h"
9
-
10
- using QuicMockLog = QuicheMockLogImpl;
11
-
12
- #define CREATE_QUIC_MOCK_LOG(log) CREATE_QUICHE_MOCK_LOG(log)
13
-
14
- #define EXPECT_QUIC_LOG_CALL(log) EXPECT_QUICHE_LOG_CALL(log)
15
-
16
- #define EXPECT_QUIC_LOG_CALL_CONTAINS(log, level, content) \
17
- EXPECT_QUICHE_LOG_CALL_CONTAINS(log, level, content)
18
-
19
- #endif // QUICHE_QUIC_PLATFORM_API_QUIC_MOCK_LOG_H_
@@ -1,51 +0,0 @@
1
- // Copyright (c) 2019 The Chromium Authors. All rights reserved.
2
- // Use of this source code is governed by a BSD-style license that can be
3
- // found in the LICENSE file.
4
-
5
- #include "quiche/quic/tools/quic_transport_simple_server_dispatcher.h"
6
-
7
- #include <memory>
8
-
9
- #include "absl/strings/string_view.h"
10
- #include "quiche/quic/core/quic_connection.h"
11
- #include "quiche/quic/core/quic_dispatcher.h"
12
- #include "quiche/quic/core/quic_types.h"
13
- #include "quiche/quic/core/quic_versions.h"
14
- #include "quiche/quic/tools/quic_transport_simple_server_session.h"
15
-
16
- namespace quic {
17
-
18
- QuicTransportSimpleServerDispatcher::QuicTransportSimpleServerDispatcher(
19
- const QuicConfig* config, const QuicCryptoServerConfig* crypto_config,
20
- QuicVersionManager* version_manager,
21
- std::unique_ptr<QuicConnectionHelperInterface> helper,
22
- std::unique_ptr<QuicCryptoServerStreamBase::Helper> session_helper,
23
- std::unique_ptr<QuicAlarmFactory> alarm_factory,
24
- uint8_t expected_server_connection_id_length,
25
- std::vector<url::Origin> accepted_origins)
26
- : QuicDispatcher(config, crypto_config, version_manager, std::move(helper),
27
- std::move(session_helper), std::move(alarm_factory),
28
- expected_server_connection_id_length),
29
- accepted_origins_(accepted_origins) {}
30
-
31
- std::unique_ptr<QuicSession>
32
- QuicTransportSimpleServerDispatcher::CreateQuicSession(
33
- QuicConnectionId server_connection_id,
34
- const QuicSocketAddress& self_address,
35
- const QuicSocketAddress& peer_address, absl::string_view /*alpn*/,
36
- const ParsedQuicVersion& version,
37
- const ParsedClientHello& /*parsed_chlo*/) {
38
- auto connection = std::make_unique<QuicConnection>(
39
- server_connection_id, self_address, peer_address, helper(),
40
- alarm_factory(), writer(),
41
- /*owns_writer=*/false, Perspective::IS_SERVER,
42
- ParsedQuicVersionVector{version});
43
- auto session = std::make_unique<QuicTransportSimpleServerSession>(
44
- connection.release(), /*owns_connection=*/true, this, config(),
45
- GetSupportedVersions(), crypto_config(), compressed_certs_cache(),
46
- accepted_origins_);
47
- session->Initialize();
48
- return session;
49
- }
50
-
51
- } // namespace quic
@@ -1,41 +0,0 @@
1
- // Copyright (c) 2019 The Chromium Authors. All rights reserved.
2
- // Use of this source code is governed by a BSD-style license that can be
3
- // found in the LICENSE file.
4
-
5
- #ifndef QUICHE_QUIC_TOOLS_QUIC_TRANSPORT_SIMPLE_SERVER_DISPATCHER_H_
6
- #define QUICHE_QUIC_TOOLS_QUIC_TRANSPORT_SIMPLE_SERVER_DISPATCHER_H_
7
-
8
- #include "absl/strings/string_view.h"
9
- #include "url/origin.h"
10
- #include "quiche/quic/core/quic_dispatcher.h"
11
- #include "quiche/quic/tools/quic_transport_simple_server_session.h"
12
-
13
- namespace quic {
14
-
15
- // Dispatcher that creates a QuicTransportSimpleServerSession for every incoming
16
- // connection.
17
- class QuicTransportSimpleServerDispatcher : public QuicDispatcher {
18
- public:
19
- QuicTransportSimpleServerDispatcher(
20
- const QuicConfig* config, const QuicCryptoServerConfig* crypto_config,
21
- QuicVersionManager* version_manager,
22
- std::unique_ptr<QuicConnectionHelperInterface> helper,
23
- std::unique_ptr<QuicCryptoServerStreamBase::Helper> session_helper,
24
- std::unique_ptr<QuicAlarmFactory> alarm_factory,
25
- uint8_t expected_server_connection_id_length,
26
- std::vector<url::Origin> accepted_origins);
27
-
28
- protected:
29
- std::unique_ptr<QuicSession> CreateQuicSession(
30
- QuicConnectionId server_connection_id,
31
- const QuicSocketAddress& self_address,
32
- const QuicSocketAddress& peer_address, absl::string_view alpn,
33
- const ParsedQuicVersion& version,
34
- const ParsedClientHello& parsed_chlo) override;
35
-
36
- std::vector<url::Origin> accepted_origins_;
37
- };
38
-
39
- } // namespace quic
40
-
41
- #endif // QUICHE_QUIC_TOOLS_QUIC_TRANSPORT_SIMPLE_SERVER_DISPATCHER_H_
@@ -1,168 +0,0 @@
1
- // Copyright (c) 2019 The Chromium Authors. All rights reserved.
2
- // Use of this source code is governed by a BSD-style license that can be
3
- // found in the LICENSE file.
4
-
5
- #include "quiche/quic/tools/quic_transport_simple_server_session.h"
6
-
7
- #include <memory>
8
-
9
- #include "url/gurl.h"
10
- #include "url/origin.h"
11
- #include "quiche/quic/core/quic_types.h"
12
- #include "quiche/quic/core/quic_versions.h"
13
- #include "quiche/quic/platform/api/quic_flags.h"
14
- #include "quiche/quic/platform/api/quic_logging.h"
15
- #include "quiche/quic/quic_transport/quic_transport_protocol.h"
16
- #include "quiche/quic/quic_transport/quic_transport_stream.h"
17
- #include "quiche/quic/tools/web_transport_test_visitors.h"
18
- #include "quiche/common/platform/api/quiche_mem_slice.h"
19
- #include "quiche/common/quiche_buffer_allocator.h"
20
-
21
- namespace quic {
22
-
23
- QuicTransportSimpleServerSession::QuicTransportSimpleServerSession(
24
- QuicConnection* connection, bool owns_connection, Visitor* owner,
25
- const QuicConfig& config, const ParsedQuicVersionVector& supported_versions,
26
- const QuicCryptoServerConfig* crypto_config,
27
- QuicCompressedCertsCache* compressed_certs_cache,
28
- std::vector<url::Origin> accepted_origins)
29
- : QuicTransportServerSession(connection, owner, config, supported_versions,
30
- crypto_config, compressed_certs_cache, this),
31
- owns_connection_(owns_connection),
32
- mode_(DISCARD),
33
- accepted_origins_(accepted_origins) {}
34
-
35
- QuicTransportSimpleServerSession::~QuicTransportSimpleServerSession() {
36
- if (owns_connection_) {
37
- DeleteConnection();
38
- }
39
- }
40
-
41
- void QuicTransportSimpleServerSession::OnIncomingDataStream(
42
- QuicTransportStream* stream) {
43
- switch (mode_) {
44
- case DISCARD:
45
- stream->SetVisitor(std::make_unique<WebTransportDiscardVisitor>(stream));
46
- break;
47
-
48
- case ECHO:
49
- switch (stream->type()) {
50
- case BIDIRECTIONAL:
51
- QUIC_DVLOG(1) << "Opening bidirectional echo stream " << stream->id();
52
- stream->SetVisitor(
53
- std::make_unique<WebTransportBidirectionalEchoVisitor>(stream));
54
- break;
55
- case READ_UNIDIRECTIONAL:
56
- QUIC_DVLOG(1)
57
- << "Started receiving data on unidirectional echo stream "
58
- << stream->id();
59
- stream->SetVisitor(
60
- std::make_unique<WebTransportUnidirectionalEchoReadVisitor>(
61
- stream,
62
- [this](const std::string& s) { this->EchoStreamBack(s); }));
63
- break;
64
- default:
65
- QUIC_NOTREACHED();
66
- break;
67
- }
68
- break;
69
-
70
- case OUTGOING_BIDIRECTIONAL:
71
- stream->SetVisitor(std::make_unique<WebTransportDiscardVisitor>(stream));
72
- ++pending_outgoing_bidirectional_streams_;
73
- MaybeCreateOutgoingBidirectionalStream();
74
- break;
75
- }
76
- }
77
-
78
- void QuicTransportSimpleServerSession::OnCanCreateNewOutgoingStream(
79
- bool unidirectional) {
80
- if (mode_ == ECHO && unidirectional) {
81
- MaybeEchoStreamsBack();
82
- } else if (mode_ == OUTGOING_BIDIRECTIONAL && !unidirectional) {
83
- MaybeCreateOutgoingBidirectionalStream();
84
- }
85
- }
86
-
87
- bool QuicTransportSimpleServerSession::CheckOrigin(url::Origin origin) {
88
- if (accepted_origins_.empty()) {
89
- return true;
90
- }
91
-
92
- for (const url::Origin& accepted_origin : accepted_origins_) {
93
- if (origin.IsSameOriginWith(accepted_origin)) {
94
- return true;
95
- }
96
- }
97
- return false;
98
- }
99
-
100
- bool QuicTransportSimpleServerSession::ProcessPath(const GURL& url) {
101
- if (url.path() == "/discard") {
102
- mode_ = DISCARD;
103
- return true;
104
- }
105
- if (url.path() == "/echo") {
106
- mode_ = ECHO;
107
- return true;
108
- }
109
- if (url.path() == "/receive-bidirectional") {
110
- mode_ = OUTGOING_BIDIRECTIONAL;
111
- return true;
112
- }
113
-
114
- QUIC_DLOG(WARNING) << "Unknown path requested: " << url.path();
115
- return false;
116
- }
117
-
118
- void QuicTransportSimpleServerSession::OnMessageReceived(
119
- absl::string_view message) {
120
- if (mode_ != ECHO) {
121
- return;
122
- }
123
- datagram_queue()->SendOrQueueDatagram(
124
- quiche::QuicheMemSlice(quiche::QuicheBuffer::Copy(
125
- connection()->helper()->GetStreamSendBufferAllocator(), message)));
126
- }
127
-
128
- void QuicTransportSimpleServerSession::MaybeEchoStreamsBack() {
129
- while (!streams_to_echo_back_.empty() &&
130
- CanOpenNextOutgoingUnidirectionalStream()) {
131
- // Remove the stream from the queue first, in order to avoid accidentally
132
- // entering an infinite loop in case any of the following code calls
133
- // OnCanCreateNewOutgoingStream().
134
- std::string data = std::move(streams_to_echo_back_.front());
135
- streams_to_echo_back_.pop_front();
136
-
137
- auto stream_owned = std::make_unique<QuicTransportStream>(
138
- GetNextOutgoingUnidirectionalStreamId(), this, this);
139
- QuicTransportStream* stream = stream_owned.get();
140
- ActivateStream(std::move(stream_owned));
141
- QUIC_DVLOG(1) << "Opened echo response stream " << stream->id();
142
-
143
- stream->SetVisitor(
144
- std::make_unique<WebTransportUnidirectionalEchoWriteVisitor>(stream,
145
- data));
146
- stream->visitor()->OnCanWrite();
147
- }
148
- }
149
-
150
- void QuicTransportSimpleServerSession::
151
- MaybeCreateOutgoingBidirectionalStream() {
152
- while (pending_outgoing_bidirectional_streams_ > 0 &&
153
- CanOpenNextOutgoingBidirectionalStream()) {
154
- auto stream_owned = std::make_unique<QuicTransportStream>(
155
- GetNextOutgoingBidirectionalStreamId(), this, this);
156
- QuicTransportStream* stream = stream_owned.get();
157
- ActivateStream(std::move(stream_owned));
158
- QUIC_DVLOG(1) << "Opened outgoing bidirectional stream " << stream->id();
159
- stream->SetVisitor(
160
- std::make_unique<WebTransportBidirectionalEchoVisitor>(stream));
161
- if (!stream->Write("hello")) {
162
- QUIC_DVLOG(1) << "Write failed.";
163
- }
164
- --pending_outgoing_bidirectional_streams_;
165
- }
166
- }
167
-
168
- } // namespace quic
@@ -1,78 +0,0 @@
1
- // Copyright (c) 2019 The Chromium Authors. All rights reserved.
2
- // Use of this source code is governed by a BSD-style license that can be
3
- // found in the LICENSE file.
4
-
5
- #ifndef QUICHE_QUIC_TOOLS_QUIC_TRANSPORT_SIMPLE_SERVER_SESSION_H_
6
- #define QUICHE_QUIC_TOOLS_QUIC_TRANSPORT_SIMPLE_SERVER_SESSION_H_
7
-
8
- #include <memory>
9
- #include <vector>
10
-
11
- #include "url/origin.h"
12
- #include "quiche/quic/core/quic_types.h"
13
- #include "quiche/quic/core/quic_versions.h"
14
- #include "quiche/quic/platform/api/quic_flags.h"
15
- #include "quiche/quic/quic_transport/quic_transport_server_session.h"
16
- #include "quiche/quic/quic_transport/quic_transport_stream.h"
17
-
18
- namespace quic {
19
-
20
- // QuicTransport simple server is a non-production server that can be used for
21
- // testing QuicTransport. It has two modes that can be changed using the
22
- // command line flags, "echo" and "discard".
23
- class QuicTransportSimpleServerSession
24
- : public QuicTransportServerSession,
25
- QuicTransportServerSession::ServerVisitor {
26
- public:
27
- enum Mode {
28
- // In DISCARD mode, any data on incoming streams is discarded and no
29
- // outgoing streams are initiated.
30
- DISCARD,
31
- // In ECHO mode, any data sent on a bidirectional stream is echoed back.
32
- // Any data sent on a unidirectional stream is buffered, and echoed back on
33
- // a server-initiated unidirectional stream that is sent as soon as a FIN is
34
- // received on the incoming stream.
35
- ECHO,
36
- // In OUTGOING_BIDIRECTIONAL mode, a server-originated bidirectional stream
37
- // is created on receipt of a unidirectional stream. The contents of the
38
- // unidirectional stream are disregarded. The bidirectional stream initially
39
- // sends "hello", then any received data is echoed back.
40
- // TODO(ricea): Maybe this should be replaced by a more general mechanism
41
- // where commands on the unidirectional stream trigger different behaviour?
42
- OUTGOING_BIDIRECTIONAL,
43
- };
44
-
45
- QuicTransportSimpleServerSession(
46
- QuicConnection* connection, bool owns_connection, Visitor* owner,
47
- const QuicConfig& config,
48
- const ParsedQuicVersionVector& supported_versions,
49
- const QuicCryptoServerConfig* crypto_config,
50
- QuicCompressedCertsCache* compressed_certs_cache,
51
- std::vector<url::Origin> accepted_origins);
52
- ~QuicTransportSimpleServerSession();
53
-
54
- void OnIncomingDataStream(QuicTransportStream* stream) override;
55
- void OnCanCreateNewOutgoingStream(bool unidirectional) override;
56
- bool CheckOrigin(url::Origin origin) override;
57
- bool ProcessPath(const GURL& url) override;
58
- void OnMessageReceived(absl::string_view message) override;
59
-
60
- void EchoStreamBack(const std::string& data) {
61
- streams_to_echo_back_.push_back(data);
62
- MaybeEchoStreamsBack();
63
- }
64
-
65
- private:
66
- void MaybeEchoStreamsBack();
67
- void MaybeCreateOutgoingBidirectionalStream();
68
-
69
- const bool owns_connection_;
70
- size_t pending_outgoing_bidirectional_streams_ = 0u;
71
- Mode mode_;
72
- std::vector<url::Origin> accepted_origins_;
73
- quiche::QuicheCircularDeque<std::string> streams_to_echo_back_;
74
- };
75
-
76
- } // namespace quic
77
-
78
- #endif // QUICHE_QUIC_TOOLS_QUIC_TRANSPORT_SIMPLE_SERVER_SESSION_H_