@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
@@ -21,10 +21,10 @@
21
21
  #include "quiche/http2/test_tools/frame_parts.h"
22
22
  #include "quiche/http2/test_tools/http2_constants_test_util.h"
23
23
  #include "quiche/http2/test_tools/http2_frame_builder.h"
24
- #include "quiche/http2/test_tools/random_decoder_test.h"
24
+ #include "quiche/http2/test_tools/random_decoder_test_base.h"
25
+ #include "quiche/http2/test_tools/verify_macros.h"
25
26
  #include "quiche/common/platform/api/quiche_export.h"
26
27
  #include "quiche/common/platform/api/quiche_logging.h"
27
- #include "quiche/common/platform/api/quiche_test_helpers.h"
28
28
 
29
29
  namespace http2 {
30
30
  namespace test {
@@ -192,8 +192,8 @@ class QUICHE_NO_EXPORT AbstractPayloadDecoderTest
192
192
  AssertionResult DecodePayloadAndValidateSeveralWays(
193
193
  absl::string_view payload, const FrameParts& expected) {
194
194
  auto validator = [&expected, this]() -> AssertionResult {
195
- VERIFY_FALSE(listener_.IsInProgress());
196
- VERIFY_EQ(1u, listener_.size());
195
+ HTTP2_VERIFY_FALSE(listener_.IsInProgress());
196
+ HTTP2_VERIFY_EQ(1u, listener_.size());
197
197
  return expected.VerifyEquals(*listener_.frame(0));
198
198
  };
199
199
  return PayloadDecoderBaseTest::DecodePayloadAndValidateSeveralWays(
@@ -221,15 +221,15 @@ class QUICHE_NO_EXPORT AbstractPayloadDecoderTest
221
221
  DecodeStatus status) -> ::testing::AssertionResult {
222
222
  QUICHE_DVLOG(2) << "VerifyDetectsFrameSizeError validator; status="
223
223
  << status << "; input.Remaining=" << input.Remaining();
224
- VERIFY_EQ(DecodeStatus::kDecodeError, status);
225
- VERIFY_FALSE(listener_.IsInProgress());
226
- VERIFY_EQ(1u, listener_.size());
224
+ HTTP2_VERIFY_EQ(DecodeStatus::kDecodeError, status);
225
+ HTTP2_VERIFY_FALSE(listener_.IsInProgress());
226
+ HTTP2_VERIFY_EQ(1u, listener_.size());
227
227
  const FrameParts* frame = listener_.frame(0);
228
- VERIFY_EQ(header, frame->GetFrameHeader());
229
- VERIFY_TRUE(frame->GetHasFrameSizeError());
228
+ HTTP2_VERIFY_EQ(header, frame->GetFrameHeader());
229
+ HTTP2_VERIFY_TRUE(frame->GetHasFrameSizeError());
230
230
  // Verify did not get OnPaddingTooLong, as we should only ever produce
231
231
  // one of these two errors for a single frame.
232
- VERIFY_FALSE(frame->GetOptMissingLength());
232
+ HTTP2_VERIFY_FALSE(frame->GetOptMissingLength());
233
233
  return validator(input, status);
234
234
  };
235
235
  return PayloadDecoderBaseTest::DecodePayloadAndValidateSeveralWays(
@@ -250,10 +250,11 @@ class QUICHE_NO_EXPORT AbstractPayloadDecoderTest
250
250
  // type AND are those that affect the decoding of the payload (otherwise,
251
251
  // the flag shouldn't be required).
252
252
  Http2FrameType frame_type = DecoderPeer::FrameType();
253
- VERIFY_EQ(required_flags,
254
- required_flags & KnownFlagsMaskForFrameType(frame_type));
255
- VERIFY_EQ(required_flags,
256
- required_flags & DecoderPeer::FlagsAffectingPayloadDecoding());
253
+ HTTP2_VERIFY_EQ(required_flags,
254
+ required_flags & KnownFlagsMaskForFrameType(frame_type));
255
+ HTTP2_VERIFY_EQ(
256
+ required_flags,
257
+ required_flags & DecoderPeer::FlagsAffectingPayloadDecoding());
257
258
 
258
259
  if (0 !=
259
260
  (Http2FrameFlag::PADDED & KnownFlagsMaskForFrameType(frame_type))) {
@@ -264,7 +265,7 @@ class QUICHE_NO_EXPORT AbstractPayloadDecoderTest
264
265
  required_flags |= Http2FrameFlag::PADDED;
265
266
  }
266
267
  } else {
267
- VERIFY_EQ(0, total_pad_length);
268
+ HTTP2_VERIFY_EQ(0, total_pad_length);
268
269
  }
269
270
 
270
271
  bool validated = false;
@@ -291,10 +292,11 @@ class QUICHE_NO_EXPORT AbstractPayloadDecoderTest
291
292
  // checking stream ids.
292
293
  uint32_t stream_id = RandStreamId();
293
294
  Http2FrameHeader header(fb.size(), frame_type, flags, stream_id);
294
- VERIFY_SUCCESS(VerifyDetectsFrameSizeError(fb.buffer(), header, nullptr));
295
+ HTTP2_VERIFY_SUCCESS(
296
+ VerifyDetectsFrameSizeError(fb.buffer(), header, nullptr));
295
297
  validated = true;
296
298
  }
297
- VERIFY_TRUE(validated);
299
+ HTTP2_VERIFY_TRUE(validated);
298
300
  return ::testing::AssertionSuccess();
299
301
  }
300
302
 
@@ -304,8 +306,8 @@ class QUICHE_NO_EXPORT AbstractPayloadDecoderTest
304
306
  const ApproveSize& approve_size) {
305
307
  Http2FrameType frame_type = DecoderPeer::FrameType();
306
308
  uint8_t known_flags = KnownFlagsMaskForFrameType(frame_type);
307
- VERIFY_EQ(0, known_flags & Http2FrameFlag::PADDED);
308
- VERIFY_EQ(0, required_flags & Http2FrameFlag::PADDED);
309
+ HTTP2_VERIFY_EQ(0, known_flags & Http2FrameFlag::PADDED);
310
+ HTTP2_VERIFY_EQ(0, required_flags & Http2FrameFlag::PADDED);
309
311
  return VerifyDetectsMultipleFrameSizeErrors(
310
312
  required_flags, unpadded_payload, approve_size, 0);
311
313
  }
@@ -381,15 +383,16 @@ class QUICHE_NO_EXPORT AbstractPaddablePayloadDecoderTest
381
383
  [header, expected_missing_length, &listener](
382
384
  const DecodeBuffer&,
383
385
  DecodeStatus status) -> ::testing::AssertionResult {
384
- VERIFY_EQ(DecodeStatus::kDecodeError, status);
385
- VERIFY_FALSE(listener.IsInProgress());
386
- VERIFY_EQ(1u, listener.size());
386
+ HTTP2_VERIFY_EQ(DecodeStatus::kDecodeError, status);
387
+ HTTP2_VERIFY_FALSE(listener.IsInProgress());
388
+ HTTP2_VERIFY_EQ(1u, listener.size());
387
389
  const FrameParts* frame = listener.frame(0);
388
- VERIFY_EQ(header, frame->GetFrameHeader());
389
- VERIFY_TRUE(frame->GetOptMissingLength());
390
- VERIFY_EQ(expected_missing_length, frame->GetOptMissingLength().value());
390
+ HTTP2_VERIFY_EQ(header, frame->GetFrameHeader());
391
+ HTTP2_VERIFY_TRUE(frame->GetOptMissingLength());
392
+ HTTP2_VERIFY_EQ(expected_missing_length,
393
+ frame->GetOptMissingLength().value());
391
394
  // Verify did not get OnFrameSizeError.
392
- VERIFY_FALSE(frame->GetHasFrameSizeError());
395
+ HTTP2_VERIFY_FALSE(frame->GetHasFrameSizeError());
393
396
  return ::testing::AssertionSuccess();
394
397
  };
395
398
  return PayloadDecoderBaseTest::DecodePayloadAndValidateSeveralWays(
@@ -2,7 +2,7 @@
2
2
  // Use of this source code is governed by a BSD-style license that can be
3
3
  // found in the LICENSE file.
4
4
 
5
- #include "quiche/http2/test_tools/random_decoder_test.h"
5
+ #include "quiche/http2/test_tools/random_decoder_test_base.h"
6
6
 
7
7
  #include <stddef.h>
8
8
 
@@ -12,9 +12,9 @@
12
12
  #include "quiche/http2/decoder/decode_buffer.h"
13
13
  #include "quiche/http2/decoder/decode_status.h"
14
14
  #include "quiche/http2/http2_constants.h"
15
+ #include "quiche/http2/test_tools/verify_macros.h"
15
16
  #include "quiche/common/platform/api/quiche_logging.h"
16
17
  #include "quiche/common/platform/api/quiche_test.h"
17
- #include "quiche/common/platform/api/quiche_test_helpers.h"
18
18
 
19
19
  using ::testing::AssertionResult;
20
20
 
@@ -81,7 +81,7 @@ AssertionResult RandomDecoderTest::DecodeAndValidateSeveralWays(
81
81
  // Fast decode (no stopping unless decoder does so).
82
82
  DecodeBuffer input(original->cursor(), original_remaining);
83
83
  QUICHE_VLOG(2) << "DecodeSegmentsAndValidate with SelectRemaining";
84
- VERIFY_SUCCESS(
84
+ HTTP2_VERIFY_SUCCESS(
85
85
  DecodeSegmentsAndValidate(&input, SelectRemaining(), validator))
86
86
  << "\nFailed with SelectRemaining; input.Offset=" << input.Offset()
87
87
  << "; input.Remaining=" << input.Remaining();
@@ -91,19 +91,21 @@ AssertionResult RandomDecoderTest::DecodeAndValidateSeveralWays(
91
91
  // Decode again, one byte at a time.
92
92
  DecodeBuffer input(original->cursor(), original_remaining);
93
93
  QUICHE_VLOG(2) << "DecodeSegmentsAndValidate with SelectOne";
94
- VERIFY_SUCCESS(DecodeSegmentsAndValidate(&input, SelectOne(), validator))
94
+ HTTP2_VERIFY_SUCCESS(
95
+ DecodeSegmentsAndValidate(&input, SelectOne(), validator))
95
96
  << "\nFailed with SelectOne; input.Offset=" << input.Offset()
96
97
  << "; input.Remaining=" << input.Remaining();
97
- VERIFY_EQ(first_consumed, input.Offset()) << "\nFailed with SelectOne";
98
+ HTTP2_VERIFY_EQ(first_consumed, input.Offset())
99
+ << "\nFailed with SelectOne";
98
100
  }
99
101
  if (original_remaining <= 20) {
100
102
  // Decode again, one or zero bytes at a time.
101
103
  DecodeBuffer input(original->cursor(), original_remaining);
102
104
  QUICHE_VLOG(2) << "DecodeSegmentsAndValidate with SelectZeroAndOne";
103
- VERIFY_SUCCESS(DecodeSegmentsAndValidate(
105
+ HTTP2_VERIFY_SUCCESS(DecodeSegmentsAndValidate(
104
106
  &input, SelectZeroAndOne(return_non_zero_on_first), validator))
105
107
  << "\nFailed with SelectZeroAndOne";
106
- VERIFY_EQ(first_consumed, input.Offset())
108
+ HTTP2_VERIFY_EQ(first_consumed, input.Offset())
107
109
  << "\nFailed with SelectZeroAndOne; input.Offset=" << input.Offset()
108
110
  << "; input.Remaining=" << input.Remaining();
109
111
  }
@@ -111,13 +113,14 @@ AssertionResult RandomDecoderTest::DecodeAndValidateSeveralWays(
111
113
  // Decode again, with randomly selected segment sizes.
112
114
  DecodeBuffer input(original->cursor(), original_remaining);
113
115
  QUICHE_VLOG(2) << "DecodeSegmentsAndValidate with SelectRandom";
114
- VERIFY_SUCCESS(DecodeSegmentsAndValidate(
116
+ HTTP2_VERIFY_SUCCESS(DecodeSegmentsAndValidate(
115
117
  &input, SelectRandom(return_non_zero_on_first), validator))
116
118
  << "\nFailed with SelectRandom; input.Offset=" << input.Offset()
117
119
  << "; input.Remaining=" << input.Remaining();
118
- VERIFY_EQ(first_consumed, input.Offset()) << "\nFailed with SelectRandom";
120
+ HTTP2_VERIFY_EQ(first_consumed, input.Offset())
121
+ << "\nFailed with SelectRandom";
119
122
  }
120
- VERIFY_EQ(original_remaining, original->Remaining());
123
+ HTTP2_VERIFY_EQ(original_remaining, original->Remaining());
121
124
  original->AdvanceCursor(first_consumed);
122
125
  QUICHE_VLOG(1) << "DecodeAndValidateSeveralWays - SUCCESS";
123
126
  return ::testing::AssertionSuccess();
@@ -2,8 +2,8 @@
2
2
  // Use of this source code is governed by a BSD-style license that can be
3
3
  // found in the LICENSE file.
4
4
 
5
- #ifndef QUICHE_HTTP2_TEST_TOOLS_RANDOM_DECODER_TEST_H_
6
- #define QUICHE_HTTP2_TEST_TOOLS_RANDOM_DECODER_TEST_H_
5
+ #ifndef QUICHE_HTTP2_TEST_TOOLS_RANDOM_DECODER_TEST_BASE_H_
6
+ #define QUICHE_HTTP2_TEST_TOOLS_RANDOM_DECODER_TEST_BASE_H_
7
7
 
8
8
  // RandomDecoderTest is a base class for tests of decoding various kinds
9
9
  // of HTTP/2 and HPACK encodings.
@@ -21,10 +21,10 @@
21
21
  #include "quiche/http2/decoder/decode_buffer.h"
22
22
  #include "quiche/http2/decoder/decode_status.h"
23
23
  #include "quiche/http2/test_tools/http2_random.h"
24
+ #include "quiche/http2/test_tools/verify_macros.h"
24
25
  #include "quiche/common/platform/api/quiche_export.h"
25
26
  #include "quiche/common/platform/api/quiche_logging.h"
26
27
  #include "quiche/common/platform/api/quiche_test.h"
27
- #include "quiche/common/platform/api/quiche_test_helpers.h"
28
28
 
29
29
  namespace http2 {
30
30
  namespace test {
@@ -55,7 +55,7 @@ void CorruptEnum(T* out, Http2Random* rng) {
55
55
 
56
56
  // Base class for tests of the ability to decode a sequence of bytes with
57
57
  // various boundaries between the DecodeBuffers provided to the decoder.
58
- class QUICHE_NO_EXPORT RandomDecoderTest : public QuicheTest {
58
+ class QUICHE_NO_EXPORT RandomDecoderTest : public quiche::test::QuicheTest {
59
59
  public:
60
60
  // SelectSize returns the size of the next DecodeBuffer to be passed to the
61
61
  // decoder. Note that RandomDecoderTest allows that size to be zero, though
@@ -75,10 +75,6 @@ class QUICHE_NO_EXPORT RandomDecoderTest : public QuicheTest {
75
75
  RandomDecoderTest();
76
76
 
77
77
  protected:
78
- // TODO(jamessynge): Modify StartDecoding, etc. to (somehow) return
79
- // AssertionResult so that the VERIFY_* methods exported from
80
- // gunit_helpers.h can be widely used.
81
-
82
78
  // Start decoding; call allows sub-class to Reset the decoder, or deal with
83
79
  // the first byte if that is done in a unique fashion. Might be called with
84
80
  // a zero byte buffer.
@@ -178,8 +174,8 @@ class QUICHE_NO_EXPORT RandomDecoderTest : public QuicheTest {
178
174
  static Validator ValidateDoneAndEmpty(const Validator& wrapped) {
179
175
  return [wrapped](const DecodeBuffer& input,
180
176
  DecodeStatus status) -> AssertionResult {
181
- VERIFY_EQ(status, DecodeStatus::kDecodeDone);
182
- VERIFY_EQ(0u, input.Remaining()) << "\nOffset=" << input.Offset();
177
+ HTTP2_VERIFY_EQ(status, DecodeStatus::kDecodeDone);
178
+ HTTP2_VERIFY_EQ(0u, input.Remaining()) << "\nOffset=" << input.Offset();
183
179
  if (wrapped) {
184
180
  return wrapped(input, status);
185
181
  }
@@ -189,8 +185,8 @@ class QUICHE_NO_EXPORT RandomDecoderTest : public QuicheTest {
189
185
  static Validator ValidateDoneAndEmpty(NoArgValidator wrapped) {
190
186
  return [wrapped](const DecodeBuffer& input,
191
187
  DecodeStatus status) -> AssertionResult {
192
- VERIFY_EQ(status, DecodeStatus::kDecodeDone);
193
- VERIFY_EQ(0u, input.Remaining()) << "\nOffset=" << input.Offset();
188
+ HTTP2_VERIFY_EQ(status, DecodeStatus::kDecodeDone);
189
+ HTTP2_VERIFY_EQ(0u, input.Remaining()) << "\nOffset=" << input.Offset();
194
190
  if (wrapped) {
195
191
  return wrapped();
196
192
  }
@@ -212,8 +208,9 @@ class QUICHE_NO_EXPORT RandomDecoderTest : public QuicheTest {
212
208
  const Validator& wrapped) {
213
209
  return [wrapped, offset](const DecodeBuffer& input,
214
210
  DecodeStatus status) -> AssertionResult {
215
- VERIFY_EQ(status, DecodeStatus::kDecodeDone);
216
- VERIFY_EQ(offset, input.Offset()) << "\nRemaining=" << input.Remaining();
211
+ HTTP2_VERIFY_EQ(status, DecodeStatus::kDecodeDone);
212
+ HTTP2_VERIFY_EQ(offset, input.Offset())
213
+ << "\nRemaining=" << input.Remaining();
217
214
  if (wrapped) {
218
215
  return wrapped(input, status);
219
216
  }
@@ -224,8 +221,9 @@ class QUICHE_NO_EXPORT RandomDecoderTest : public QuicheTest {
224
221
  NoArgValidator wrapped) {
225
222
  return [wrapped, offset](const DecodeBuffer& input,
226
223
  DecodeStatus status) -> AssertionResult {
227
- VERIFY_EQ(status, DecodeStatus::kDecodeDone);
228
- VERIFY_EQ(offset, input.Offset()) << "\nRemaining=" << input.Remaining();
224
+ HTTP2_VERIFY_EQ(status, DecodeStatus::kDecodeDone);
225
+ HTTP2_VERIFY_EQ(offset, input.Offset())
226
+ << "\nRemaining=" << input.Remaining();
229
227
  if (wrapped) {
230
228
  return wrapped();
231
229
  }
@@ -254,4 +252,4 @@ class QUICHE_NO_EXPORT RandomDecoderTest : public QuicheTest {
254
252
  } // namespace test
255
253
  } // namespace http2
256
254
 
257
- #endif // QUICHE_HTTP2_TEST_TOOLS_RANDOM_DECODER_TEST_H_
255
+ #endif // QUICHE_HTTP2_TEST_TOOLS_RANDOM_DECODER_TEST_BASE_H_
@@ -1,4 +1,4 @@
1
- #include "quiche/http2/test_tools/random_decoder_test.h"
1
+ #include "quiche/http2/test_tools/random_decoder_test_base.h"
2
2
 
3
3
  #include <stddef.h>
4
4
 
@@ -0,0 +1,32 @@
1
+ // Copyright 2022 The Chromium Authors. All rights reserved.
2
+ // Use of this source code is governed by a BSD-style license that can be
3
+ // found in the LICENSE file.
4
+
5
+ #ifndef QUICHE_HTTP2_TEST_TOOLS_VERIFY_MACROS_H_
6
+ #define QUICHE_HTTP2_TEST_TOOLS_VERIFY_MACROS_H_
7
+
8
+ #include "quiche/common/platform/api/quiche_test.h"
9
+
10
+ #define HTTP2_VERIFY_CORE(value, str) \
11
+ if ((value)) \
12
+ ; \
13
+ else \
14
+ return ::testing::AssertionFailure() \
15
+ << __FILE__ << ":" << __LINE__ << " " \
16
+ << "Failed to verify that '" << str << "'"
17
+
18
+ #define HTTP2_VERIFY_TRUE(value) HTTP2_VERIFY_CORE(value, #value)
19
+ #define HTTP2_VERIFY_FALSE(value) HTTP2_VERIFY_CORE(!value, "!" #value)
20
+ #define HTTP2_VERIFY_SUCCESS HTTP2_VERIFY_TRUE
21
+ #define HTTP2_VERIFY_EQ(value1, value2) \
22
+ HTTP2_VERIFY_CORE((value1) == (value2), #value1 "==" #value2)
23
+ #define HTTP2_VERIFY_NE(value1, value2) \
24
+ HTTP2_VERIFY_CORE((value1) != (value2), #value1 "!=" #value2)
25
+ #define HTTP2_VERIFY_LE(value1, value2) \
26
+ HTTP2_VERIFY_CORE((value1) <= (value2), #value1 "<=" #value2)
27
+ #define HTTP2_VERIFY_LT(value1, value2) \
28
+ HTTP2_VERIFY_CORE((value1) < (value2), #value1 "<" #value2)
29
+ #define HTTP2_VERIFY_GT(value1, value2) \
30
+ HTTP2_VERIFY_CORE((value1) > (value2), #value1 ">" #value2)
31
+
32
+ #endif // QUICHE_HTTP2_TEST_TOOLS_VERIFY_MACROS_H_
@@ -16,6 +16,7 @@
16
16
  #include "quiche/quic/platform/api/quic_flag_utils.h"
17
17
  #include "quiche/quic/platform/api/quic_flags.h"
18
18
  #include "quiche/quic/platform/api/quic_logging.h"
19
+ #include "quiche/common/platform/api/quiche_logging.h"
19
20
  #include "quiche/common/print_elements.h"
20
21
 
21
22
  namespace quic {
@@ -221,7 +222,7 @@ Limits<QuicByteCount> Bbr2Sender::GetCwndLimitsByMode() const {
221
222
  case Bbr2Mode::PROBE_RTT:
222
223
  return probe_rtt_.GetCwndLimits();
223
224
  default:
224
- QUIC_NOTREACHED();
225
+ QUICHE_NOTREACHED();
225
226
  return Unlimited<QuicByteCount>();
226
227
  }
227
228
  }
@@ -127,7 +127,8 @@ class Bbr2SimulatorTest : public QuicTest {
127
127
  }
128
128
 
129
129
  void SetUp() override {
130
- if (GetQuicFlag(FLAGS_quic_bbr2_test_regression_mode) == "regress") {
130
+ if (quiche::GetQuicheCommandLineFlag(
131
+ FLAGS_quic_bbr2_test_regression_mode) == "regress") {
131
132
  SendAlgorithmTestResult expected;
132
133
  ASSERT_TRUE(LoadSendAlgorithmTestResult(&expected));
133
134
  random_seed_ = expected.random_seed();
@@ -140,7 +141,7 @@ class Bbr2SimulatorTest : public QuicTest {
140
141
 
141
142
  ~Bbr2SimulatorTest() override {
142
143
  const std::string regression_mode =
143
- GetQuicFlag(FLAGS_quic_bbr2_test_regression_mode);
144
+ quiche::GetQuicheCommandLineFlag(FLAGS_quic_bbr2_test_regression_mode);
144
145
  const QuicTime::Delta simulated_duration =
145
146
  SimulatedNow() - QuicTime::Zero();
146
147
  if (regression_mode == "record") {
@@ -108,7 +108,8 @@ class BbrSenderTest : public QuicTest {
108
108
  }
109
109
 
110
110
  void SetUp() override {
111
- if (GetQuicFlag(FLAGS_quic_bbr_test_regression_mode) == "regress") {
111
+ if (quiche::GetQuicheCommandLineFlag(FLAGS_quic_bbr_test_regression_mode) ==
112
+ "regress") {
112
113
  SendAlgorithmTestResult expected;
113
114
  ASSERT_TRUE(LoadSendAlgorithmTestResult(&expected));
114
115
  random_seed_ = expected.random_seed();
@@ -121,7 +122,7 @@ class BbrSenderTest : public QuicTest {
121
122
 
122
123
  ~BbrSenderTest() {
123
124
  const std::string regression_mode =
124
- GetQuicFlag(FLAGS_quic_bbr_test_regression_mode);
125
+ quiche::GetQuicheCommandLineFlag(FLAGS_quic_bbr_test_regression_mode);
125
126
  const QuicTime::Delta simulated_duration = clock_->Now() - QuicTime::Zero();
126
127
  if (regression_mode == "record") {
127
128
  RecordSendAlgorithmTestResult(random_seed_,
@@ -39,14 +39,14 @@ void RttStats::ExpireSmoothedMetrics() {
39
39
  }
40
40
 
41
41
  // Updates the RTT based on a new sample.
42
- void RttStats::UpdateRtt(QuicTime::Delta send_delta, QuicTime::Delta ack_delay,
42
+ bool RttStats::UpdateRtt(QuicTime::Delta send_delta, QuicTime::Delta ack_delay,
43
43
  QuicTime now) {
44
44
  if (send_delta.IsInfinite() || send_delta <= QuicTime::Delta::Zero()) {
45
45
  QUIC_LOG_FIRST_N(WARNING, 3)
46
46
  << "Ignoring measured send_delta, because it's is "
47
47
  << "either infinite, zero, or negative. send_delta = "
48
48
  << send_delta.ToMicroseconds();
49
- return;
49
+ return false;
50
50
  }
51
51
 
52
52
  last_update_time_ = now;
@@ -92,6 +92,7 @@ void RttStats::UpdateRtt(QuicTime::Delta send_delta, QuicTime::Delta ack_delay,
92
92
  QUIC_DVLOG(1) << " smoothed_rtt(us):" << smoothed_rtt_.ToMicroseconds()
93
93
  << " mean_deviation(us):" << mean_deviation_.ToMicroseconds();
94
94
  }
95
+ return true;
95
96
  }
96
97
 
97
98
  void RttStats::OnConnectionMigration() {
@@ -47,7 +47,8 @@ class QUIC_EXPORT_PRIVATE RttStats {
47
47
 
48
48
  // Updates the RTT from an incoming ack which is received |send_delta| after
49
49
  // the packet is sent and the peer reports the ack being delayed |ack_delay|.
50
- void UpdateRtt(QuicTime::Delta send_delta, QuicTime::Delta ack_delay,
50
+ // Returns true if RTT was updated, and false if the sample was ignored.
51
+ bool UpdateRtt(QuicTime::Delta send_delta, QuicTime::Delta ack_delay,
51
52
  QuicTime now);
52
53
 
53
54
  // Causes the smoothed_rtt to be increased to the latest_rtt if the latest_rtt
@@ -6,13 +6,9 @@
6
6
 
7
7
  #include <cmath>
8
8
 
9
- #include "quiche/quic/platform/api/quic_logging.h"
10
- #include "quiche/quic/platform/api/quic_mock_log.h"
11
9
  #include "quiche/quic/platform/api/quic_test.h"
12
10
  #include "quiche/quic/test_tools/quic_test_utils.h"
13
- #include "quiche/quic/test_tools/rtt_stats_peer.h"
14
11
 
15
- using testing::_;
16
12
  using testing::Message;
17
13
 
18
14
  namespace quic {
@@ -141,9 +137,6 @@ TEST_F(RttStatsTest, ExpireSmoothedMetrics) {
141
137
  }
142
138
 
143
139
  TEST_F(RttStatsTest, UpdateRttWithBadSendDeltas) {
144
- // Make sure we ignore bad RTTs.
145
- CREATE_QUIC_MOCK_LOG(log);
146
-
147
140
  QuicTime::Delta initial_rtt = QuicTime::Delta::FromMilliseconds(10);
148
141
  rtt_stats_.UpdateRtt(initial_rtt, QuicTime::Delta::Zero(), QuicTime::Zero());
149
142
  EXPECT_EQ(initial_rtt, rtt_stats_.min_rtt());
@@ -153,16 +146,12 @@ TEST_F(RttStatsTest, UpdateRttWithBadSendDeltas) {
153
146
  bad_send_deltas.push_back(QuicTime::Delta::Zero());
154
147
  bad_send_deltas.push_back(QuicTime::Delta::Infinite());
155
148
  bad_send_deltas.push_back(QuicTime::Delta::FromMicroseconds(-1000));
156
- log.StartCapturingLogs();
157
149
 
158
150
  for (QuicTime::Delta bad_send_delta : bad_send_deltas) {
159
151
  SCOPED_TRACE(Message() << "bad_send_delta = "
160
152
  << bad_send_delta.ToMicroseconds());
161
- if (QUIC_LOG_WARNING_IS_ON()) {
162
- EXPECT_QUIC_LOG_CALL_CONTAINS(log, WARNING, "Ignoring");
163
- }
164
- rtt_stats_.UpdateRtt(bad_send_delta, QuicTime::Delta::Zero(),
165
- QuicTime::Zero());
153
+ EXPECT_FALSE(rtt_stats_.UpdateRtt(bad_send_delta, QuicTime::Delta::Zero(),
154
+ QuicTime::Zero()));
166
155
  EXPECT_EQ(initial_rtt, rtt_stats_.min_rtt());
167
156
  EXPECT_EQ(initial_rtt, rtt_stats_.smoothed_rtt());
168
157
  }
@@ -79,8 +79,12 @@ PublicKeyType PublicKeyTypeFromKey(EVP_PKEY* public_key) {
79
79
  }
80
80
  }
81
81
 
82
+ } // namespace
83
+
82
84
  PublicKeyType PublicKeyTypeFromSignatureAlgorithm(
83
85
  uint16_t signature_algorithm) {
86
+ // This should be kept in sync with the list in
87
+ // SupportedSignatureAlgorithmsForQuic().
84
88
  switch (signature_algorithm) {
85
89
  case SSL_SIGN_RSA_PSS_RSAE_SHA256:
86
90
  return PublicKeyType::kRsa;
@@ -95,6 +99,17 @@ PublicKeyType PublicKeyTypeFromSignatureAlgorithm(
95
99
  }
96
100
  }
97
101
 
102
+ QUIC_EXPORT_PRIVATE QuicSignatureAlgorithmVector
103
+ SupportedSignatureAlgorithmsForQuic() {
104
+ // This should be kept in sync with the list in
105
+ // PublicKeyTypeFromSignatureAlgorithm().
106
+ return QuicSignatureAlgorithmVector{
107
+ SSL_SIGN_ED25519, SSL_SIGN_ECDSA_SECP256R1_SHA256,
108
+ SSL_SIGN_ECDSA_SECP384R1_SHA384, SSL_SIGN_RSA_PSS_RSAE_SHA256};
109
+ }
110
+
111
+ namespace {
112
+
98
113
  std::string AttributeNameToString(const CBS& oid_cbs) {
99
114
  absl::string_view oid = CbsToStringPiece(oid_cbs);
100
115
 
@@ -43,6 +43,13 @@ enum class PublicKeyType {
43
43
  kUnknown,
44
44
  };
45
45
  QUIC_EXPORT_PRIVATE std::string PublicKeyTypeToString(PublicKeyType type);
46
+ QUIC_EXPORT_PRIVATE PublicKeyType
47
+ PublicKeyTypeFromSignatureAlgorithm(uint16_t signature_algorithm);
48
+
49
+ // Returns the list of the signature algorithms that can be processed by
50
+ // CertificateView::VerifySignature() and CertificatePrivateKey::Sign().
51
+ QUIC_EXPORT_PRIVATE QuicSignatureAlgorithmVector
52
+ SupportedSignatureAlgorithmsForQuic();
46
53
 
47
54
  // CertificateView represents a parsed version of a single X.509 certificate. As
48
55
  // the word "view" implies, it does not take ownership of the underlying strings
@@ -4,9 +4,11 @@
4
4
 
5
5
  #include "quiche/quic/core/crypto/certificate_view.h"
6
6
 
7
+ #include <limits>
7
8
  #include <memory>
8
9
  #include <sstream>
9
10
 
11
+ #include "absl/algorithm/container.h"
10
12
  #include "absl/strings/escaping.h"
11
13
  #include "absl/strings/string_view.h"
12
14
  #include "openssl/base.h"
@@ -209,6 +211,20 @@ TEST(CertificateViewTest, NameAttribute) {
209
211
  X509NameAttributeToString(StringPieceToCbs(invalid_oid)));
210
212
  }
211
213
 
214
+ TEST(CertificateViewTest, SupportedSignatureAlgorithmsForQuicIsUpToDate) {
215
+ QuicSignatureAlgorithmVector supported =
216
+ SupportedSignatureAlgorithmsForQuic();
217
+ for (int i = 0; i < std::numeric_limits<uint16_t>::max(); i++) {
218
+ uint16_t sigalg = static_cast<uint16_t>(i);
219
+ PublicKeyType key_type = PublicKeyTypeFromSignatureAlgorithm(sigalg);
220
+ if (absl::c_find(supported, sigalg) == supported.end()) {
221
+ EXPECT_EQ(key_type, PublicKeyType::kUnknown);
222
+ } else {
223
+ EXPECT_NE(key_type, PublicKeyType::kUnknown);
224
+ }
225
+ }
226
+ }
227
+
212
228
  } // namespace
213
229
  } // namespace test
214
230
  } // namespace quic
@@ -301,6 +301,7 @@ const QuicTag kNPCO = TAG('N', 'P', 'C', 'O'); // No pacing offload.
301
301
  const QuicTag kBWRE = TAG('B', 'W', 'R', 'E'); // Bandwidth resumption.
302
302
  const QuicTag kBWMX = TAG('B', 'W', 'M', 'X'); // Max bandwidth resumption.
303
303
  const QuicTag kBWID = TAG('B', 'W', 'I', 'D'); // Send bandwidth when idle.
304
+ const QuicTag kBWR1 = TAG('B', 'W', 'I', '1'); // Resume bandwidth experiment 1
304
305
  const QuicTag kBWRS = TAG('B', 'W', 'R', 'S'); // Server bandwidth resumption.
305
306
  const QuicTag kBWS2 = TAG('B', 'W', 'S', '2'); // Server bw resumption v2.
306
307
  const QuicTag kBWS3 = TAG('B', 'W', 'S', '3'); // QUIC Initial CWND - Control.
@@ -173,7 +173,7 @@ class QUIC_EXPORT_PRIVATE ProofSource {
173
173
  //
174
174
  // If returns a non-empty list, ComputeTlsSignature will only be called with a
175
175
  // algorithm in the list.
176
- virtual absl::InlinedVector<uint16_t, 8> SupportedTlsSignatureAlgorithms()
176
+ virtual QuicSignatureAlgorithmVector SupportedTlsSignatureAlgorithms()
177
177
  const = 0;
178
178
 
179
179
  class QUIC_EXPORT_PRIVATE DecryptCallback {
@@ -219,7 +219,7 @@ class QUIC_EXPORT_PRIVATE ProofSource {
219
219
  // |in|. If decryption fails, the callback is invoked with an empty
220
220
  // vector.
221
221
  virtual void Decrypt(absl::string_view in,
222
- std::unique_ptr<DecryptCallback> callback) = 0;
222
+ std::shared_ptr<DecryptCallback> callback) = 0;
223
223
  };
224
224
 
225
225
  // Returns the TicketCrypter used for encrypting and decrypting TLS
@@ -103,11 +103,9 @@ void ProofSourceX509::ComputeTlsSignature(
103
103
  callback->Run(/*ok=*/!signature.empty(), signature, nullptr);
104
104
  }
105
105
 
106
- absl::InlinedVector<uint16_t, 8>
107
- ProofSourceX509::SupportedTlsSignatureAlgorithms() const {
108
- // Let ComputeTlsSignature() report an error if a bad signature algorithm is
109
- // requested.
110
- return {};
106
+ QuicSignatureAlgorithmVector ProofSourceX509::SupportedTlsSignatureAlgorithms()
107
+ const {
108
+ return SupportedSignatureAlgorithmsForQuic();
111
109
  }
112
110
 
113
111
  ProofSource::TicketCrypter* ProofSourceX509::GetTicketCrypter() {
@@ -43,8 +43,7 @@ class QUIC_EXPORT_PRIVATE ProofSourceX509 : public ProofSource {
43
43
  const QuicSocketAddress& client_address, const std::string& hostname,
44
44
  uint16_t signature_algorithm, absl::string_view in,
45
45
  std::unique_ptr<SignatureCallback> callback) override;
46
- absl::InlinedVector<uint16_t, 8> SupportedTlsSignatureAlgorithms()
47
- const override;
46
+ QuicSignatureAlgorithmVector SupportedTlsSignatureAlgorithms() const override;
48
47
  TicketCrypter* GetTicketCrypter() override;
49
48
 
50
49
  // Adds a certificate chain to the verifier. Returns false if the chain is
@@ -706,7 +706,7 @@ void QuicCryptoServerConfig::ProcessClientHello(
706
706
  params,
707
707
  quiche::QuicheReferenceCountedPointer<QuicSignedServerConfig> signed_config,
708
708
  QuicByteCount total_framing_overhead, QuicByteCount chlo_packet_size,
709
- std::unique_ptr<ProcessClientHelloResultCallback> done_cb) const {
709
+ std::shared_ptr<ProcessClientHelloResultCallback> done_cb) const {
710
710
  QUICHE_DCHECK(done_cb);
711
711
  auto context = std::make_unique<ProcessClientHelloContext>(
712
712
  validate_chlo_result, reject_only, connection_id, server_address,
@@ -335,7 +335,7 @@ class QUIC_EXPORT_PRIVATE QuicCryptoServerConfig {
335
335
  quiche::QuicheReferenceCountedPointer<QuicSignedServerConfig>
336
336
  signed_config,
337
337
  QuicByteCount total_framing_overhead, QuicByteCount chlo_packet_size,
338
- std::unique_ptr<ProcessClientHelloResultCallback> done_cb) const;
338
+ std::shared_ptr<ProcessClientHelloResultCallback> done_cb) const;
339
339
 
340
340
  // BuildServerConfigUpdateMessage invokes |cb| with a SCUP message containing
341
341
  // the current primary config, an up to date source-address token, and cert
@@ -587,7 +587,7 @@ class QUIC_EXPORT_PRIVATE QuicCryptoServerConfig {
587
587
  quiche::QuicheReferenceCountedPointer<QuicSignedServerConfig>
588
588
  signed_config,
589
589
  QuicByteCount total_framing_overhead, QuicByteCount chlo_packet_size,
590
- std::unique_ptr<ProcessClientHelloResultCallback> done_cb)
590
+ std::shared_ptr<ProcessClientHelloResultCallback> done_cb)
591
591
  : validate_chlo_result_(validate_chlo_result),
592
592
  reject_only_(reject_only),
593
593
  connection_id_(connection_id),
@@ -674,7 +674,7 @@ class QUIC_EXPORT_PRIVATE QuicCryptoServerConfig {
674
674
  signed_config_;
675
675
  const QuicByteCount total_framing_overhead_;
676
676
  const QuicByteCount chlo_packet_size_;
677
- std::unique_ptr<ProcessClientHelloResultCallback> done_cb_;
677
+ std::shared_ptr<ProcessClientHelloResultCallback> done_cb_;
678
678
  };
679
679
 
680
680
  // Callback class for bridging between ProcessClientHello and