@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
@@ -10,13 +10,6 @@ namespace quic {
10
10
 
11
11
  QuicBlockedFrame::QuicBlockedFrame() : QuicInlinedFrame(BLOCKED_FRAME) {}
12
12
 
13
- QuicBlockedFrame::QuicBlockedFrame(QuicControlFrameId control_frame_id,
14
- QuicStreamId stream_id)
15
- : QuicInlinedFrame(BLOCKED_FRAME),
16
- control_frame_id(control_frame_id),
17
- stream_id(stream_id),
18
- offset(0) {}
19
-
20
13
  QuicBlockedFrame::QuicBlockedFrame(QuicControlFrameId control_frame_id,
21
14
  QuicStreamId stream_id,
22
15
  QuicStreamOffset offset)
@@ -28,7 +21,8 @@ QuicBlockedFrame::QuicBlockedFrame(QuicControlFrameId control_frame_id,
28
21
  std::ostream& operator<<(std::ostream& os,
29
22
  const QuicBlockedFrame& blocked_frame) {
30
23
  os << "{ control_frame_id: " << blocked_frame.control_frame_id
31
- << ", stream_id: " << blocked_frame.stream_id << " }\n";
24
+ << ", stream_id: " << blocked_frame.stream_id
25
+ << ", offset: " << blocked_frame.offset << " }\n";
32
26
  return os;
33
27
  }
34
28
 
@@ -20,7 +20,6 @@ namespace quic {
20
20
  struct QUIC_EXPORT_PRIVATE QuicBlockedFrame
21
21
  : public QuicInlinedFrame<QuicBlockedFrame> {
22
22
  QuicBlockedFrame();
23
- QuicBlockedFrame(QuicControlFrameId control_frame_id, QuicStreamId stream_id);
24
23
  QuicBlockedFrame(QuicControlFrameId control_frame_id, QuicStreamId stream_id,
25
24
  QuicStreamOffset offset);
26
25
 
@@ -25,6 +25,8 @@ struct QUIC_EXPORT_PRIVATE QuicCryptoFrame {
25
25
  friend QUIC_EXPORT_PRIVATE std::ostream& operator<<(std::ostream& os,
26
26
  const QuicCryptoFrame& s);
27
27
 
28
+ // TODO(haoyuewang) Consider replace the EncryptionLevel here with
29
+ // PacketNumberSpace.
28
30
  // When writing a crypto frame to a packet, the packet must be encrypted at
29
31
  // |level|. When a crypto frame is read, the encryption level of the packet it
30
32
  // was received in is put in |level|.
@@ -252,9 +252,10 @@ TEST_F(QuicFramesTest, BlockedFrameToString) {
252
252
  SetControlFrameId(4, &frame);
253
253
  EXPECT_EQ(4u, GetControlFrameId(frame));
254
254
  frame.blocked_frame.stream_id = 1;
255
+ frame.blocked_frame.offset = 2;
255
256
  std::ostringstream stream;
256
257
  stream << frame.blocked_frame;
257
- EXPECT_EQ("{ control_frame_id: 4, stream_id: 1 }\n", stream.str());
258
+ EXPECT_EQ("{ control_frame_id: 4, stream_id: 1, offset: 2 }\n", stream.str());
258
259
  EXPECT_TRUE(IsControlFrame(frame.type));
259
260
  }
260
261
 
@@ -68,10 +68,8 @@ Capsule::Capsule(CapsuleType capsule_type) : capsule_type_(capsule_type) {
68
68
 
69
69
  // static
70
70
  Capsule Capsule::LegacyDatagram(
71
- absl::optional<QuicDatagramContextId> context_id,
72
71
  absl::string_view http_datagram_payload) {
73
72
  Capsule capsule(CapsuleType::LEGACY_DATAGRAM);
74
- capsule.legacy_datagram_capsule().context_id = context_id;
75
73
  capsule.legacy_datagram_capsule().http_datagram_payload =
76
74
  http_datagram_payload;
77
75
  return capsule;
@@ -134,10 +132,8 @@ bool Capsule::operator==(const Capsule& other) const {
134
132
  }
135
133
  switch (capsule_type_) {
136
134
  case CapsuleType::LEGACY_DATAGRAM:
137
- return legacy_datagram_capsule_.context_id ==
138
- other.legacy_datagram_capsule_.context_id &&
139
- legacy_datagram_capsule_.http_datagram_payload ==
140
- other.legacy_datagram_capsule_.http_datagram_payload;
135
+ return legacy_datagram_capsule_.http_datagram_payload ==
136
+ other.legacy_datagram_capsule_.http_datagram_payload;
141
137
  case CapsuleType::DATAGRAM_WITHOUT_CONTEXT:
142
138
  return datagram_without_context_capsule_.http_datagram_payload ==
143
139
  other.datagram_without_context_capsule_.http_datagram_payload;
@@ -155,10 +151,6 @@ std::string Capsule::ToString() const {
155
151
  std::string rv = CapsuleTypeToString(capsule_type_);
156
152
  switch (capsule_type_) {
157
153
  case CapsuleType::LEGACY_DATAGRAM:
158
- if (legacy_datagram_capsule_.context_id.has_value()) {
159
- absl::StrAppend(&rv, "(", legacy_datagram_capsule_.context_id.value(),
160
- ")");
161
- }
162
154
  absl::StrAppend(&rv, "[",
163
155
  absl::BytesToHexString(
164
156
  legacy_datagram_capsule_.http_datagram_payload),
@@ -203,10 +195,6 @@ quiche::QuicheBuffer SerializeCapsule(
203
195
  case CapsuleType::LEGACY_DATAGRAM:
204
196
  capsule_data_length =
205
197
  capsule.legacy_datagram_capsule().http_datagram_payload.length();
206
- if (capsule.legacy_datagram_capsule().context_id.has_value()) {
207
- capsule_data_length += QuicDataWriter::GetVarInt62Len(
208
- capsule.legacy_datagram_capsule().context_id.value());
209
- }
210
198
  break;
211
199
  case CapsuleType::DATAGRAM_WITHOUT_CONTEXT:
212
200
  capsule_data_length = capsule.datagram_without_context_capsule()
@@ -237,14 +225,6 @@ quiche::QuicheBuffer SerializeCapsule(
237
225
  }
238
226
  switch (capsule.capsule_type()) {
239
227
  case CapsuleType::LEGACY_DATAGRAM:
240
- if (capsule.legacy_datagram_capsule().context_id.has_value()) {
241
- if (!writer.WriteVarInt62(
242
- capsule.legacy_datagram_capsule().context_id.value())) {
243
- QUIC_BUG(datagram capsule context ID write fail)
244
- << "Failed to write LEGACY_DATAGRAM CAPSULE context ID";
245
- return {};
246
- }
247
- }
248
228
  if (!writer.WriteStringPiece(
249
229
  capsule.legacy_datagram_capsule().http_datagram_payload)) {
250
230
  QUIC_BUG(datagram capsule payload write fail)
@@ -31,7 +31,6 @@ QUIC_EXPORT_PRIVATE std::ostream& operator<<(std::ostream& os,
31
31
  const CapsuleType& capsule_type);
32
32
 
33
33
  struct QUIC_EXPORT_PRIVATE LegacyDatagramCapsule {
34
- absl::optional<QuicDatagramContextId> context_id;
35
34
  absl::string_view http_datagram_payload;
36
35
  };
37
36
  struct QUIC_EXPORT_PRIVATE DatagramWithoutContextCapsule {
@@ -50,7 +49,6 @@ struct QUIC_EXPORT_PRIVATE CloseWebTransportSessionCapsule {
50
49
  class QUIC_EXPORT_PRIVATE Capsule {
51
50
  public:
52
51
  static Capsule LegacyDatagram(
53
- absl::optional<QuicDatagramContextId> context_id = absl::nullopt,
54
52
  absl::string_view http_datagram_payload = absl::string_view());
55
53
  static Capsule DatagramWithoutContext(
56
54
  absl::string_view http_datagram_payload = absl::string_view());
@@ -74,8 +74,7 @@ TEST_F(CapsuleTest, LegacyDatagramCapsule) {
74
74
  "a1a2a3a4a5a6a7a8" // HTTP Datagram payload
75
75
  );
76
76
  std::string datagram_payload = absl::HexStringToBytes("a1a2a3a4a5a6a7a8");
77
- Capsule expected_capsule =
78
- Capsule::LegacyDatagram(/*context_id=*/absl::nullopt, datagram_payload);
77
+ Capsule expected_capsule = Capsule::LegacyDatagram(datagram_payload);
79
78
  {
80
79
  EXPECT_CALL(visitor_, OnCapsule(expected_capsule));
81
80
  ASSERT_TRUE(capsule_parser_.IngestCapsuleFragment(capsule_fragment));
@@ -17,10 +17,12 @@
17
17
  #include "absl/time/time.h"
18
18
  #include "quiche/quic/core/crypto/null_encrypter.h"
19
19
  #include "quiche/quic/core/crypto/quic_client_session_cache.h"
20
+ #include "quiche/quic/core/frames/quic_blocked_frame.h"
20
21
  #include "quiche/quic/core/http/http_constants.h"
21
22
  #include "quiche/quic/core/http/quic_spdy_client_stream.h"
22
23
  #include "quiche/quic/core/http/web_transport_http3.h"
23
24
  #include "quiche/quic/core/quic_connection.h"
25
+ #include "quiche/quic/core/quic_constants.h"
24
26
  #include "quiche/quic/core/quic_data_writer.h"
25
27
  #include "quiche/quic/core/quic_epoll_connection_helper.h"
26
28
  #include "quiche/quic/core/quic_error_codes.h"
@@ -91,27 +93,39 @@ const char kFooResponseBody[] = "Artichoke hearts make me happy.";
91
93
  const char kBarResponseBody[] = "Palm hearts are pretty delicious, also.";
92
94
  const char kTestUserAgentId[] = "quic/core/http/end_to_end_test.cc";
93
95
  const float kSessionToStreamRatio = 1.5;
96
+ const int kLongConnectionIdLength = 16;
94
97
 
95
98
  // Run all tests with the cross products of all versions.
96
99
  struct TestParams {
97
- TestParams(const ParsedQuicVersion& version, QuicTag congestion_control_tag)
98
- : version(version), congestion_control_tag(congestion_control_tag) {}
100
+ TestParams(const ParsedQuicVersion& version, QuicTag congestion_control_tag,
101
+ int override_server_connection_id_length)
102
+ : version(version),
103
+ congestion_control_tag(congestion_control_tag),
104
+ override_server_connection_id_length(
105
+ override_server_connection_id_length) {}
99
106
 
100
107
  friend std::ostream& operator<<(std::ostream& os, const TestParams& p) {
101
108
  os << "{ version: " << ParsedQuicVersionToString(p.version);
102
109
  os << " congestion_control_tag: "
103
- << QuicTagToString(p.congestion_control_tag) << " }";
110
+ << QuicTagToString(p.congestion_control_tag)
111
+ << " connection ID length: " << p.override_server_connection_id_length
112
+ << " }";
104
113
  return os;
105
114
  }
106
115
 
107
116
  ParsedQuicVersion version;
108
117
  QuicTag congestion_control_tag;
118
+ int override_server_connection_id_length;
109
119
  };
110
120
 
111
121
  // Used by ::testing::PrintToStringParamName().
112
122
  std::string PrintToString(const TestParams& p) {
113
- std::string rv = absl::StrCat(ParsedQuicVersionToString(p.version), "_",
114
- QuicTagToString(p.congestion_control_tag));
123
+ std::string rv = absl::StrCat(
124
+ ParsedQuicVersionToString(p.version), "_",
125
+ QuicTagToString(p.congestion_control_tag), "_",
126
+ std::to_string((p.override_server_connection_id_length == -1)
127
+ ? static_cast<int>(kQuicDefaultConnectionIdLength)
128
+ : p.override_server_connection_id_length));
115
129
  std::replace(rv.begin(), rv.end(), ',', '_');
116
130
  std::replace(rv.begin(), rv.end(), ' ', '_');
117
131
  return rv;
@@ -120,15 +134,27 @@ std::string PrintToString(const TestParams& p) {
120
134
  // Constructs various test permutations.
121
135
  std::vector<TestParams> GetTestParams() {
122
136
  std::vector<TestParams> params;
123
- for (const QuicTag congestion_control_tag : {kRENO, kTBBR, kQBIC, kB2ON}) {
124
- if (!GetQuicReloadableFlag(quic_allow_client_enabled_bbr_v2) &&
125
- congestion_control_tag == kB2ON) {
126
- continue;
127
- }
128
- for (const ParsedQuicVersion& version : CurrentSupportedVersions()) {
129
- params.push_back(TestParams(version, congestion_control_tag));
130
- } // End of outer version loop.
131
- } // End of congestion_control_tag loop.
137
+ std::vector<int> connection_id_lengths{-1, kLongConnectionIdLength};
138
+ for (auto connection_id_length : connection_id_lengths) {
139
+ for (const QuicTag congestion_control_tag : {kTBBR, kQBIC, kB2ON}) {
140
+ if (!GetQuicReloadableFlag(quic_allow_client_enabled_bbr_v2) &&
141
+ congestion_control_tag == kB2ON) {
142
+ continue;
143
+ }
144
+ for (const ParsedQuicVersion& version : CurrentSupportedVersions()) {
145
+ // TODO(b/232269029): Q050 should be able to handle 0-RTT when the
146
+ // initial connection ID is > 8 bytes, but it cannot. This is an
147
+ // invasive fix that has no impact as long as gQUIC clients always use
148
+ // 8B server connection IDs. If this bug is fixed, we can change
149
+ // 'UsesTls' to 'AllowsVariableLengthConnectionIds()' below to test
150
+ // qQUIC as well.
151
+ if (connection_id_length == -1 || version.UsesTls()) {
152
+ params.push_back(TestParams(version, congestion_control_tag,
153
+ connection_id_length));
154
+ }
155
+ } // End of outer version loop.
156
+ } // End of congestion_control_tag loop.
157
+ } // End of connection_id_length loop.
132
158
 
133
159
  return params;
134
160
  }
@@ -182,6 +208,8 @@ class EndToEndTest : public QuicTestWithParam<TestParams> {
182
208
  server_supported_versions_(CurrentSupportedVersions()),
183
209
  chlo_multiplier_(0),
184
210
  stream_factory_(nullptr),
211
+ override_server_connection_id_length_(
212
+ GetParam().override_server_connection_id_length),
185
213
  expected_server_connection_id_length_(kQuicDefaultConnectionIdLength) {
186
214
  QUIC_LOG(INFO) << "Using Configuration: " << GetParam();
187
215
 
@@ -796,7 +824,7 @@ class EndToEndTest : public QuicTestWithParam<TestParams> {
796
824
  }
797
825
  }
798
826
 
799
- ScopedEnvironmentForThreads environment_;
827
+ quiche::test::ScopedEnvironmentForThreads environment_;
800
828
  bool initialized_;
801
829
  // If true, the Initialize() function will create |client_| and starts to
802
830
  // connect to the server.
@@ -820,7 +848,7 @@ class EndToEndTest : public QuicTestWithParam<TestParams> {
820
848
  QuicTestServer::StreamFactory* stream_factory_;
821
849
  std::string pre_shared_key_client_;
822
850
  std::string pre_shared_key_server_;
823
- int override_server_connection_id_length_ = -1;
851
+ int override_server_connection_id_length_;
824
852
  int override_client_connection_id_length_ = -1;
825
853
  uint8_t expected_server_connection_id_length_;
826
854
  bool enable_web_transport_ = false;
@@ -1080,7 +1108,8 @@ TEST_P(EndToEndTest, ForcedVersionNegotiation) {
1080
1108
  }
1081
1109
 
1082
1110
  TEST_P(EndToEndTest, SimpleRequestResponseZeroConnectionID) {
1083
- if (!version_.AllowsVariableLengthConnectionIds()) {
1111
+ if (!version_.AllowsVariableLengthConnectionIds() ||
1112
+ override_server_connection_id_length_ > -1) {
1084
1113
  ASSERT_TRUE(Initialize());
1085
1114
  return;
1086
1115
  }
@@ -1098,7 +1127,8 @@ TEST_P(EndToEndTest, SimpleRequestResponseZeroConnectionID) {
1098
1127
  }
1099
1128
 
1100
1129
  TEST_P(EndToEndTest, ZeroConnectionID) {
1101
- if (!version_.AllowsVariableLengthConnectionIds()) {
1130
+ if (!version_.AllowsVariableLengthConnectionIds() ||
1131
+ override_server_connection_id_length_ > -1) {
1102
1132
  ASSERT_TRUE(Initialize());
1103
1133
  return;
1104
1134
  }
@@ -1114,7 +1144,8 @@ TEST_P(EndToEndTest, ZeroConnectionID) {
1114
1144
  }
1115
1145
 
1116
1146
  TEST_P(EndToEndTest, BadConnectionIdLength) {
1117
- if (!version_.AllowsVariableLengthConnectionIds()) {
1147
+ if (!version_.AllowsVariableLengthConnectionIds() ||
1148
+ override_server_connection_id_length_ > -1) {
1118
1149
  ASSERT_TRUE(Initialize());
1119
1150
  return;
1120
1151
  }
@@ -1128,23 +1159,6 @@ TEST_P(EndToEndTest, BadConnectionIdLength) {
1128
1159
  .length());
1129
1160
  }
1130
1161
 
1131
- // Tests a very long (16-byte) initial destination connection ID to make
1132
- // sure the dispatcher properly replaces it with an 8-byte one.
1133
- TEST_P(EndToEndTest, LongBadConnectionIdLength) {
1134
- if (!version_.AllowsVariableLengthConnectionIds()) {
1135
- ASSERT_TRUE(Initialize());
1136
- return;
1137
- }
1138
- override_server_connection_id_length_ = 16;
1139
- ASSERT_TRUE(Initialize());
1140
- SendSynchronousFooRequestAndCheckResponse();
1141
- EXPECT_EQ(kQuicDefaultConnectionIdLength, client_->client()
1142
- ->client_session()
1143
- ->connection()
1144
- ->connection_id()
1145
- .length());
1146
- }
1147
-
1148
1162
  TEST_P(EndToEndTest, ClientConnectionId) {
1149
1163
  if (!version_.SupportsClientConnectionIds()) {
1150
1164
  ASSERT_TRUE(Initialize());
@@ -1179,7 +1193,8 @@ TEST_P(EndToEndTest, ForcedVersionNegotiationAndClientConnectionId) {
1179
1193
  }
1180
1194
 
1181
1195
  TEST_P(EndToEndTest, ForcedVersionNegotiationAndBadConnectionIdLength) {
1182
- if (!version_.AllowsVariableLengthConnectionIds()) {
1196
+ if (!version_.AllowsVariableLengthConnectionIds() ||
1197
+ override_server_connection_id_length_ > -1) {
1183
1198
  ASSERT_TRUE(Initialize());
1184
1199
  return;
1185
1200
  }
@@ -1200,13 +1215,13 @@ TEST_P(EndToEndTest, ForcedVersionNegotiationAndBadConnectionIdLength) {
1200
1215
  // connection ID.
1201
1216
  TEST_P(EndToEndTest, ForcedVersNegoAndClientCIDAndLongCID) {
1202
1217
  if (!version_.SupportsClientConnectionIds() ||
1203
- !version_.AllowsVariableLengthConnectionIds()) {
1218
+ !version_.AllowsVariableLengthConnectionIds() ||
1219
+ override_server_connection_id_length_ != kLongConnectionIdLength) {
1204
1220
  ASSERT_TRUE(Initialize());
1205
1221
  return;
1206
1222
  }
1207
1223
  client_supported_versions_.insert(client_supported_versions_.begin(),
1208
1224
  QuicVersionReservedForNegotiation());
1209
- override_server_connection_id_length_ = 16;
1210
1225
  override_client_connection_id_length_ = 18;
1211
1226
  ASSERT_TRUE(Initialize());
1212
1227
  ASSERT_TRUE(ServerSendsVersionNegotiation());
@@ -1224,7 +1239,8 @@ TEST_P(EndToEndTest, ForcedVersNegoAndClientCIDAndLongCID) {
1224
1239
  }
1225
1240
 
1226
1241
  TEST_P(EndToEndTest, MixGoodAndBadConnectionIdLengths) {
1227
- if (!version_.AllowsVariableLengthConnectionIds()) {
1242
+ if (!version_.AllowsVariableLengthConnectionIds() ||
1243
+ override_server_connection_id_length_ > -1) {
1228
1244
  ASSERT_TRUE(Initialize());
1229
1245
  return;
1230
1246
  }
@@ -1372,7 +1388,8 @@ TEST_P(EndToEndTest, MultipleRequestResponse) {
1372
1388
  }
1373
1389
 
1374
1390
  TEST_P(EndToEndTest, MultipleRequestResponseZeroConnectionID) {
1375
- if (!version_.AllowsVariableLengthConnectionIds()) {
1391
+ if (!version_.AllowsVariableLengthConnectionIds() ||
1392
+ override_server_connection_id_length_ > -1) {
1376
1393
  ASSERT_TRUE(Initialize());
1377
1394
  return;
1378
1395
  }
@@ -1531,7 +1548,14 @@ TEST_P(EndToEndTest, LargePostWithPacketLoss) {
1531
1548
 
1532
1549
  EXPECT_EQ(kFooResponseBody,
1533
1550
  client_->SendCustomSynchronousRequest(headers, body));
1534
- VerifyCleanConnection(true);
1551
+ if (override_server_connection_id_length_ == -1) {
1552
+ // If the client sends a longer connection ID, we can end up with dropped
1553
+ // packets. The packets_dropped counter increments whenever a packet arrives
1554
+ // with a new server connection ID that is not INITIAL, RETRY, or 1-RTT.
1555
+ // With packet losses, we could easily lose a server INITIAL and have the
1556
+ // first observed server packet be HANDSHAKE.
1557
+ VerifyCleanConnection(true);
1558
+ }
1535
1559
  }
1536
1560
 
1537
1561
  // Regression test for b/80090281.
@@ -4454,6 +4478,72 @@ class ServerStreamThatSendsHugeResponseFactory
4454
4478
  int64_t body_bytes_;
4455
4479
  };
4456
4480
 
4481
+ class BlockedFrameObserver : public QuicConnectionDebugVisitor {
4482
+ public:
4483
+ std::vector<QuicBlockedFrame> blocked_frames() const {
4484
+ return blocked_frames_;
4485
+ }
4486
+
4487
+ void OnBlockedFrame(const QuicBlockedFrame& frame) override {
4488
+ blocked_frames_.push_back(frame);
4489
+ }
4490
+
4491
+ private:
4492
+ std::vector<QuicBlockedFrame> blocked_frames_;
4493
+ };
4494
+
4495
+ TEST_P(EndToEndTest, BlockedFrameIncludesOffset) {
4496
+ if (!version_.HasIetfQuicFrames()) {
4497
+ // For Google QUIC, the BLOCKED frame offset is ignored.
4498
+ Initialize();
4499
+ return;
4500
+ }
4501
+
4502
+ set_smaller_flow_control_receive_window();
4503
+ ASSERT_TRUE(Initialize());
4504
+
4505
+ // Observe the connection for BLOCKED frames.
4506
+ BlockedFrameObserver observer;
4507
+ QuicConnection* client_connection = GetClientConnection();
4508
+ ASSERT_TRUE(client_connection);
4509
+ client_connection->set_debug_visitor(&observer);
4510
+
4511
+ // Set the response body larger than the flow control window so the server
4512
+ // must receive a window update from the client before it can finish sending
4513
+ // it (hence, causing the server to send a BLOCKED frame)
4514
+ uint32_t response_body_size =
4515
+ client_config_.GetInitialSessionFlowControlWindowToSend() + 10;
4516
+ std::string response_body(response_body_size, 'a');
4517
+ AddToCache("/blocked", 200, response_body);
4518
+ SendSynchronousRequestAndCheckResponse("/blocked", response_body);
4519
+ client_->Disconnect();
4520
+
4521
+ bool include_offset_flag =
4522
+ GetQuicReloadableFlag(quic_include_offset_in_blocked_frames);
4523
+ QuicStreamOffset expected_connection_offset =
4524
+ include_offset_flag
4525
+ ? client_config_.GetInitialSessionFlowControlWindowToSend()
4526
+ : 0;
4527
+ QuicStreamOffset expected_stream_offset =
4528
+ include_offset_flag
4529
+ ? client_config_.GetInitialStreamFlowControlWindowToSend()
4530
+ : 0;
4531
+
4532
+ ASSERT_GE(observer.blocked_frames().size(), static_cast<uint64_t>(0));
4533
+ for (const QuicBlockedFrame& frame : observer.blocked_frames()) {
4534
+ if (frame.stream_id ==
4535
+ QuicUtils::GetInvalidStreamId(version_.transport_version)) {
4536
+ // connection-level BLOCKED frame
4537
+ ASSERT_EQ(frame.offset, expected_connection_offset);
4538
+ } else {
4539
+ // stream-level BLOCKED frame
4540
+ ASSERT_EQ(frame.offset, expected_stream_offset);
4541
+ }
4542
+ }
4543
+
4544
+ client_connection->set_debug_visitor(nullptr);
4545
+ }
4546
+
4457
4547
  TEST_P(EndToEndTest, EarlyResponseFinRecording) {
4458
4548
  set_smaller_flow_control_receive_window();
4459
4549
 
@@ -4774,6 +4864,8 @@ TEST_P(EndToEndTest, SendStatelessResetTokenInShlo) {
4774
4864
  // Regression test for b/116200989.
4775
4865
  TEST_P(EndToEndTest,
4776
4866
  SendStatelessResetIfServerConnectionClosedLocallyDuringHandshake) {
4867
+ SetQuicReloadableFlag(
4868
+ quic_consider_original_connection_id_as_active_pre_handshake, true);
4777
4869
  connect_to_server_on_initialize_ = false;
4778
4870
  ASSERT_TRUE(Initialize());
4779
4871
 
@@ -5562,14 +5654,12 @@ TEST_P(EndToEndPacketReorderingTest, Buffer0RttRequest) {
5562
5654
  // Disconnect for next 0-rtt request.
5563
5655
  client_->Disconnect();
5564
5656
 
5565
- // Client get valid STK now. Do a 0-rtt request.
5566
- // Buffer a CHLO till another packets sent out.
5567
- reorder_writer_->SetDelay(1);
5657
+ // Client has valid Session Ticket now. Do a 0-RTT request.
5658
+ // Buffer a CHLO till the request is sent out. HTTP/3 sends two packets: a
5659
+ // SETTINGS frame and a request.
5660
+ reorder_writer_->SetDelay(version_.UsesHttp3() ? 2 : 1);
5568
5661
  // Only send out a CHLO.
5569
5662
  client_->client()->Initialize();
5570
- client_->client()->StartConnect();
5571
- EXPECT_TRUE(client_->client()->WaitForOneRttKeysAvailable());
5572
- ASSERT_TRUE(client_->client()->connected());
5573
5663
 
5574
5664
  // Send a request before handshake finishes.
5575
5665
  SpdyHeaderBlock headers;
@@ -5584,10 +5674,7 @@ TEST_P(EndToEndPacketReorderingTest, Buffer0RttRequest) {
5584
5674
  QuicConnection* client_connection = GetClientConnection();
5585
5675
  ASSERT_TRUE(client_connection);
5586
5676
  QuicConnectionStats client_stats = client_connection->GetStats();
5587
- // Client sends CHLO in packet 1 and retransmitted in packet 2. Because of
5588
- // the delay, server processes packet 2 and later drops packet 1. ACK is
5589
- // bundled with SHLO, such that 1 can be detected loss by time threshold.
5590
- EXPECT_LE(0u, client_stats.packets_lost);
5677
+ EXPECT_EQ(0u, client_stats.packets_lost);
5591
5678
  EXPECT_TRUE(client_->client()->EarlyDataAccepted());
5592
5679
  }
5593
5680
 
@@ -5853,7 +5940,8 @@ TEST_P(EndToEndTest, CustomTransportParameters) {
5853
5940
  }
5854
5941
 
5855
5942
  TEST_P(EndToEndTest, LegacyVersionEncapsulation) {
5856
- if (!version_.HasLongHeaderLengths()) {
5943
+ if (!version_.HasLongHeaderLengths() ||
5944
+ override_server_connection_id_length_ > -1) {
5857
5945
  // Decapsulating Legacy Version Encapsulation packets from these versions
5858
5946
  // is not currently supported in QuicDispatcher.
5859
5947
  ASSERT_TRUE(Initialize());
@@ -5870,7 +5958,8 @@ TEST_P(EndToEndTest, LegacyVersionEncapsulation) {
5870
5958
  }
5871
5959
 
5872
5960
  TEST_P(EndToEndTest, LegacyVersionEncapsulationWithMultiPacketChlo) {
5873
- if (!version_.HasLongHeaderLengths()) {
5961
+ if (!version_.HasLongHeaderLengths() ||
5962
+ override_server_connection_id_length_ > -1) {
5874
5963
  // Decapsulating Legacy Version Encapsulation packets from these versions
5875
5964
  // is not currently supported in QuicDispatcher.
5876
5965
  ASSERT_TRUE(Initialize());
@@ -5897,7 +5986,8 @@ TEST_P(EndToEndTest, LegacyVersionEncapsulationWithMultiPacketChlo) {
5897
5986
  }
5898
5987
 
5899
5988
  TEST_P(EndToEndTest, LegacyVersionEncapsulationWithVersionNegotiation) {
5900
- if (!version_.HasLongHeaderLengths()) {
5989
+ if (!version_.HasLongHeaderLengths() ||
5990
+ override_server_connection_id_length_ > -1) {
5901
5991
  // Decapsulating Legacy Version Encapsulation packets from these versions
5902
5992
  // is not currently supported in QuicDispatcher.
5903
5993
  ASSERT_TRUE(Initialize());
@@ -5916,7 +6006,8 @@ TEST_P(EndToEndTest, LegacyVersionEncapsulationWithVersionNegotiation) {
5916
6006
  }
5917
6007
 
5918
6008
  TEST_P(EndToEndTest, LegacyVersionEncapsulationWithLoss) {
5919
- if (!version_.HasLongHeaderLengths()) {
6009
+ if (!version_.HasLongHeaderLengths() ||
6010
+ override_server_connection_id_length_ > -1) {
5920
6011
  // Decapsulating Legacy Version Encapsulation packets from these versions
5921
6012
  // is not currently supported in QuicDispatcher.
5922
6013
  ASSERT_TRUE(Initialize());
@@ -5979,7 +6070,7 @@ TEST_P(EndToEndTest, ChaosProtectionDisabled) {
5979
6070
  // Parse the saved packet to make sure it's valid.
5980
6071
  SimpleQuicFramer validation_framer({version_});
5981
6072
  validation_framer.framer()->SetInitialObfuscators(
5982
- GetClientConnection()->connection_id());
6073
+ GetClientConnection()->GetOriginalDestinationConnectionId());
5983
6074
  ASSERT_GT(copying_writer->packets().size(), 0u);
5984
6075
  EXPECT_TRUE(validation_framer.ProcessPacket(*copying_writer->packets()[0]));
5985
6076
  // TODO(dschinazi) figure out a way to use a MockRandom in this test so we
@@ -17,8 +17,8 @@ std::string H3SettingsToString(Http3AndQpackSettingsIdentifiers identifier) {
17
17
  RETURN_STRING_LITERAL(SETTINGS_QPACK_MAX_TABLE_CAPACITY);
18
18
  RETURN_STRING_LITERAL(SETTINGS_MAX_FIELD_SECTION_SIZE);
19
19
  RETURN_STRING_LITERAL(SETTINGS_QPACK_BLOCKED_STREAMS);
20
- RETURN_STRING_LITERAL(SETTINGS_H3_DATAGRAM_DRAFT00);
21
20
  RETURN_STRING_LITERAL(SETTINGS_H3_DATAGRAM_DRAFT04);
21
+ RETURN_STRING_LITERAL(SETTINGS_H3_DATAGRAM_DRAFT09);
22
22
  RETURN_STRING_LITERAL(SETTINGS_WEBTRANS_DRAFT00);
23
23
  RETURN_STRING_LITERAL(SETTINGS_ENABLE_CONNECT_PROTOCOL);
24
24
  }
@@ -38,10 +38,10 @@ enum Http3AndQpackSettingsIdentifiers : uint64_t {
38
38
  // Same value as spdy::SETTINGS_MAX_HEADER_LIST_SIZE.
39
39
  SETTINGS_MAX_FIELD_SECTION_SIZE = 0x06,
40
40
  SETTINGS_QPACK_BLOCKED_STREAMS = 0x07,
41
- // draft-ietf-masque-h3-datagram-00.
42
- SETTINGS_H3_DATAGRAM_DRAFT00 = 0x276,
43
41
  // draft-ietf-masque-h3-datagram-04.
44
42
  SETTINGS_H3_DATAGRAM_DRAFT04 = 0xffd277,
43
+ // draft-ietf-masque-h3-datagram-09.
44
+ SETTINGS_H3_DATAGRAM_DRAFT09 = 0x33,
45
45
  // draft-ietf-webtrans-http3-00
46
46
  SETTINGS_WEBTRANS_DRAFT00 = 0x2b603742,
47
47
  // draft-ietf-httpbis-h3-websockets
@@ -12,7 +12,7 @@
12
12
  using ::testing::ElementsAre;
13
13
  using ::testing::Pair;
14
14
 
15
- namespace quic {
15
+ namespace quic::test {
16
16
 
17
17
  class QuicHeaderListTest : public QuicTest {};
18
18
 
@@ -83,4 +83,4 @@ TEST_F(QuicHeaderListTest, IsCopyableAndAssignable) {
83
83
  Pair("beep", "")));
84
84
  }
85
85
 
86
- } // namespace quic
86
+ } // namespace quic::test
@@ -101,9 +101,9 @@ class MockVisitor : public SpdyFramerVisitorInterface {
101
101
  (SpdyStreamId last_accepted_stream_id, SpdyErrorCode error_code),
102
102
  (override));
103
103
  MOCK_METHOD(void, OnHeaders,
104
- (SpdyStreamId stream_id, bool has_priority, int weight,
105
- SpdyStreamId parent_stream_id, bool exclusive, bool fin,
106
- bool end),
104
+ (SpdyStreamId stream_id, size_t payload_length, bool has_priority,
105
+ int weight, SpdyStreamId parent_stream_id, bool exclusive,
106
+ bool fin, bool end),
107
107
  (override));
108
108
  MOCK_METHOD(void, OnWindowUpdate,
109
109
  (SpdyStreamId stream_id, int delta_window_size), (override));
@@ -111,7 +111,8 @@ class MockVisitor : public SpdyFramerVisitorInterface {
111
111
  (SpdyStreamId stream_id, SpdyStreamId promised_stream_id,
112
112
  bool end),
113
113
  (override));
114
- MOCK_METHOD(void, OnContinuation, (SpdyStreamId stream_id, bool end),
114
+ MOCK_METHOD(void, OnContinuation,
115
+ (SpdyStreamId stream_id, size_t payload_size, bool end),
115
116
  (override));
116
117
  MOCK_METHOD(
117
118
  void, OnAltSvc,
@@ -281,17 +282,20 @@ class QuicHeadersStreamTest : public QuicTestWithParam<TestParams> {
281
282
 
282
283
  // Parse the outgoing data and check that it matches was was written.
283
284
  if (is_request) {
284
- EXPECT_CALL(visitor_,
285
- OnHeaders(stream_id, kHasPriority,
286
- Spdy3PriorityToHttp2Weight(priority),
287
- /*parent_stream_id=*/0,
288
- /*exclusive=*/false, fin, kFrameComplete));
285
+ EXPECT_CALL(
286
+ visitor_,
287
+ OnHeaders(stream_id, saved_data_.length() - spdy::kFrameHeaderSize,
288
+ kHasPriority, Spdy3PriorityToHttp2Weight(priority),
289
+ /*parent_stream_id=*/0,
290
+ /*exclusive=*/false, fin, kFrameComplete));
289
291
  } else {
290
- EXPECT_CALL(visitor_,
291
- OnHeaders(stream_id, !kHasPriority,
292
- /*weight=*/0,
293
- /*parent_stream_id=*/0,
294
- /*exclusive=*/false, fin, kFrameComplete));
292
+ EXPECT_CALL(
293
+ visitor_,
294
+ OnHeaders(stream_id, saved_data_.length() - spdy::kFrameHeaderSize,
295
+ !kHasPriority,
296
+ /*weight=*/0,
297
+ /*parent_stream_id=*/0,
298
+ /*exclusive=*/false, fin, kFrameComplete));
295
299
  }
296
300
  headers_handler_ = std::make_unique<RecordingHeadersHandler>();
297
301
  EXPECT_CALL(visitor_, OnHeaderFrameStart(stream_id))
@@ -10,6 +10,7 @@
10
10
  #include "quiche/quic/core/quic_types.h"
11
11
  #include "quiche/quic/platform/api/quic_export.h"
12
12
  #include "quiche/quic/platform/api/quic_logging.h"
13
+ #include "quiche/common/platform/api/quiche_logging.h"
13
14
 
14
15
  namespace quic {
15
16
 
@@ -46,7 +47,7 @@ class QUIC_EXPORT_PRIVATE QuicSendControlStream : public QuicStream {
46
47
 
47
48
  // The send control stream is write unidirectional, so this method should
48
49
  // never be called.
49
- void OnDataAvailable() override { QUIC_NOTREACHED(); }
50
+ void OnDataAvailable() override { QUICHE_NOTREACHED(); }
50
51
 
51
52
  private:
52
53
  // Track if a settings frame is already sent.