aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormark a. foltz <mfoltz@chromium.org>2021-07-13 15:17:39 -0700
committerJordan Bayles <jophba@chromium.org>2021-07-15 16:28:59 +0000
commit3eca605e12cb57e49eea49dc0a2ca80a79f93836 (patch)
treea883f16150081618df4cca7a53ce19c52b9b04bd
parent616a118d38a26882a930a0c34f5881b35809544b (diff)
downloadopenscreen-3eca605e12cb57e49eea49dc0a2ca80a79f93836.tar.gz
[Open Screen] Add QUICHE as a third_party dependency.
First step in a series of changes to convert OSP QUIC to QUICHE. Bug: b/169447969 Change-Id: I77e3110b73c462bdefadbd0a3f811a4bc6b7c2c2 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/3024581 Reviewed-by: Jordan Bayles <jophba@chromium.org>
-rw-r--r--DEPS8
-rw-r--r--third_party/quiche/BUILD.gn626
-rw-r--r--third_party/quiche/README.chromium9
3 files changed, 643 insertions, 0 deletions
diff --git a/DEPS b/DEPS
index f7c62a1c..b38d9c6a 100644
--- a/DEPS
+++ b/DEPS
@@ -12,6 +12,7 @@ use_relative_paths = True
vars = {
'boringssl_git': 'https://boringssl.googlesource.com',
'chromium_git': 'https://chromium.googlesource.com',
+ 'quiche_git': 'https://quiche.googlesource.com',
# NOTE: we should only reference GitHub directly for dependencies toggled
# with the "not build_with_chromium" condition.
@@ -131,6 +132,13 @@ deps = {
'condition': 'not build_with_chromium',
},
+ # To roll forward, use quiche_revision from chromium/src/DEPS.
+ 'third_party/quiche/src': {
+ 'url': Var('quiche_git') + '/quiche.git' +
+ '@' + '51f584db29001036c20db3f72f09b00b875ae625',
+ 'condition': 'not build_with_chromium',
+ },
+
'third_party/tinycbor/src':
Var('chromium_git') + '/external/github.com/intel/tinycbor.git' +
'@' + 'fc42a049853b802e45f49588f8148fc29d7b4d9c',
diff --git a/third_party/quiche/BUILD.gn b/third_party/quiche/BUILD.gn
new file mode 100644
index 00000000..b6c7a5f6
--- /dev/null
+++ b/third_party/quiche/BUILD.gn
@@ -0,0 +1,626 @@
+# Copyright (c) 2021 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+config("quiche_config") {
+ include_dirs = [
+ # The ordering here is important, since headers in overrides/ replace
+ # headers in src/common/platform/default.
+ "overrides",
+ "src/common/platform/default",
+ "src",
+ ]
+}
+
+# TODO(https://issuetracker.google.com/issues/169447969): This is not expected
+# to compile because the QUICHE platform depends on Chromium //net and //base,
+# which are not available in Open Screen.
+source_set("quiche") {
+ sources = [
+ "overrides/quiche_platform_impl/quic_mutex_impl.cc",
+ "overrides/quiche_platform_impl/quic_mutex_impl.h",
+ "overrides/quiche_platform_impl/quiche_bug_tracker_impl.h",
+ "overrides/quiche_platform_impl/quiche_export_impl.h",
+ "overrides/quiche_platform_impl/quiche_logging_impl.h",
+ "overrides/quiche_platform_impl/quiche_thread_local_impl.h",
+ "overrides/quiche_platform_impl/quiche_time_utils_impl.cc",
+ "overrides/quiche_platform_impl/quiche_time_utils_impl.h",
+ "src/common/platform/api/quiche_export.h",
+ "src/common/platform/api/quiche_flag_utils.h",
+ "src/common/platform/api/quiche_flags.h",
+ "src/common/platform/api/quiche_logging.h",
+ "src/common/platform/api/quiche_prefetch.h",
+ "src/common/platform/api/quiche_thread_local.h",
+ "src/common/platform/api/quiche_time_utils.h",
+ "src/common/platform/default/quiche_platform_impl/quiche_prefetch_impl.h",
+ "src/common/print_elements.h",
+ "src/common/quiche_circular_deque.h",
+ "src/common/quiche_data_reader.cc",
+ "src/common/quiche_data_reader.h",
+ "src/common/quiche_data_writer.cc",
+ "src/common/quiche_data_writer.h",
+ "src/common/quiche_endian.h",
+ "src/common/quiche_linked_hash_map.h",
+ "src/common/quiche_text_utils.cc",
+ "src/common/quiche_text_utils.h",
+ "src/http2/core/http2_priority_write_scheduler.h",
+ "src/http2/core/priority_write_scheduler.h",
+ "src/http2/core/write_scheduler.h",
+ "src/http2/decoder/decode_buffer.cc",
+ "src/http2/decoder/decode_buffer.h",
+ "src/http2/decoder/decode_http2_structures.cc",
+ "src/http2/decoder/decode_http2_structures.h",
+ "src/http2/decoder/decode_status.cc",
+ "src/http2/decoder/decode_status.h",
+ "src/http2/decoder/frame_decoder_state.cc",
+ "src/http2/decoder/frame_decoder_state.h",
+ "src/http2/decoder/http2_frame_decoder.cc",
+ "src/http2/decoder/http2_frame_decoder.h",
+ "src/http2/decoder/http2_frame_decoder_listener.cc",
+ "src/http2/decoder/http2_frame_decoder_listener.h",
+ "src/http2/decoder/http2_structure_decoder.cc",
+ "src/http2/decoder/http2_structure_decoder.h",
+ "src/http2/decoder/payload_decoders/altsvc_payload_decoder.cc",
+ "src/http2/decoder/payload_decoders/altsvc_payload_decoder.h",
+ "src/http2/decoder/payload_decoders/continuation_payload_decoder.cc",
+ "src/http2/decoder/payload_decoders/continuation_payload_decoder.h",
+ "src/http2/decoder/payload_decoders/data_payload_decoder.cc",
+ "src/http2/decoder/payload_decoders/data_payload_decoder.h",
+ "src/http2/decoder/payload_decoders/goaway_payload_decoder.cc",
+ "src/http2/decoder/payload_decoders/goaway_payload_decoder.h",
+ "src/http2/decoder/payload_decoders/headers_payload_decoder.cc",
+ "src/http2/decoder/payload_decoders/headers_payload_decoder.h",
+ "src/http2/decoder/payload_decoders/ping_payload_decoder.cc",
+ "src/http2/decoder/payload_decoders/ping_payload_decoder.h",
+ "src/http2/decoder/payload_decoders/priority_payload_decoder.cc",
+ "src/http2/decoder/payload_decoders/priority_payload_decoder.h",
+ "src/http2/decoder/payload_decoders/priority_update_payload_decoder.cc",
+ "src/http2/decoder/payload_decoders/priority_update_payload_decoder.h",
+ "src/http2/decoder/payload_decoders/push_promise_payload_decoder.cc",
+ "src/http2/decoder/payload_decoders/push_promise_payload_decoder.h",
+ "src/http2/decoder/payload_decoders/rst_stream_payload_decoder.cc",
+ "src/http2/decoder/payload_decoders/rst_stream_payload_decoder.h",
+ "src/http2/decoder/payload_decoders/settings_payload_decoder.cc",
+ "src/http2/decoder/payload_decoders/settings_payload_decoder.h",
+ "src/http2/decoder/payload_decoders/unknown_payload_decoder.cc",
+ "src/http2/decoder/payload_decoders/unknown_payload_decoder.h",
+ "src/http2/decoder/payload_decoders/window_update_payload_decoder.cc",
+ "src/http2/decoder/payload_decoders/window_update_payload_decoder.h",
+ "src/http2/hpack/decoder/hpack_block_decoder.cc",
+ "src/http2/hpack/decoder/hpack_block_decoder.h",
+ "src/http2/hpack/decoder/hpack_decoder.cc",
+ "src/http2/hpack/decoder/hpack_decoder.h",
+ "src/http2/hpack/decoder/hpack_decoder_listener.cc",
+ "src/http2/hpack/decoder/hpack_decoder_listener.h",
+ "src/http2/hpack/decoder/hpack_decoder_state.cc",
+ "src/http2/hpack/decoder/hpack_decoder_state.h",
+ "src/http2/hpack/decoder/hpack_decoder_string_buffer.cc",
+ "src/http2/hpack/decoder/hpack_decoder_string_buffer.h",
+ "src/http2/hpack/decoder/hpack_decoder_tables.cc",
+ "src/http2/hpack/decoder/hpack_decoder_tables.h",
+ "src/http2/hpack/decoder/hpack_decoding_error.cc",
+ "src/http2/hpack/decoder/hpack_decoding_error.h",
+ "src/http2/hpack/decoder/hpack_entry_decoder.cc",
+ "src/http2/hpack/decoder/hpack_entry_decoder.h",
+ "src/http2/hpack/decoder/hpack_entry_decoder_listener.cc",
+ "src/http2/hpack/decoder/hpack_entry_decoder_listener.h",
+ "src/http2/hpack/decoder/hpack_entry_type_decoder.cc",
+ "src/http2/hpack/decoder/hpack_entry_type_decoder.h",
+ "src/http2/hpack/decoder/hpack_string_decoder.cc",
+ "src/http2/hpack/decoder/hpack_string_decoder.h",
+ "src/http2/hpack/decoder/hpack_string_decoder_listener.cc",
+ "src/http2/hpack/decoder/hpack_string_decoder_listener.h",
+ "src/http2/hpack/decoder/hpack_whole_entry_buffer.cc",
+ "src/http2/hpack/decoder/hpack_whole_entry_buffer.h",
+ "src/http2/hpack/decoder/hpack_whole_entry_listener.cc",
+ "src/http2/hpack/decoder/hpack_whole_entry_listener.h",
+ "src/http2/hpack/hpack_static_table_entries.inc",
+ "src/http2/hpack/http2_hpack_constants.cc",
+ "src/http2/hpack/http2_hpack_constants.h",
+ "src/http2/hpack/huffman/hpack_huffman_decoder.cc",
+ "src/http2/hpack/huffman/hpack_huffman_decoder.h",
+ "src/http2/hpack/huffman/hpack_huffman_encoder.cc",
+ "src/http2/hpack/huffman/hpack_huffman_encoder.h",
+ "src/http2/hpack/huffman/huffman_spec_tables.cc",
+ "src/http2/hpack/huffman/huffman_spec_tables.h",
+ "src/http2/hpack/varint/hpack_varint_decoder.cc",
+ "src/http2/hpack/varint/hpack_varint_decoder.h",
+ "src/http2/hpack/varint/hpack_varint_encoder.cc",
+ "src/http2/hpack/varint/hpack_varint_encoder.h",
+ "src/http2/http2_constants.cc",
+ "src/http2/http2_constants.h",
+ "src/http2/http2_structures.cc",
+ "src/http2/http2_structures.h",
+ "src/http2/platform/api/http2_bug_tracker.h",
+ "src/http2/platform/api/http2_flag_utils.h",
+ "src/http2/platform/api/http2_flags.h",
+ "src/http2/platform/api/http2_logging.h",
+ "src/http2/platform/api/http2_macros.h",
+ "src/quic/core/congestion_control/bandwidth_sampler.cc",
+ "src/quic/core/congestion_control/bandwidth_sampler.h",
+ "src/quic/core/congestion_control/bbr2_drain.cc",
+ "src/quic/core/congestion_control/bbr2_drain.h",
+ "src/quic/core/congestion_control/bbr2_misc.cc",
+ "src/quic/core/congestion_control/bbr2_misc.h",
+ "src/quic/core/congestion_control/bbr2_probe_bw.cc",
+ "src/quic/core/congestion_control/bbr2_probe_bw.h",
+ "src/quic/core/congestion_control/bbr2_probe_rtt.cc",
+ "src/quic/core/congestion_control/bbr2_probe_rtt.h",
+ "src/quic/core/congestion_control/bbr2_sender.cc",
+ "src/quic/core/congestion_control/bbr2_sender.h",
+ "src/quic/core/congestion_control/bbr2_startup.cc",
+ "src/quic/core/congestion_control/bbr2_startup.h",
+ "src/quic/core/congestion_control/bbr_sender.cc",
+ "src/quic/core/congestion_control/bbr_sender.h",
+ "src/quic/core/congestion_control/cubic_bytes.cc",
+ "src/quic/core/congestion_control/cubic_bytes.h",
+ "src/quic/core/congestion_control/general_loss_algorithm.cc",
+ "src/quic/core/congestion_control/general_loss_algorithm.h",
+ "src/quic/core/congestion_control/hybrid_slow_start.cc",
+ "src/quic/core/congestion_control/hybrid_slow_start.h",
+ "src/quic/core/congestion_control/loss_detection_interface.h",
+ "src/quic/core/congestion_control/pacing_sender.cc",
+ "src/quic/core/congestion_control/pacing_sender.h",
+ "src/quic/core/congestion_control/prr_sender.cc",
+ "src/quic/core/congestion_control/prr_sender.h",
+ "src/quic/core/congestion_control/rtt_stats.cc",
+ "src/quic/core/congestion_control/rtt_stats.h",
+ "src/quic/core/congestion_control/send_algorithm_interface.cc",
+ "src/quic/core/congestion_control/send_algorithm_interface.h",
+ "src/quic/core/congestion_control/tcp_cubic_sender_bytes.cc",
+ "src/quic/core/congestion_control/tcp_cubic_sender_bytes.h",
+ "src/quic/core/congestion_control/uber_loss_algorithm.cc",
+ "src/quic/core/congestion_control/uber_loss_algorithm.h",
+ "src/quic/core/congestion_control/windowed_filter.h",
+ "src/quic/core/crypto/aead_base_decrypter.cc",
+ "src/quic/core/crypto/aead_base_decrypter.h",
+ "src/quic/core/crypto/aead_base_encrypter.cc",
+ "src/quic/core/crypto/aead_base_encrypter.h",
+ "src/quic/core/crypto/aes_128_gcm_12_decrypter.cc",
+ "src/quic/core/crypto/aes_128_gcm_12_decrypter.h",
+ "src/quic/core/crypto/aes_128_gcm_12_encrypter.cc",
+ "src/quic/core/crypto/aes_128_gcm_12_encrypter.h",
+ "src/quic/core/crypto/aes_128_gcm_decrypter.cc",
+ "src/quic/core/crypto/aes_128_gcm_decrypter.h",
+ "src/quic/core/crypto/aes_128_gcm_encrypter.cc",
+ "src/quic/core/crypto/aes_128_gcm_encrypter.h",
+ "src/quic/core/crypto/aes_256_gcm_decrypter.cc",
+ "src/quic/core/crypto/aes_256_gcm_decrypter.h",
+ "src/quic/core/crypto/aes_256_gcm_encrypter.cc",
+ "src/quic/core/crypto/aes_256_gcm_encrypter.h",
+ "src/quic/core/crypto/aes_base_decrypter.cc",
+ "src/quic/core/crypto/aes_base_decrypter.h",
+ "src/quic/core/crypto/aes_base_encrypter.cc",
+ "src/quic/core/crypto/aes_base_encrypter.h",
+ "src/quic/core/crypto/boring_utils.h",
+ "src/quic/core/crypto/cert_compressor.cc",
+ "src/quic/core/crypto/cert_compressor.h",
+ "src/quic/core/crypto/certificate_view.cc",
+ "src/quic/core/crypto/certificate_view.h",
+ "src/quic/core/crypto/chacha20_poly1305_decrypter.cc",
+ "src/quic/core/crypto/chacha20_poly1305_decrypter.h",
+ "src/quic/core/crypto/chacha20_poly1305_encrypter.cc",
+ "src/quic/core/crypto/chacha20_poly1305_encrypter.h",
+ "src/quic/core/crypto/chacha20_poly1305_tls_decrypter.cc",
+ "src/quic/core/crypto/chacha20_poly1305_tls_decrypter.h",
+ "src/quic/core/crypto/chacha20_poly1305_tls_encrypter.cc",
+ "src/quic/core/crypto/chacha20_poly1305_tls_encrypter.h",
+ "src/quic/core/crypto/chacha_base_decrypter.cc",
+ "src/quic/core/crypto/chacha_base_decrypter.h",
+ "src/quic/core/crypto/chacha_base_encrypter.cc",
+ "src/quic/core/crypto/chacha_base_encrypter.h",
+ "src/quic/core/crypto/channel_id.cc",
+ "src/quic/core/crypto/channel_id.h",
+ "src/quic/core/crypto/common_cert_set.cc",
+ "src/quic/core/crypto/common_cert_set.h",
+ "src/quic/core/crypto/crypto_framer.cc",
+ "src/quic/core/crypto/crypto_framer.h",
+ "src/quic/core/crypto/crypto_handshake.cc",
+ "src/quic/core/crypto/crypto_handshake.h",
+ "src/quic/core/crypto/crypto_handshake_message.cc",
+ "src/quic/core/crypto/crypto_handshake_message.h",
+ "src/quic/core/crypto/crypto_message_parser.h",
+ "src/quic/core/crypto/crypto_protocol.h",
+ "src/quic/core/crypto/crypto_secret_boxer.cc",
+ "src/quic/core/crypto/crypto_secret_boxer.h",
+ "src/quic/core/crypto/crypto_utils.cc",
+ "src/quic/core/crypto/crypto_utils.h",
+ "src/quic/core/crypto/curve25519_key_exchange.cc",
+ "src/quic/core/crypto/curve25519_key_exchange.h",
+ "src/quic/core/crypto/key_exchange.cc",
+ "src/quic/core/crypto/key_exchange.h",
+ "src/quic/core/crypto/null_decrypter.cc",
+ "src/quic/core/crypto/null_decrypter.h",
+ "src/quic/core/crypto/null_encrypter.cc",
+ "src/quic/core/crypto/null_encrypter.h",
+ "src/quic/core/crypto/p256_key_exchange.cc",
+ "src/quic/core/crypto/p256_key_exchange.h",
+ "src/quic/core/crypto/proof_source.cc",
+ "src/quic/core/crypto/proof_source.h",
+ "src/quic/core/crypto/proof_verifier.h",
+ "src/quic/core/crypto/quic_compressed_certs_cache.cc",
+ "src/quic/core/crypto/quic_compressed_certs_cache.h",
+ "src/quic/core/crypto/quic_crypter.cc",
+ "src/quic/core/crypto/quic_crypter.h",
+ "src/quic/core/crypto/quic_crypto_client_config.cc",
+ "src/quic/core/crypto/quic_crypto_client_config.h",
+ "src/quic/core/crypto/quic_crypto_proof.cc",
+ "src/quic/core/crypto/quic_crypto_proof.h",
+ "src/quic/core/crypto/quic_crypto_server_config.cc",
+ "src/quic/core/crypto/quic_crypto_server_config.h",
+ "src/quic/core/crypto/quic_decrypter.cc",
+ "src/quic/core/crypto/quic_decrypter.h",
+ "src/quic/core/crypto/quic_encrypter.cc",
+ "src/quic/core/crypto/quic_encrypter.h",
+ "src/quic/core/crypto/quic_hkdf.cc",
+ "src/quic/core/crypto/quic_hkdf.h",
+ "src/quic/core/crypto/quic_random.cc",
+ "src/quic/core/crypto/quic_random.h",
+ "src/quic/core/crypto/server_proof_verifier.h",
+ "src/quic/core/crypto/tls_client_connection.cc",
+ "src/quic/core/crypto/tls_client_connection.h",
+ "src/quic/core/crypto/tls_connection.cc",
+ "src/quic/core/crypto/tls_connection.h",
+ "src/quic/core/crypto/tls_server_connection.cc",
+ "src/quic/core/crypto/tls_server_connection.h",
+ "src/quic/core/crypto/transport_parameters.cc",
+ "src/quic/core/crypto/transport_parameters.h",
+ "src/quic/core/frames/quic_ack_frame.cc",
+ "src/quic/core/frames/quic_ack_frame.h",
+ "src/quic/core/frames/quic_ack_frequency_frame.cc",
+ "src/quic/core/frames/quic_ack_frequency_frame.h",
+ "src/quic/core/frames/quic_blocked_frame.cc",
+ "src/quic/core/frames/quic_blocked_frame.h",
+ "src/quic/core/frames/quic_connection_close_frame.cc",
+ "src/quic/core/frames/quic_connection_close_frame.h",
+ "src/quic/core/frames/quic_crypto_frame.cc",
+ "src/quic/core/frames/quic_crypto_frame.h",
+ "src/quic/core/frames/quic_frame.cc",
+ "src/quic/core/frames/quic_frame.h",
+ "src/quic/core/frames/quic_goaway_frame.cc",
+ "src/quic/core/frames/quic_goaway_frame.h",
+ "src/quic/core/frames/quic_handshake_done_frame.cc",
+ "src/quic/core/frames/quic_handshake_done_frame.h",
+ "src/quic/core/frames/quic_inlined_frame.h",
+ "src/quic/core/frames/quic_max_streams_frame.cc",
+ "src/quic/core/frames/quic_max_streams_frame.h",
+ "src/quic/core/frames/quic_message_frame.cc",
+ "src/quic/core/frames/quic_message_frame.h",
+ "src/quic/core/frames/quic_mtu_discovery_frame.h",
+ "src/quic/core/frames/quic_new_connection_id_frame.cc",
+ "src/quic/core/frames/quic_new_connection_id_frame.h",
+ "src/quic/core/frames/quic_new_token_frame.cc",
+ "src/quic/core/frames/quic_new_token_frame.h",
+ "src/quic/core/frames/quic_padding_frame.cc",
+ "src/quic/core/frames/quic_padding_frame.h",
+ "src/quic/core/frames/quic_path_challenge_frame.cc",
+ "src/quic/core/frames/quic_path_challenge_frame.h",
+ "src/quic/core/frames/quic_path_response_frame.cc",
+ "src/quic/core/frames/quic_path_response_frame.h",
+ "src/quic/core/frames/quic_ping_frame.cc",
+ "src/quic/core/frames/quic_ping_frame.h",
+ "src/quic/core/frames/quic_retire_connection_id_frame.cc",
+ "src/quic/core/frames/quic_retire_connection_id_frame.h",
+ "src/quic/core/frames/quic_rst_stream_frame.cc",
+ "src/quic/core/frames/quic_rst_stream_frame.h",
+ "src/quic/core/frames/quic_stop_sending_frame.cc",
+ "src/quic/core/frames/quic_stop_sending_frame.h",
+ "src/quic/core/frames/quic_stop_waiting_frame.cc",
+ "src/quic/core/frames/quic_stop_waiting_frame.h",
+ "src/quic/core/frames/quic_stream_frame.cc",
+ "src/quic/core/frames/quic_stream_frame.h",
+ "src/quic/core/frames/quic_streams_blocked_frame.cc",
+ "src/quic/core/frames/quic_streams_blocked_frame.h",
+ "src/quic/core/frames/quic_window_update_frame.cc",
+ "src/quic/core/frames/quic_window_update_frame.h",
+ "src/quic/core/handshaker_delegate_interface.h",
+ "src/quic/core/http/http_constants.cc",
+ "src/quic/core/http/http_constants.h",
+ "src/quic/core/http/http_decoder.cc",
+ "src/quic/core/http/http_decoder.h",
+ "src/quic/core/http/http_encoder.cc",
+ "src/quic/core/http/http_encoder.h",
+ "src/quic/core/http/http_frames.h",
+ "src/quic/core/http/quic_client_promised_info.cc",
+ "src/quic/core/http/quic_client_promised_info.h",
+ "src/quic/core/http/quic_client_push_promise_index.cc",
+ "src/quic/core/http/quic_client_push_promise_index.h",
+ "src/quic/core/http/quic_header_list.cc",
+ "src/quic/core/http/quic_header_list.h",
+ "src/quic/core/http/quic_headers_stream.cc",
+ "src/quic/core/http/quic_headers_stream.h",
+ "src/quic/core/http/quic_receive_control_stream.cc",
+ "src/quic/core/http/quic_receive_control_stream.h",
+ "src/quic/core/http/quic_send_control_stream.cc",
+ "src/quic/core/http/quic_send_control_stream.h",
+ "src/quic/core/http/quic_server_initiated_spdy_stream.cc",
+ "src/quic/core/http/quic_server_initiated_spdy_stream.h",
+ "src/quic/core/http/quic_server_session_base.cc",
+ "src/quic/core/http/quic_server_session_base.h",
+ "src/quic/core/http/quic_spdy_client_session.cc",
+ "src/quic/core/http/quic_spdy_client_session.h",
+ "src/quic/core/http/quic_spdy_client_session_base.cc",
+ "src/quic/core/http/quic_spdy_client_session_base.h",
+ "src/quic/core/http/quic_spdy_client_stream.cc",
+ "src/quic/core/http/quic_spdy_client_stream.h",
+ "src/quic/core/http/quic_spdy_session.cc",
+ "src/quic/core/http/quic_spdy_session.h",
+ "src/quic/core/http/quic_spdy_stream.cc",
+ "src/quic/core/http/quic_spdy_stream.h",
+ "src/quic/core/http/quic_spdy_stream_body_manager.cc",
+ "src/quic/core/http/quic_spdy_stream_body_manager.h",
+ "src/quic/core/http/spdy_server_push_utils.cc",
+ "src/quic/core/http/spdy_server_push_utils.h",
+ "src/quic/core/http/spdy_utils.cc",
+ "src/quic/core/http/spdy_utils.h",
+ "src/quic/core/http/web_transport_http3.cc",
+ "src/quic/core/http/web_transport_http3.h",
+ "src/quic/core/legacy_quic_stream_id_manager.cc",
+ "src/quic/core/legacy_quic_stream_id_manager.h",
+ "src/quic/core/packet_number_indexed_queue.h",
+ "src/quic/core/proto/cached_network_parameters_proto.h",
+ "src/quic/core/proto/crypto_server_config_proto.h",
+ "src/quic/core/proto/source_address_token_proto.h",
+ "src/quic/core/qpack/qpack_blocking_manager.cc",
+ "src/quic/core/qpack/qpack_blocking_manager.h",
+ "src/quic/core/qpack/qpack_decoded_headers_accumulator.cc",
+ "src/quic/core/qpack/qpack_decoded_headers_accumulator.h",
+ "src/quic/core/qpack/qpack_decoder.cc",
+ "src/quic/core/qpack/qpack_decoder.h",
+ "src/quic/core/qpack/qpack_decoder_stream_receiver.cc",
+ "src/quic/core/qpack/qpack_decoder_stream_receiver.h",
+ "src/quic/core/qpack/qpack_decoder_stream_sender.cc",
+ "src/quic/core/qpack/qpack_decoder_stream_sender.h",
+ "src/quic/core/qpack/qpack_encoder.cc",
+ "src/quic/core/qpack/qpack_encoder.h",
+ "src/quic/core/qpack/qpack_encoder_stream_receiver.cc",
+ "src/quic/core/qpack/qpack_encoder_stream_receiver.h",
+ "src/quic/core/qpack/qpack_encoder_stream_sender.cc",
+ "src/quic/core/qpack/qpack_encoder_stream_sender.h",
+ "src/quic/core/qpack/qpack_header_table.cc",
+ "src/quic/core/qpack/qpack_header_table.h",
+ "src/quic/core/qpack/qpack_index_conversions.cc",
+ "src/quic/core/qpack/qpack_index_conversions.h",
+ "src/quic/core/qpack/qpack_instruction_decoder.cc",
+ "src/quic/core/qpack/qpack_instruction_decoder.h",
+ "src/quic/core/qpack/qpack_instruction_encoder.cc",
+ "src/quic/core/qpack/qpack_instruction_encoder.h",
+ "src/quic/core/qpack/qpack_instructions.cc",
+ "src/quic/core/qpack/qpack_instructions.h",
+ "src/quic/core/qpack/qpack_progressive_decoder.cc",
+ "src/quic/core/qpack/qpack_progressive_decoder.h",
+ "src/quic/core/qpack/qpack_receive_stream.cc",
+ "src/quic/core/qpack/qpack_receive_stream.h",
+ "src/quic/core/qpack/qpack_required_insert_count.cc",
+ "src/quic/core/qpack/qpack_required_insert_count.h",
+ "src/quic/core/qpack/qpack_send_stream.cc",
+ "src/quic/core/qpack/qpack_send_stream.h",
+ "src/quic/core/qpack/qpack_static_table.cc",
+ "src/quic/core/qpack/qpack_static_table.h",
+ "src/quic/core/qpack/qpack_stream_receiver.h",
+ "src/quic/core/qpack/qpack_stream_sender_delegate.h",
+ "src/quic/core/qpack/value_splitting_header_list.cc",
+ "src/quic/core/qpack/value_splitting_header_list.h",
+ "src/quic/core/quic_ack_listener_interface.cc",
+ "src/quic/core/quic_ack_listener_interface.h",
+ "src/quic/core/quic_alarm.cc",
+ "src/quic/core/quic_alarm.h",
+ "src/quic/core/quic_alarm_factory.h",
+ "src/quic/core/quic_arena_scoped_ptr.h",
+ "src/quic/core/quic_bandwidth.cc",
+ "src/quic/core/quic_bandwidth.h",
+ "src/quic/core/quic_blocked_writer_interface.h",
+ "src/quic/core/quic_buffer_allocator.cc",
+ "src/quic/core/quic_buffer_allocator.h",
+ "src/quic/core/quic_chaos_protector.cc",
+ "src/quic/core/quic_chaos_protector.h",
+ "src/quic/core/quic_clock.cc",
+ "src/quic/core/quic_clock.h",
+ "src/quic/core/quic_coalesced_packet.cc",
+ "src/quic/core/quic_coalesced_packet.h",
+ "src/quic/core/quic_config.cc",
+ "src/quic/core/quic_config.h",
+ "src/quic/core/quic_connection.cc",
+ "src/quic/core/quic_connection.h",
+ "src/quic/core/quic_connection_context.cc",
+ "src/quic/core/quic_connection_context.h",
+ "src/quic/core/quic_connection_id.cc",
+ "src/quic/core/quic_connection_id.h",
+ "src/quic/core/quic_connection_id_manager.cc",
+ "src/quic/core/quic_connection_id_manager.h",
+ "src/quic/core/quic_connection_stats.cc",
+ "src/quic/core/quic_connection_stats.h",
+ "src/quic/core/quic_constants.cc",
+ "src/quic/core/quic_constants.h",
+ "src/quic/core/quic_control_frame_manager.cc",
+ "src/quic/core/quic_control_frame_manager.h",
+ "src/quic/core/quic_crypto_client_handshaker.cc",
+ "src/quic/core/quic_crypto_client_handshaker.h",
+ "src/quic/core/quic_crypto_client_stream.cc",
+ "src/quic/core/quic_crypto_client_stream.h",
+ "src/quic/core/quic_crypto_handshaker.cc",
+ "src/quic/core/quic_crypto_handshaker.h",
+ "src/quic/core/quic_crypto_server_stream.cc",
+ "src/quic/core/quic_crypto_server_stream.h",
+ "src/quic/core/quic_crypto_server_stream_base.cc",
+ "src/quic/core/quic_crypto_server_stream_base.h",
+ "src/quic/core/quic_crypto_stream.cc",
+ "src/quic/core/quic_crypto_stream.h",
+ "src/quic/core/quic_data_reader.cc",
+ "src/quic/core/quic_data_reader.h",
+ "src/quic/core/quic_data_writer.cc",
+ "src/quic/core/quic_data_writer.h",
+ "src/quic/core/quic_datagram_queue.cc",
+ "src/quic/core/quic_datagram_queue.h",
+ "src/quic/core/quic_error_codes.cc",
+ "src/quic/core/quic_error_codes.h",
+ "src/quic/core/quic_flow_controller.cc",
+ "src/quic/core/quic_flow_controller.h",
+ "src/quic/core/quic_framer.cc",
+ "src/quic/core/quic_framer.h",
+ "src/quic/core/quic_idle_network_detector.cc",
+ "src/quic/core/quic_idle_network_detector.h",
+ "src/quic/core/quic_interval.h",
+ "src/quic/core/quic_interval_deque.h",
+ "src/quic/core/quic_interval_set.h",
+ "src/quic/core/quic_legacy_version_encapsulator.cc",
+ "src/quic/core/quic_legacy_version_encapsulator.h",
+ "src/quic/core/quic_lru_cache.h",
+ "src/quic/core/quic_mtu_discovery.cc",
+ "src/quic/core/quic_mtu_discovery.h",
+ "src/quic/core/quic_network_blackhole_detector.cc",
+ "src/quic/core/quic_network_blackhole_detector.h",
+ "src/quic/core/quic_one_block_arena.h",
+ "src/quic/core/quic_packet_creator.cc",
+ "src/quic/core/quic_packet_creator.h",
+ "src/quic/core/quic_packet_number.cc",
+ "src/quic/core/quic_packet_number.h",
+ "src/quic/core/quic_packet_writer.h",
+ "src/quic/core/quic_packets.cc",
+ "src/quic/core/quic_packets.h",
+ "src/quic/core/quic_path_validator.cc",
+ "src/quic/core/quic_path_validator.h",
+ "src/quic/core/quic_protocol_flags_list.h",
+ "src/quic/core/quic_received_packet_manager.cc",
+ "src/quic/core/quic_received_packet_manager.h",
+ "src/quic/core/quic_sent_packet_manager.cc",
+ "src/quic/core/quic_sent_packet_manager.h",
+ "src/quic/core/quic_server_id.cc",
+ "src/quic/core/quic_server_id.h",
+ "src/quic/core/quic_session.cc",
+ "src/quic/core/quic_session.h",
+ "src/quic/core/quic_simple_buffer_allocator.cc",
+ "src/quic/core/quic_simple_buffer_allocator.h",
+ "src/quic/core/quic_socket_address_coder.cc",
+ "src/quic/core/quic_socket_address_coder.h",
+ "src/quic/core/quic_stream.cc",
+ "src/quic/core/quic_stream.h",
+ "src/quic/core/quic_stream_frame_data_producer.h",
+ "src/quic/core/quic_stream_id_manager.cc",
+ "src/quic/core/quic_stream_id_manager.h",
+ "src/quic/core/quic_stream_send_buffer.cc",
+ "src/quic/core/quic_stream_send_buffer.h",
+ "src/quic/core/quic_stream_sequencer.cc",
+ "src/quic/core/quic_stream_sequencer.h",
+ "src/quic/core/quic_stream_sequencer_buffer.cc",
+ "src/quic/core/quic_stream_sequencer_buffer.h",
+ "src/quic/core/quic_sustained_bandwidth_recorder.cc",
+ "src/quic/core/quic_sustained_bandwidth_recorder.h",
+ "src/quic/core/quic_tag.cc",
+ "src/quic/core/quic_tag.h",
+ "src/quic/core/quic_time.cc",
+ "src/quic/core/quic_time.h",
+ "src/quic/core/quic_time_accumulator.h",
+ "src/quic/core/quic_transmission_info.cc",
+ "src/quic/core/quic_transmission_info.h",
+ "src/quic/core/quic_types.cc",
+ "src/quic/core/quic_types.h",
+ "src/quic/core/quic_unacked_packet_map.cc",
+ "src/quic/core/quic_unacked_packet_map.h",
+ "src/quic/core/quic_utils.cc",
+ "src/quic/core/quic_utils.h",
+ "src/quic/core/quic_version_manager.cc",
+ "src/quic/core/quic_version_manager.h",
+ "src/quic/core/quic_versions.cc",
+ "src/quic/core/quic_versions.h",
+ "src/quic/core/quic_write_blocked_list.cc",
+ "src/quic/core/quic_write_blocked_list.h",
+ "src/quic/core/session_notifier_interface.h",
+ "src/quic/core/stream_delegate_interface.h",
+ "src/quic/core/tls_client_handshaker.cc",
+ "src/quic/core/tls_client_handshaker.h",
+ "src/quic/core/tls_handshaker.cc",
+ "src/quic/core/tls_handshaker.h",
+ "src/quic/core/tls_server_handshaker.cc",
+ "src/quic/core/tls_server_handshaker.h",
+ "src/quic/core/uber_quic_stream_id_manager.cc",
+ "src/quic/core/uber_quic_stream_id_manager.h",
+ "src/quic/core/uber_received_packet_manager.cc",
+ "src/quic/core/uber_received_packet_manager.h",
+ "src/quic/core/web_transport_stream_adapter.cc",
+ "src/quic/core/web_transport_stream_adapter.h",
+ "src/quic/platform/api/quic_bug_tracker.h",
+ "src/quic/platform/api/quic_client_stats.h",
+ "src/quic/platform/api/quic_containers.h",
+ "src/quic/platform/api/quic_error_code_wrappers.h",
+ "src/quic/platform/api/quic_export.h",
+ "src/quic/platform/api/quic_exported_stats.h",
+ "src/quic/platform/api/quic_flag_utils.h",
+ "src/quic/platform/api/quic_flags.h",
+ "src/quic/platform/api/quic_hostname_utils.cc",
+ "src/quic/platform/api/quic_hostname_utils.h",
+ "src/quic/platform/api/quic_iovec.h",
+ "src/quic/platform/api/quic_ip_address.cc",
+ "src/quic/platform/api/quic_ip_address.h",
+ "src/quic/platform/api/quic_ip_address_family.h",
+ "src/quic/platform/api/quic_logging.h",
+ "src/quic/platform/api/quic_mem_slice.h",
+ "src/quic/platform/api/quic_mem_slice_span.h",
+ "src/quic/platform/api/quic_mem_slice_storage.h",
+ "src/quic/platform/api/quic_mutex.cc",
+ "src/quic/platform/api/quic_mutex.h",
+ "src/quic/platform/api/quic_reference_counted.h",
+ "src/quic/platform/api/quic_server_stats.h",
+ "src/quic/platform/api/quic_sleep.h",
+ "src/quic/platform/api/quic_socket_address.cc",
+ "src/quic/platform/api/quic_socket_address.h",
+ "src/quic/platform/api/quic_stack_trace.h",
+ "src/quic/platform/api/quic_thread.h",
+ "src/quic/quic_transport/quic_transport_client_session.cc",
+ "src/quic/quic_transport/quic_transport_client_session.h",
+ "src/quic/quic_transport/quic_transport_protocol.h",
+ "src/quic/quic_transport/quic_transport_server_session.cc",
+ "src/quic/quic_transport/quic_transport_server_session.h",
+ "src/quic/quic_transport/quic_transport_session_interface.h",
+ "src/quic/quic_transport/quic_transport_stream.cc",
+ "src/quic/quic_transport/quic_transport_stream.h",
+ "src/quic/quic_transport/web_transport_fingerprint_proof_verifier.cc",
+ "src/quic/quic_transport/web_transport_fingerprint_proof_verifier.h",
+ "src/spdy/core/hpack/hpack_constants.cc",
+ "src/spdy/core/hpack/hpack_constants.h",
+ "src/spdy/core/hpack/hpack_decoder_adapter.cc",
+ "src/spdy/core/hpack/hpack_decoder_adapter.h",
+ "src/spdy/core/hpack/hpack_encoder.cc",
+ "src/spdy/core/hpack/hpack_encoder.h",
+ "src/spdy/core/hpack/hpack_entry.cc",
+ "src/spdy/core/hpack/hpack_entry.h",
+ "src/spdy/core/hpack/hpack_header_table.cc",
+ "src/spdy/core/hpack/hpack_header_table.h",
+ "src/spdy/core/hpack/hpack_output_stream.cc",
+ "src/spdy/core/hpack/hpack_output_stream.h",
+ "src/spdy/core/hpack/hpack_static_table.cc",
+ "src/spdy/core/hpack/hpack_static_table.h",
+ "src/spdy/core/http2_frame_decoder_adapter.cc",
+ "src/spdy/core/http2_frame_decoder_adapter.h",
+ "src/spdy/core/recording_headers_handler.cc",
+ "src/spdy/core/recording_headers_handler.h",
+ "src/spdy/core/spdy_alt_svc_wire_format.cc",
+ "src/spdy/core/spdy_alt_svc_wire_format.h",
+ "src/spdy/core/spdy_bitmasks.h",
+ "src/spdy/core/spdy_frame_builder.cc",
+ "src/spdy/core/spdy_frame_builder.h",
+ "src/spdy/core/spdy_frame_reader.cc",
+ "src/spdy/core/spdy_frame_reader.h",
+ "src/spdy/core/spdy_framer.cc",
+ "src/spdy/core/spdy_framer.h",
+ "src/spdy/core/spdy_header_block.cc",
+ "src/spdy/core/spdy_header_block.h",
+ "src/spdy/core/spdy_header_storage.cc",
+ "src/spdy/core/spdy_header_storage.h",
+ "src/spdy/core/spdy_headers_handler_interface.h",
+ "src/spdy/core/spdy_intrusive_list.h",
+ "src/spdy/core/spdy_no_op_visitor.cc",
+ "src/spdy/core/spdy_no_op_visitor.h",
+ "src/spdy/core/spdy_pinnable_buffer_piece.cc",
+ "src/spdy/core/spdy_pinnable_buffer_piece.h",
+ "src/spdy/core/spdy_prefixed_buffer_reader.cc",
+ "src/spdy/core/spdy_prefixed_buffer_reader.h",
+ "src/spdy/core/spdy_protocol.cc",
+ "src/spdy/core/spdy_protocol.h",
+ "src/spdy/core/spdy_simple_arena.cc",
+ "src/spdy/core/spdy_simple_arena.h",
+ "src/spdy/core/zero_copy_output_buffer.h",
+ ]
+ deps = [ "//net:net_deps" ]
+ public_deps = [ "//net:net_public_deps" ]
+}
diff --git a/third_party/quiche/README.chromium b/third_party/quiche/README.chromium
new file mode 100644
index 00000000..065860ff
--- /dev/null
+++ b/third_party/quiche/README.chromium
@@ -0,0 +1,9 @@
+Name: QUICHE
+URL: https://quiche.googlesource.com/quiche
+Version: git
+License: BSD
+License File: src/LICENSE
+Security Critical: yes
+
+Description:
+This is QUICHE, Google's implementation of QUIC, HTTP/2 and SPDY protocols.