@fails-components/webtransport 0.0.1-rc.2 → 0.0.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 (230) hide show
  1. package/CMakeLists.txt +5 -2
  2. package/package.json +1 -1
  3. package/platform/net/quiche/common/platform/impl/quiche_flags_impl.h +1 -54
  4. package/platform/quiche_platform_impl/quic_flags_impl.h +1 -27
  5. package/platform/quiche_platform_impl/quiche_flag_utils_impl.h +1 -16
  6. package/platform/quiche_platform_impl/quiche_flags_impl.h +6 -1
  7. package/src/http3client.cc +14 -2
  8. package/src/http3client.h +10 -15
  9. package/src/webtransport.js +4 -1
  10. package/third_party/boringssl/src/.clang-format +11 -0
  11. package/third_party/boringssl/src/crypto/CMakeLists.txt +0 -1
  12. package/third_party/boringssl/src/crypto/asn1/a_strex.c +61 -95
  13. package/third_party/boringssl/src/crypto/asn1/asn1_par.c +31 -9
  14. package/third_party/boringssl/src/crypto/asn1/tasn_dec.c +33 -19
  15. package/third_party/boringssl/src/crypto/cipher_extra/asm/chacha20_poly1305_armv8.pl +8 -8
  16. package/third_party/boringssl/src/crypto/cipher_extra/derive_key.c +4 -4
  17. package/third_party/boringssl/src/crypto/cipher_extra/e_des.c +1 -0
  18. package/third_party/boringssl/src/crypto/cipher_extra/e_null.c +1 -0
  19. package/third_party/boringssl/src/crypto/cipher_extra/e_rc2.c +1 -0
  20. package/third_party/boringssl/src/crypto/cipher_extra/e_rc4.c +2 -0
  21. package/third_party/boringssl/src/crypto/fipsmodule/bcm.c +1 -0
  22. package/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl +0 -197
  23. package/third_party/boringssl/src/crypto/fipsmodule/bn/bn_test.cc +0 -9
  24. package/third_party/boringssl/src/crypto/fipsmodule/bn/bn_tests.txt +68 -0
  25. package/third_party/boringssl/src/crypto/fipsmodule/bn/exponentiation.c +45 -40
  26. package/third_party/boringssl/src/crypto/fipsmodule/bn/internal.h +11 -8
  27. package/third_party/boringssl/src/crypto/fipsmodule/bn/rsaz_exp.c +15 -106
  28. package/third_party/boringssl/src/crypto/fipsmodule/bn/rsaz_exp.h +5 -1
  29. package/third_party/boringssl/src/crypto/fipsmodule/cipher/e_aes.c +12 -32
  30. package/third_party/boringssl/src/crypto/fipsmodule/cipher/internal.h +39 -0
  31. package/third_party/boringssl/src/crypto/{evp → fipsmodule/digestsign}/digestsign.c +7 -9
  32. package/third_party/boringssl/src/crypto/fipsmodule/ec/ec_key.c +1 -0
  33. package/third_party/boringssl/src/crypto/fipsmodule/ecdh/ecdh.c +2 -1
  34. package/third_party/boringssl/src/crypto/fipsmodule/ecdsa/ecdsa.c +1 -0
  35. package/third_party/boringssl/src/crypto/fipsmodule/hmac/hmac.c +1 -0
  36. package/third_party/boringssl/src/crypto/fipsmodule/service_indicator/service_indicator.c +1 -0
  37. package/third_party/boringssl/src/crypto/pkcs8/pkcs8_x509.c +4 -4
  38. package/third_party/boringssl/src/crypto/x509/algorithm.c +18 -1
  39. package/third_party/boringssl/src/crypto/x509/x_algor.c +1 -1
  40. package/third_party/boringssl/src/crypto/x509/x_crl.c +3 -3
  41. package/third_party/boringssl/src/crypto/x509/x_exten.c +1 -1
  42. package/third_party/boringssl/src/crypto/x509/x_name.c +1 -1
  43. package/third_party/boringssl/src/crypto/x509/x_pubkey.c +1 -1
  44. package/third_party/boringssl/src/crypto/x509/x_req.c +2 -2
  45. package/third_party/boringssl/src/crypto/x509/x_sig.c +1 -1
  46. package/third_party/boringssl/src/crypto/x509/x_spki.c +2 -2
  47. package/third_party/boringssl/src/crypto/x509/x_val.c +1 -1
  48. package/third_party/boringssl/src/crypto/x509/x_x509.c +2 -2
  49. package/third_party/boringssl/src/crypto/x509v3/v3_akey.c +1 -1
  50. package/third_party/boringssl/src/crypto/x509v3/v3_akeya.c +1 -1
  51. package/third_party/boringssl/src/crypto/x509v3/v3_bcons.c +2 -2
  52. package/third_party/boringssl/src/crypto/x509v3/v3_cpols.c +6 -6
  53. package/third_party/boringssl/src/crypto/x509v3/v3_crld.c +6 -6
  54. package/third_party/boringssl/src/crypto/x509v3/v3_enum.c +1 -1
  55. package/third_party/boringssl/src/crypto/x509v3/v3_extku.c +2 -2
  56. package/third_party/boringssl/src/crypto/x509v3/v3_genn.c +3 -3
  57. package/third_party/boringssl/src/crypto/x509v3/v3_info.c +3 -3
  58. package/third_party/boringssl/src/crypto/x509v3/v3_int.c +3 -3
  59. package/third_party/boringssl/src/crypto/x509v3/v3_ncons.c +2 -2
  60. package/third_party/boringssl/src/crypto/x509v3/v3_ocsp.c +2 -2
  61. package/third_party/boringssl/src/crypto/x509v3/v3_pcons.c +1 -1
  62. package/third_party/boringssl/src/crypto/x509v3/v3_pmaps.c +2 -2
  63. package/third_party/boringssl/src/crypto/x509v3/v3_skey.c +1 -1
  64. package/third_party/boringssl/src/decrepit/blowfish/blowfish.c +1 -0
  65. package/third_party/boringssl/src/decrepit/cast/cast.c +1 -0
  66. package/third_party/boringssl/src/decrepit/cfb/cfb.c +1 -0
  67. package/third_party/boringssl/src/decrepit/xts/xts.c +2 -1
  68. package/third_party/boringssl/src/fuzz/CMakeLists.txt +1 -0
  69. package/third_party/boringssl/src/fuzz/der_roundtrip.cc +57 -0
  70. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/0461791e54b4840c109637952eab43d9b938cab8 +0 -0
  71. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/06e57a7b98a403a00822739739924b97ae6c74e9 +0 -0
  72. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/078c3c1199930781466871c8dda69bec379286a4 +0 -0
  73. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/082a991742f652549e4b207100ee521f474e0a99 +1 -0
  74. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/091e3389548686c5038d04e3d76b9c4d30502074 +0 -0
  75. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/13e484c406efe97dc9d91f8b80a27b0e597c34da +1 -0
  76. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/153d254254345b61e20e7b37637dd6f6fd71ba01 +0 -0
  77. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/163605136e22f5b5302fe60d1f17837bee6b6b2b +1 -0
  78. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/1a96ec99b487b93052cd860c447e6d126dcc36d4 +1 -0
  79. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/1cc9ad96fcee279e8589b7071c7a0ccd111098f2 +1 -0
  80. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/229b8e1825512868e0e11a199ed71231dd41bb4f +1 -0
  81. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/236d820eadf7f84d70de7bb8be5f1c57a4005de2 +0 -0
  82. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/24fd9742dbdee3167509db4af245ad6f8c4c1e99 +0 -0
  83. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/2896f8deb3c4e8bdfeab743b22c64c92316880f7 +0 -0
  84. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/29b6252fe9c4d1186394b1664c421cca795b61a5 +0 -0
  85. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/2b4955132275314d1d377f37f93d8c1879a3519a +0 -0
  86. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/2e7112ac524a7a663632397cbb41f7dfd22e92c6 +0 -0
  87. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/396d197005432accf99bf0f483286e459eb24063 +1 -0
  88. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/3c75fe79266cf639f2180722a3f03f8fc3e25685 +1 -0
  89. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/3fbb104fb0eb6cae4af34d8a516998336b3a6778 +1 -0
  90. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/422fa995b3fdfed572b68b292062c330d6d05272 +0 -0
  91. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/428b48fc494cee828f0c27f77aef477cb2e1fd80 +0 -0
  92. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/4bd69e424b6fa38f9e63e58b8d0e95ac2d38d598 +1 -0
  93. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/4be7e1f134e1c55aeadeead515200f6f1e6254ba +0 -0
  94. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/4de268400e174db2dc306f45c833cf968a6c6546 +0 -0
  95. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/52d2c7efcd7da0eb7463829e05a598e36729bfae +1 -0
  96. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/53cf415eb9de49fb5a0cb46e745e413a99aa0779 +0 -0
  97. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/53ea84c48a5792281a46eb5a9c896d54ea3f1838 +1 -0
  98. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/5ba93c9db0cff93f52b521d7420e43f6eda2784f +0 -0
  99. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/5bab61eb53176449e25c2c82f172b82cb13ffb9d +1 -0
  100. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/5e5361730362736fe3e2804d8566e3c91454509b +0 -0
  101. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/6654fedb1fc4b07095695b062b5af4c2f12d59ae +0 -0
  102. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/6cad8b2a41194372ec897bece6512fe8331e274d +1 -0
  103. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/6f40330ec07e8e22f113f982b297ff7f86b8e485 +0 -0
  104. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/738f291e53e97c08dae378c71ef70a60e31ae900 +0 -0
  105. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/7396791821e64fc9340249a4bcbd2198e9f237db +0 -0
  106. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/7653595e28f23e62ea6707c99ca08c780a69335f +0 -0
  107. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/77de68daecd823babbb58edb1c8e14d7106e83bb +1 -0
  108. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/7cb5c71603a787032973d6ddc9c2c34638005784 +0 -0
  109. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/80a1e1ae75c1e5ef7bbde5f5877e3e5b26b3cf58 +0 -0
  110. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/872ba8af52a8c1380c388bab0e20bec2e729db80 +1 -0
  111. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/8855f2d904cf1bbaffc54e68d98890fdc9ec14cc +0 -0
  112. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/8a22f56ee86cc2d67e9610a6b0ed59f21008a341 +0 -0
  113. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/935a69e9f3bfa1dd3bf058fa3e1b953e82195de6 +1 -0
  114. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/951ccb49640c8f9e81fb4e0d82730321f4e15bb3 +0 -0
  115. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/9af1f3ed10c7a54f6b57c344015141cc082db23b +0 -0
  116. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/a0b7dd1684089c63a4aac2e4a832544df4d639d6 +0 -0
  117. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/a22d0d3565a509a4bfedce078090d8c6a908d950 +0 -0
  118. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/a22f1185582f66227118c8e9002a5c29728f0650 +0 -0
  119. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/a457945cb86ec812235f407ed70fe72fbaf694a1 +1 -0
  120. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/a4ee44c4e8728d4924642ef8765063262e8c4601 +0 -0
  121. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/a4fc609a6546fc0061f499f0faed9054fd388c9a +1 -0
  122. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/a7c13e6fe60eee08b9aac00a095a9301ea1a9824 +1 -0
  123. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/a98e22a5a8c2f5dda365d55e76536931010e1560 +0 -0
  124. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/aca6ed86348b1176bfbe4ebf32b2d48a0aa42f9f +0 -0
  125. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/aeefb82d7f5cc69168aade3b196a84d0f5c14bf2 +0 -0
  126. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/b37e0f6fa42840c773747c4cb608c278ab65021d +1 -0
  127. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/b5d4e67f0ec5b1a90100d8ad424d77aea8e16353 +0 -0
  128. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/b65ea16ba4dae8599ebbad7c4cb9fcd505edf485 +0 -0
  129. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/b95311782071c4d9182c0effe32487fc5cdbd33d +1 -0
  130. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/bbcaf4d15f92bfc6d624eee967fade1a74329f30 +0 -0
  131. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/bc26b8c794ac0adf948cbca02e88b3901824ef17 +1 -0
  132. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/bc7b23c2c68e4ad33ecea493ff6e60d423371cd0 +1 -0
  133. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/bd8daf3e78d8ba3a25838053b6993edc7a21c30e +0 -0
  134. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/c4d94647e646f02da1736b3179804ad6083acde9 +0 -0
  135. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/c869b259f9f81bec8ed24a9bc2cef35a513fb9fc +0 -0
  136. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/ceee46f04a09ef5d3342ef25d9f483e861727575 +1 -0
  137. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/d05c069216b54f35bc7e3ee08371baee243c089a +0 -0
  138. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/d18c30ba21e0d085dd983ad528f2c9001285d3d2 +1 -0
  139. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/d2c00146b2f2bcb4c6cecb731d2062273523d8c8 +1 -0
  140. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/d9bc7157a485958a5fce35ce777f551fe3f7d94c +0 -0
  141. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/defce76f0d3c3e057bb623986bacee7bbd07d1a1 +1 -0
  142. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/df9b696736847e43672b7a99ca05655af8a81135 +0 -0
  143. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/e5b420f71cf412bd9fdebdd46245fabd1f3462e5 +1 -0
  144. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/e7979b0e6e3e9cd64ceab99778c55205d6f92a73 +0 -0
  145. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/ee629f1935abc05fdc32ba314ec1f80f4bff2a17 +0 -0
  146. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/f944dcd635f9801f7ac90a407fbc479964dec024 +0 -0
  147. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/fadcde7d914246ca04bd56e68fd4045b1cf1c5ef +0 -0
  148. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/fd8be6506a9995f626eef831b9c981a80b0e3640 +0 -0
  149. package/third_party/boringssl/src/include/openssl/cipher.h +21 -48
  150. package/third_party/boringssl/src/include/openssl/ssl.h +38 -0
  151. package/third_party/boringssl/src/ssl/handshake_client.cc +8 -2
  152. package/third_party/boringssl/src/ssl/internal.h +16 -3
  153. package/third_party/boringssl/src/ssl/s3_both.cc +23 -1
  154. package/third_party/boringssl/src/ssl/ssl_lib.cc +94 -1
  155. package/third_party/boringssl/src/ssl/test/runner/runner.go +192 -0
  156. package/third_party/boringssl/src/ssl/test/test_config.cc +6 -0
  157. package/third_party/boringssl/src/ssl/test/test_config.h +1 -0
  158. package/third_party/boringssl/src/ssl/tls13_client.cc +7 -3
  159. package/third_party/boringssl/src/ssl/tls13_server.cc +2 -1
  160. package/third_party/boringssl/src/util/convert_comments.go +23 -0
  161. package/third_party/boringssl/src/util/fipstools/acvp/acvptool/acvp/acvp.go +1 -1
  162. package/third_party/boringssl/src/util/fipstools/acvp/modulewrapper/modulewrapper.cc +32 -21
  163. package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_flags_impl.cc +1 -1
  164. package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_flags_impl.h +1 -1
  165. package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_logging_impl.h +3 -2
  166. package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_test_impl.cc +2 -2
  167. package/third_party/quiche/quiche/http2/adapter/http2_protocol.h +5 -1
  168. package/third_party/quiche/quiche/http2/adapter/http2_util.cc +2 -0
  169. package/third_party/quiche/quiche/http2/adapter/http2_visitor_interface.h +2 -0
  170. package/third_party/quiche/quiche/http2/adapter/nghttp2_adapter_test.cc +119 -0
  171. package/third_party/quiche/quiche/http2/adapter/oghttp2_adapter_test.cc +130 -0
  172. package/third_party/quiche/quiche/http2/adapter/oghttp2_session.cc +23 -12
  173. package/third_party/quiche/quiche/http2/decoder/decode_buffer_test.cc +6 -11
  174. package/third_party/quiche/quiche/quic/core/congestion_control/bbr2_sender.cc +0 -5
  175. package/third_party/quiche/quiche/quic/core/congestion_control/bbr2_sender.h +0 -2
  176. package/third_party/quiche/quiche/quic/core/congestion_control/bbr_sender.cc +0 -10
  177. package/third_party/quiche/quiche/quic/core/congestion_control/bbr_sender.h +0 -1
  178. package/third_party/quiche/quiche/quic/core/congestion_control/send_algorithm_interface.h +0 -6
  179. package/third_party/quiche/quiche/quic/core/congestion_control/tcp_cubic_sender_bytes.cc +0 -2
  180. package/third_party/quiche/quiche/quic/core/congestion_control/tcp_cubic_sender_bytes.h +0 -1
  181. package/third_party/quiche/quiche/quic/core/crypto/transport_parameters_test.cc +1 -3
  182. package/third_party/quiche/quiche/quic/core/http/end_to_end_test.cc +19 -9
  183. package/third_party/quiche/quiche/quic/core/http/http_decoder_test.cc +6 -3
  184. package/third_party/quiche/quiche/quic/core/http/quic_server_session_base.cc +4 -16
  185. package/third_party/quiche/quiche/quic/core/http/quic_spdy_session.h +6 -6
  186. package/third_party/quiche/quiche/quic/core/http/quic_spdy_session_test.cc +25 -15
  187. package/third_party/quiche/quiche/quic/core/http/quic_spdy_stream_test.cc +6 -5
  188. package/third_party/quiche/quiche/quic/core/http/web_transport_http3.cc +1 -2
  189. package/third_party/quiche/quiche/quic/core/quic_bandwidth_test.cc +12 -12
  190. package/third_party/quiche/quiche/quic/core/quic_connection.cc +5 -95
  191. package/third_party/quiche/quiche/quic/core/quic_connection.h +0 -35
  192. package/third_party/quiche/quiche/quic/core/quic_connection_test.cc +80 -196
  193. package/third_party/quiche/quiche/quic/core/quic_control_frame_manager.cc +1 -1
  194. package/third_party/quiche/quiche/quic/core/quic_crypto_stream.cc +29 -5
  195. package/third_party/quiche/quiche/quic/core/quic_crypto_stream_test.cc +46 -0
  196. package/third_party/quiche/quiche/quic/core/quic_dispatcher_test.cc +17 -14
  197. package/third_party/quiche/quiche/quic/core/quic_flags_list.h +54 -54
  198. package/third_party/quiche/quiche/quic/core/quic_flow_controller_test.cc +8 -5
  199. package/third_party/quiche/quiche/quic/core/quic_framer_test.cc +8 -5
  200. package/third_party/quiche/quiche/quic/core/quic_idle_network_detector.cc +1 -0
  201. package/third_party/quiche/quiche/quic/core/quic_idle_network_detector_test.cc +29 -0
  202. package/third_party/quiche/quiche/quic/core/quic_packet_creator.cc +1 -5
  203. package/third_party/quiche/quiche/quic/core/quic_packet_creator_test.cc +18 -11
  204. package/third_party/quiche/quiche/quic/core/quic_sent_packet_manager.cc +9 -28
  205. package/third_party/quiche/quiche/quic/core/quic_sent_packet_manager.h +0 -13
  206. package/third_party/quiche/quiche/quic/core/quic_sent_packet_manager_test.cc +1 -49
  207. package/third_party/quiche/quiche/quic/core/quic_session.cc +0 -8
  208. package/third_party/quiche/quiche/quic/core/quic_session.h +0 -1
  209. package/third_party/quiche/quiche/quic/core/quic_stream.cc +1 -1
  210. package/third_party/quiche/quiche/quic/core/quic_stream_sequencer.cc +5 -0
  211. package/third_party/quiche/quiche/quic/core/quic_stream_sequencer.h +4 -0
  212. package/third_party/quiche/quiche/quic/core/quic_stream_sequencer_test.cc +12 -5
  213. package/third_party/quiche/quiche/quic/core/quic_stream_test.cc +27 -12
  214. package/third_party/quiche/quiche/quic/core/quic_types.cc +0 -1
  215. package/third_party/quiche/quiche/quic/core/quic_types.h +0 -3
  216. package/third_party/quiche/quiche/quic/core/quic_utils.cc +0 -3
  217. package/third_party/quiche/quiche/quic/core/quic_utils_test.cc +0 -2
  218. package/third_party/quiche/quiche/quic/core/tls_client_handshaker_test.cc +16 -12
  219. package/third_party/quiche/quiche/quic/core/tls_handshaker.cc +18 -3
  220. package/third_party/quiche/quiche/quic/qbone/platform/internet_checksum.cc +7 -2
  221. package/third_party/quiche/quiche/quic/test_tools/crypto_test_utils.cc +20 -12
  222. package/third_party/quiche/quiche/quic/test_tools/crypto_test_utils.h +10 -5
  223. package/third_party/quiche/quiche/quic/test_tools/quic_test_utils.h +0 -2
  224. package/third_party/quiche/quiche/quic/test_tools/simulator/quic_endpoint.cc +0 -8
  225. package/third_party/quiche/quiche/quic/test_tools/simulator/quic_endpoint.h +0 -1
  226. package/third_party/quiche/quiche/quic/tools/quic_simple_server_stream_test.cc +2 -1
  227. package/platform/net/quiche/common/platform/impl/quic_flags_list_add.h +0 -379
  228. package/platform/net/quiche/common/platform/impl/quiche_flags_impl.cc +0 -21
  229. package/third_party/boringssl/src/crypto/asn1/charmap.h +0 -15
  230. package/third_party/boringssl/src/crypto/asn1/charmap.pl +0 -135
@@ -6,109 +6,109 @@
6
6
 
7
7
  #ifdef QUIC_FLAG
8
8
 
9
- QUIC_FLAG(FLAGS_quic_restart_flag_quic_offload_pacing_to_usps2, false)
9
+ QUIC_FLAG(quic_restart_flag_quic_offload_pacing_to_usps2, false)
10
10
  // A testonly reloadable flag that will always default to false.
11
- QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_testonly_default_false, false)
11
+ QUIC_FLAG(quic_reloadable_flag_quic_testonly_default_false, false)
12
12
  // A testonly reloadable flag that will always default to true.
13
- QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_testonly_default_true, true)
13
+ QUIC_FLAG(quic_reloadable_flag_quic_testonly_default_true, true)
14
14
  // A testonly restart flag that will always default to false.
15
- QUIC_FLAG(FLAGS_quic_restart_flag_quic_testonly_default_false, false)
15
+ QUIC_FLAG(quic_restart_flag_quic_testonly_default_false, false)
16
16
  // A testonly restart flag that will always default to true.
17
- QUIC_FLAG(FLAGS_quic_restart_flag_quic_testonly_default_true, true)
17
+ QUIC_FLAG(quic_restart_flag_quic_testonly_default_true, true)
18
18
  // If bytes in flight has dipped below 1.25*MaxBW in the last round, do not exit PROBE_UP due to excess queue buildup.
19
- QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_bbr2_no_probe_up_exit_if_no_queue, true)
20
- // If true, 1) QUIC connections will use a lower minimum for trusted initial rtt, 2) When TRTT is received, QUIC server sessions will mark the initial rtt from CachedNetworkParameters as trusted.
21
- QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_use_lower_min_for_trusted_irtt, true)
19
+ QUIC_FLAG(quic_reloadable_flag_quic_bbr2_no_probe_up_exit_if_no_queue, true)
22
20
  // If true, QUIC will default enable MTU discovery at server, with a target of 1450 bytes.
23
- QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_enable_mtu_discovery_at_server, false)
21
+ QUIC_FLAG(quic_reloadable_flag_quic_enable_mtu_discovery_at_server, false)
24
22
  // If true, QuicGsoBatchWriter will support release time if it is available and the process has the permission to do so.
25
- QUIC_FLAG(FLAGS_quic_restart_flag_quic_support_release_time_for_gso, false)
23
+ QUIC_FLAG(quic_restart_flag_quic_support_release_time_for_gso, false)
24
+ // If true, TlsHandshaker::AdvanceHandshake will check if connection is closed after SSL_do_handshake.
25
+ QUIC_FLAG(quic_reloadable_flag_quic_tls_handshaker_check_connection_closed, true)
26
26
  // If true, abort async QPACK header decompression in QuicSpdyStream::Reset() and in QuicSpdyStream::OnStreamReset().
27
- QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_abort_qpack_on_stream_reset, true)
27
+ QUIC_FLAG(quic_reloadable_flag_quic_abort_qpack_on_stream_reset, true)
28
28
  // If true, ack frequency frame can be sent from server to client.
29
- QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_can_send_ack_frequency, true)
29
+ QUIC_FLAG(quic_reloadable_flag_quic_can_send_ack_frequency, true)
30
30
  // If true, allow client to enable BBRv2 on server via connection option \'B2ON\'.
31
- QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_allow_client_enabled_bbr_v2, true)
31
+ QUIC_FLAG(quic_reloadable_flag_quic_allow_client_enabled_bbr_v2, true)
32
32
  // If true, close read side but not write side in QuicSpdyStream::OnStreamReset().
33
- QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_fix_on_stream_reset, true)
33
+ QUIC_FLAG(quic_reloadable_flag_quic_fix_on_stream_reset, true)
34
+ // If true, close the connection if a crypto send buffer exceeds its size limit.
35
+ QUIC_FLAG(quic_reloadable_flag_quic_bounded_crypto_send_buffer, false)
34
36
  // If true, consider original connection ID as active before handshake completes.
35
- QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_consider_original_connection_id_as_active_pre_handshake, false)
36
- // If true, consolidate more logic into SetRetransmissionAlarm to ensure the logic is applied consistently.
37
- QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_simplify_set_retransmission_alarm, true)
37
+ QUIC_FLAG(quic_reloadable_flag_quic_consider_original_connection_id_as_active_pre_handshake, true)
38
38
  // If true, default-enable 5RTO blachole detection.
39
- QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_default_enable_5rto_blackhole_detection2, true)
39
+ QUIC_FLAG(quic_reloadable_flag_quic_default_enable_5rto_blackhole_detection2, true)
40
40
  // If true, deliver INITIAL packets before other types of packets in QuicBufferedPacketStore.
41
- QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_deliver_initial_packets_first, true)
41
+ QUIC_FLAG(quic_reloadable_flag_quic_deliver_initial_packets_first, true)
42
42
  // If true, disable QUIC version Q043.
43
- QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_disable_version_q043, false)
43
+ QUIC_FLAG(quic_reloadable_flag_quic_disable_version_q043, false)
44
44
  // If true, disable QUIC version Q046.
45
- QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_disable_version_q046, false)
45
+ QUIC_FLAG(quic_reloadable_flag_quic_disable_version_q046, false)
46
46
  // If true, disable QUIC version Q050.
47
- QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_disable_version_q050, false)
47
+ QUIC_FLAG(quic_reloadable_flag_quic_disable_version_q050, false)
48
48
  // If true, disable QUIC version h3 (RFCv1).
49
- QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_disable_version_rfcv1, false)
49
+ QUIC_FLAG(quic_reloadable_flag_quic_disable_version_rfcv1, false)
50
50
  // If true, disable QUIC version h3-29.
51
- QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_disable_version_draft_29, false)
51
+ QUIC_FLAG(quic_reloadable_flag_quic_disable_version_draft_29, false)
52
52
  // If true, disable blackhole detection on server side.
53
- QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_disable_server_blackhole_detection, false)
53
+ QUIC_FLAG(quic_reloadable_flag_quic_disable_server_blackhole_detection, false)
54
54
  // If true, disable resumption when receiving NRES connection option.
55
- QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_enable_disable_resumption, true)
55
+ QUIC_FLAG(quic_reloadable_flag_quic_enable_disable_resumption, true)
56
56
  // If true, discard INITIAL packet if the key has been dropped.
57
- QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_discard_initial_packet_with_key_dropped, true)
57
+ QUIC_FLAG(quic_reloadable_flag_quic_discard_initial_packet_with_key_dropped, true)
58
58
  // If true, do not bundle ACK while sending PATH_CHALLENGE on alternative path.
59
- QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_not_bundle_ack_on_alternative_path, true)
59
+ QUIC_FLAG(quic_reloadable_flag_quic_not_bundle_ack_on_alternative_path, true)
60
60
  // If true, enable server retransmittable on wire PING.
61
- QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_enable_server_on_wire_ping, true)
61
+ QUIC_FLAG(quic_reloadable_flag_quic_enable_server_on_wire_ping, true)
62
62
  // If true, flush pending frames as well as pending padding bytes on connection migration.
63
- QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_flush_pending_frames_and_padding_bytes_on_migration, true)
63
+ QUIC_FLAG(quic_reloadable_flag_quic_flush_pending_frames_and_padding_bytes_on_migration, true)
64
64
  // If true, ietf connection migration is no longer conditioned on connection option RVCM.
65
- QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_remove_connection_migration_connection_option_v2, false)
65
+ QUIC_FLAG(quic_reloadable_flag_quic_remove_connection_migration_connection_option_v2, false)
66
66
  // If true, include offset in QUIC STREAM_DATA_BLOCKED and DATA_BLOCKED frames.
67
- QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_include_offset_in_blocked_frames, false)
67
+ QUIC_FLAG(quic_reloadable_flag_quic_include_offset_in_blocked_frames, false)
68
68
  // If true, include stream information in idle timeout connection close detail.
69
- QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_add_stream_info_to_idle_close_detail, true)
69
+ QUIC_FLAG(quic_reloadable_flag_quic_add_stream_info_to_idle_close_detail, true)
70
70
  // If true, quic server will send ENABLE_CONNECT_PROTOCOL setting and and endpoint will validate required request/response headers and extended CONNECT mechanism and update code counts of valid/invalid headers.
71
- QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_verify_request_headers_2, true)
71
+ QUIC_FLAG(quic_reloadable_flag_quic_verify_request_headers_2, true)
72
72
  // If true, reject or send error response code upon receiving invalid request or response headers. This flag depends on --gfe2_reloadable_flag_quic_verify_request_headers_2.
73
- QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_act_upon_invalid_header, false)
73
+ QUIC_FLAG(quic_reloadable_flag_quic_act_upon_invalid_header, false)
74
74
  // If true, require handshake confirmation for QUIC connections, functionally disabling 0-rtt handshakes.
75
- QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_require_handshake_confirmation, false)
75
+ QUIC_FLAG(quic_reloadable_flag_quic_require_handshake_confirmation, false)
76
76
  // If true, server proactively retires client issued connection ID on reverse path validation failure.
77
- QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_retire_cid_on_reverse_path_validation_failure, true)
77
+ QUIC_FLAG(quic_reloadable_flag_quic_retire_cid_on_reverse_path_validation_failure, true)
78
78
  // If true, server sends bandwidth eastimate when network is idle for a while.
79
- QUIC_FLAG(FLAGS_quic_restart_flag_quic_enable_sending_bandwidth_estimate_when_network_idle, true)
79
+ QUIC_FLAG(quic_restart_flag_quic_enable_sending_bandwidth_estimate_when_network_idle, true)
80
80
  // If true, set burst token to 2 in cwnd bootstrapping experiment.
81
- QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_conservative_bursts, false)
81
+ QUIC_FLAG(quic_reloadable_flag_quic_conservative_bursts, false)
82
82
  // If true, stop resetting ideal_next_packet_send_time_ in pacing sender.
83
- QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_donot_reset_ideal_next_packet_send_time, false)
83
+ QUIC_FLAG(quic_reloadable_flag_quic_donot_reset_ideal_next_packet_send_time, false)
84
84
  // If true, use BBRv2 as the default congestion controller. Takes precedence over --quic_default_to_bbr.
85
- QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_default_to_bbr_v2, false)
85
+ QUIC_FLAG(quic_reloadable_flag_quic_default_to_bbr_v2, false)
86
86
  // If true, use PING manager to manage the PING alarm.
87
- QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_use_ping_manager2, true)
87
+ QUIC_FLAG(quic_reloadable_flag_quic_use_ping_manager2, true)
88
88
  // If true, use new connection ID in connection migration.
89
- QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_connection_migration_use_new_cid_v2, true)
89
+ QUIC_FLAG(quic_reloadable_flag_quic_connection_migration_use_new_cid_v2, true)
90
90
  // If true, uses conservative cwnd gain and pacing gain when cwnd gets bootstrapped.
91
- QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_conservative_cwnd_and_pacing_gains, false)
91
+ QUIC_FLAG(quic_reloadable_flag_quic_conservative_cwnd_and_pacing_gains, false)
92
92
  // When the flag is true, exit STARTUP after the same number of loss events as PROBE_UP.
93
- QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_bbr2_startup_probe_up_loss_events, true)
93
+ QUIC_FLAG(quic_reloadable_flag_quic_bbr2_startup_probe_up_loss_events, true)
94
94
  // When true, defaults to BBR congestion control instead of Cubic.
95
- QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_default_to_bbr, false)
95
+ QUIC_FLAG(quic_reloadable_flag_quic_default_to_bbr, false)
96
96
  // When true, prevents QUIC\'s PacingSender from generating bursts when the congestion controller is CWND limited and not pacing limited.
97
- QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_fix_pacing_sender_bursts, true)
97
+ QUIC_FLAG(quic_reloadable_flag_quic_fix_pacing_sender_bursts, true)
98
98
  // When true, set the initial congestion control window from connection options in QuicSentPacketManager rather than TcpCubicSenderBytes.
99
- QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_unified_iw_options, true)
99
+ QUIC_FLAG(quic_reloadable_flag_quic_unified_iw_options, true)
100
100
  // When true, support draft-ietf-quic-v2-01
101
- QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_enable_version_2_draft_01, false)
101
+ QUIC_FLAG(quic_reloadable_flag_quic_enable_version_2_draft_01, false)
102
102
  // When true, the B203 connection option causes the Bbr2Sender to ignore inflight_hi during PROBE_UP and increase it when the bytes delivered without loss are higher.
103
- QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_bbr2_ignore_inflight_hi_in_probe_up, true)
103
+ QUIC_FLAG(quic_reloadable_flag_quic_bbr2_ignore_inflight_hi_in_probe_up, true)
104
104
  // When true, the B205 connection option enables extra acked in STARTUP, and B204 adds new logic to decrease it whenever max bandwidth increases.
105
- QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_bbr2_startup_extra_acked, true)
105
+ QUIC_FLAG(quic_reloadable_flag_quic_bbr2_startup_extra_acked, true)
106
106
  // When true, the B207 connection option causes BBR2 to exit STARTUP if a persistent queue of 2*BDP has existed for the entire round.
107
- QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_bbr2_exit_startup_on_persistent_queue2, true)
107
+ QUIC_FLAG(quic_reloadable_flag_quic_bbr2_exit_startup_on_persistent_queue2, true)
108
108
  // When true, the BBQ0 connection option causes QUIC BBR2 to add bytes_acked to probe_up_acked if the connection hasn\'t been app-limited since inflight_hi was utilized.
109
- QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_bbr2_add_bytes_acked_after_inflight_hi_limited, true)
109
+ QUIC_FLAG(quic_reloadable_flag_quic_bbr2_add_bytes_acked_after_inflight_hi_limited, true)
110
110
  // When true, the BBR4 copt sets the extra_acked window to 20 RTTs and BBR5 sets it to 40 RTTs.
111
- QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_bbr2_extra_acked_window, true)
111
+ QUIC_FLAG(quic_reloadable_flag_quic_bbr2_extra_acked_window, true)
112
112
 
113
113
  #endif
114
114
 
@@ -95,13 +95,16 @@ TEST_F(QuicFlowControllerTest, SendingBytes) {
95
95
  EXPECT_EQ(send_window_, flow_controller_->SendWindowSize());
96
96
 
97
97
  // Try to send more bytes, violating flow control.
98
- EXPECT_CALL(*connection_,
99
- CloseConnection(QUIC_FLOW_CONTROL_SENT_TOO_MUCH_DATA, _, _));
100
98
  EXPECT_QUIC_BUG(
101
- flow_controller_->AddBytesSent(send_window_ * 10),
99
+ {
100
+ EXPECT_CALL(
101
+ *connection_,
102
+ CloseConnection(QUIC_FLOW_CONTROL_SENT_TOO_MUCH_DATA, _, _));
103
+ flow_controller_->AddBytesSent(send_window_ * 10);
104
+ EXPECT_TRUE(flow_controller_->IsBlocked());
105
+ EXPECT_EQ(0u, flow_controller_->SendWindowSize());
106
+ },
102
107
  absl::StrCat("Trying to send an extra ", send_window_ * 10, " bytes"));
103
- EXPECT_TRUE(flow_controller_->IsBlocked());
104
- EXPECT_EQ(0u, flow_controller_->SendWindowSize());
105
108
  }
106
109
 
107
110
  TEST_F(QuicFlowControllerTest, ReceivingBytes) {
@@ -10446,11 +10446,14 @@ TEST_P(QuicFramerTest, EncryptEmptyPacket) {
10446
10446
  /*retry_token_length=*/0, VARIABLE_LENGTH_INTEGER_LENGTH_0);
10447
10447
  char buffer[kMaxOutgoingPacketSize];
10448
10448
  size_t encrypted_length = 1;
10449
- EXPECT_QUIC_BUG(encrypted_length = framer_.EncryptPayload(
10450
- ENCRYPTION_INITIAL, kPacketNumber, *packet, buffer,
10451
- kMaxOutgoingPacketSize),
10452
- "packet is shorter than associated data length");
10453
- EXPECT_EQ(0u, encrypted_length);
10449
+ EXPECT_QUIC_BUG(
10450
+ {
10451
+ encrypted_length =
10452
+ framer_.EncryptPayload(ENCRYPTION_INITIAL, kPacketNumber, *packet,
10453
+ buffer, kMaxOutgoingPacketSize);
10454
+ EXPECT_EQ(0u, encrypted_length);
10455
+ },
10456
+ "packet is shorter than associated data length");
10454
10457
  }
10455
10458
 
10456
10459
  TEST_P(QuicFramerTest, EncryptPacketWithVersionFlag) {
@@ -71,6 +71,7 @@ void QuicIdleNetworkDetector::SetTimeouts(
71
71
  QuicTime::Delta handshake_timeout, QuicTime::Delta idle_network_timeout) {
72
72
  handshake_timeout_ = handshake_timeout;
73
73
  idle_network_timeout_ = idle_network_timeout;
74
+ bandwidth_update_timeout_ = QuicTime::Delta::Infinite();
74
75
 
75
76
  if (GetQuicRestartFlag(
76
77
  quic_enable_sending_bandwidth_estimate_when_network_idle) &&
@@ -247,6 +247,35 @@ TEST_F(QuicIdleNetworkDetectorTest, NoAlarmAfterStopped) {
247
247
  EXPECT_FALSE(alarm_->IsSet());
248
248
  }
249
249
 
250
+ TEST_F(QuicIdleNetworkDetectorTest,
251
+ ResetBandwidthTimeoutWhenHandshakeTimeoutIsSet) {
252
+ if (!GetQuicRestartFlag(
253
+ quic_enable_sending_bandwidth_estimate_when_network_idle)) {
254
+ return;
255
+ }
256
+ detector_->SetTimeouts(
257
+ /*handshake_timeout=*/QuicTime::Delta::Infinite(),
258
+ /*idle_network_timeout=*/QuicTime::Delta::FromSeconds(20));
259
+ // The deadline is set based on the bandwidth timeout.
260
+ EXPECT_EQ(clock_.Now() + QuicTime::Delta::FromSeconds(10),
261
+ alarm_->deadline());
262
+
263
+ detector_->SetTimeouts(
264
+ /*handshake_timeout=*/QuicTime::Delta::FromSeconds(15),
265
+ /*idle_network_timeout=*/QuicTime::Delta::FromSeconds(20));
266
+ // Bandwidth timeout is reset and the deadline is set based on the handshake
267
+ // timeout.
268
+ EXPECT_EQ(clock_.Now() + QuicTime::Delta::FromSeconds(15),
269
+ alarm_->deadline());
270
+
271
+ detector_->SetTimeouts(
272
+ /*handshake_timeout=*/QuicTime::Delta::Infinite(),
273
+ /*idle_network_timeout=*/QuicTime::Delta::FromSeconds(20));
274
+ // The deadline is set based on the bandwidth timeout.
275
+ EXPECT_EQ(clock_.Now() + QuicTime::Delta::FromSeconds(10),
276
+ alarm_->deadline());
277
+ }
278
+
250
279
  } // namespace
251
280
 
252
281
  } // namespace test
@@ -1875,10 +1875,6 @@ void QuicPacketCreator::MaybeAddPadding() {
1875
1875
  return;
1876
1876
  }
1877
1877
 
1878
- if (packet_.transmission_type == PROBING_RETRANSMISSION) {
1879
- needs_full_padding_ = true;
1880
- }
1881
-
1882
1878
  if (packet_.fate == COALESCE || packet_.fate == LEGACY_VERSION_ENCAPSULATE) {
1883
1879
  // Do not add full padding if the packet is going to be coalesced or
1884
1880
  // encapsulated.
@@ -2076,7 +2072,7 @@ size_t QuicPacketCreator::MinPlaintextPacketSize(
2076
2072
  // 1.3 is used, unittests still use NullEncrypter/NullDecrypter (and other
2077
2073
  // test crypters) which also only use 12 byte tags.
2078
2074
  //
2079
- // TODO(nharper): Set this based on the handshake protocol in use.
2075
+ // TODO(b/234061734): Set this based on the handshake protocol in use.
2080
2076
  return 7;
2081
2077
  }
2082
2078
 
@@ -1549,11 +1549,13 @@ TEST_P(QuicPacketCreatorTest, AddUnencryptedStreamDataClosesConnection) {
1549
1549
  }
1550
1550
 
1551
1551
  creator_.set_encryption_level(ENCRYPTION_INITIAL);
1552
- EXPECT_CALL(delegate_, OnUnrecoverableError(_, _));
1553
1552
  QuicStreamFrame stream_frame(GetNthClientInitiatedStreamId(0),
1554
1553
  /*fin=*/false, 0u, absl::string_view());
1555
1554
  EXPECT_QUIC_BUG(
1556
- creator_.AddFrame(QuicFrame(stream_frame), NOT_RETRANSMISSION),
1555
+ {
1556
+ EXPECT_CALL(delegate_, OnUnrecoverableError(_, _));
1557
+ creator_.AddFrame(QuicFrame(stream_frame), NOT_RETRANSMISSION);
1558
+ },
1557
1559
  "Cannot send stream data with level: ENCRYPTION_INITIAL");
1558
1560
  }
1559
1561
 
@@ -1564,11 +1566,13 @@ TEST_P(QuicPacketCreatorTest, SendStreamDataWithEncryptionHandshake) {
1564
1566
  }
1565
1567
 
1566
1568
  creator_.set_encryption_level(ENCRYPTION_HANDSHAKE);
1567
- EXPECT_CALL(delegate_, OnUnrecoverableError(_, _));
1568
1569
  QuicStreamFrame stream_frame(GetNthClientInitiatedStreamId(0),
1569
1570
  /*fin=*/false, 0u, absl::string_view());
1570
1571
  EXPECT_QUIC_BUG(
1571
- creator_.AddFrame(QuicFrame(stream_frame), NOT_RETRANSMISSION),
1572
+ {
1573
+ EXPECT_CALL(delegate_, OnUnrecoverableError(_, _));
1574
+ creator_.AddFrame(QuicFrame(stream_frame), NOT_RETRANSMISSION);
1575
+ },
1572
1576
  "Cannot send stream data with level: ENCRYPTION_HANDSHAKE");
1573
1577
  }
1574
1578
 
@@ -1935,7 +1939,7 @@ TEST_P(QuicPacketCreatorTest, PacketTransmissionType) {
1935
1939
  EXPECT_TRUE(creator_.AddFrame(stream_frame, PTO_RETRANSMISSION));
1936
1940
  ASSERT_EQ(serialized_packet_, nullptr);
1937
1941
 
1938
- EXPECT_TRUE(creator_.AddFrame(padding_frame, PROBING_RETRANSMISSION));
1942
+ EXPECT_TRUE(creator_.AddFrame(padding_frame, LOSS_RETRANSMISSION));
1939
1943
  creator_.FlushCurrentPacket();
1940
1944
  ASSERT_TRUE(serialized_packet_->encrypted_buffer);
1941
1945
 
@@ -2563,12 +2567,15 @@ TEST_F(QuicPacketCreatorMultiplePacketsTest,
2563
2567
  delegate_.SetCanWriteAnything();
2564
2568
  const std::string data(10000, '?');
2565
2569
  EXPECT_CALL(delegate_, OnSerializedPacket(_)).Times(0);
2566
- EXPECT_CALL(delegate_, OnUnrecoverableError(_, _));
2567
- EXPECT_QUIC_BUG(creator_.ConsumeDataFastPath(
2568
- QuicUtils::GetFirstBidirectionalStreamId(
2569
- framer_.transport_version(), Perspective::IS_CLIENT),
2570
- data),
2571
- "");
2570
+ EXPECT_QUIC_BUG(
2571
+ {
2572
+ EXPECT_CALL(delegate_, OnUnrecoverableError(_, _));
2573
+ creator_.ConsumeDataFastPath(
2574
+ QuicUtils::GetFirstBidirectionalStreamId(
2575
+ framer_.transport_version(), Perspective::IS_CLIENT),
2576
+ data);
2577
+ },
2578
+ "");
2572
2579
  }
2573
2580
 
2574
2581
  TEST_F(QuicPacketCreatorMultiplePacketsTest, AddControlFrame_OnlyAckWritable) {
@@ -47,7 +47,6 @@ static const float kPtoMultiplierWithoutRttSamples = 3;
47
47
  // the frames directly (as opposed to resulting in a loss notification).
48
48
  inline bool ShouldForceRetransmission(TransmissionType transmission_type) {
49
49
  return transmission_type == HANDSHAKE_RETRANSMISSION ||
50
- transmission_type == PROBING_RETRANSMISSION ||
51
50
  transmission_type == PTO_RETRANSMISSION;
52
51
  }
53
52
 
@@ -286,24 +285,18 @@ void QuicSentPacketManager::AdjustNetworkParameters(
286
285
  const QuicBandwidth& bandwidth = params.bandwidth;
287
286
  const QuicTime::Delta& rtt = params.rtt;
288
287
 
289
- if (use_lower_min_irtt()) {
290
- QUIC_RELOADABLE_FLAG_COUNT_N(quic_use_lower_min_for_trusted_irtt, 2, 2);
291
- if (!rtt.IsZero()) {
292
- if (params.is_rtt_trusted) {
293
- // Always set initial rtt if it's trusted.
294
- SetInitialRtt(rtt, /*trusted=*/true);
295
- } else if (rtt_stats_.initial_rtt() ==
296
- QuicTime::Delta::FromMilliseconds(kInitialRttMs)) {
297
- // Only set initial rtt if we are using the default. This avoids
298
- // overwriting a trusted initial rtt by an untrusted one.
299
- SetInitialRtt(rtt, /*trusted=*/false);
300
- }
301
- }
302
- } else {
303
- if (!rtt.IsZero()) {
288
+ if (!rtt.IsZero()) {
289
+ if (params.is_rtt_trusted) {
290
+ // Always set initial rtt if it's trusted.
291
+ SetInitialRtt(rtt, /*trusted=*/true);
292
+ } else if (rtt_stats_.initial_rtt() ==
293
+ QuicTime::Delta::FromMilliseconds(kInitialRttMs)) {
294
+ // Only set initial rtt if we are using the default. This avoids
295
+ // overwriting a trusted initial rtt by an untrusted one.
304
296
  SetInitialRtt(rtt, /*trusted=*/false);
305
297
  }
306
298
  }
299
+
307
300
  const QuicByteCount old_cwnd = send_algorithm_->GetCongestionWindow();
308
301
  if (GetQuicReloadableFlag(quic_conservative_bursts) && using_pacing_ &&
309
302
  !bandwidth.IsZero()) {
@@ -509,9 +502,6 @@ void QuicSentPacketManager::MarkForRetransmission(
509
502
  << "packet number " << packet_number
510
503
  << " transmission_type: " << transmission_type << " transmission_info "
511
504
  << transmission_info->DebugString();
512
- // Handshake packets should never be sent as probing retransmissions.
513
- QUICHE_DCHECK(!transmission_info->has_crypto_handshake ||
514
- transmission_type != PROBING_RETRANSMISSION);
515
505
  if (ShouldForceRetransmission(transmission_type)) {
516
506
  if (!unacked_packets_.RetransmitFrames(
517
507
  QuicFrames(transmission_info->retransmittable_frames),
@@ -996,15 +986,6 @@ const QuicTime QuicSentPacketManager::GetRetransmissionTime() const {
996
986
  // Do not set the timer if there is any credit left.
997
987
  return QuicTime::Zero();
998
988
  }
999
- PacketNumberSpace packet_number_space;
1000
- if (!simplify_set_retransmission_alarm_ &&
1001
- supports_multiple_packet_number_spaces() &&
1002
- unacked_packets_.perspective() == Perspective::IS_SERVER &&
1003
- !GetEarliestPacketSentTimeForPto(&packet_number_space).IsInitialized()) {
1004
- // Do not set the timer on the server side if the only in flight packets are
1005
- // half RTT data.
1006
- return QuicTime::Zero();
1007
- }
1008
989
  switch (GetRetransmissionMode()) {
1009
990
  case HANDSHAKE_MODE:
1010
991
  return unacked_packets_.GetLastCryptoPacketSentTime() +
@@ -464,12 +464,6 @@ class QUIC_EXPORT_PRIVATE QuicSentPacketManager {
464
464
  // kMinUntrustedInitialRoundTripTimeUs if not |trusted|.
465
465
  void SetInitialRtt(QuicTime::Delta rtt, bool trusted);
466
466
 
467
- bool use_lower_min_irtt() const { return use_lower_min_irtt_; }
468
-
469
- bool simplify_set_retransmission_alarm() const {
470
- return simplify_set_retransmission_alarm_;
471
- }
472
-
473
467
  private:
474
468
  friend class test::QuicConnectionPeer;
475
469
  friend class test::QuicSentPacketManagerPeer;
@@ -674,13 +668,6 @@ class QUIC_EXPORT_PRIVATE QuicSentPacketManager {
674
668
 
675
669
  // Whether to ignore the ack_delay in received ACKs.
676
670
  bool ignore_ack_delay_;
677
-
678
- // Latched value of --quic_use_lower_min_for_trusted_irtt.
679
- bool use_lower_min_irtt_ =
680
- GetQuicReloadableFlag(quic_use_lower_min_for_trusted_irtt);
681
-
682
- const bool simplify_set_retransmission_alarm_ =
683
- GetQuicReloadableFlag(quic_simplify_set_retransmission_alarm);
684
671
  };
685
672
 
686
673
  } // namespace quic
@@ -208,8 +208,7 @@ class QuicSentPacketManagerTest : public QuicTest {
208
208
  TransmissionType transmission_type) {
209
209
  bool is_lost = false;
210
210
  if (transmission_type == HANDSHAKE_RETRANSMISSION ||
211
- transmission_type == PTO_RETRANSMISSION ||
212
- transmission_type == PROBING_RETRANSMISSION) {
211
+ transmission_type == PTO_RETRANSMISSION) {
213
212
  EXPECT_CALL(notifier_, RetransmitFrames(_, _))
214
213
  .WillOnce(WithArgs<1>(
215
214
  Invoke([this, new_packet_number](TransmissionType type) {
@@ -2699,53 +2698,6 @@ TEST_F(QuicSentPacketManagerTest, ClearLastInflightPacketsSentTime) {
2699
2698
  EXPECT_EQ(packet2_sent_time + pto_delay, manager_.GetRetransmissionTime());
2700
2699
  }
2701
2700
 
2702
- // Regression test for b/157895910.
2703
- TEST_F(QuicSentPacketManagerTest, EarliestSentTimeNotInitializedWhenPtoFires) {
2704
- if (GetQuicReloadableFlag(quic_simplify_set_retransmission_alarm)) {
2705
- return;
2706
- }
2707
- manager_.EnableMultiplePacketNumberSpacesSupport();
2708
- EXPECT_CALL(*send_algorithm_, PacingRate(_))
2709
- .WillRepeatedly(Return(QuicBandwidth::Zero()));
2710
- EXPECT_CALL(*send_algorithm_, GetCongestionWindow())
2711
- .WillRepeatedly(Return(10 * kDefaultTCPMSS));
2712
-
2713
- // Send INITIAL 1.
2714
- SendDataPacket(1, ENCRYPTION_INITIAL);
2715
-
2716
- // Send HANDSHAKE packets.
2717
- clock_.AdvanceTime(QuicTime::Delta::FromMilliseconds(10));
2718
- SendDataPacket(2, ENCRYPTION_HANDSHAKE);
2719
- SendDataPacket(3, ENCRYPTION_HANDSHAKE);
2720
- SendDataPacket(4, ENCRYPTION_HANDSHAKE);
2721
-
2722
- // Send half RTT packet.
2723
- SendDataPacket(5, ENCRYPTION_FORWARD_SECURE);
2724
-
2725
- // Received ACK for INITIAL packet 1.
2726
- ExpectAck(1);
2727
- clock_.AdvanceTime(QuicTime::Delta::FromMilliseconds(90));
2728
- manager_.OnAckFrameStart(QuicPacketNumber(1), QuicTime::Delta::Infinite(),
2729
- clock_.Now());
2730
- manager_.OnAckRange(QuicPacketNumber(1), QuicPacketNumber(2));
2731
- EXPECT_EQ(PACKETS_NEWLY_ACKED,
2732
- manager_.OnAckFrameEnd(clock_.Now(), QuicPacketNumber(1),
2733
- ENCRYPTION_INITIAL));
2734
-
2735
- // Received ACK for HANDSHAKE packets.
2736
- uint64_t acked[] = {2, 3, 4};
2737
- ExpectAcksAndLosses(true, acked, ABSL_ARRAYSIZE(acked), nullptr, 0);
2738
- clock_.AdvanceTime(QuicTime::Delta::FromMilliseconds(90));
2739
- manager_.OnAckFrameStart(QuicPacketNumber(4), QuicTime::Delta::Infinite(),
2740
- clock_.Now());
2741
- manager_.OnAckRange(QuicPacketNumber(2), QuicPacketNumber(5));
2742
- EXPECT_EQ(PACKETS_NEWLY_ACKED,
2743
- manager_.OnAckFrameEnd(clock_.Now(), QuicPacketNumber(4),
2744
- ENCRYPTION_HANDSHAKE));
2745
- // Verify PTO will not be armed.
2746
- EXPECT_EQ(QuicTime::Zero(), manager_.GetRetransmissionTime());
2747
- }
2748
-
2749
2701
  TEST_F(QuicSentPacketManagerTest, MaybeRetransmitInitialData) {
2750
2702
  manager_.EnableMultiplePacketNumberSpacesSupport();
2751
2703
  EXPECT_CALL(*send_algorithm_, PacingRate(_))
@@ -692,14 +692,6 @@ void QuicSession::OnCanWrite() {
692
692
  }
693
693
  }
694
694
 
695
- bool QuicSession::SendProbingData() {
696
- if (connection()->sent_packet_manager().MaybeRetransmitOldestPacket(
697
- PROBING_RETRANSMISSION)) {
698
- return true;
699
- }
700
- return false;
701
- }
702
-
703
695
  bool QuicSession::WillingAndAbleToWrite() const {
704
696
  // Schedule a write when:
705
697
  // 1) control frame manager has pending or new control frames, or
@@ -138,7 +138,6 @@ class QUIC_EXPORT_PRIVATE QuicSession
138
138
  const QuicSocketAddress& peer_address,
139
139
  bool is_connectivity_probe) override;
140
140
  void OnCanWrite() override;
141
- bool SendProbingData() override;
142
141
  void OnCongestionWindowChange(QuicTime /*now*/) override {}
143
142
  void OnConnectionMigration(AddressChangeType /*type*/) override {}
144
143
  // Adds a connection level WINDOW_UPDATE frame.
@@ -1136,7 +1136,7 @@ void QuicStream::OnStreamFrameLost(QuicStreamOffset offset,
1136
1136
  bool QuicStream::RetransmitStreamData(QuicStreamOffset offset,
1137
1137
  QuicByteCount data_length, bool fin,
1138
1138
  TransmissionType type) {
1139
- QUICHE_DCHECK(type == PTO_RETRANSMISSION || type == PROBING_RETRANSMISSION);
1139
+ QUICHE_DCHECK(type == PTO_RETRANSMISSION);
1140
1140
  if (HasDeadlinePassed()) {
1141
1141
  OnDeadlinePassed();
1142
1142
  return true;
@@ -292,6 +292,11 @@ QuicStreamOffset QuicStreamSequencer::NumBytesConsumed() const {
292
292
  return buffered_frames_.BytesConsumed();
293
293
  }
294
294
 
295
+ bool QuicStreamSequencer::IsAllDataAvailable() const {
296
+ QUICHE_DCHECK_LE(NumBytesConsumed() + NumBytesBuffered(), close_offset_);
297
+ return NumBytesConsumed() + NumBytesBuffered() >= close_offset_;
298
+ }
299
+
295
300
  const std::string QuicStreamSequencer::DebugString() const {
296
301
  // clang-format off
297
302
  return absl::StrCat("QuicStreamSequencer:",
@@ -139,6 +139,10 @@ class QUIC_EXPORT_PRIVATE QuicStreamSequencer {
139
139
  // Number of bytes has been consumed.
140
140
  QuicStreamOffset NumBytesConsumed() const;
141
141
 
142
+ // Returns true if all of the data within the stream up until the FIN is
143
+ // available.
144
+ bool IsAllDataAvailable() const;
145
+
142
146
  QuicStreamOffset close_offset() const { return close_offset_; }
143
147
 
144
148
  int num_frames_received() const { return num_frames_received_; }
@@ -223,8 +223,10 @@ TEST_F(QuicStreamSequencerTest, BlockedThenFullFrameConsumed) {
223
223
  ConsumeData(3);
224
224
  }));
225
225
  EXPECT_FALSE(sequencer_->IsClosed());
226
+ EXPECT_FALSE(sequencer_->IsAllDataAvailable());
226
227
  OnFinFrame(3, "def");
227
228
  EXPECT_TRUE(sequencer_->IsClosed());
229
+ EXPECT_TRUE(sequencer_->IsAllDataAvailable());
228
230
  }
229
231
 
230
232
  TEST_F(QuicStreamSequencerTest, BlockedThenFullFrameAndFinConsumed) {
@@ -239,6 +241,7 @@ TEST_F(QuicStreamSequencerTest, BlockedThenFullFrameAndFinConsumed) {
239
241
  ConsumeData(3);
240
242
  }));
241
243
  EXPECT_FALSE(sequencer_->IsClosed());
244
+ EXPECT_TRUE(sequencer_->IsAllDataAvailable());
242
245
  sequencer_->SetUnblocked();
243
246
  EXPECT_TRUE(sequencer_->IsClosed());
244
247
  EXPECT_EQ(0u, NumBufferedBytes());
@@ -260,6 +263,7 @@ TEST_F(QuicStreamSequencerTest, EmptyFinFrame) {
260
263
  OnFinFrame(0, "");
261
264
  EXPECT_EQ(0u, NumBufferedBytes());
262
265
  EXPECT_EQ(0u, sequencer_->NumBytesConsumed());
266
+ EXPECT_TRUE(sequencer_->IsAllDataAvailable());
263
267
  }
264
268
 
265
269
  TEST_F(QuicStreamSequencerTest, PartialFrameConsumed) {
@@ -560,11 +564,14 @@ TEST_F(QuicStreamSequencerTest, MarkConsumedError) {
560
564
 
561
565
  // Now, attempt to mark consumed more data than was readable and expect the
562
566
  // stream to be closed.
563
- EXPECT_CALL(stream_, ResetWithError(QuicResetStreamError::FromInternal(
564
- QUIC_ERROR_PROCESSING_STREAM)));
565
- EXPECT_QUIC_BUG(sequencer_->MarkConsumed(4),
566
- "Invalid argument to MarkConsumed."
567
- " expect to consume: 4, but not enough bytes available.");
567
+ EXPECT_QUIC_BUG(
568
+ {
569
+ EXPECT_CALL(stream_, ResetWithError(QuicResetStreamError::FromInternal(
570
+ QUIC_ERROR_PROCESSING_STREAM)));
571
+ sequencer_->MarkConsumed(4);
572
+ },
573
+ "Invalid argument to MarkConsumed."
574
+ " expect to consume: 4, but not enough bytes available.");
568
575
  }
569
576
 
570
577
  TEST_F(QuicStreamSequencerTest, MarkConsumedWithMissingPacket) {