Rename, refactor, and document "HttpServerProperties::SupportsQuic()"
This method name is confusing, since
HttpServerProperties::SupportsSpdy() is used to store whether a server
supports SPDY/H2, but SupportsQuic() actually means a network where
QUIC works (i.e., the ISP isn't breaking QUIC, or something similar).
This difference in meaning was also not documented anywhere.
This CL renames "SupportsQuic" to "LastLocalAddressWhenQuicWorked",
adds documentation, and reworks the API slightly - its behavior
around empty IPAddresses was a little weird, as was passing in an
IPAddress() and a bool when clearing information for all IP addresses.
This CL also renames QuicFactory::requires_confirmation_ to
is_quic_known_to_work_on_current_network_ (which also requires
inverting its value) and adds some documentation for it, as it was
similarly confusing.
Bug: 969890
Change-Id: Id51b082343ff31ecd36f1bedfab8342307da26ee
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1790325
Commit-Queue: Matt Menke <[email protected]>
Reviewed-by: Ryan Hamilton <[email protected]>
Reviewed-by: Zhongyi Shi <[email protected]>
Cr-Commit-Position: refs/heads/master@{#695833}
diff --git a/net/quic/quic_network_transaction_unittest.cc b/net/quic/quic_network_transaction_unittest.cc
index c435912..3de0d1c 100644
--- a/net/quic/quic_network_transaction_unittest.cc
+++ b/net/quic/quic_network_transaction_unittest.cc
@@ -671,7 +671,8 @@
session_context_.net_log = net_log_.bound().net_log();
session_.reset(new HttpNetworkSession(session_params_, session_context_));
- session_->quic_stream_factory()->set_require_confirmation(false);
+ session_->quic_stream_factory()
+ ->set_is_quic_known_to_work_on_current_network(true);
SpdySessionPoolPeer spdy_pool_peer(session_->spdy_session_pool());
spdy_pool_peer.SetEnableSendingInitialData(false);
}
@@ -2518,7 +2519,8 @@
"");
CreateSession();
- session_->quic_stream_factory()->set_require_confirmation(true);
+ session_->quic_stream_factory()->set_is_quic_known_to_work_on_current_network(
+ false);
AddQuicAlternateProtocolMapping(MockCryptoClientStream::ZERO_RTT);
HttpNetworkTransaction trans(DEFAULT_PRIORITY, session_.get());
@@ -2601,7 +2603,8 @@
"");
CreateSession();
- session_->quic_stream_factory()->set_require_confirmation(true);
+ session_->quic_stream_factory()->set_is_quic_known_to_work_on_current_network(
+ false);
// Use a TestTaskRunner to avoid waiting in real time for timeouts.
QuicStreamFactoryPeer::SetAlarmFactory(
session_->quic_stream_factory(),
@@ -2715,7 +2718,8 @@
"");
CreateSession();
- session_->quic_stream_factory()->set_require_confirmation(true);
+ session_->quic_stream_factory()->set_is_quic_known_to_work_on_current_network(
+ false);
// Use a TestTaskRunner to avoid waiting in real time for timeouts.
QuicStreamFactoryPeer::SetAlarmFactory(
session_->quic_stream_factory(),
@@ -2852,7 +2856,8 @@
"");
CreateSession();
- session_->quic_stream_factory()->set_require_confirmation(true);
+ session_->quic_stream_factory()->set_is_quic_known_to_work_on_current_network(
+ false);
// Use a TestTaskRunner to avoid waiting in real time for timeouts.
QuicStreamFactoryPeer::SetAlarmFactory(
session_->quic_stream_factory(),
@@ -2989,7 +2994,8 @@
"");
CreateSession();
- session_->quic_stream_factory()->set_require_confirmation(true);
+ session_->quic_stream_factory()->set_is_quic_known_to_work_on_current_network(
+ false);
// Use a TestTaskRunner to avoid waiting in real time for timeouts.
QuicStreamFactoryPeer::SetAlarmFactory(
session_->quic_stream_factory(),
@@ -4961,7 +4967,8 @@
"");
CreateSession();
- session_->quic_stream_factory()->set_require_confirmation(true);
+ session_->quic_stream_factory()->set_is_quic_known_to_work_on_current_network(
+ false);
AddQuicAlternateProtocolMapping(MockCryptoClientStream::ZERO_RTT);
HttpNetworkTransaction trans(DEFAULT_PRIORITY, session_.get());
@@ -5172,7 +5179,8 @@
"");
CreateSession();
- session_->quic_stream_factory()->set_require_confirmation(true);
+ session_->quic_stream_factory()->set_is_quic_known_to_work_on_current_network(
+ false);
AddQuicAlternateProtocolMapping(MockCryptoClientStream::ZERO_RTT);
HttpNetworkTransaction trans(DEFAULT_PRIORITY, session_.get());
@@ -5235,7 +5243,8 @@
"");
CreateSession();
- session_->quic_stream_factory()->set_require_confirmation(true);
+ session_->quic_stream_factory()->set_is_quic_known_to_work_on_current_network(
+ false);
AddQuicAlternateProtocolMapping(MockCryptoClientStream::ZERO_RTT);
HttpNetworkTransaction trans(DEFAULT_PRIORITY, session_.get());
@@ -5293,7 +5302,8 @@
"");
CreateSession();
- session_->quic_stream_factory()->set_require_confirmation(true);
+ session_->quic_stream_factory()->set_is_quic_known_to_work_on_current_network(
+ false);
AddQuicAlternateProtocolMapping(MockCryptoClientStream::ZERO_RTT);
HttpNetworkTransaction trans(DEFAULT_PRIORITY, session_.get());
@@ -5354,7 +5364,8 @@
"");
CreateSession();
- session_->quic_stream_factory()->set_require_confirmation(true);
+ session_->quic_stream_factory()->set_is_quic_known_to_work_on_current_network(
+ false);
AddQuicAlternateProtocolMapping(MockCryptoClientStream::ZERO_RTT);
HttpNetworkTransaction trans(DEFAULT_PRIORITY, session_.get());
@@ -5510,7 +5521,8 @@
// Set QUIC support on the last IP address, which is same with the local IP
// address. Require confirmation mode will be turned off immediately when
// local IP address is sorted out after we configure the UDP socket.
- http_server_properties_->SetSupportsQuic(true, IPAddress(192, 0, 2, 33));
+ http_server_properties_->SetLastLocalAddressWhenQuicWorked(
+ IPAddress(192, 0, 2, 33));
MockQuicData mock_quic_data(version_);
client_maker_.SetEncryptionLevel(quic::ENCRYPTION_ZERO_RTT);
@@ -5536,7 +5548,8 @@
CreateSession();
// QuicStreamFactory by default requires confirmation on construction.
- session_->quic_stream_factory()->set_require_confirmation(true);
+ session_->quic_stream_factory()->set_is_quic_known_to_work_on_current_network(
+ false);
AddQuicAlternateProtocolMapping(MockCryptoClientStream::ZERO_RTT);
@@ -5567,7 +5580,8 @@
// Set QUIC support on the last IP address, which is different with the local
// IP address. Require confirmation mode will remain when local IP address is
// sorted out after we configure the UDP socket.
- http_server_properties_->SetSupportsQuic(true, IPAddress(1, 2, 3, 4));
+ http_server_properties_->SetLastLocalAddressWhenQuicWorked(
+ IPAddress(1, 2, 3, 4));
MockQuicData mock_quic_data(version_);
int packet_num = 1;
@@ -5596,7 +5610,8 @@
// No HTTP data is mocked as TCP job will be delayed and never starts.
CreateSession();
- session_->quic_stream_factory()->set_require_confirmation(true);
+ session_->quic_stream_factory()->set_is_quic_known_to_work_on_current_network(
+ false);
AddQuicAlternateProtocolMapping(MockCryptoClientStream::ZERO_RTT);
// Stall host resolution so that QUIC job could not proceed and unblocks TCP.
@@ -5647,7 +5662,8 @@
// Require handshake confirmation to ensure that no QUIC streams are
// created, and to ensure that the TCP job does not wait for the QUIC
// job to fail before it starts.
- session_->quic_stream_factory()->set_require_confirmation(true);
+ session_->quic_stream_factory()->set_is_quic_known_to_work_on_current_network(
+ false);
AddQuicAlternateProtocolMapping(MockCryptoClientStream::COLD_START);
HttpNetworkTransaction trans(DEFAULT_PRIORITY, session_.get());
@@ -6892,7 +6908,8 @@
session_context.http_server_properties = &http_server_properties_;
session_.reset(new HttpNetworkSession(session_params, session_context));
- session_->quic_stream_factory()->set_require_confirmation(true);
+ session_->quic_stream_factory()
+ ->set_is_quic_known_to_work_on_current_network(false);
}
void TearDown() override {