@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
@@ -8113,5 +8113,51 @@ RVHWbCvFvNZAoWiIJ2z34RLGInyZvCZ8xLAvsuaWULDDaoeDl1M0t4Hm
8113
8113
  }
8114
8114
  }
8115
8115
 
8116
+ TEST(SSLTest, NumTickets) {
8117
+ bssl::UniquePtr<SSL_CTX> server_ctx(SSL_CTX_new(TLS_method()));
8118
+ ASSERT_TRUE(server_ctx);
8119
+ bssl::UniquePtr<SSL_CTX> client_ctx(SSL_CTX_new(TLS_method()));
8120
+ ASSERT_TRUE(client_ctx);
8121
+ bssl::UniquePtr<X509> cert = GetTestCertificate();
8122
+ ASSERT_TRUE(cert);
8123
+ bssl::UniquePtr<EVP_PKEY> key = GetTestKey();
8124
+ ASSERT_TRUE(key);
8125
+ ASSERT_TRUE(SSL_CTX_use_certificate(server_ctx.get(), cert.get()));
8126
+ ASSERT_TRUE(SSL_CTX_use_PrivateKey(server_ctx.get(), key.get()));
8127
+ SSL_CTX_set_session_cache_mode(server_ctx.get(), SSL_SESS_CACHE_BOTH);
8128
+
8129
+ SSL_CTX_set_session_cache_mode(client_ctx.get(), SSL_SESS_CACHE_BOTH);
8130
+ static size_t ticket_count;
8131
+ SSL_CTX_sess_set_new_cb(client_ctx.get(), [](SSL *, SSL_SESSION *) -> int {
8132
+ ticket_count++;
8133
+ return 0;
8134
+ });
8135
+
8136
+ auto count_tickets = [&]() -> size_t {
8137
+ ticket_count = 0;
8138
+ bssl::UniquePtr<SSL> client, server;
8139
+ if (!ConnectClientAndServer(&client, &server, client_ctx.get(),
8140
+ server_ctx.get()) ||
8141
+ !FlushNewSessionTickets(client.get(), server.get())) {
8142
+ ADD_FAILURE() << "Could not run handshake";
8143
+ return 0;
8144
+ }
8145
+ return ticket_count;
8146
+ };
8147
+
8148
+ // By default, we should send two tickets.
8149
+ EXPECT_EQ(count_tickets(), 2u);
8150
+
8151
+ for (size_t num_tickets : {0, 1, 2, 3, 4, 5}) {
8152
+ SCOPED_TRACE(num_tickets);
8153
+ ASSERT_TRUE(SSL_CTX_set_num_tickets(server_ctx.get(), num_tickets));
8154
+ EXPECT_EQ(count_tickets(), num_tickets);
8155
+ }
8156
+
8157
+ // Configuring too many tickets causes us to stop at some point.
8158
+ ASSERT_TRUE(SSL_CTX_set_num_tickets(server_ctx.get(), 100000));
8159
+ EXPECT_EQ(count_tickets(), 16u);
8160
+ }
8161
+
8116
8162
  } // namespace
8117
8163
  BSSL_NAMESPACE_END
@@ -131,15 +131,12 @@ static bool add_new_session_tickets(SSL_HANDSHAKE *hs, bool *out_sent_tickets) {
131
131
  return true;
132
132
  }
133
133
 
134
- // TLS 1.3 recommends single-use tickets, so issue multiple tickets in case
135
- // the client makes several connections before getting a renewal.
136
- static const int kNumTickets = 2;
137
-
138
134
  // Rebase the session timestamp so that it is measured from ticket
139
135
  // issuance.
140
136
  ssl_session_rebase_time(ssl, hs->new_session.get());
141
137
 
142
- for (int i = 0; i < kNumTickets; i++) {
138
+ assert(ssl->session_ctx->num_tickets <= kMaxTickets);
139
+ for (size_t i = 0; i < ssl->session_ctx->num_tickets; i++) {
143
140
  UniquePtr<SSL_SESSION> session(
144
141
  SSL_SESSION_dup(hs->new_session.get(), SSL_SESSION_INCLUDE_NONAUTH));
145
142
  if (!session) {
@@ -160,7 +157,8 @@ static bool add_new_session_tickets(SSL_HANDSHAKE *hs, bool *out_sent_tickets) {
160
157
  ssl->quic_method != nullptr ? 0xffffffff : kMaxEarlyDataAccepted;
161
158
  }
162
159
 
163
- static_assert(kNumTickets < 256, "Too many tickets");
160
+ static_assert(kMaxTickets < 256, "Too many tickets");
161
+ assert(i < 256);
164
162
  uint8_t nonce[] = {static_cast<uint8_t>(i)};
165
163
 
166
164
  ScopedCBB cbb;
@@ -25,14 +25,14 @@ vars = {
25
25
  # cipd describe PACKAGE_NAME -version latest
26
26
 
27
27
  # infra/3pp/tools/cmake/linux-amd64
28
- 'cmake_version': 'version:2@3.21.3',
28
+ 'cmake_version': 'version:2@3.23.1',
29
29
  # infra/3pp/tools/go/linux-amd64
30
- 'go_version': 'version:2@1.17.2',
30
+ 'go_version': 'version:2@1.18.2',
31
31
 
32
32
  # Update the following from
33
- # https://chromium.googlesource.com/chromium/src/+/master/DEPS
33
+ # https://chromium.googlesource.com/chromium/src/+/main/DEPS
34
34
  'android_sdk_platform-tools_version': 'g7n_-r6yJd_SGRklujGB1wEt8iyr77FZTUJVS9w6O34C',
35
- 'android_ndk_revision': '401019bf85744311b26c88ced255cd53401af8b7',
35
+ 'android_ndk_revision': '8388a2be5421311dc75c5f937aae13d821a27f3d',
36
36
  'libfuzzer_revision': 'debe7d2d1982e540fbd6bd78604bf001753f9e74',
37
37
  'libcxx_revision': '79a2e924d96e2fc1e4b937c42efd08898fa472d7',
38
38
  'libcxxabi_revision': '9b8228b4a9be26e0881f36089d9a8d62df851acc',
@@ -53,7 +53,7 @@ deps = {
53
53
  'dep_type': 'cipd',
54
54
  },
55
55
 
56
- # TODO(davidben): Merge cmake-linux64 and cmake-mac. Now that we use CIPD,
56
+ # TODO(davidben): Merge the three CMake directories. Now that we use CIPD,
57
57
  # which supports a ${{platform}} marker, there is nothing platform-specific
58
58
  # about this anymore. However, the recipe still expects CMake to be found at
59
59
  # these directories, so this needs to be coordinated with a change there.
@@ -75,6 +75,15 @@ deps = {
75
75
  'dep_type': 'cipd',
76
76
  },
77
77
 
78
+ 'boringssl/util/bot/cmake-win32': {
79
+ 'packages': [{
80
+ 'package': 'infra/3pp/tools/cmake/${{platform}}',
81
+ 'version': Var('cmake_version'),
82
+ }],
83
+ 'condition': 'host_os == "win"',
84
+ 'dep_type': 'cipd',
85
+ },
86
+
78
87
  'boringssl/util/bot/golang': {
79
88
  'packages': [{
80
89
  'package': 'infra/3pp/tools/go/${{platform}}',
@@ -105,28 +114,6 @@ recursedeps = [
105
114
 
106
115
  hooks = [
107
116
  # TODO(https://crbug.com/1180257): Use CIPD for CMake on Windows.
108
- {
109
- 'name': 'cmake_win32',
110
- 'pattern': '.',
111
- 'condition': 'host_os == "win"',
112
- 'action': [ 'download_from_google_storage',
113
- '--no_resume',
114
- '--platform=win32',
115
- '--no_auth',
116
- '--bucket', 'chromium-tools',
117
- '-s', 'boringssl/util/bot/cmake-win32.zip.sha1',
118
- ],
119
- },
120
- {
121
- 'name': 'cmake_win32_extract',
122
- 'pattern': '.',
123
- 'condition': 'host_os == "win"',
124
- 'action': [ 'python3',
125
- 'boringssl/util/bot/extract.py',
126
- 'boringssl/util/bot/cmake-win32.zip',
127
- 'boringssl/util/bot/cmake-win32/',
128
- ],
129
- },
130
117
  {
131
118
  'name': 'perl_win32',
132
119
  'pattern': '.',
@@ -12,10 +12,10 @@ DEPS: Update the variables as described in the comments.
12
12
 
13
13
  update_clang.py: Set CLANG_REVISION and CLANG_SUB_REVISION to the values used in
14
14
  Chromium, found at
15
- https://chromium.googlesource.com/chromium/src/+/master/tools/clang/scripts/update.py
15
+ https://chromium.googlesource.com/chromium/src/+/main/tools/clang/scripts/update.py
16
16
 
17
17
  vs_toolchain.py: Update _GetDesiredVsToolchainHashes from Chromium, found at
18
- https://chromium.googlesource.com/chromium/src/+/master/build/vs_toolchain.py
18
+ https://chromium.googlesource.com/chromium/src/+/main/build/vs_toolchain.py
19
19
  This may require taking other updates to that file. (Don't remove MSVC
20
20
  versions if BoringSSL still needs to support them.)
21
21
 
@@ -24,15 +24,9 @@ update, place the updated files in their intended location and run:
24
24
 
25
25
  upload_to_google_storage.py -b chromium-tools FILE
26
26
 
27
- cmake-win32.zip: Update to the latest prebuilt release of CMake, found at
28
- https://cmake.org/download/. Use the file labeled "Windows win64-x64
29
- ZIP". The download will be named cmake-VERSION-win64-x64.zip.
30
-
31
- The current revision is cmake-3.19.5-win64-x64.zip
32
-
33
27
  nasm-win32.exe: Update to the appropriate release of NASM, found at
34
28
  https://www.nasm.us/. Use the same version as Chromium, found at
35
- https://chromium.googlesource.com/chromium/src/+/master/third_party/nasm/README.chromium
29
+ https://chromium.googlesource.com/chromium/src/+/main/third_party/nasm/README.chromium
36
30
  Extract nasm.exe from the download named nasm-VERSION-win64.zip.
37
31
 
38
32
  The current revision is nasm-2.13.03-win64.zip.
@@ -1,172 +1,172 @@
1
- #!/usr/bin/env python3
2
- # Copyright (c) 2012 The Chromium Authors. All rights reserved.
3
- # Use of this source code is governed by a BSD-style license that can be
4
- # found in the LICENSE file.
5
-
6
- """This script is used to download prebuilt clang binaries."""
7
-
8
- from __future__ import division
9
- from __future__ import print_function
10
-
11
- import os
12
- import shutil
13
- import subprocess
14
- import stat
15
- import sys
16
- import tarfile
17
- import tempfile
18
- import time
19
-
20
- try:
21
- # Python 3.0 or later
22
- from urllib.error import HTTPError, URLError
23
- from urllib.request import urlopen
24
- except ImportError:
25
- from urllib2 import urlopen, HTTPError, URLError
26
-
27
-
28
- # CLANG_REVISION and CLANG_SUB_REVISION determine the build of clang
29
- # to use. These should be synced with tools/clang/scripts/update.py in
30
- # Chromium.
31
- CLANG_REVISION = 'llvmorg-14-init-6722-g0fbd3aad'
32
- CLANG_SUB_REVISION = 2
33
-
34
- PACKAGE_VERSION = '%s-%s' % (CLANG_REVISION, CLANG_SUB_REVISION)
35
-
36
- # Path constants. (All of these should be absolute paths.)
37
- THIS_DIR = os.path.abspath(os.path.dirname(__file__))
38
- LLVM_BUILD_DIR = os.path.join(THIS_DIR, 'llvm-build')
39
- STAMP_FILE = os.path.join(LLVM_BUILD_DIR, 'cr_build_revision')
40
-
41
- # URL for pre-built binaries.
42
- CDS_URL = os.environ.get('CDS_CLANG_BUCKET_OVERRIDE',
43
- 'https://commondatastorage.googleapis.com/chromium-browser-clang')
44
-
45
-
46
- def DownloadUrl(url, output_file):
47
- """Download url into output_file."""
48
- CHUNK_SIZE = 4096
49
- TOTAL_DOTS = 10
50
- num_retries = 3
51
- retry_wait_s = 5 # Doubled at each retry.
52
-
53
- while True:
54
- try:
55
- sys.stdout.write('Downloading %s ' % url)
56
- sys.stdout.flush()
57
- response = urlopen(url)
58
- total_size = int(response.headers.get('Content-Length').strip())
59
- bytes_done = 0
60
- dots_printed = 0
61
- while True:
62
- chunk = response.read(CHUNK_SIZE)
63
- if not chunk:
64
- break
65
- output_file.write(chunk)
66
- bytes_done += len(chunk)
67
- num_dots = TOTAL_DOTS * bytes_done // total_size
68
- sys.stdout.write('.' * (num_dots - dots_printed))
69
- sys.stdout.flush()
70
- dots_printed = num_dots
71
- if bytes_done != total_size:
72
- raise URLError("only got %d of %d bytes" % (bytes_done, total_size))
73
- print(' Done.')
74
- return
75
- except URLError as e:
76
- sys.stdout.write('\n')
77
- print(e)
78
- if num_retries == 0 or isinstance(e, HTTPError) and e.code == 404:
79
- raise e
80
- num_retries -= 1
81
- print('Retrying in %d s ...' % retry_wait_s)
82
- time.sleep(retry_wait_s)
83
- retry_wait_s *= 2
84
-
85
-
86
- def EnsureDirExists(path):
87
- if not os.path.exists(path):
88
- print("Creating directory %s" % path)
89
- os.makedirs(path)
90
-
91
-
92
- def DownloadAndUnpack(url, output_dir):
93
- with tempfile.TemporaryFile() as f:
94
- DownloadUrl(url, f)
95
- f.seek(0)
96
- EnsureDirExists(output_dir)
97
- tarfile.open(mode='r:gz', fileobj=f).extractall(path=output_dir)
98
-
99
-
100
- def ReadStampFile(path=STAMP_FILE):
101
- """Return the contents of the stamp file, or '' if it doesn't exist."""
102
- try:
103
- with open(path, 'r') as f:
104
- return f.read().rstrip()
105
- except IOError:
106
- return ''
107
-
108
-
109
- def WriteStampFile(s, path=STAMP_FILE):
110
- """Write s to the stamp file."""
111
- EnsureDirExists(os.path.dirname(path))
112
- with open(path, 'w') as f:
113
- f.write(s)
114
- f.write('\n')
115
-
116
-
117
- def RmTree(dir):
118
- """Delete dir."""
119
- def ChmodAndRetry(func, path, _):
120
- # Subversion can leave read-only files around.
121
- if not os.access(path, os.W_OK):
122
- os.chmod(path, stat.S_IWUSR)
123
- return func(path)
124
- raise
125
-
126
- shutil.rmtree(dir, onerror=ChmodAndRetry)
127
-
128
-
129
- def CopyFile(src, dst):
130
- """Copy a file from src to dst."""
131
- print("Copying %s to %s" % (src, dst))
132
- shutil.copy(src, dst)
133
-
134
-
135
- def UpdateClang():
136
- cds_file = "clang-%s.tgz" % PACKAGE_VERSION
137
- if sys.platform == 'win32' or sys.platform == 'cygwin':
138
- cds_full_url = CDS_URL + '/Win/' + cds_file
139
- elif sys.platform.startswith('linux'):
140
- cds_full_url = CDS_URL + '/Linux_x64/' + cds_file
141
- else:
142
- return 0
143
-
144
- print('Updating Clang to %s...' % PACKAGE_VERSION)
145
-
146
- if ReadStampFile() == PACKAGE_VERSION:
147
- print('Clang is already up to date.')
148
- return 0
149
-
150
- # Reset the stamp file in case the build is unsuccessful.
151
- WriteStampFile('')
152
-
153
- print('Downloading prebuilt clang')
154
- if os.path.exists(LLVM_BUILD_DIR):
155
- RmTree(LLVM_BUILD_DIR)
156
- try:
157
- DownloadAndUnpack(cds_full_url, LLVM_BUILD_DIR)
158
- print('clang %s unpacked' % PACKAGE_VERSION)
159
- WriteStampFile(PACKAGE_VERSION)
160
- return 0
161
- except URLError:
162
- print('Failed to download prebuilt clang %s' % cds_file)
163
- print('Exiting.')
164
- return 1
165
-
166
-
167
- def main():
168
- return UpdateClang()
169
-
170
-
171
- if __name__ == '__main__':
172
- sys.exit(main())
1
+ #!/usr/bin/env python3
2
+ # Copyright (c) 2012 The Chromium Authors. All rights reserved.
3
+ # Use of this source code is governed by a BSD-style license that can be
4
+ # found in the LICENSE file.
5
+
6
+ """This script is used to download prebuilt clang binaries."""
7
+
8
+ from __future__ import division
9
+ from __future__ import print_function
10
+
11
+ import os
12
+ import shutil
13
+ import subprocess
14
+ import stat
15
+ import sys
16
+ import tarfile
17
+ import tempfile
18
+ import time
19
+
20
+ try:
21
+ # Python 3.0 or later
22
+ from urllib.error import HTTPError, URLError
23
+ from urllib.request import urlopen
24
+ except ImportError:
25
+ from urllib2 import urlopen, HTTPError, URLError
26
+
27
+
28
+ # CLANG_REVISION and CLANG_SUB_REVISION determine the build of clang
29
+ # to use. These should be synced with tools/clang/scripts/update.py in
30
+ # Chromium.
31
+ CLANG_REVISION = 'llvmorg-15-init-10168-gc2a7904a'
32
+ CLANG_SUB_REVISION = 2
33
+
34
+ PACKAGE_VERSION = '%s-%s' % (CLANG_REVISION, CLANG_SUB_REVISION)
35
+
36
+ # Path constants. (All of these should be absolute paths.)
37
+ THIS_DIR = os.path.abspath(os.path.dirname(__file__))
38
+ LLVM_BUILD_DIR = os.path.join(THIS_DIR, 'llvm-build')
39
+ STAMP_FILE = os.path.join(LLVM_BUILD_DIR, 'cr_build_revision')
40
+
41
+ # URL for pre-built binaries.
42
+ CDS_URL = os.environ.get('CDS_CLANG_BUCKET_OVERRIDE',
43
+ 'https://commondatastorage.googleapis.com/chromium-browser-clang')
44
+
45
+
46
+ def DownloadUrl(url, output_file):
47
+ """Download url into output_file."""
48
+ CHUNK_SIZE = 4096
49
+ TOTAL_DOTS = 10
50
+ num_retries = 3
51
+ retry_wait_s = 5 # Doubled at each retry.
52
+
53
+ while True:
54
+ try:
55
+ sys.stdout.write('Downloading %s ' % url)
56
+ sys.stdout.flush()
57
+ response = urlopen(url)
58
+ total_size = int(response.headers.get('Content-Length').strip())
59
+ bytes_done = 0
60
+ dots_printed = 0
61
+ while True:
62
+ chunk = response.read(CHUNK_SIZE)
63
+ if not chunk:
64
+ break
65
+ output_file.write(chunk)
66
+ bytes_done += len(chunk)
67
+ num_dots = TOTAL_DOTS * bytes_done // total_size
68
+ sys.stdout.write('.' * (num_dots - dots_printed))
69
+ sys.stdout.flush()
70
+ dots_printed = num_dots
71
+ if bytes_done != total_size:
72
+ raise URLError("only got %d of %d bytes" % (bytes_done, total_size))
73
+ print(' Done.')
74
+ return
75
+ except URLError as e:
76
+ sys.stdout.write('\n')
77
+ print(e)
78
+ if num_retries == 0 or isinstance(e, HTTPError) and e.code == 404:
79
+ raise e
80
+ num_retries -= 1
81
+ print('Retrying in %d s ...' % retry_wait_s)
82
+ time.sleep(retry_wait_s)
83
+ retry_wait_s *= 2
84
+
85
+
86
+ def EnsureDirExists(path):
87
+ if not os.path.exists(path):
88
+ print("Creating directory %s" % path)
89
+ os.makedirs(path)
90
+
91
+
92
+ def DownloadAndUnpack(url, output_dir):
93
+ with tempfile.TemporaryFile() as f:
94
+ DownloadUrl(url, f)
95
+ f.seek(0)
96
+ EnsureDirExists(output_dir)
97
+ tarfile.open(mode='r:gz', fileobj=f).extractall(path=output_dir)
98
+
99
+
100
+ def ReadStampFile(path=STAMP_FILE):
101
+ """Return the contents of the stamp file, or '' if it doesn't exist."""
102
+ try:
103
+ with open(path, 'r') as f:
104
+ return f.read().rstrip()
105
+ except IOError:
106
+ return ''
107
+
108
+
109
+ def WriteStampFile(s, path=STAMP_FILE):
110
+ """Write s to the stamp file."""
111
+ EnsureDirExists(os.path.dirname(path))
112
+ with open(path, 'w') as f:
113
+ f.write(s)
114
+ f.write('\n')
115
+
116
+
117
+ def RmTree(dir):
118
+ """Delete dir."""
119
+ def ChmodAndRetry(func, path, _):
120
+ # Subversion can leave read-only files around.
121
+ if not os.access(path, os.W_OK):
122
+ os.chmod(path, stat.S_IWUSR)
123
+ return func(path)
124
+ raise
125
+
126
+ shutil.rmtree(dir, onerror=ChmodAndRetry)
127
+
128
+
129
+ def CopyFile(src, dst):
130
+ """Copy a file from src to dst."""
131
+ print("Copying %s to %s" % (src, dst))
132
+ shutil.copy(src, dst)
133
+
134
+
135
+ def UpdateClang():
136
+ cds_file = "clang-%s.tgz" % PACKAGE_VERSION
137
+ if sys.platform == 'win32' or sys.platform == 'cygwin':
138
+ cds_full_url = CDS_URL + '/Win/' + cds_file
139
+ elif sys.platform.startswith('linux'):
140
+ cds_full_url = CDS_URL + '/Linux_x64/' + cds_file
141
+ else:
142
+ return 0
143
+
144
+ print('Updating Clang to %s...' % PACKAGE_VERSION)
145
+
146
+ if ReadStampFile() == PACKAGE_VERSION:
147
+ print('Clang is already up to date.')
148
+ return 0
149
+
150
+ # Reset the stamp file in case the build is unsuccessful.
151
+ WriteStampFile('')
152
+
153
+ print('Downloading prebuilt clang')
154
+ if os.path.exists(LLVM_BUILD_DIR):
155
+ RmTree(LLVM_BUILD_DIR)
156
+ try:
157
+ DownloadAndUnpack(cds_full_url, LLVM_BUILD_DIR)
158
+ print('clang %s unpacked' % PACKAGE_VERSION)
159
+ WriteStampFile(PACKAGE_VERSION)
160
+ return 0
161
+ except URLError:
162
+ print('Failed to download prebuilt clang %s' % cds_file)
163
+ print('Exiting.')
164
+ return 1
165
+
166
+
167
+ def main():
168
+ return UpdateClang()
169
+
170
+
171
+ if __name__ == '__main__':
172
+ sys.exit(main())
@@ -68,9 +68,9 @@ def _GetDesiredVsToolchainHashes(version):
68
68
  # libraries.
69
69
  return ['418b3076791776573a815eb298c8aa590307af63']
70
70
  if version == '2019':
71
- # VS 2019 16.61 with 10.0.19041 SDK, and 10.0.20348 version of
72
- # d3dcompiler_47.dll, with ARM64 libraries and UWP support.
73
- return ['3bda71a11e']
71
+ # VS 2019 16.61 with 10.0.20348.0 SDK, 10.0.19041 version of Debuggers
72
+ # with ARM64 libraries and UWP support.
73
+ return ['1023ce2e82']
74
74
  raise Exception('Unsupported VS version %s' % version)
75
75
 
76
76
 
@@ -0,0 +1,8 @@
1
+ build --cxxopt=-std=c++17
2
+ build --cxxopt=-fno-rtti
3
+
4
+ # Enable Abseil/Googletest integration
5
+ build --define absl=1
6
+
7
+ # Don't fail on converting "0xff" to char
8
+ build --copt=-Wno-narrowing
@@ -0,0 +1,7 @@
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
+ licenses(["notice"])
6
+
7
+ exports_files(["LICENSE"])
@@ -1 +1,3 @@
1
- Edits in this file will cause a Copybara migration.
1
+ Edits in this file will cause a Copybara migration.
2
+
3
+ 1 2 3 4 5
@@ -0,0 +1,87 @@
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
+ workspace(name = "com_google_quiche")
6
+
7
+ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
8
+
9
+ # -------- Bazel tooling dependencies --------
10
+
11
+ http_archive(
12
+ name = "bazel_skylib",
13
+ sha256 = "f7be3474d42aae265405a592bb7da8e171919d74c16f082a5457840f06054728", # Last updated 2022-05-18
14
+ urls = ["https://github.com/bazelbuild/bazel-skylib/releases/download/1.2.1/bazel-skylib-1.2.1.tar.gz"],
15
+ )
16
+
17
+ # -------- Dependencies used in core QUICHE build --------
18
+
19
+ http_archive(
20
+ name = "com_google_absl",
21
+ sha256 = "44634eae586a7158dceedda7d8fd5cec6d1ebae08c83399f75dd9ce76324de40", # Last updated 2022-05-18
22
+ strip_prefix = "abseil-cpp-3e04aade4e7a53aebbbed1a1268117f1f522bfb0",
23
+ urls = ["https://github.com/abseil/abseil-cpp/archive/3e04aade4e7a53aebbbed1a1268117f1f522bfb0.zip"],
24
+ )
25
+
26
+ http_archive(
27
+ name = "com_google_protobuf",
28
+ sha256 = "8b28fdd45bab62d15db232ec404248901842e5340299a57765e48abe8a80d930", # Last updated 2022-05-18
29
+ strip_prefix = "protobuf-3.20.1",
30
+ urls = ["https://github.com/protocolbuffers/protobuf/archive/refs/tags/v3.20.1.tar.gz"],
31
+ )
32
+
33
+ http_archive(
34
+ name = "boringssl",
35
+ sha256 = "482a59ea63d03fbb4d3cab22e40043fb4eef2cbbdc2eb944cd627675ae8b0cf3", # Last updated 2022-05-18
36
+ strip_prefix = "boringssl-02c6711efbb6c9dc6236a1c3779af1bcb0274dfd",
37
+ urls = ["https://github.com/google/boringssl/archive/02c6711efbb6c9dc6236a1c3779af1bcb0274dfd.tar.gz"],
38
+ )
39
+
40
+ http_archive(
41
+ name = "com_google_quic_trace",
42
+ sha256 = "079331de8c3cbf145a3b57adb3ad4e73d733ecfa84d3486e1c5a9eaeef286549", # Last updated 2022-05-18
43
+ strip_prefix = "quic-trace-c7b993eb750e60c307e82f75763600d9c06a6de1",
44
+ urls = ["https://github.com/google/quic-trace/archive/c7b993eb750e60c307e82f75763600d9c06a6de1.tar.gz"],
45
+ )
46
+
47
+ http_archive(
48
+ name = "com_google_googleurl",
49
+ sha256 = "a1bc96169d34dcc1406ffb750deef3bc8718bd1f9069a2878838e1bd905de989",
50
+ urls = ["https://storage.googleapis.com/quiche-envoy-integration/googleurl_9cdb1f4d1a365ebdbcbf179dadf7f8aa5ee802e7.tar.gz"],
51
+ )
52
+
53
+ http_archive(
54
+ name = "zlib",
55
+ build_file = "//build:zlib.BUILD",
56
+ sha256 = "d8688496ea40fb61787500e863cc63c9afcbc524468cedeb478068924eb54932", # Last updated 2022-05-18
57
+ strip_prefix = "zlib-1.2.12",
58
+ urls = ["https://github.com/madler/zlib/archive/refs/tags/v1.2.12.tar.gz"],
59
+ )
60
+
61
+ # -------- Dependencies used by QUICHE tests and extra tooling --------
62
+
63
+ http_archive(
64
+ name = "com_google_googletest",
65
+ sha256 = "7ee83802222f9392452c57b4757185697a51639b69b64590f2c2188f58618581", # Last updated 2022-05-18
66
+ strip_prefix = "googletest-8d51dc50eb7e7698427fed81b85edad0e032112e",
67
+ urls = ["https://github.com/google/googletest/archive/8d51dc50eb7e7698427fed81b85edad0e032112e.zip"],
68
+ )
69
+
70
+ # Note this must use a commit from the `abseil` branch of the RE2 project.
71
+ # https://github.com/google/re2/tree/abseil
72
+ http_archive(
73
+ name = "com_googlesource_code_re2",
74
+ sha256 = "906d0df8ff48f8d3a00a808827f009a840190f404559f649cb8e4d7143255ef9",
75
+ strip_prefix = "re2-a276a8c738735a0fe45a6ee590fe2df69bcf4502",
76
+ urls = ["https://github.com/google/re2/archive/a276a8c738735a0fe45a6ee590fe2df69bcf4502.zip"], # 2022-04-08
77
+ )
78
+
79
+ # -------- Load and call dependencies of underlying libraries --------
80
+
81
+ load("@bazel_skylib//:workspace.bzl", "bazel_skylib_workspace")
82
+
83
+ bazel_skylib_workspace()
84
+
85
+ load("@com_google_protobuf//:protobuf_deps.bzl", "protobuf_deps")
86
+
87
+ protobuf_deps()
@@ -0,0 +1,7 @@
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
+ licenses(["notice"])
6
+
7
+ exports_files(["source_list.json"])