Default add RVCM to connection options
Change-Id: I08902186ec5bb16c000cbcdeb433ab4debfc0dd9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3760909
Reviewed-by: Fan Yang <[email protected]>
Commit-Queue: Renjie Tang <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1024001}
diff --git a/net/quic/quic_context.cc b/net/quic/quic_context.cc
index 0264fb07..9f10dcf7 100644
--- a/net/quic/quic_context.cc
+++ b/net/quic/quic_context.cc
@@ -6,6 +6,7 @@
#include "net/quic/platform/impl/quic_chromium_clock.h"
#include "net/quic/quic_chromium_connection_helper.h"
+#include "net/third_party/quiche/src/quiche/quic/core/crypto/crypto_protocol.h"
#include "net/third_party/quiche/src/quiche/quic/core/crypto/quic_random.h"
#include "net/third_party/quiche/src/quiche/quic/core/quic_constants.h"
@@ -51,7 +52,12 @@
config.set_max_idle_time_before_crypto_handshake(
quic::QuicTime::Delta::FromMicroseconds(
params.max_idle_time_before_crypto_handshake.InMicroseconds()));
- config.SetConnectionOptionsToSend(params.connection_options);
+ quic::QuicTagVector copt_to_send = params.connection_options;
+ if (std::find(copt_to_send.begin(), copt_to_send.end(), quic::kRVCM) ==
+ copt_to_send.end()) {
+ copt_to_send.push_back(quic::kRVCM);
+ }
+ config.SetConnectionOptionsToSend(copt_to_send);
config.SetClientConnectionOptions(params.client_connection_options);
config.set_max_undecryptable_packets(kMaxUndecryptablePackets);
config.SetInitialSessionFlowControlWindowToSend(
diff --git a/net/quic/quic_network_transaction_unittest.cc b/net/quic/quic_network_transaction_unittest.cc
index 076eb95..70bf596 100644
--- a/net/quic/quic_network_transaction_unittest.cc
+++ b/net/quic/quic_network_transaction_unittest.cc
@@ -3237,6 +3237,9 @@
TEST_P(QuicNetworkTransactionTest, TimeoutAfterHandshakeConfirmed) {
context_.params()->retry_without_alt_svc_on_quic_errors = false;
context_.params()->idle_connection_timeout = base::Seconds(5);
+ // Turn off port migration to avoid dealing with unnecessary complexity in
+ // this test.
+ context_.params()->allow_port_migration = false;
// The request will initially go out over QUIC.
MockQuicData quic_data(version_);
@@ -3436,6 +3439,9 @@
return;
}
context_.params()->idle_connection_timeout = base::Seconds(5);
+ // Turn off port migration to avoid dealing with unnecessary complexity in
+ // this test.
+ context_.params()->allow_port_migration = false;
// The request will initially go out over QUIC.
MockQuicData quic_data(version_);
diff --git a/net/quic/quic_stream_factory_test.cc b/net/quic/quic_stream_factory_test.cc
index cc0de1c..15da57b 100644
--- a/net/quic/quic_stream_factory_test.cc
+++ b/net/quic/quic_stream_factory_test.cc
@@ -256,7 +256,6 @@
void SetIetfConnectionMigrationFlagsAndConnectionOptions() {
FLAGS_quic_reloadable_flag_quic_connection_migration_use_new_cid_v2 = true;
- quic_params_->connection_options.push_back(quic::kRVCM);
}
void InitializeConnectionMigrationV2Test(
@@ -12919,6 +12918,8 @@
Initialize();
+ // RVCM will be default enabled as a connection option.
+ quic_params_->connection_options.push_back(quic::kRVCM);
const quic::QuicConfig* config =
QuicStreamFactoryPeer::GetConfig(factory_.get());
EXPECT_EQ(quic_params_->connection_options, config->SendConnectionOptions());