Commit ee921d19 authored by Renjie Tang's avatar Renjie Tang Committed by Commit Bot

Roll src/net/third_party/quiche/src/ 4c93e8d76..75bbf98f4 (10 commits)

https://quiche.googlesource.com/quiche.git/+log/4c93e8d76db8..75bbf98f4e18

2020-02-01 bnc Change default QuicStream priority when using IETF QUIC.
2020-01-31 wub gfe-relnote: In QUIC, check nonretransmittable_frames, instead of packet length, to determine if a serialized packet is a MTU probe or not. Protected by --gfe2_reloadable_flag_quic_better_mtu_packet_check.
2020-01-31 wub gfe-relnote: If batch writer is used in a QuicConneciton, flush it right after a MTU probe is sent. Protected by --gfe2_reloadable_flag_quic_batch_writer_flush_after_mtu_probe.
2020-01-30 bnc Sent PRIORITY_UPDATE frame when priority changes.
2020-01-30 wub gfe-relnote: Check handshake timeout before idle timeout in QuicConnection. Protected by --gfe2_reloadable_flag_quic_check_handshake_timeout_before_idle_timeout.

Created with:
  roll-dep src/net/third_party/quiche/src src/third_party/quic_trace/src

Change-Id: Id057ddca51b6bb8f5c219285a444023a7c08a071
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2037636
Commit-Queue: Renjie Tang <renjietang@chromium.org>
Reviewed-by: default avatarBence Béky <bnc@chromium.org>
Cr-Commit-Position: refs/heads/master@{#738756}
parent d250c40b
...@@ -311,7 +311,7 @@ vars = { ...@@ -311,7 +311,7 @@ vars = {
# Three lines of non-changing comments so that # Three lines of non-changing comments so that
# the commit queue can handle CLs rolling feed # the commit queue can handle CLs rolling feed
# and whatever else without interference from each other. # and whatever else without interference from each other.
'quiche_revision': '4c93e8d76db89f5ad117a8e48521fad69e442ba9', 'quiche_revision': '5f20251f863498d7f6d44516373c79d383e08f7c',
# Three lines of non-changing comments so that # Three lines of non-changing comments so that
# the commit queue can handle CLs rolling ios_webkit # the commit queue can handle CLs rolling ios_webkit
# and whatever else without interference from each other. # and whatever else without interference from each other.
......
...@@ -402,3 +402,19 @@ QUIC_FLAG( ...@@ -402,3 +402,19 @@ QUIC_FLAG(
// If true, use predictable grease settings identifiers and values. // If true, use predictable grease settings identifiers and values.
QUIC_FLAG(bool, FLAGS_quic_disable_http3_settings_grease_randomness, false) QUIC_FLAG(bool, FLAGS_quic_disable_http3_settings_grease_randomness, false)
// If true, QuicConnection will check handshake timeout before idle timeout.
QUIC_FLAG(
bool,
FLAGS_quic_reloadable_flag_quic_check_handshake_timeout_before_idle_timeout,
false)
// If true and batch writer is used, QuicConnection will flush after a mtu probe
// is sent.
QUIC_FLAG(bool,
FLAGS_quic_reloadable_flag_quic_batch_writer_flush_after_mtu_probe,
false)
// If true, QuicConnection will check MTU_DISCOVERY_FRAME in
// nonretransmittable_frames to see if a packet is a MTU probe.
QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_better_mtu_packet_check, false)
...@@ -366,6 +366,9 @@ class QuicProxyClientSocketTest : public ::testing::TestWithParam<TestParams>, ...@@ -366,6 +366,9 @@ class QuicProxyClientSocketTest : public ::testing::TestWithParam<TestParams>,
RequestPriority request_priority = LOWEST) { RequestPriority request_priority = LOWEST) {
spdy::SpdyHeaderBlock block; spdy::SpdyHeaderBlock block;
PopulateConnectRequestIR(&block); PopulateConnectRequestIR(&block);
if (VersionUsesHttp3(version_.transport_version)) {
request_priority = MEDIUM;
}
return client_maker_.MakeRequestHeadersPacket( return client_maker_.MakeRequestHeadersPacket(
packet_number, client_data_stream_id1_, kIncludeVersion, !kFin, packet_number, client_data_stream_id1_, kIncludeVersion, !kFin,
ConvertRequestPriorityToQuicPriority(request_priority), ConvertRequestPriorityToQuicPriority(request_priority),
...@@ -374,13 +377,17 @@ class QuicProxyClientSocketTest : public ::testing::TestWithParam<TestParams>, ...@@ -374,13 +377,17 @@ class QuicProxyClientSocketTest : public ::testing::TestWithParam<TestParams>,
std::unique_ptr<quic::QuicReceivedPacket> ConstructConnectAuthRequestPacket( std::unique_ptr<quic::QuicReceivedPacket> ConstructConnectAuthRequestPacket(
uint64_t packet_number) { uint64_t packet_number) {
RequestPriority request_priority = LOWEST;
if (VersionUsesHttp3(version_.transport_version)) {
request_priority = MEDIUM;
}
spdy::SpdyHeaderBlock block; spdy::SpdyHeaderBlock block;
PopulateConnectRequestIR(&block); PopulateConnectRequestIR(&block);
block["proxy-authorization"] = "Basic Zm9vOmJhcg=="; block["proxy-authorization"] = "Basic Zm9vOmJhcg==";
return client_maker_.MakeRequestHeadersPacket( return client_maker_.MakeRequestHeadersPacket(
packet_number, client_data_stream_id1_, kIncludeVersion, !kFin, packet_number, client_data_stream_id1_, kIncludeVersion, !kFin,
ConvertRequestPriorityToQuicPriority(LOWEST), std::move(block), 0, ConvertRequestPriorityToQuicPriority(request_priority),
nullptr); std::move(block), 0, nullptr);
} }
std::unique_ptr<quic::QuicReceivedPacket> ConstructDataPacket( std::unique_ptr<quic::QuicReceivedPacket> ConstructDataPacket(
......
...@@ -771,10 +771,7 @@ QuicTestPacketMaker::MakePriorityPacket(uint64_t packet_number, ...@@ -771,10 +771,7 @@ QuicTestPacketMaker::MakePriorityPacket(uint64_t packet_number,
spdy::SpdyPriority priority) { spdy::SpdyPriority priority) {
InitializeHeader(packet_number, should_include_version); InitializeHeader(packet_number, should_include_version);
if (!client_headers_include_h2_stream_dependency_ || if (!client_headers_include_h2_stream_dependency_) {
quic::VersionUsesHttp3(version_.transport_version)) {
// TODO(rch): both stream_dependencies and priority frames need to be
// supported in IETF QUIC.
parent_stream_id = 0; parent_stream_id = 0;
} }
int weight = spdy::Spdy3PriorityToHttp2Weight(priority); int weight = spdy::Spdy3PriorityToHttp2Weight(priority);
...@@ -791,6 +788,29 @@ QuicTestPacketMaker::MakePriorityPacket(uint64_t packet_number, ...@@ -791,6 +788,29 @@ QuicTestPacketMaker::MakePriorityPacket(uint64_t packet_number,
return BuildPacket(); return BuildPacket();
} }
if (priority != quic::QuicStream::kDefaultUrgency) {
std::string priority_data = GenerateHttp3PriorityData(priority, id);
AddQuicStreamFrame(2, false, priority_data);
}
return BuildPacket();
}
std::unique_ptr<quic::QuicReceivedPacket>
QuicTestPacketMaker::MakeAckAndPriorityUpdatePacket(
uint64_t packet_number,
bool should_include_version,
uint64_t largest_received,
uint64_t smallest_received,
uint64_t least_unacked,
quic::QuicStreamId id,
spdy::SpdyPriority priority) {
InitializeHeader(packet_number, should_include_version);
AddQuicAckFrame(largest_received, smallest_received);
std::string priority_data = GenerateHttp3PriorityData(priority, id);
AddQuicStreamFrame(2, false, priority_data);
return BuildPacket(); return BuildPacket();
} }
......
...@@ -315,6 +315,15 @@ class QuicTestPacketMaker { ...@@ -315,6 +315,15 @@ class QuicTestPacketMaker {
uint64_t new_packet_number, uint64_t new_packet_number,
bool should_include_version); bool should_include_version);
std::unique_ptr<quic::QuicReceivedPacket> MakeAckAndPriorityUpdatePacket(
uint64_t packet_number,
bool should_include_version,
uint64_t largest_received,
uint64_t smallest_received,
uint64_t least_unacked,
quic::QuicStreamId id,
spdy::SpdyPriority priority);
// Removes all stream frames associated with |stream_id|. // Removes all stream frames associated with |stream_id|.
void RemoveSavedStreamFrames(quic::QuicStreamId stream_id); void RemoveSavedStreamFrames(quic::QuicStreamId stream_id);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment