@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
@@ -257,16 +257,17 @@ bool Http2TraceLogger::OnGoAwayFrameData(const char* goaway_data, size_t len) {
257
257
  return wrapped_->OnGoAwayFrameData(goaway_data, len);
258
258
  }
259
259
 
260
- void Http2TraceLogger::OnHeaders(SpdyStreamId stream_id, bool has_priority,
261
- int weight, SpdyStreamId parent_stream_id,
262
- bool exclusive, bool fin, bool end) {
260
+ void Http2TraceLogger::OnHeaders(SpdyStreamId stream_id, size_t payload_length,
261
+ bool has_priority, int weight,
262
+ SpdyStreamId parent_stream_id, bool exclusive,
263
+ bool fin, bool end) {
263
264
  HTTP2_TRACE_LOG(perspective_, is_enabled_)
264
265
  << "OnHeaders:" << FORMAT_ARG(connection_id_) << FORMAT_ARG(stream_id)
265
- << FORMAT_ARG(has_priority) << FORMAT_INT_ARG(weight)
266
- << FORMAT_ARG(parent_stream_id) << FORMAT_ARG(exclusive)
267
- << FORMAT_ARG(fin) << FORMAT_ARG(end);
268
- wrapped_->OnHeaders(stream_id, has_priority, weight, parent_stream_id,
269
- exclusive, fin, end);
266
+ << FORMAT_ARG(payload_length) << FORMAT_ARG(has_priority)
267
+ << FORMAT_INT_ARG(weight) << FORMAT_ARG(parent_stream_id)
268
+ << FORMAT_ARG(exclusive) << FORMAT_ARG(fin) << FORMAT_ARG(end);
269
+ wrapped_->OnHeaders(stream_id, payload_length, has_priority, weight,
270
+ parent_stream_id, exclusive, fin, end);
270
271
  }
271
272
 
272
273
  void Http2TraceLogger::OnWindowUpdate(SpdyStreamId stream_id,
@@ -287,11 +288,12 @@ void Http2TraceLogger::OnPushPromise(SpdyStreamId original_stream_id,
287
288
  wrapped_->OnPushPromise(original_stream_id, promised_stream_id, end);
288
289
  }
289
290
 
290
- void Http2TraceLogger::OnContinuation(SpdyStreamId stream_id, bool end) {
291
+ void Http2TraceLogger::OnContinuation(SpdyStreamId stream_id,
292
+ size_t payload_length, bool end) {
291
293
  HTTP2_TRACE_LOG(perspective_, is_enabled_)
292
294
  << "OnContinuation:" << FORMAT_ARG(connection_id_)
293
- << FORMAT_ARG(stream_id) << FORMAT_ARG(end);
294
- wrapped_->OnContinuation(stream_id, end);
295
+ << FORMAT_ARG(stream_id) << FORMAT_ARG(payload_length) << FORMAT_ARG(end);
296
+ wrapped_->OnContinuation(stream_id, payload_length, end);
295
297
  }
296
298
 
297
299
  void Http2TraceLogger::OnAltSvc(
@@ -71,13 +71,14 @@ class QUICHE_EXPORT_PRIVATE Http2TraceLogger
71
71
  void OnGoAway(SpdyStreamId last_accepted_stream_id,
72
72
  SpdyErrorCode error_code) override;
73
73
  bool OnGoAwayFrameData(const char* goaway_data, size_t len) override;
74
- void OnHeaders(SpdyStreamId stream_id, bool has_priority, int weight,
75
- SpdyStreamId parent_stream_id, bool exclusive, bool fin,
76
- bool end) override;
74
+ void OnHeaders(SpdyStreamId stream_id, size_t payload_length,
75
+ bool has_priority, int weight, SpdyStreamId parent_stream_id,
76
+ bool exclusive, bool fin, bool end) override;
77
77
  void OnWindowUpdate(SpdyStreamId stream_id, int delta_window_size) override;
78
78
  void OnPushPromise(SpdyStreamId stream_id, SpdyStreamId promised_stream_id,
79
79
  bool end) override;
80
- void OnContinuation(SpdyStreamId stream_id, bool end) override;
80
+ void OnContinuation(SpdyStreamId stream_id, size_t payload_length,
81
+ bool end) override;
81
82
  void OnAltSvc(SpdyStreamId stream_id, absl::string_view origin,
82
83
  const SpdyAltSvcWireFormat::AlternativeServiceVector&
83
84
  altsvc_vector) override;
@@ -8,12 +8,13 @@
8
8
  #include <algorithm>
9
9
  #include <cstddef>
10
10
  #include <cstdint>
11
+ #include <memory>
11
12
  #include <string>
12
13
  #include <tuple>
13
- #include <unordered_map>
14
14
  #include <utility>
15
15
  #include <vector>
16
16
 
17
+ #include "absl/container/flat_hash_map.h"
17
18
  #include "absl/strings/str_cat.h"
18
19
  #include "quiche/http2/core/write_scheduler.h"
19
20
  #include "quiche/common/platform/api/quiche_bug_tracker.h"
@@ -66,9 +67,11 @@ class QUICHE_EXPORT_PRIVATE PriorityWriteScheduler
66
67
  << "Stream " << root_stream_id_ << " already registered";
67
68
  return;
68
69
  }
69
- StreamInfo stream_info = {precedence.spdy3_priority(), stream_id, false};
70
+ auto stream_info = std::make_unique<StreamInfo>(
71
+ StreamInfo{precedence.spdy3_priority(), stream_id, false});
70
72
  bool inserted =
71
- stream_infos_.insert(std::make_pair(stream_id, stream_info)).second;
73
+ stream_infos_.insert(std::make_pair(stream_id, std::move(stream_info)))
74
+ .second;
72
75
  QUICHE_BUG_IF(spdy_bug_19_2, !inserted)
73
76
  << "Stream " << stream_id << " already registered";
74
77
  }
@@ -79,10 +82,10 @@ class QUICHE_EXPORT_PRIVATE PriorityWriteScheduler
79
82
  QUICHE_BUG(spdy_bug_19_3) << "Stream " << stream_id << " not registered";
80
83
  return;
81
84
  }
82
- StreamInfo& stream_info = it->second;
83
- if (stream_info.ready) {
84
- bool erased =
85
- Erase(&priority_infos_[stream_info.priority].ready_list, stream_info);
85
+ const StreamInfo* const stream_info = it->second.get();
86
+ if (stream_info->ready) {
87
+ bool erased = Erase(&priority_infos_[stream_info->priority].ready_list,
88
+ stream_info);
86
89
  QUICHE_DCHECK(erased);
87
90
  }
88
91
  stream_infos_.erase(it);
@@ -99,7 +102,7 @@ class QUICHE_EXPORT_PRIVATE PriorityWriteScheduler
99
102
  QUICHE_DVLOG(1) << "Stream " << stream_id << " not registered";
100
103
  return StreamPrecedenceType(spdy::kV3LowestPriority);
101
104
  }
102
- return StreamPrecedenceType(it->second.priority);
105
+ return StreamPrecedenceType(it->second->priority);
103
106
  }
104
107
 
105
108
  void UpdateStreamPrecedence(StreamIdType stream_id,
@@ -120,19 +123,19 @@ class QUICHE_EXPORT_PRIVATE PriorityWriteScheduler
120
123
  QUICHE_DVLOG(1) << "Stream " << stream_id << " not registered";
121
124
  return;
122
125
  }
123
- StreamInfo& stream_info = it->second;
126
+ StreamInfo* const stream_info = it->second.get();
124
127
  spdy::SpdyPriority new_priority = precedence.spdy3_priority();
125
- if (stream_info.priority == new_priority) {
128
+ if (stream_info->priority == new_priority) {
126
129
  return;
127
130
  }
128
- if (stream_info.ready) {
129
- bool erased =
130
- Erase(&priority_infos_[stream_info.priority].ready_list, stream_info);
131
+ if (stream_info->ready) {
132
+ bool erased = Erase(&priority_infos_[stream_info->priority].ready_list,
133
+ stream_info);
131
134
  QUICHE_DCHECK(erased);
132
- priority_infos_[new_priority].ready_list.push_back(&stream_info);
135
+ priority_infos_[new_priority].ready_list.push_back(stream_info);
133
136
  ++num_ready_streams_;
134
137
  }
135
- stream_info.priority = new_priority;
138
+ stream_info->priority = new_priority;
136
139
  }
137
140
 
138
141
  std::vector<StreamIdType> GetStreamChildren(
@@ -147,7 +150,7 @@ class QUICHE_EXPORT_PRIVATE PriorityWriteScheduler
147
150
  QUICHE_BUG(spdy_bug_19_4) << "Stream " << stream_id << " not registered";
148
151
  return;
149
152
  }
150
- PriorityInfo& priority_info = priority_infos_[it->second.priority];
153
+ PriorityInfo& priority_info = priority_infos_[it->second->priority];
151
154
  priority_info.last_event_time_usec =
152
155
  std::max(priority_info.last_event_time_usec, now_in_usec);
153
156
  }
@@ -159,9 +162,9 @@ class QUICHE_EXPORT_PRIVATE PriorityWriteScheduler
159
162
  return 0;
160
163
  }
161
164
  int64_t last_event_time_usec = 0;
162
- const StreamInfo& stream_info = it->second;
165
+ const StreamInfo* const stream_info = it->second.get();
163
166
  for (spdy::SpdyPriority p = spdy::kV3HighestPriority;
164
- p < stream_info.priority; ++p) {
167
+ p < stream_info->priority; ++p) {
165
168
  last_event_time_usec = std::max(last_event_time_usec,
166
169
  priority_infos_[p].last_event_time_usec);
167
170
  }
@@ -179,7 +182,7 @@ class QUICHE_EXPORT_PRIVATE PriorityWriteScheduler
179
182
  p <= spdy::kV3LowestPriority; ++p) {
180
183
  ReadyList& ready_list = priority_infos_[p].ready_list;
181
184
  if (!ready_list.empty()) {
182
- StreamInfo* info = ready_list.front();
185
+ StreamInfo* const info = ready_list.front();
183
186
  ready_list.pop_front();
184
187
  --num_ready_streams_;
185
188
 
@@ -202,9 +205,9 @@ class QUICHE_EXPORT_PRIVATE PriorityWriteScheduler
202
205
  }
203
206
 
204
207
  // If there's a higher priority stream, this stream should yield.
205
- const StreamInfo& stream_info = it->second;
208
+ const StreamInfo* const stream_info = it->second.get();
206
209
  for (spdy::SpdyPriority p = spdy::kV3HighestPriority;
207
- p < stream_info.priority; ++p) {
210
+ p < stream_info->priority; ++p) {
208
211
  if (!priority_infos_[p].ready_list.empty()) {
209
212
  return true;
210
213
  }
@@ -212,7 +215,7 @@ class QUICHE_EXPORT_PRIVATE PriorityWriteScheduler
212
215
 
213
216
  // If this priority level is empty, or this stream is the next up, there's
214
217
  // no need to yield.
215
- const auto& ready_list = priority_infos_[it->second.priority].ready_list;
218
+ const auto& ready_list = priority_infos_[it->second->priority].ready_list;
216
219
  if (ready_list.empty() || ready_list.front()->stream_id == stream_id) {
217
220
  return false;
218
221
  }
@@ -228,18 +231,18 @@ class QUICHE_EXPORT_PRIVATE PriorityWriteScheduler
228
231
  QUICHE_BUG(spdy_bug_19_8) << "Stream " << stream_id << " not registered";
229
232
  return;
230
233
  }
231
- StreamInfo& stream_info = it->second;
232
- if (stream_info.ready) {
234
+ StreamInfo* const stream_info = it->second.get();
235
+ if (stream_info->ready) {
233
236
  return;
234
237
  }
235
- ReadyList& ready_list = priority_infos_[stream_info.priority].ready_list;
238
+ ReadyList& ready_list = priority_infos_[stream_info->priority].ready_list;
236
239
  if (add_to_front) {
237
- ready_list.push_front(&stream_info);
240
+ ready_list.push_front(stream_info);
238
241
  } else {
239
- ready_list.push_back(&stream_info);
242
+ ready_list.push_back(stream_info);
240
243
  }
241
244
  ++num_ready_streams_;
242
- stream_info.ready = true;
245
+ stream_info->ready = true;
243
246
  }
244
247
 
245
248
  void MarkStreamNotReady(StreamIdType stream_id) override {
@@ -248,14 +251,14 @@ class QUICHE_EXPORT_PRIVATE PriorityWriteScheduler
248
251
  QUICHE_BUG(spdy_bug_19_9) << "Stream " << stream_id << " not registered";
249
252
  return;
250
253
  }
251
- StreamInfo& stream_info = it->second;
252
- if (!stream_info.ready) {
254
+ StreamInfo* const stream_info = it->second.get();
255
+ if (!stream_info->ready) {
253
256
  return;
254
257
  }
255
258
  bool erased =
256
- Erase(&priority_infos_[stream_info.priority].ready_list, stream_info);
259
+ Erase(&priority_infos_[stream_info->priority].ready_list, stream_info);
257
260
  QUICHE_DCHECK(erased);
258
- stream_info.ready = false;
261
+ stream_info->ready = false;
259
262
  }
260
263
 
261
264
  // Returns true iff the number of ready streams is non-zero.
@@ -279,7 +282,7 @@ class QUICHE_EXPORT_PRIVATE PriorityWriteScheduler
279
282
  QUICHE_DLOG(INFO) << "Stream " << stream_id << " not registered";
280
283
  return false;
281
284
  }
282
- return it->second.ready;
285
+ return it->second->ready;
283
286
  }
284
287
 
285
288
  private:
@@ -304,12 +307,15 @@ class QUICHE_EXPORT_PRIVATE PriorityWriteScheduler
304
307
  int64_t last_event_time_usec = 0;
305
308
  };
306
309
 
307
- typedef std::unordered_map<StreamIdType, StreamInfo> StreamInfoMap;
310
+ // Use std::unique_ptr, because absl::flat_hash_map does not have pointer
311
+ // stability, but ReadyList stores pointers to the StreamInfo objects.
312
+ using StreamInfoMap =
313
+ absl::flat_hash_map<StreamIdType, std::unique_ptr<StreamInfo>>;
308
314
 
309
315
  // Erases `info` from `ready_list`, returning true if found (and erased), or
310
316
  // false otherwise. Decrements `num_ready_streams_` if an entry is erased.
311
- bool Erase(ReadyList* ready_list, const StreamInfo& info) {
312
- auto it = std::remove(ready_list->begin(), ready_list->end(), &info);
317
+ bool Erase(ReadyList* ready_list, const StreamInfo* info) {
318
+ auto it = std::remove(ready_list->begin(), ready_list->end(), info);
313
319
  if (it == ready_list->end()) {
314
320
  // `info` was not found.
315
321
  return false;
@@ -4,8 +4,8 @@
4
4
 
5
5
  #include "quiche/http2/core/priority_write_scheduler.h"
6
6
 
7
+ #include "quiche/common/platform/api/quiche_expect_bug.h"
7
8
  #include "quiche/common/platform/api/quiche_test.h"
8
- #include "quiche/common/platform/api/quiche_test_helpers.h"
9
9
  #include "quiche/spdy/core/spdy_protocol.h"
10
10
  #include "quiche/spdy/test_tools/spdy_test_utils.h"
11
11
 
@@ -35,7 +35,7 @@ class PriorityWriteSchedulerPeer {
35
35
 
36
36
  namespace {
37
37
 
38
- class PriorityWriteSchedulerTest : public QuicheTest {
38
+ class PriorityWriteSchedulerTest : public quiche::test::QuicheTest {
39
39
  public:
40
40
  PriorityWriteSchedulerTest() : peer_(&scheduler_) {}
41
41
 
@@ -43,7 +43,7 @@ struct TestStruct {
43
43
  TestEnum8 f8;
44
44
  };
45
45
 
46
- class DecodeBufferTest : public QuicheTest {
46
+ class DecodeBufferTest : public quiche::test::QuicheTest {
47
47
  protected:
48
48
  Http2Random random_;
49
49
  uint32_t decode_offset_;
@@ -124,12 +124,12 @@ TEST_F(DecodeBufferTest, DecodeBufferSubsetAdvancesCursor) {
124
124
  // Make sure that DecodeBuffer ctor complains about bad args.
125
125
  #if GTEST_HAS_DEATH_TEST && !defined(NDEBUG)
126
126
  TEST(DecodeBufferDeathTest, NonNullBufferRequired) {
127
- EXPECT_DEBUG_DEATH({ DecodeBuffer b(nullptr, 3); }, "nullptr");
127
+ EXPECT_QUICHE_DEBUG_DEATH({ DecodeBuffer b(nullptr, 3); }, "nullptr");
128
128
  }
129
129
 
130
130
  // Make sure that DecodeBuffer ctor complains about bad args.
131
131
  TEST(DecodeBufferDeathTest, ModestBufferSizeRequired) {
132
- EXPECT_DEBUG_DEATH(
132
+ EXPECT_QUICHE_DEBUG_DEATH(
133
133
  {
134
134
  // This depends on being able to allocate a fairly large array on the
135
135
  // stack. If that fails, we can instead do this:
@@ -152,7 +152,7 @@ TEST(DecodeBufferDeathTest, LimitedAdvance) {
152
152
  b.AdvanceCursor(3); // OK
153
153
  EXPECT_TRUE(b.Empty());
154
154
  }
155
- EXPECT_DEBUG_DEATH(
155
+ EXPECT_QUICHE_DEBUG_DEATH(
156
156
  {
157
157
  // Going beyond is not OK.
158
158
  const char data[] = "abc";
@@ -168,7 +168,7 @@ TEST(DecodeBufferDeathTest, DecodeUInt8PastEnd) {
168
168
  DecodeBuffer b(data, sizeof data);
169
169
  EXPECT_EQ(2u, b.FullSize());
170
170
  EXPECT_EQ(0x1223, b.DecodeUInt16());
171
- EXPECT_DEBUG_DEATH({ b.DecodeUInt8(); }, "1 vs. 0");
171
+ EXPECT_QUICHE_DEBUG_DEATH({ b.DecodeUInt8(); }, "1 vs. 0");
172
172
  }
173
173
 
174
174
  // Make sure that DecodeBuffer detects decode beyond end, in debug mode.
@@ -177,7 +177,7 @@ TEST(DecodeBufferDeathTest, DecodeUInt16OverEnd) {
177
177
  DecodeBuffer b(data, sizeof data);
178
178
  EXPECT_EQ(3u, b.FullSize());
179
179
  EXPECT_EQ(0x1223, b.DecodeUInt16());
180
- EXPECT_DEBUG_DEATH({ b.DecodeUInt16(); }, "2 vs. 1");
180
+ EXPECT_QUICHE_DEBUG_DEATH({ b.DecodeUInt16(); }, "2 vs. 1");
181
181
  }
182
182
 
183
183
  // Make sure that DecodeBuffer doesn't agree with having two subsets.
@@ -185,8 +185,8 @@ TEST(DecodeBufferSubsetDeathTest, TwoSubsets) {
185
185
  const char data[] = "abc";
186
186
  DecodeBuffer base(data, 3);
187
187
  DecodeBufferSubset subset1(&base, 1);
188
- EXPECT_DEBUG_DEATH({ DecodeBufferSubset subset2(&base, 1); },
189
- "There is already a subset");
188
+ EXPECT_QUICHE_DEBUG_DEATH({ DecodeBufferSubset subset2(&base, 1); },
189
+ "There is already a subset");
190
190
  }
191
191
 
192
192
  // Make sure that DecodeBufferSubset notices when the base's cursor has moved.
@@ -194,7 +194,7 @@ TEST(DecodeBufferSubsetDeathTest, BaseCursorAdvanced) {
194
194
  const char data[] = "abc";
195
195
  DecodeBuffer base(data, 3);
196
196
  base.AdvanceCursor(1);
197
- EXPECT_DEBUG_DEATH(
197
+ EXPECT_QUICHE_DEBUG_DEATH(
198
198
  {
199
199
  DecodeBufferSubset subset1(&base, 2);
200
200
  base.AdvanceCursor(1);
@@ -39,7 +39,7 @@ std::string SerializeStructure(const S& s) {
39
39
  }
40
40
 
41
41
  template <class S>
42
- class StructureDecoderTest : public QuicheTest {
42
+ class StructureDecoderTest : public quiche::test::QuicheTest {
43
43
  protected:
44
44
  typedef S Structure;
45
45
 
@@ -14,9 +14,9 @@
14
14
  #include "quiche/http2/test_tools/frame_parts.h"
15
15
  #include "quiche/http2/test_tools/frame_parts_collector_listener.h"
16
16
  #include "quiche/http2/test_tools/http2_random.h"
17
- #include "quiche/http2/test_tools/random_decoder_test.h"
17
+ #include "quiche/http2/test_tools/random_decoder_test_base.h"
18
+ #include "quiche/http2/test_tools/verify_macros.h"
18
19
  #include "quiche/common/platform/api/quiche_logging.h"
19
- #include "quiche/common/platform/api/quiche_test_helpers.h"
20
20
 
21
21
  using ::testing::AssertionSuccess;
22
22
 
@@ -93,8 +93,8 @@ class Http2FrameDecoderTest : public RandomDecoderTest {
93
93
  }
94
94
 
95
95
  AssertionResult VerifyCollected(const FrameParts& expected) {
96
- VERIFY_FALSE(collector_.IsInProgress());
97
- VERIFY_EQ(1u, collector_.size());
96
+ HTTP2_VERIFY_FALSE(collector_.IsInProgress());
97
+ HTTP2_VERIFY_EQ(1u, collector_.size());
98
98
  return expected.VerifyEquals(*collector_.frame(0));
99
99
  }
100
100
 
@@ -114,14 +114,14 @@ class Http2FrameDecoderTest : public RandomDecoderTest {
114
114
  absl::string_view payload, const FrameParts& expected) {
115
115
  auto validator = [&expected, this](const DecodeBuffer& /*input*/,
116
116
  DecodeStatus status) -> AssertionResult {
117
- VERIFY_EQ(status, DecodeStatus::kDecodeDone);
117
+ HTTP2_VERIFY_EQ(status, DecodeStatus::kDecodeDone);
118
118
  return VerifyCollected(expected);
119
119
  };
120
120
  ResetDecodeSpeedCounters();
121
- VERIFY_SUCCESS(DecodePayloadAndValidateSeveralWays(
121
+ HTTP2_VERIFY_SUCCESS(DecodePayloadAndValidateSeveralWays(
122
122
  payload, ValidateDoneAndEmpty(validator)));
123
- VERIFY_GT(fast_decode_count_, 0u);
124
- VERIFY_GT(slow_decode_count_, 0u);
123
+ HTTP2_VERIFY_GT(fast_decode_count_, 0u);
124
+ HTTP2_VERIFY_GT(slow_decode_count_, 0u);
125
125
 
126
126
  // Repeat with more input; it should stop without reading that input.
127
127
  std::string next_frame = Random().RandString(10);
@@ -129,10 +129,10 @@ class Http2FrameDecoderTest : public RandomDecoderTest {
129
129
  input += next_frame;
130
130
 
131
131
  ResetDecodeSpeedCounters();
132
- VERIFY_SUCCESS(DecodePayloadAndValidateSeveralWays(
132
+ HTTP2_VERIFY_SUCCESS(DecodePayloadAndValidateSeveralWays(
133
133
  payload, ValidateDoneAndOffset(payload.size(), validator)));
134
- VERIFY_GT(fast_decode_count_, 0u);
135
- VERIFY_GT(slow_decode_count_, 0u);
134
+ HTTP2_VERIFY_GT(fast_decode_count_, 0u);
135
+ HTTP2_VERIFY_GT(slow_decode_count_, 0u);
136
136
 
137
137
  return AssertionSuccess();
138
138
  }
@@ -156,7 +156,7 @@ class Http2FrameDecoderTest : public RandomDecoderTest {
156
156
  const FrameParts& expected) {
157
157
  auto validator = [&expected, this](const DecodeBuffer& /*input*/,
158
158
  DecodeStatus status) -> AssertionResult {
159
- VERIFY_EQ(status, DecodeStatus::kDecodeError);
159
+ HTTP2_VERIFY_EQ(status, DecodeStatus::kDecodeError);
160
160
  return VerifyCollected(expected);
161
161
  };
162
162
  ResetDecodeSpeedCounters();
@@ -834,10 +834,10 @@ TEST_F(Http2FrameDecoderTest, BeyondMaximum) {
834
834
  expected.SetHasFrameSizeError(true);
835
835
  auto validator = [&expected, this](const DecodeBuffer& input,
836
836
  DecodeStatus status) -> AssertionResult {
837
- VERIFY_EQ(status, DecodeStatus::kDecodeError);
837
+ HTTP2_VERIFY_EQ(status, DecodeStatus::kDecodeError);
838
838
  // The decoder detects this error after decoding the header, and without
839
839
  // trying to decode the payload.
840
- VERIFY_EQ(input.Offset(), Http2FrameHeader::EncodedSize());
840
+ HTTP2_VERIFY_EQ(input.Offset(), Http2FrameHeader::EncodedSize());
841
841
  return VerifyCollected(expected);
842
842
  };
843
843
  ResetDecodeSpeedCounters();
@@ -29,9 +29,9 @@
29
29
  #include "quiche/http2/http2_constants.h"
30
30
  #include "quiche/http2/test_tools/http2_frame_builder.h"
31
31
  #include "quiche/http2/test_tools/http2_structures_test_util.h"
32
- #include "quiche/http2/test_tools/random_decoder_test.h"
32
+ #include "quiche/http2/test_tools/random_decoder_test_base.h"
33
+ #include "quiche/http2/test_tools/verify_macros.h"
33
34
  #include "quiche/common/platform/api/quiche_logging.h"
34
- #include "quiche/common/platform/api/quiche_test_helpers.h"
35
35
 
36
36
  using ::testing::AssertionSuccess;
37
37
 
@@ -92,7 +92,7 @@ class Http2StructureDecoderTest : public RandomDecoderTest {
92
92
  // *expected (if provided).
93
93
  AssertionResult DecodeLeadingStructure(const S* expected,
94
94
  absl::string_view data) {
95
- VERIFY_LE(S::EncodedSize(), data.size());
95
+ HTTP2_VERIFY_LE(S::EncodedSize(), data.size());
96
96
  DecodeBuffer original(data);
97
97
 
98
98
  // The validator is called after each of the several times that the input
@@ -102,7 +102,7 @@ class Http2StructureDecoderTest : public RandomDecoderTest {
102
102
  if (expected != nullptr) {
103
103
  validator = [expected, this](const DecodeBuffer& /*db*/,
104
104
  DecodeStatus /*status*/) -> AssertionResult {
105
- VERIFY_EQ(*expected, *structure_);
105
+ HTTP2_VERIFY_EQ(*expected, *structure_);
106
106
  return AssertionSuccess();
107
107
  };
108
108
  }
@@ -116,26 +116,26 @@ class Http2StructureDecoderTest : public RandomDecoderTest {
116
116
  slow_decode_count_ = 0;
117
117
  incomplete_start_count_ = 0;
118
118
  incomplete_resume_count_ = 0;
119
- VERIFY_SUCCESS(DecodeAndValidateSeveralWays(
119
+ HTTP2_VERIFY_SUCCESS(DecodeAndValidateSeveralWays(
120
120
  &original, kMayReturnZeroOnFirst, validator));
121
- VERIFY_FALSE(HasFailure());
122
- VERIFY_EQ(S::EncodedSize(), structure_decoder_.offset());
123
- VERIFY_EQ(S::EncodedSize(), original.Offset());
124
- VERIFY_LT(0u, fast_decode_count_);
125
- VERIFY_LT(0u, slow_decode_count_);
126
- VERIFY_LT(0u, incomplete_start_count_);
121
+ HTTP2_VERIFY_FALSE(HasFailure());
122
+ HTTP2_VERIFY_EQ(S::EncodedSize(), structure_decoder_.offset());
123
+ HTTP2_VERIFY_EQ(S::EncodedSize(), original.Offset());
124
+ HTTP2_VERIFY_LT(0u, fast_decode_count_);
125
+ HTTP2_VERIFY_LT(0u, slow_decode_count_);
126
+ HTTP2_VERIFY_LT(0u, incomplete_start_count_);
127
127
 
128
128
  // If the structure is large enough so that SelectZeroOrOne will have
129
129
  // caused Resume to return false, check that occurred.
130
130
  if (S::EncodedSize() >= 2) {
131
- VERIFY_LE(0u, incomplete_resume_count_);
131
+ HTTP2_VERIFY_LE(0u, incomplete_resume_count_);
132
132
  } else {
133
- VERIFY_EQ(0u, incomplete_resume_count_);
133
+ HTTP2_VERIFY_EQ(0u, incomplete_resume_count_);
134
134
  }
135
135
  if (expected != nullptr) {
136
136
  QUICHE_DVLOG(1) << "DecodeLeadingStructure expected: " << *expected;
137
137
  QUICHE_DVLOG(1) << "DecodeLeadingStructure actual: " << *structure_;
138
- VERIFY_EQ(*expected, *structure_);
138
+ HTTP2_VERIFY_EQ(*expected, *structure_);
139
139
  }
140
140
  return AssertionSuccess();
141
141
  }
@@ -154,7 +154,7 @@ class Http2StructureDecoderTest : public RandomDecoderTest {
154
154
  // and validate that the decoder produced the same field values.
155
155
  AssertionResult EncodeThenDecode(const S& in_s) {
156
156
  std::string bytes = SerializeStructure(in_s);
157
- VERIFY_EQ(S::EncodedSize(), bytes.size());
157
+ HTTP2_VERIFY_EQ(S::EncodedSize(), bytes.size());
158
158
  return DecodeLeadingStructure(&in_s, bytes);
159
159
  }
160
160
 
@@ -165,13 +165,13 @@ class Http2StructureDecoderTest : public RandomDecoderTest {
165
165
  for (size_t i = 0; i < count; ++i) {
166
166
  Structure input;
167
167
  Randomize(&input, RandomPtr());
168
- VERIFY_SUCCESS(EncodeThenDecode(input));
168
+ HTTP2_VERIFY_SUCCESS(EncodeThenDecode(input));
169
169
  }
170
170
  return AssertionSuccess();
171
171
  }
172
172
 
173
173
  AssertionResult TestDecodingRandomizedStructures() {
174
- VERIFY_SUCCESS(TestDecodingRandomizedStructures(100));
174
+ HTTP2_VERIFY_SUCCESS(TestDecodingRandomizedStructures(100));
175
175
  return AssertionSuccess();
176
176
  }
177
177
 
@@ -17,7 +17,7 @@
17
17
  #include "quiche/http2/test_tools/http2_random.h"
18
18
  #include "quiche/http2/test_tools/http2_structures_test_util.h"
19
19
  #include "quiche/http2/test_tools/payload_decoder_base_test_util.h"
20
- #include "quiche/http2/test_tools/random_decoder_test.h"
20
+ #include "quiche/http2/test_tools/random_decoder_test_base.h"
21
21
  #include "quiche/common/platform/api/quiche_logging.h"
22
22
  #include "quiche/common/platform/api/quiche_test.h"
23
23
 
@@ -15,7 +15,7 @@
15
15
  #include "quiche/http2/test_tools/frame_parts.h"
16
16
  #include "quiche/http2/test_tools/frame_parts_collector.h"
17
17
  #include "quiche/http2/test_tools/payload_decoder_base_test_util.h"
18
- #include "quiche/http2/test_tools/random_decoder_test.h"
18
+ #include "quiche/http2/test_tools/random_decoder_test_base.h"
19
19
  #include "quiche/common/platform/api/quiche_logging.h"
20
20
  #include "quiche/common/platform/api/quiche_test.h"
21
21
 
@@ -17,10 +17,10 @@
17
17
  #include "quiche/http2/test_tools/http2_random.h"
18
18
  #include "quiche/http2/test_tools/http2_structures_test_util.h"
19
19
  #include "quiche/http2/test_tools/payload_decoder_base_test_util.h"
20
- #include "quiche/http2/test_tools/random_decoder_test.h"
20
+ #include "quiche/http2/test_tools/random_decoder_test_base.h"
21
+ #include "quiche/common/platform/api/quiche_expect_bug.h"
21
22
  #include "quiche/common/platform/api/quiche_logging.h"
22
23
  #include "quiche/common/platform/api/quiche_test.h"
23
- #include "quiche/common/platform/api/quiche_test_helpers.h"
24
24
 
25
25
  namespace http2 {
26
26
  namespace test {
@@ -16,7 +16,7 @@
16
16
  #include "quiche/http2/test_tools/http2_random.h"
17
17
  #include "quiche/http2/test_tools/http2_structures_test_util.h"
18
18
  #include "quiche/http2/test_tools/payload_decoder_base_test_util.h"
19
- #include "quiche/http2/test_tools/random_decoder_test.h"
19
+ #include "quiche/http2/test_tools/random_decoder_test_base.h"
20
20
  #include "quiche/common/platform/api/quiche_logging.h"
21
21
  #include "quiche/common/platform/api/quiche_test.h"
22
22
 
@@ -16,7 +16,7 @@
16
16
  #include "quiche/http2/test_tools/http2_random.h"
17
17
  #include "quiche/http2/test_tools/http2_structures_test_util.h"
18
18
  #include "quiche/http2/test_tools/payload_decoder_base_test_util.h"
19
- #include "quiche/http2/test_tools/random_decoder_test.h"
19
+ #include "quiche/http2/test_tools/random_decoder_test_base.h"
20
20
  #include "quiche/common/platform/api/quiche_logging.h"
21
21
  #include "quiche/common/platform/api/quiche_test.h"
22
22
 
@@ -14,7 +14,7 @@
14
14
  #include "quiche/http2/test_tools/http2_random.h"
15
15
  #include "quiche/http2/test_tools/http2_structures_test_util.h"
16
16
  #include "quiche/http2/test_tools/payload_decoder_base_test_util.h"
17
- #include "quiche/http2/test_tools/random_decoder_test.h"
17
+ #include "quiche/http2/test_tools/random_decoder_test_base.h"
18
18
  #include "quiche/common/platform/api/quiche_logging.h"
19
19
  #include "quiche/common/platform/api/quiche_test.h"
20
20
 
@@ -14,7 +14,7 @@
14
14
  #include "quiche/http2/test_tools/http2_random.h"
15
15
  #include "quiche/http2/test_tools/http2_structures_test_util.h"
16
16
  #include "quiche/http2/test_tools/payload_decoder_base_test_util.h"
17
- #include "quiche/http2/test_tools/random_decoder_test.h"
17
+ #include "quiche/http2/test_tools/random_decoder_test_base.h"
18
18
  #include "quiche/common/platform/api/quiche_logging.h"
19
19
  #include "quiche/common/platform/api/quiche_test.h"
20
20
 
@@ -16,7 +16,7 @@
16
16
  #include "quiche/http2/test_tools/http2_random.h"
17
17
  #include "quiche/http2/test_tools/http2_structures_test_util.h"
18
18
  #include "quiche/http2/test_tools/payload_decoder_base_test_util.h"
19
- #include "quiche/http2/test_tools/random_decoder_test.h"
19
+ #include "quiche/http2/test_tools/random_decoder_test_base.h"
20
20
  #include "quiche/common/platform/api/quiche_logging.h"
21
21
  #include "quiche/common/platform/api/quiche_test.h"
22
22
 
@@ -16,7 +16,7 @@
16
16
  #include "quiche/http2/test_tools/http2_random.h"
17
17
  #include "quiche/http2/test_tools/http2_structures_test_util.h"
18
18
  #include "quiche/http2/test_tools/payload_decoder_base_test_util.h"
19
- #include "quiche/http2/test_tools/random_decoder_test.h"
19
+ #include "quiche/http2/test_tools/random_decoder_test_base.h"
20
20
  #include "quiche/common/platform/api/quiche_logging.h"
21
21
  #include "quiche/common/platform/api/quiche_test.h"
22
22
 
@@ -15,7 +15,7 @@
15
15
  #include "quiche/http2/test_tools/http2_random.h"
16
16
  #include "quiche/http2/test_tools/http2_structures_test_util.h"
17
17
  #include "quiche/http2/test_tools/payload_decoder_base_test_util.h"
18
- #include "quiche/http2/test_tools/random_decoder_test.h"
18
+ #include "quiche/http2/test_tools/random_decoder_test_base.h"
19
19
  #include "quiche/common/platform/api/quiche_logging.h"
20
20
  #include "quiche/common/platform/api/quiche_test.h"
21
21
 
@@ -17,7 +17,7 @@
17
17
  #include "quiche/http2/test_tools/http2_random.h"
18
18
  #include "quiche/http2/test_tools/http2_structures_test_util.h"
19
19
  #include "quiche/http2/test_tools/payload_decoder_base_test_util.h"
20
- #include "quiche/http2/test_tools/random_decoder_test.h"
20
+ #include "quiche/http2/test_tools/random_decoder_test_base.h"
21
21
  #include "quiche/common/platform/api/quiche_logging.h"
22
22
  #include "quiche/common/platform/api/quiche_test.h"
23
23