@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.
- package/.github/workflows/npm-publish-packages.yml +0 -0
- package/CMakeLists.txt +2 -0
- package/package.json +1 -1
- package/readme.md +0 -0
- package/src/http3serversession.h +1 -1
- package/src/webtransport.js +4 -2
- package/third_party/boringssl/src/CMakeLists.txt +9 -12
- package/third_party/boringssl/src/crypto/CMakeLists.txt +2 -3
- package/third_party/boringssl/src/crypto/asn1/time_support.c +206 -206
- package/third_party/boringssl/src/crypto/bio/socket_helper.c +124 -122
- package/third_party/boringssl/src/crypto/evp/digestsign.c +268 -231
- package/third_party/boringssl/src/crypto/evp/p_ec.c +286 -286
- package/third_party/boringssl/src/crypto/fipsmodule/aes/key_wrap.c +246 -236
- package/third_party/boringssl/src/crypto/fipsmodule/aes/mode_wrappers.c +124 -122
- package/third_party/boringssl/src/crypto/fipsmodule/bcm.c +3 -0
- package/third_party/boringssl/src/crypto/fipsmodule/bn/bytes.c +246 -230
- package/third_party/boringssl/src/crypto/fipsmodule/bn/internal.h +734 -715
- package/third_party/boringssl/src/crypto/fipsmodule/bn/random.c +349 -341
- package/third_party/boringssl/src/crypto/fipsmodule/cipher/cipher.c +670 -648
- package/third_party/boringssl/src/crypto/fipsmodule/cipher/e_aes.c +1504 -1472
- package/third_party/boringssl/src/crypto/{cipher_extra → fipsmodule/cipher}/e_aesccm.c +435 -446
- package/third_party/boringssl/src/crypto/{cmac → fipsmodule/cmac}/cavp_3des_cmac_tests.txt +0 -0
- package/third_party/boringssl/src/crypto/{cmac → fipsmodule/cmac}/cavp_aes128_cmac_tests.txt +0 -0
- package/third_party/boringssl/src/crypto/{cmac → fipsmodule/cmac}/cavp_aes192_cmac_tests.txt +0 -0
- package/third_party/boringssl/src/crypto/{cmac → fipsmodule/cmac}/cavp_aes256_cmac_tests.txt +0 -0
- package/third_party/boringssl/src/crypto/{cmac → fipsmodule/cmac}/cmac.c +318 -278
- package/third_party/boringssl/src/crypto/{cmac → fipsmodule/cmac}/cmac_test.cc +268 -267
- package/third_party/boringssl/src/crypto/fipsmodule/dh/dh.c +5 -1
- package/third_party/boringssl/src/crypto/fipsmodule/ec/ec.c +11 -17
- package/third_party/boringssl/src/crypto/fipsmodule/ec/ec_key.c +15 -4
- package/third_party/boringssl/src/crypto/fipsmodule/ec/internal.h +2 -6
- package/third_party/boringssl/src/crypto/fipsmodule/ec/p224-64.c +1164 -1180
- package/third_party/boringssl/src/crypto/fipsmodule/ec/p256-nistz.c +3 -3
- package/third_party/boringssl/src/crypto/fipsmodule/ec/p256-nistz_test.cc +2 -2
- package/third_party/boringssl/src/crypto/fipsmodule/ec/p256.c +44 -33
- package/third_party/boringssl/src/crypto/fipsmodule/ec/scalar.c +169 -175
- package/third_party/boringssl/src/crypto/fipsmodule/ec/simple.c +352 -357
- package/third_party/boringssl/src/crypto/fipsmodule/ecdh/ecdh.c +4 -0
- package/third_party/boringssl/src/crypto/fipsmodule/ecdsa/ecdsa.c +14 -9
- package/third_party/boringssl/src/crypto/fipsmodule/hmac/hmac.c +256 -235
- package/third_party/boringssl/src/crypto/fipsmodule/rand/ctrdrbg.c +204 -202
- package/third_party/boringssl/src/crypto/fipsmodule/rsa/padding.c +702 -695
- package/third_party/boringssl/src/crypto/fipsmodule/rsa/rsa_impl.c +7 -2
- package/third_party/boringssl/src/crypto/fipsmodule/self_check/self_check.c +7 -0
- package/third_party/boringssl/src/crypto/fipsmodule/service_indicator/internal.h +89 -0
- package/third_party/boringssl/src/crypto/fipsmodule/service_indicator/service_indicator.c +333 -0
- package/third_party/boringssl/src/crypto/fipsmodule/service_indicator/service_indicator_test.cc +2410 -0
- package/third_party/boringssl/src/crypto/fipsmodule/sha/sha1.c +359 -357
- package/third_party/boringssl/src/crypto/fipsmodule/sha/sha256.c +325 -321
- package/third_party/boringssl/src/crypto/fipsmodule/sha/sha512.c +510 -508
- package/third_party/boringssl/src/crypto/fipsmodule/tls/kdf.c +177 -165
- package/third_party/boringssl/src/crypto/internal.h +13 -0
- package/third_party/boringssl/src/crypto/trust_token/trust_token_test.cc +884 -884
- package/third_party/boringssl/src/crypto/x509/internal.h +0 -2
- package/third_party/boringssl/src/crypto/x509/t_crl.c +148 -148
- package/third_party/boringssl/src/crypto/x509/t_req.c +249 -250
- package/third_party/boringssl/src/crypto/x509/t_x509.c +2 -3
- package/third_party/boringssl/src/crypto/x509/x509_req.c +262 -304
- package/third_party/boringssl/src/crypto/x509/x509_set.c +250 -240
- package/third_party/boringssl/src/crypto/x509/x509_test.cc +466 -4
- package/third_party/boringssl/src/crypto/x509/x509cset.c +292 -279
- package/third_party/boringssl/src/crypto/x509/x509rset.c +89 -86
- package/third_party/boringssl/src/crypto/x509/x_crl.c +37 -125
- package/third_party/boringssl/src/crypto/x509/x_req.c +114 -109
- package/third_party/boringssl/src/crypto/x509/x_x509.c +394 -394
- package/third_party/boringssl/src/crypto/x509v3/v3_akey.c +11 -16
- package/third_party/boringssl/src/crypto/x509v3/v3_alt.c +644 -642
- package/third_party/boringssl/src/crypto/x509v3/v3_bcons.c +130 -133
- package/third_party/boringssl/src/crypto/x509v3/v3_bitst.c +149 -144
- package/third_party/boringssl/src/crypto/x509v3/v3_cpols.c +496 -500
- package/third_party/boringssl/src/crypto/x509v3/v3_enum.c +105 -106
- package/third_party/boringssl/src/crypto/x509v3/v3_ia5.c +126 -121
- package/third_party/boringssl/src/crypto/x509v3/v3_info.c +206 -218
- package/third_party/boringssl/src/crypto/x509v3/v3_int.c +97 -91
- package/third_party/boringssl/src/crypto/x509v3/v3_pci.c +290 -289
- package/third_party/boringssl/src/crypto/x509v3/v3_skey.c +161 -156
- package/third_party/boringssl/src/crypto/x509v3/v3_utl.c +5 -3
- package/third_party/boringssl/src/include/openssl/aead.h +480 -480
- package/third_party/boringssl/src/include/openssl/asn1.h +2 -0
- package/third_party/boringssl/src/include/openssl/base.h +1 -1
- package/third_party/boringssl/src/include/openssl/service_indicator.h +96 -0
- package/third_party/boringssl/src/include/openssl/ssl.h +7 -0
- package/third_party/boringssl/src/include/openssl/x509.h +11 -33
- package/third_party/boringssl/src/include/openssl/x509v3.h +990 -1018
- package/third_party/boringssl/src/sources.cmake +4 -4
- package/third_party/boringssl/src/ssl/internal.h +10 -0
- package/third_party/boringssl/src/ssl/ssl_lib.cc +3081 -3072
- package/third_party/boringssl/src/ssl/ssl_test.cc +46 -0
- package/third_party/boringssl/src/ssl/tls13_server.cc +4 -6
- package/third_party/boringssl/src/util/bot/DEPS +14 -27
- package/third_party/boringssl/src/util/bot/UPDATING +3 -9
- package/third_party/boringssl/src/util/bot/update_clang.py +172 -172
- package/third_party/boringssl/src/util/bot/vs_toolchain.py +3 -3
- package/third_party/quiche/.bazelrc +8 -0
- package/third_party/quiche/BUILD.bazel +7 -0
- package/third_party/quiche/WHITESPACE +3 -1
- package/third_party/quiche/WORKSPACE.bazel +87 -0
- package/third_party/quiche/build/BUILD.bazel +7 -0
- package/third_party/quiche/build/source_list.bzl +1511 -0
- package/third_party/quiche/build/source_list.gni +1511 -0
- package/third_party/quiche/build/source_list.json +1511 -0
- package/third_party/quiche/build/test.bzl +26 -0
- package/third_party/quiche/build/zlib.BUILD +25 -0
- package/third_party/quiche/quiche/BUILD.bazel +270 -0
- package/third_party/quiche/quiche/{common/balsa → balsa}/balsa_enums.cc +3 -3
- package/third_party/quiche/quiche/{common/balsa → balsa}/balsa_enums.h +7 -7
- package/third_party/quiche/quiche/{common/balsa → balsa}/balsa_frame.cc +39 -18
- package/third_party/quiche/quiche/{common/balsa → balsa}/balsa_frame.h +11 -10
- package/third_party/quiche/quiche/{common/balsa → balsa}/balsa_frame_test.cc +67 -63
- package/third_party/quiche/quiche/{common/balsa → balsa}/balsa_headers.cc +13 -12
- package/third_party/quiche/quiche/{common/balsa → balsa}/balsa_headers.h +16 -8
- package/third_party/quiche/quiche/{common/balsa → balsa}/balsa_headers_test.cc +9 -9
- package/third_party/quiche/quiche/{common/balsa → balsa}/balsa_visitor_interface.h +4 -4
- package/third_party/quiche/quiche/{common/balsa → balsa}/framer_interface.h +3 -3
- package/third_party/quiche/quiche/{common/balsa → balsa}/header_api.h +3 -3
- package/third_party/quiche/quiche/{common/balsa → balsa}/header_properties.cc +1 -1
- package/third_party/quiche/quiche/{common/balsa → balsa}/header_properties.h +3 -3
- package/third_party/quiche/quiche/{common/balsa → balsa}/header_properties_test.cc +1 -1
- package/third_party/quiche/quiche/{common/balsa → balsa}/http_validation_policy.cc +1 -1
- package/third_party/quiche/quiche/{common/balsa → balsa}/http_validation_policy.h +3 -3
- package/third_party/quiche/quiche/{common/balsa → balsa}/noop_balsa_visitor.h +4 -4
- package/third_party/quiche/quiche/{common/balsa → balsa}/simple_buffer.cc +22 -29
- package/third_party/quiche/quiche/{common/balsa → balsa}/simple_buffer.h +18 -16
- package/third_party/quiche/quiche/{common/balsa → balsa}/simple_buffer_test.cc +79 -32
- package/third_party/quiche/quiche/{common/balsa → balsa}/standard_header_map.cc +1 -1
- package/third_party/quiche/quiche/{common/balsa → balsa}/standard_header_map.h +3 -3
- package/third_party/quiche/quiche/common/platform/api/quiche_command_line_flags.h +6 -1
- package/third_party/quiche/quiche/common/platform/api/quiche_flags.h +8 -0
- package/third_party/quiche/quiche/common/platform/api/quiche_logging.h +0 -3
- package/third_party/quiche/quiche/common/platform/api/quiche_lower_case_string_test.cc +29 -0
- package/third_party/quiche/quiche/common/platform/api/quiche_test.h +5 -7
- package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quic_flags_impl.h +1 -1
- package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_bug_tracker_impl.h +3 -2
- package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_command_line_flags_impl.cc +41 -0
- package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_command_line_flags_impl.h +33 -0
- package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_expect_bug_impl.h +15 -0
- package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_logging_impl.h +84 -50
- package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_lower_case_string_impl.h +25 -0
- package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_stack_trace_impl.cc +1 -1
- package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_test_impl.cc +25 -0
- package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_test_impl.h +56 -0
- package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_test_output_impl.h +27 -0
- package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_thread_impl.h +26 -0
- package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_url_utils_impl.cc +1 -0
- package/third_party/quiche/quiche/common/quiche_buffer_allocator_test.cc +1 -1
- package/third_party/quiche/quiche/common/quiche_mem_slice_storage.h +2 -3
- package/third_party/quiche/quiche/common/structured_headers.cc +14 -12
- package/third_party/quiche/quiche/http2/adapter/event_forwarder.cc +7 -5
- package/third_party/quiche/quiche/http2/adapter/event_forwarder.h +4 -2
- package/third_party/quiche/quiche/http2/adapter/event_forwarder_test.cc +14 -9
- package/third_party/quiche/quiche/http2/adapter/header_validator.cc +43 -19
- package/third_party/quiche/quiche/http2/adapter/header_validator.h +11 -40
- package/third_party/quiche/quiche/http2/adapter/header_validator_base.h +69 -0
- package/third_party/quiche/quiche/http2/adapter/header_validator_test.cc +73 -1
- package/third_party/quiche/quiche/http2/adapter/nghttp2_adapter_test.cc +66 -0
- package/third_party/quiche/quiche/http2/adapter/nghttp2_session_test.cc +8 -5
- package/third_party/quiche/quiche/http2/adapter/nghttp2_test.cc +1 -1
- package/third_party/quiche/quiche/http2/adapter/noop_header_validator.cc +22 -0
- package/third_party/quiche/quiche/http2/adapter/noop_header_validator.h +25 -0
- package/third_party/quiche/quiche/http2/adapter/noop_header_validator_test.cc +523 -0
- package/third_party/quiche/quiche/http2/adapter/oghttp2_adapter_test.cc +186 -5
- package/third_party/quiche/quiche/http2/adapter/oghttp2_session.cc +37 -43
- package/third_party/quiche/quiche/http2/adapter/oghttp2_session.h +22 -23
- package/third_party/quiche/quiche/http2/adapter/test_utils.cc +1 -1
- package/third_party/quiche/quiche/http2/adapter/window_manager_test.cc +11 -5
- package/third_party/quiche/quiche/http2/core/http2_trace_logging.cc +13 -11
- package/third_party/quiche/quiche/http2/core/http2_trace_logging.h +5 -4
- package/third_party/quiche/quiche/http2/core/priority_write_scheduler.h +42 -36
- package/third_party/quiche/quiche/http2/core/priority_write_scheduler_test.cc +2 -2
- package/third_party/quiche/quiche/http2/decoder/decode_buffer_test.cc +9 -9
- package/third_party/quiche/quiche/http2/decoder/decode_http2_structures_test.cc +1 -1
- package/third_party/quiche/quiche/http2/decoder/http2_frame_decoder_test.cc +14 -14
- package/third_party/quiche/quiche/http2/decoder/http2_structure_decoder_test.cc +17 -17
- package/third_party/quiche/quiche/http2/decoder/payload_decoders/altsvc_payload_decoder_test.cc +1 -1
- package/third_party/quiche/quiche/http2/decoder/payload_decoders/continuation_payload_decoder_test.cc +1 -1
- package/third_party/quiche/quiche/http2/decoder/payload_decoders/data_payload_decoder_test.cc +2 -2
- package/third_party/quiche/quiche/http2/decoder/payload_decoders/goaway_payload_decoder_test.cc +1 -1
- package/third_party/quiche/quiche/http2/decoder/payload_decoders/headers_payload_decoder_test.cc +1 -1
- package/third_party/quiche/quiche/http2/decoder/payload_decoders/ping_payload_decoder_test.cc +1 -1
- package/third_party/quiche/quiche/http2/decoder/payload_decoders/priority_payload_decoder_test.cc +1 -1
- package/third_party/quiche/quiche/http2/decoder/payload_decoders/priority_update_payload_decoder_test.cc +1 -1
- package/third_party/quiche/quiche/http2/decoder/payload_decoders/push_promise_payload_decoder_test.cc +1 -1
- package/third_party/quiche/quiche/http2/decoder/payload_decoders/rst_stream_payload_decoder_test.cc +1 -1
- package/third_party/quiche/quiche/http2/decoder/payload_decoders/settings_payload_decoder_test.cc +1 -1
- package/third_party/quiche/quiche/http2/decoder/payload_decoders/unknown_payload_decoder_test.cc +1 -1
- package/third_party/quiche/quiche/http2/decoder/payload_decoders/window_update_payload_decoder_test.cc +1 -1
- package/third_party/quiche/quiche/http2/hpack/decoder/hpack_block_decoder_test.cc +2 -2
- package/third_party/quiche/quiche/http2/hpack/decoder/hpack_decoder_state_test.cc +8 -8
- package/third_party/quiche/quiche/http2/hpack/decoder/hpack_decoder_string_buffer_test.cc +4 -3
- package/third_party/quiche/quiche/http2/hpack/decoder/hpack_decoder_tables_test.cc +17 -17
- package/third_party/quiche/quiche/http2/hpack/decoder/hpack_decoder_test.cc +25 -25
- package/third_party/quiche/quiche/http2/hpack/decoder/hpack_entry_decoder_test.cc +2 -2
- package/third_party/quiche/quiche/http2/hpack/decoder/hpack_entry_type_decoder_test.cc +7 -6
- package/third_party/quiche/quiche/http2/hpack/decoder/hpack_string_decoder_test.cc +6 -6
- package/third_party/quiche/quiche/http2/hpack/decoder/hpack_whole_entry_buffer_test.cc +1 -1
- package/third_party/quiche/quiche/http2/hpack/huffman/hpack_huffman_decoder_test.cc +2 -2
- package/third_party/quiche/quiche/http2/hpack/huffman/hpack_huffman_encoder_test.cc +1 -1
- package/third_party/quiche/quiche/http2/hpack/huffman/hpack_huffman_transcoder_test.cc +5 -5
- package/third_party/quiche/quiche/http2/hpack/varint/hpack_varint_decoder_test.cc +4 -4
- package/third_party/quiche/quiche/http2/hpack/varint/hpack_varint_round_trip_test.cc +1 -1
- package/third_party/quiche/quiche/http2/http2_constants_test.cc +1 -1
- package/third_party/quiche/quiche/http2/http2_structures_test.cc +23 -22
- package/third_party/quiche/quiche/http2/test_tools/frame_decoder_state_test_util.cc +1 -1
- package/third_party/quiche/quiche/http2/test_tools/frame_decoder_state_test_util.h +1 -1
- package/third_party/quiche/quiche/http2/test_tools/frame_parts.cc +38 -38
- package/third_party/quiche/quiche/http2/test_tools/hpack_block_collector.cc +15 -15
- package/third_party/quiche/quiche/http2/test_tools/hpack_entry_collector.cc +24 -22
- package/third_party/quiche/quiche/http2/test_tools/hpack_string_collector.cc +5 -5
- package/third_party/quiche/quiche/http2/test_tools/http2_frame_builder_test.cc +70 -89
- package/third_party/quiche/quiche/http2/test_tools/payload_decoder_base_test_util.cc +1 -1
- package/third_party/quiche/quiche/http2/test_tools/payload_decoder_base_test_util.h +29 -26
- package/third_party/quiche/quiche/http2/test_tools/{random_decoder_test.cc → random_decoder_test_base.cc} +13 -10
- package/third_party/quiche/quiche/http2/test_tools/{random_decoder_test.h → random_decoder_test_base.h} +15 -17
- package/third_party/quiche/quiche/http2/test_tools/{random_decoder_test_test.cc → random_decoder_test_base_test.cc} +1 -1
- package/third_party/quiche/quiche/http2/test_tools/verify_macros.h +32 -0
- package/third_party/quiche/quiche/quic/core/congestion_control/bbr2_sender.cc +2 -1
- package/third_party/quiche/quiche/quic/core/congestion_control/bbr2_simulator_test.cc +3 -2
- package/third_party/quiche/quiche/quic/core/congestion_control/bbr_sender_test.cc +3 -2
- package/third_party/quiche/quiche/quic/core/congestion_control/rtt_stats.cc +3 -2
- package/third_party/quiche/quiche/quic/core/congestion_control/rtt_stats.h +2 -1
- package/third_party/quiche/quiche/quic/core/congestion_control/rtt_stats_test.cc +2 -13
- package/third_party/quiche/quiche/quic/core/crypto/certificate_view.cc +15 -0
- package/third_party/quiche/quiche/quic/core/crypto/certificate_view.h +7 -0
- package/third_party/quiche/quiche/quic/core/crypto/certificate_view_test.cc +16 -0
- package/third_party/quiche/quiche/quic/core/crypto/crypto_protocol.h +1 -0
- package/third_party/quiche/quiche/quic/core/crypto/proof_source.h +2 -2
- package/third_party/quiche/quiche/quic/core/crypto/proof_source_x509.cc +3 -5
- package/third_party/quiche/quiche/quic/core/crypto/proof_source_x509.h +1 -2
- package/third_party/quiche/quiche/quic/core/crypto/quic_crypto_server_config.cc +1 -1
- package/third_party/quiche/quiche/quic/core/crypto/quic_crypto_server_config.h +3 -3
- package/third_party/quiche/quiche/quic/core/frames/quic_blocked_frame.cc +2 -8
- package/third_party/quiche/quiche/quic/core/frames/quic_blocked_frame.h +0 -1
- package/third_party/quiche/quiche/quic/core/frames/quic_crypto_frame.h +2 -0
- package/third_party/quiche/quiche/quic/core/frames/quic_frames_test.cc +2 -1
- package/third_party/quiche/quiche/quic/core/http/capsule.cc +2 -22
- package/third_party/quiche/quiche/quic/core/http/capsule.h +0 -2
- package/third_party/quiche/quiche/quic/core/http/capsule_test.cc +1 -2
- package/third_party/quiche/quiche/quic/core/http/end_to_end_test.cc +148 -57
- package/third_party/quiche/quiche/quic/core/http/http_constants.cc +1 -1
- package/third_party/quiche/quiche/quic/core/http/http_constants.h +2 -2
- package/third_party/quiche/quiche/quic/core/http/quic_header_list_test.cc +2 -2
- package/third_party/quiche/quiche/quic/core/http/quic_headers_stream_test.cc +18 -14
- package/third_party/quiche/quiche/quic/core/http/quic_send_control_stream.h +2 -1
- package/third_party/quiche/quiche/quic/core/http/quic_send_control_stream_test.cc +3 -7
- package/third_party/quiche/quiche/quic/core/http/quic_server_session_base.h +4 -0
- package/third_party/quiche/quiche/quic/core/http/quic_spdy_session.cc +47 -65
- package/third_party/quiche/quiche/quic/core/http/quic_spdy_session.h +5 -17
- package/third_party/quiche/quiche/quic/core/http/quic_spdy_session_test.cc +63 -54
- package/third_party/quiche/quiche/quic/core/http/quic_spdy_stream.cc +34 -91
- package/third_party/quiche/quiche/quic/core/http/quic_spdy_stream.h +1 -9
- package/third_party/quiche/quiche/quic/core/http/quic_spdy_stream_test.cc +27 -134
- package/third_party/quiche/quiche/quic/core/http/spdy_utils.cc +0 -41
- package/third_party/quiche/quiche/quic/core/http/spdy_utils.h +0 -9
- package/third_party/quiche/quiche/quic/core/http/spdy_utils_test.cc +0 -32
- package/third_party/quiche/quiche/quic/core/http/web_transport_http3.cc +0 -1
- package/third_party/quiche/quiche/quic/core/packet_number_indexed_queue_test.cc +2 -2
- package/third_party/quiche/quiche/quic/core/qpack/qpack_header_table.cc +2 -1
- package/third_party/quiche/quiche/quic/core/qpack/qpack_send_stream.h +2 -1
- package/third_party/quiche/quiche/quic/core/quic_arena_scoped_ptr_test.cc +2 -2
- package/third_party/quiche/quiche/quic/core/quic_connection.cc +68 -46
- package/third_party/quiche/quiche/quic/core/quic_connection.h +7 -6
- package/third_party/quiche/quiche/quic/core/quic_connection_context_test.cc +2 -2
- package/third_party/quiche/quiche/quic/core/quic_connection_id_manager_test.cc +2 -2
- package/third_party/quiche/quiche/quic/core/quic_connection_id_test.cc +2 -2
- package/third_party/quiche/quiche/quic/core/quic_connection_test.cc +45 -132
- package/third_party/quiche/quiche/quic/core/quic_constants.h +0 -7
- package/third_party/quiche/quiche/quic/core/quic_control_frame_manager.cc +11 -3
- package/third_party/quiche/quiche/quic/core/quic_control_frame_manager.h +1 -1
- package/third_party/quiche/quiche/quic/core/quic_control_frame_manager_test.cc +2 -2
- package/third_party/quiche/quiche/quic/core/quic_crypto_client_handshaker.cc +13 -1
- package/third_party/quiche/quiche/quic/core/quic_crypto_client_handshaker.h +3 -0
- package/third_party/quiche/quiche/quic/core/quic_crypto_client_handshaker_test.cc +2 -2
- package/third_party/quiche/quiche/quic/core/quic_crypto_client_stream.cc +6 -0
- package/third_party/quiche/quiche/quic/core/quic_crypto_client_stream.h +8 -0
- package/third_party/quiche/quiche/quic/core/quic_crypto_server_stream.cc +26 -13
- package/third_party/quiche/quiche/quic/core/quic_crypto_server_stream.h +5 -2
- package/third_party/quiche/quiche/quic/core/quic_crypto_stream.cc +55 -47
- package/third_party/quiche/quiche/quic/core/quic_crypto_stream.h +15 -10
- package/third_party/quiche/quiche/quic/core/quic_crypto_stream_test.cc +34 -5
- package/third_party/quiche/quiche/quic/core/quic_dispatcher.cc +20 -11
- package/third_party/quiche/quiche/quic/core/quic_dispatcher_test.cc +37 -13
- package/third_party/quiche/quiche/quic/core/quic_flags_list.h +6 -10
- package/third_party/quiche/quiche/quic/core/quic_flow_controller.cc +3 -3
- package/third_party/quiche/quiche/quic/core/quic_flow_controller.h +2 -2
- package/third_party/quiche/quiche/quic/core/quic_flow_controller_test.cc +15 -10
- package/third_party/quiche/quiche/quic/core/quic_framer.cc +1 -1
- package/third_party/quiche/quiche/quic/core/quic_one_block_arena.h +3 -2
- package/third_party/quiche/quiche/quic/core/quic_one_block_arena_test.cc +2 -2
- package/third_party/quiche/quiche/quic/core/quic_packet_creator.cc +3 -11
- package/third_party/quiche/quiche/quic/core/quic_packet_creator.h +0 -8
- package/third_party/quiche/quiche/quic/core/quic_ping_manager.cc +14 -14
- package/third_party/quiche/quiche/quic/core/quic_ping_manager_test.cc +48 -0
- package/third_party/quiche/quiche/quic/core/quic_received_packet_manager.cc +3 -18
- package/third_party/quiche/quiche/quic/core/quic_received_packet_manager_test.cc +4 -14
- package/third_party/quiche/quiche/quic/core/quic_server_id_test.cc +2 -2
- package/third_party/quiche/quiche/quic/core/quic_session.cc +4 -4
- package/third_party/quiche/quiche/quic/core/quic_session.h +1 -1
- package/third_party/quiche/quiche/quic/core/quic_session_test.cc +21 -1
- package/third_party/quiche/quiche/quic/core/quic_stream.cc +4 -7
- package/third_party/quiche/quiche/quic/core/quic_stream_test.cc +2 -4
- package/third_party/quiche/quiche/quic/core/quic_trace_visitor_test.cc +2 -2
- package/third_party/quiche/quiche/quic/core/quic_types.h +3 -8
- package/third_party/quiche/quiche/quic/core/quic_udp_socket_posix.cc +5 -4
- package/third_party/quiche/quiche/quic/core/quic_unacked_packet_map_test.cc +1 -1
- package/third_party/quiche/quiche/quic/core/quic_utils.cc +1 -1
- package/third_party/quiche/quiche/quic/core/quic_utils.h +2 -2
- package/third_party/quiche/quiche/quic/core/quic_versions_test.cc +0 -1
- package/third_party/quiche/quiche/quic/core/tls_client_handshaker.cc +13 -0
- package/third_party/quiche/quiche/quic/core/tls_client_handshaker.h +2 -0
- package/third_party/quiche/quiche/quic/core/tls_server_handshaker.cc +17 -3
- package/third_party/quiche/quiche/quic/core/tls_server_handshaker.h +3 -1
- package/third_party/quiche/quiche/quic/core/uber_received_packet_manager_test.cc +18 -10
- package/third_party/quiche/quiche/quic/masque/masque_client_bin.cc +6 -4
- package/third_party/quiche/quiche/quic/masque/masque_client_session.cc +23 -7
- package/third_party/quiche/quiche/quic/masque/masque_client_session.h +1 -1
- package/third_party/quiche/quiche/quic/masque/masque_server_backend.cc +13 -0
- package/third_party/quiche/quiche/quic/masque/masque_server_backend.h +2 -0
- package/third_party/quiche/quiche/quic/masque/masque_server_bin.cc +5 -4
- package/third_party/quiche/quiche/quic/masque/masque_server_session.cc +30 -40
- package/third_party/quiche/quiche/quic/masque/masque_server_session.h +1 -1
- package/third_party/quiche/quiche/quic/platform/api/quic_export.h +4 -4
- package/third_party/quiche/quiche/quic/platform/api/quic_flags.h +0 -1
- package/third_party/quiche/quiche/quic/platform/api/quic_logging.h +0 -6
- package/third_party/quiche/quiche/quic/platform/api/quic_test.h +6 -5
- package/third_party/quiche/quiche/quic/qbone/bonnet/icmp_reachable_test.cc +2 -2
- package/third_party/quiche/quiche/quic/qbone/bonnet/mock_qbone_tunnel.h +2 -0
- package/third_party/quiche/quiche/quic/qbone/bonnet/qbone_tunnel_interface.h +2 -0
- package/third_party/quiche/quiche/quic/qbone/bonnet/tun_device_controller_test.cc +2 -2
- package/third_party/quiche/quiche/quic/qbone/bonnet/tun_device_packet_exchanger_test.cc +2 -2
- package/third_party/quiche/quiche/quic/qbone/bonnet/tun_device_test.cc +2 -2
- package/third_party/quiche/quiche/quic/qbone/platform/netlink_test.cc +2 -2
- package/third_party/quiche/quiche/quic/qbone/platform/tcp_packet.cc +5 -4
- package/third_party/quiche/quiche/quic/qbone/qbone_client_session.cc +4 -2
- package/third_party/quiche/quiche/quic/qbone/qbone_packet_processor.cc +2 -1
- package/third_party/quiche/quiche/quic/qbone/qbone_packet_processor_test.cc +2 -2
- package/third_party/quiche/quiche/quic/qbone/qbone_server_session.cc +4 -2
- package/third_party/quiche/quiche/quic/qbone/qbone_session_base.cc +3 -2
- package/third_party/quiche/quiche/quic/qbone/qbone_stream.cc +4 -4
- package/third_party/quiche/quiche/quic/test_tools/quic_connection_peer.cc +1 -1
- package/third_party/quiche/quiche/quic/test_tools/quic_http_response_cache_data/test.example.com/index.html +63 -0
- package/third_party/quiche/quiche/quic/test_tools/quic_http_response_cache_data/test.example.com/map.html +65 -0
- package/third_party/quiche/quiche/quic/test_tools/quic_test_utils.cc +4 -3
- package/third_party/quiche/quiche/quic/test_tools/quic_test_utils.h +18 -1
- package/third_party/quiche/quiche/quic/test_tools/simulator/quic_endpoint_test.cc +1 -1
- package/third_party/quiche/quiche/quic/test_tools/simulator/simulator_test.cc +1 -1
- package/third_party/quiche/quiche/quic/test_tools/test_ticket_crypter.cc +1 -1
- package/third_party/quiche/quiche/quic/test_tools/test_ticket_crypter.h +2 -2
- package/third_party/quiche/quiche/quic/{core/crypto → tools}/crypto_message_printer_bin.cc +0 -0
- package/third_party/quiche/quiche/quic/{core/qpack → tools}/qpack_offline_decoder_bin.cc +0 -0
- package/third_party/quiche/quiche/quic/tools/quic_client_interop_test_bin.cc +4 -3
- package/third_party/quiche/quiche/quic/tools/quic_memory_cache_backend_test.cc +3 -31
- package/third_party/quiche/quiche/quic/tools/quic_packet_printer_bin.cc +2 -2
- package/third_party/quiche/quiche/quic/tools/quic_simple_server_session.h +1 -1
- package/third_party/quiche/quiche/quic/tools/quic_simple_server_session_test.cc +1 -1
- package/third_party/quiche/quiche/quic/tools/quic_toy_client.cc +52 -38
- package/third_party/quiche/quiche/quic/tools/quic_toy_server.cc +10 -7
- package/third_party/quiche/quiche/quic/tools/simple_ticket_crypter.cc +1 -1
- package/third_party/quiche/quiche/quic/tools/simple_ticket_crypter.h +1 -1
- package/third_party/quiche/quiche/quic/tools/web_transport_test_visitors.h +3 -2
- package/third_party/quiche/quiche/spdy/core/array_output_buffer.h +1 -1
- package/third_party/quiche/quiche/spdy/core/hpack/hpack_decoder_adapter_test.cc +1 -1
- package/third_party/quiche/quiche/spdy/core/hpack/hpack_encoder_test.cc +2 -1
- package/third_party/quiche/quiche/spdy/core/hpack/hpack_header_table_test.cc +1 -1
- package/third_party/quiche/quiche/spdy/core/hpack/hpack_round_trip_test.cc +2 -1
- package/third_party/quiche/quiche/spdy/core/hpack/hpack_static_table_test.cc +1 -1
- package/third_party/quiche/quiche/spdy/core/http2_frame_decoder_adapter.cc +8 -6
- package/third_party/quiche/quiche/spdy/core/http2_frame_decoder_adapter.h +17 -6
- package/third_party/quiche/quiche/spdy/core/metadata_extension.cc +1 -1
- package/third_party/quiche/quiche/spdy/core/metadata_extension_test.cc +1 -1
- package/third_party/quiche/quiche/spdy/core/spdy_framer_test.cc +21 -17
- package/third_party/quiche/quiche/spdy/core/spdy_intrusive_list_test.cc +3 -3
- package/third_party/quiche/quiche/spdy/core/spdy_no_op_visitor.h +6 -4
- package/third_party/quiche/quiche/spdy/core/spdy_pinnable_buffer_piece_test.cc +1 -1
- package/third_party/quiche/quiche/spdy/core/spdy_prefixed_buffer_reader_test.cc +1 -1
- package/third_party/quiche/quiche/spdy/core/spdy_protocol_test.cc +1 -1
- package/third_party/quiche/quiche/spdy/test_tools/mock_spdy_framer_visitor.h +5 -4
- package/third_party/boringssl/src/util/bot/cmake-win32.zip.sha1 +0 -1
- package/third_party/quiche/quiche/common/platform/api/quiche_mock_log.h +0 -18
- package/third_party/quiche/quiche/common/platform/api/quiche_test_helpers.h +0 -8
- package/third_party/quiche/quiche/quic/platform/api/quic_mock_log.h +0 -19
- package/third_party/quiche/quiche/quic/tools/quic_transport_simple_server_dispatcher.cc +0 -51
- package/third_party/quiche/quiche/quic/tools/quic_transport_simple_server_dispatcher.h +0 -41
- package/third_party/quiche/quiche/quic/tools/quic_transport_simple_server_session.cc +0 -168
- 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
|
-
|
|
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(
|
|
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.
|
|
28
|
+
'cmake_version': 'version:2@3.23.1',
|
|
29
29
|
# infra/3pp/tools/go/linux-amd64
|
|
30
|
-
'go_version': 'version:2@1.
|
|
30
|
+
'go_version': 'version:2@1.18.2',
|
|
31
31
|
|
|
32
32
|
# Update the following from
|
|
33
|
-
# https://chromium.googlesource.com/chromium/src/+/
|
|
33
|
+
# https://chromium.googlesource.com/chromium/src/+/main/DEPS
|
|
34
34
|
'android_sdk_platform-tools_version': 'g7n_-r6yJd_SGRklujGB1wEt8iyr77FZTUJVS9w6O34C',
|
|
35
|
-
'android_ndk_revision': '
|
|
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
|
|
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/+/
|
|
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/+/
|
|
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/+/
|
|
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-
|
|
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.
|
|
72
|
-
#
|
|
73
|
-
return ['
|
|
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,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()
|