Rename QuicStreamFactory to QuicSessionPool.
This class used to create QUIC streams, but now creates and pools QUIC sessions instead. This rename brings it in line with SpdySessionPool and its `RequestSession` method. This CL has no functional impact. It is a mechanistic rename, performed with `sed`. It avoids renaming existing metrics, preferring continuity of data over accuracy of the name. ``` sed -i 's/quic_stream_factory/quic_session_pool/g;s/QUIC_STREAM_FACTORY/QUIC_SESSION_POOL/g;s/QuicStreamFactory/QuicSessionPool/g' $(git grep -il 'quic.\?stream.\?factory') sed -i 's/quic_stream_request/quic_session_request/g;s/QUIC_STREAM_REQUEST/QUIC_SESSION_REQUEST/g;s/QuicStreamRequest/QuicSessionRequest/g' $(git grep -il 'quic.\?stream.\?request') for f in net/quic/*quic_stream_factory*; do n=$(echo $f | sed -e s/stream/session/g); git mv $f $n; done sed -i 's/Net\.QuicSessionPool/Net.QuicStreamFactory/g' $(git grep -il 'Net.QuicSession' net/ tools/) git cl format ``` Change-Id: I20ceb3d8a0a97cd9c8888bb7414b983b9fe5fa51 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5190439 Reviewed-by: Ryan Hamilton <rch@chromium.org> Commit-Queue: Dustin Mitchell <djmitche@chromium.org> Reviewed-by: Elly FJ <ellyjones@chromium.org> Code-Coverage: findit-for-me@appspot.gserviceaccount.com <findit-for-me@appspot.gserviceaccount.com> Reviewed-by: Paul Semel <paulsemel@chromium.org> Reviewed-by: Tibor Goldschwendt <tiborg@chromium.org> Reviewed-by: Matt Menke <mmenke@chromium.org> Reviewed-by: David Schinazi <dschinazi@chromium.org> Cr-Commit-Position: refs/heads/main@{#1248827}
This commit is contained in:

committed by
Chromium LUCI CQ

parent
8755f76bec
commit
795c736ac0
docs/memory-infra
ios/net
net
BUILD.gn
http
alternative_service.hhttp_network_session.cchttp_network_session.hhttp_network_transaction_unittest.cchttp_proxy_connect_job.cchttp_proxy_connect_job.hhttp_stream_factory_job.cchttp_stream_factory_job.hhttp_stream_factory_job_controller.cchttp_stream_factory_job_controller_unittest.cchttp_stream_factory_unittest.cc
log
quic
bidirectional_stream_quic_impl_unittest.ccquic_chromium_client_session.ccquic_chromium_client_session.hquic_crypto_client_config_handle.hquic_http_stream.ccquic_http_stream_test.ccquic_network_transaction_unittest.ccquic_proxy_client_socket_unittest.ccquic_session_pool.ccquic_session_pool.hquic_session_pool_fuzzer.ccquic_session_pool_peer.ccquic_session_pool_peer.hquic_session_pool_test.cc
socket
client_socket_pool_base_unittest.ccconnect_job.ccconnect_job.hconnect_job_factory_unittest.ccconnect_job_unittest.ccsocks_connect_job_unittest.cctransport_connect_job_unittest.ccwebsocket_transport_client_socket_pool_unittest.cc
url_request
websockets
services/network
testing/libfuzzer
tools
@ -65,7 +65,7 @@ URLRequestContext and “main_isolated_media” URLRequestContext.
|
||||
|
||||
This object owns HTTP/2 sessions.
|
||||
|
||||
- QuicStreamFactory (“quic_stream_factory”)
|
||||
- QuicSessionPool (“quic_session_pool”)
|
||||
|
||||
This object owns QUIC sessions and streams.
|
||||
|
||||
|
@ -18,7 +18,7 @@
|
||||
#include "net/http/http_cache.h"
|
||||
#include "net/http/http_network_session.h"
|
||||
#include "net/http/http_transaction_factory.h"
|
||||
#include "net/quic/quic_stream_factory.h"
|
||||
#include "net/quic/quic_session_pool.h"
|
||||
#include "net/url_request/url_request_context.h"
|
||||
#include "net/url_request/url_request_context_getter.h"
|
||||
#include "url/gurl.h"
|
||||
@ -70,7 +70,7 @@ void ClearHttpCacheOnIOThread(
|
||||
|
||||
// Clear QUIC server information from memory and the disk cache.
|
||||
http_cache->GetSession()
|
||||
->quic_stream_factory()
|
||||
->quic_session_pool()
|
||||
->ClearCachedStatesInCryptoConfig(
|
||||
base::RepeatingCallback<bool(const GURL&)>());
|
||||
|
||||
|
14
net/BUILD.gn
14
net/BUILD.gn
@ -798,8 +798,8 @@ component("net") {
|
||||
"quic/quic_server_info.h",
|
||||
"quic/quic_session_key.cc",
|
||||
"quic/quic_session_key.h",
|
||||
"quic/quic_stream_factory.cc",
|
||||
"quic/quic_stream_factory.h",
|
||||
"quic/quic_session_pool.cc",
|
||||
"quic/quic_session_pool.h",
|
||||
"quic/set_quic_flag.cc",
|
||||
"quic/set_quic_flag.h",
|
||||
"quic/web_transport_client.cc",
|
||||
@ -2661,9 +2661,9 @@ test("net_unittests") {
|
||||
"quic/quic_http_utils_test.cc",
|
||||
"quic/quic_network_transaction_unittest.cc",
|
||||
"quic/quic_proxy_client_socket_unittest.cc",
|
||||
"quic/quic_stream_factory_peer.cc",
|
||||
"quic/quic_stream_factory_peer.h",
|
||||
"quic/quic_stream_factory_test.cc",
|
||||
"quic/quic_session_pool_peer.cc",
|
||||
"quic/quic_session_pool_peer.h",
|
||||
"quic/quic_session_pool_test.cc",
|
||||
"quic/quic_test_packet_maker.cc",
|
||||
"quic/quic_test_packet_maker.h",
|
||||
"quic/quic_test_packet_printer.cc",
|
||||
@ -3809,8 +3809,8 @@ fuzzer_test("net_reporting_header_parser_fuzzer") {
|
||||
]
|
||||
}
|
||||
|
||||
fuzzer_test("net_quic_stream_factory_fuzzer") {
|
||||
sources = [ "quic/quic_stream_factory_fuzzer.cc" ]
|
||||
fuzzer_test("net_quic_session_pool_fuzzer") {
|
||||
sources = [ "quic/quic_session_pool_fuzzer.cc" ]
|
||||
|
||||
deps = [
|
||||
":net_fuzzer_test_support",
|
||||
|
@ -28,7 +28,7 @@ NET_EXPORT void HistogramAlternateProtocolUsage(AlternateProtocolUsage usage,
|
||||
|
||||
enum BrokenAlternateProtocolLocation {
|
||||
BROKEN_ALTERNATE_PROTOCOL_LOCATION_HTTP_STREAM_FACTORY_JOB = 0,
|
||||
BROKEN_ALTERNATE_PROTOCOL_LOCATION_QUIC_STREAM_FACTORY = 1,
|
||||
BROKEN_ALTERNATE_PROTOCOL_LOCATION_QUIC_SESSION_POOL = 1,
|
||||
BROKEN_ALTERNATE_PROTOCOL_LOCATION_HTTP_STREAM_FACTORY_JOB_ALT = 2,
|
||||
BROKEN_ALTERNATE_PROTOCOL_LOCATION_HTTP_STREAM_FACTORY_JOB_MAIN = 3,
|
||||
BROKEN_ALTERNATE_PROTOCOL_LOCATION_QUIC_HTTP_STREAM = 4,
|
||||
|
@ -26,7 +26,7 @@
|
||||
#include "net/proxy_resolution/proxy_resolution_service.h"
|
||||
#include "net/quic/platform/impl/quic_chromium_clock.h"
|
||||
#include "net/quic/quic_crypto_client_stream_factory.h"
|
||||
#include "net/quic/quic_stream_factory.h"
|
||||
#include "net/quic/quic_session_pool.h"
|
||||
#include "net/socket/client_socket_factory.h"
|
||||
#include "net/socket/client_socket_pool_manager_impl.h"
|
||||
#include "net/socket/next_proto.h"
|
||||
@ -145,17 +145,17 @@ HttpNetworkSession::HttpNetworkSession(const HttpNetworkSessionParams& params,
|
||||
context.transport_security_state,
|
||||
&ssl_client_session_cache_,
|
||||
context.sct_auditing_delegate),
|
||||
quic_stream_factory_(context.net_log,
|
||||
context.host_resolver,
|
||||
context.ssl_config_service,
|
||||
context.client_socket_factory,
|
||||
context.http_server_properties,
|
||||
context.cert_verifier,
|
||||
context.transport_security_state,
|
||||
context.sct_auditing_delegate,
|
||||
context.socket_performance_watcher_factory,
|
||||
context.quic_crypto_client_stream_factory,
|
||||
context.quic_context),
|
||||
quic_session_pool_(context.net_log,
|
||||
context.host_resolver,
|
||||
context.ssl_config_service,
|
||||
context.client_socket_factory,
|
||||
context.http_server_properties,
|
||||
context.cert_verifier,
|
||||
context.transport_security_state,
|
||||
context.sct_auditing_delegate,
|
||||
context.socket_performance_watcher_factory,
|
||||
context.quic_crypto_client_stream_factory,
|
||||
context.quic_context),
|
||||
spdy_session_pool_(context.host_resolver,
|
||||
&ssl_client_context_,
|
||||
context.http_server_properties,
|
||||
@ -263,7 +263,7 @@ std::unique_ptr<base::Value> HttpNetworkSession::SpdySessionPoolInfoToValue()
|
||||
|
||||
base::Value HttpNetworkSession::QuicInfoToValue() const {
|
||||
base::Value::Dict dict;
|
||||
dict.Set("sessions", quic_stream_factory_.QuicStreamFactoryInfoToValue());
|
||||
dict.Set("sessions", quic_session_pool_.QuicSessionPoolInfoToValue());
|
||||
dict.Set("quic_enabled", IsQuicEnabled());
|
||||
|
||||
const QuicParams* quic_params = context_.quic_context->params();
|
||||
@ -337,7 +337,7 @@ void HttpNetworkSession::CloseAllConnections(int net_error,
|
||||
websocket_socket_pool_manager_->FlushSocketPoolsWithError(
|
||||
net_error, net_log_reason_utf8);
|
||||
spdy_session_pool_.CloseCurrentSessions(static_cast<net::Error>(net_error));
|
||||
quic_stream_factory_.CloseAllSessions(net_error, quic::QUIC_PEER_GOING_AWAY);
|
||||
quic_session_pool_.CloseAllSessions(net_error, quic::QUIC_PEER_GOING_AWAY);
|
||||
}
|
||||
|
||||
void HttpNetworkSession::CloseIdleConnections(const char* net_log_reason_utf8) {
|
||||
@ -369,10 +369,9 @@ CommonConnectJobParams HttpNetworkSession::CreateCommonConnectJobParams(
|
||||
return CommonConnectJobParams(
|
||||
context_.client_socket_factory, context_.host_resolver, &http_auth_cache_,
|
||||
context_.http_auth_handler_factory, &spdy_session_pool_,
|
||||
&context_.quic_context->params()->supported_versions,
|
||||
&quic_stream_factory_, context_.proxy_delegate,
|
||||
context_.http_user_agent_settings, &ssl_client_context_,
|
||||
context_.socket_performance_watcher_factory,
|
||||
&context_.quic_context->params()->supported_versions, &quic_session_pool_,
|
||||
context_.proxy_delegate, context_.http_user_agent_settings,
|
||||
&ssl_client_context_, context_.socket_performance_watcher_factory,
|
||||
context_.network_quality_estimator, context_.net_log,
|
||||
for_websockets ? &websocket_endpoint_lock_manager_ : nullptr,
|
||||
context_.http_server_properties, &next_protos_, &application_settings_,
|
||||
|
@ -30,7 +30,7 @@
|
||||
#include "net/http/http_auth_cache.h"
|
||||
#include "net/http/http_stream_factory.h"
|
||||
#include "net/net_buildflags.h"
|
||||
#include "net/quic/quic_stream_factory.h"
|
||||
#include "net/quic/quic_session_pool.h"
|
||||
#include "net/socket/connect_job.h"
|
||||
#include "net/socket/next_proto.h"
|
||||
#include "net/socket/websocket_endpoint_lock_manager.h"
|
||||
@ -245,7 +245,7 @@ class NET_EXPORT HttpNetworkSession {
|
||||
return &websocket_endpoint_lock_manager_;
|
||||
}
|
||||
SpdySessionPool* spdy_session_pool() { return &spdy_session_pool_; }
|
||||
QuicStreamFactory* quic_stream_factory() { return &quic_stream_factory_; }
|
||||
QuicSessionPool* quic_session_pool() { return &quic_session_pool_; }
|
||||
HttpAuthHandlerFactory* http_auth_handler_factory() {
|
||||
return http_auth_handler_factory_;
|
||||
}
|
||||
@ -339,7 +339,7 @@ class NET_EXPORT HttpNetworkSession {
|
||||
WebSocketEndpointLockManager websocket_endpoint_lock_manager_;
|
||||
std::unique_ptr<ClientSocketPoolManager> normal_socket_pool_manager_;
|
||||
std::unique_ptr<ClientSocketPoolManager> websocket_socket_pool_manager_;
|
||||
QuicStreamFactory quic_stream_factory_;
|
||||
QuicSessionPool quic_session_pool_;
|
||||
SpdySessionPool spdy_session_pool_;
|
||||
std::unique_ptr<HttpStreamFactory> http_stream_factory_;
|
||||
std::set<std::unique_ptr<HttpResponseBodyDrainer>, base::UniquePtrComparator>
|
||||
|
@ -410,7 +410,7 @@ class HttpNetworkTransactionTestBase : public PlatformTest,
|
||||
/*http_auth_handler_factory=*/nullptr,
|
||||
/*spdy_session_pool=*/nullptr,
|
||||
/*quic_supported_versions=*/nullptr,
|
||||
/*quic_stream_factory=*/nullptr,
|
||||
/*quic_session_pool=*/nullptr,
|
||||
/*proxy_delegate=*/nullptr,
|
||||
/*http_user_agent_settings=*/nullptr,
|
||||
/*ssl_client_context=*/nullptr,
|
||||
|
@ -30,7 +30,7 @@
|
||||
#include "net/nqe/network_quality_estimator.h"
|
||||
#include "net/quic/quic_http_utils.h"
|
||||
#include "net/quic/quic_proxy_client_socket.h"
|
||||
#include "net/quic/quic_stream_factory.h"
|
||||
#include "net/quic/quic_session_pool.h"
|
||||
#include "net/socket/client_socket_handle.h"
|
||||
#include "net/socket/next_proto.h"
|
||||
#include "net/socket/ssl_client_socket.h"
|
||||
@ -683,13 +683,13 @@ int HttpProxyConnectJob::DoQuicProxyCreateSession() {
|
||||
|
||||
next_state_ = STATE_QUIC_PROXY_CREATE_STREAM;
|
||||
const HostPortPair& proxy_server = params_->proxy_server().host_port_pair();
|
||||
quic_stream_request_ = std::make_unique<QuicStreamRequest>(
|
||||
common_connect_job_params()->quic_stream_factory);
|
||||
quic_session_request_ = std::make_unique<QuicSessionRequest>(
|
||||
common_connect_job_params()->quic_session_pool);
|
||||
|
||||
// Use default QUIC version, which is the version listed supported version.
|
||||
quic::ParsedQuicVersion quic_version =
|
||||
common_connect_job_params()->quic_supported_versions->front();
|
||||
return quic_stream_request_->Request(
|
||||
return quic_session_request_->Request(
|
||||
// TODO(crbug.com/1206799) Pass the destination directly once it's
|
||||
// converted to contain scheme.
|
||||
url::SchemeHostPort(url::kHttpsScheme, proxy_server.host(),
|
||||
@ -708,13 +708,13 @@ int HttpProxyConnectJob::DoQuicProxyCreateSession() {
|
||||
|
||||
int HttpProxyConnectJob::DoQuicProxyCreateStream(int result) {
|
||||
if (result < 0) {
|
||||
quic_stream_request_.reset();
|
||||
quic_session_request_.reset();
|
||||
return result;
|
||||
}
|
||||
|
||||
next_state_ = STATE_QUIC_PROXY_CREATE_STREAM_COMPLETE;
|
||||
quic_session_ = quic_stream_request_->ReleaseSessionHandle();
|
||||
quic_stream_request_.reset();
|
||||
quic_session_ = quic_session_request_->ReleaseSessionHandle();
|
||||
quic_session_request_.reset();
|
||||
|
||||
return quic_session_->RequestStream(
|
||||
false,
|
||||
@ -802,7 +802,7 @@ int HttpProxyConnectJob::DoRestartWithAuthComplete(int result) {
|
||||
|
||||
void HttpProxyConnectJob::ChangePriorityInternal(RequestPriority priority) {
|
||||
// Do not set the priority on |spdy_stream_request_| or
|
||||
// |quic_stream_request_|, since those should always use
|
||||
// |quic_session_request_|, since those should always use
|
||||
// kH2QuicTunnelPriority.
|
||||
if (nested_connect_job_) {
|
||||
nested_connect_job_->ChangePriority(priority);
|
||||
|
@ -36,7 +36,7 @@ class ProxyClientSocket;
|
||||
class SpdyStreamRequest;
|
||||
class SSLSocketParams;
|
||||
class TransportSocketParams;
|
||||
class QuicStreamRequest;
|
||||
class QuicSessionRequest;
|
||||
|
||||
// HttpProxySocketParams only needs the socket params for one of the proxy
|
||||
// types. The other param must be NULL. When using an HTTP proxy,
|
||||
@ -249,7 +249,7 @@ class NET_EXPORT_PRIVATE HttpProxyConnectJob : public ConnectJob,
|
||||
|
||||
std::unique_ptr<SpdyStreamRequest> spdy_stream_request_;
|
||||
|
||||
std::unique_ptr<QuicStreamRequest> quic_stream_request_;
|
||||
std::unique_ptr<QuicSessionRequest> quic_session_request_;
|
||||
std::unique_ptr<QuicChromiumClientSession::Handle> quic_session_;
|
||||
|
||||
scoped_refptr<HttpAuthController> http_auth_controller_;
|
||||
|
@ -158,7 +158,7 @@ HttpStreamFactory::Job::Job(
|
||||
job_type == PRECONNECT_DNS_ALPN_H3),
|
||||
quic_version_(quic_version),
|
||||
expect_spdy_(alternative_protocol == kProtoHTTP2 && !using_quic_),
|
||||
quic_request_(session_->quic_stream_factory()),
|
||||
quic_request_(session_->quic_session_pool()),
|
||||
spdy_session_key_(
|
||||
using_quic_
|
||||
? SpdySessionKey()
|
||||
|
@ -23,7 +23,7 @@
|
||||
#include "net/http/http_request_info.h"
|
||||
#include "net/http/http_stream_factory.h"
|
||||
#include "net/http/http_stream_request.h"
|
||||
#include "net/quic/quic_stream_factory.h"
|
||||
#include "net/quic/quic_session_pool.h"
|
||||
#include "net/socket/client_socket_handle.h"
|
||||
#include "net/socket/client_socket_pool.h"
|
||||
#include "net/socket/client_socket_pool_manager.h"
|
||||
@ -430,7 +430,7 @@ class HttpStreamFactory::Job
|
||||
// True if this job might succeed with a different proxy config.
|
||||
bool should_reconsider_proxy_ = false;
|
||||
|
||||
QuicStreamRequest quic_request_;
|
||||
QuicSessionRequest quic_request_;
|
||||
|
||||
// Only valid for a QUIC job. Set when a QUIC connection is started. If true,
|
||||
// then OnQuicHostResolution() is expected to be called in the future.
|
||||
|
@ -1309,7 +1309,7 @@ HttpStreamFactory::JobController::GetAlternativeServiceInfoInternal(
|
||||
}
|
||||
RewriteUrlWithHostMappingRules(destination);
|
||||
|
||||
if (session_->quic_stream_factory()->CanUseExistingSession(
|
||||
if (session_->quic_session_pool()->CanUseExistingSession(
|
||||
session_key, url::SchemeHostPort(destination))) {
|
||||
return alternative_service_info;
|
||||
}
|
||||
|
@ -56,8 +56,8 @@
|
||||
#include "net/quic/mock_quic_context.h"
|
||||
#include "net/quic/mock_quic_data.h"
|
||||
#include "net/quic/quic_http_stream.h"
|
||||
#include "net/quic/quic_stream_factory.h"
|
||||
#include "net/quic/quic_stream_factory_peer.h"
|
||||
#include "net/quic/quic_session_pool.h"
|
||||
#include "net/quic/quic_session_pool_peer.h"
|
||||
#include "net/quic/quic_test_packet_maker.h"
|
||||
#include "net/socket/socket_test_util.h"
|
||||
#include "net/spdy/spdy_session_key.h"
|
||||
@ -86,7 +86,7 @@ namespace {
|
||||
|
||||
const char kServerHostname[] = "www.example.com";
|
||||
|
||||
// The default delay for main job defined in QuicStreamFactory::
|
||||
// The default delay for main job defined in QuicSessionPool::
|
||||
// GetTimeDelayForWaitingJob().
|
||||
const int kDefaultDelayMilliSecsForWaitingJob = 300;
|
||||
|
||||
@ -1937,7 +1937,7 @@ TEST_P(HttpStreamFactoryJobControllerTest, CancelJobsBeforeBinding) {
|
||||
// to serve Request yet and JobController will notify the factory to delete
|
||||
// itself upon completion.
|
||||
request_.reset();
|
||||
// QuicStreamFactory::Job::Request will not complete since the Jobs are
|
||||
// QuicSessionPool::Job::Request will not complete since the Jobs are
|
||||
// canceled, so there is no need to check if all read data was consumed.
|
||||
should_check_data_consumed_ = false;
|
||||
VerifyBrokenAlternateProtocolMapping(request_info, false);
|
||||
@ -1997,8 +1997,8 @@ void HttpStreamFactoryJobControllerTestBase::
|
||||
quic_context_.params()->supported_versions);
|
||||
|
||||
// Enable QUIC but mark the alternative service as recently broken.
|
||||
QuicStreamFactory* quic_stream_factory = session_->quic_stream_factory();
|
||||
quic_stream_factory->set_is_quic_known_to_work_on_current_network(true);
|
||||
QuicSessionPool* quic_session_pool = session_->quic_session_pool();
|
||||
quic_session_pool->set_is_quic_known_to_work_on_current_network(true);
|
||||
session_->http_server_properties()->MarkAlternativeServiceRecentlyBroken(
|
||||
alternative_service, NetworkAnonymizationKey());
|
||||
|
||||
@ -2073,8 +2073,8 @@ void HttpStreamFactoryJobControllerTestBase::
|
||||
quic_context_.params()->supported_versions);
|
||||
|
||||
// Enable QUIC but mark the alternative service as recently broken.
|
||||
QuicStreamFactory* quic_stream_factory = session_->quic_stream_factory();
|
||||
quic_stream_factory->set_is_quic_known_to_work_on_current_network(true);
|
||||
QuicSessionPool* quic_session_pool = session_->quic_session_pool();
|
||||
quic_session_pool->set_is_quic_known_to_work_on_current_network(true);
|
||||
session_->http_server_properties()->MarkAlternativeServiceRecentlyBroken(
|
||||
alternative_service, NetworkAnonymizationKey());
|
||||
|
||||
@ -3267,8 +3267,8 @@ TEST_P(HttpStreamFactoryJobControllerTest, HostResolutionHang) {
|
||||
quic_data.AddSocketDataToFactory(session_deps_.socket_factory.get());
|
||||
|
||||
// Enable delayed TCP and set time delay for waiting job.
|
||||
QuicStreamFactory* quic_stream_factory = session_->quic_stream_factory();
|
||||
quic_stream_factory->set_is_quic_known_to_work_on_current_network(true);
|
||||
QuicSessionPool* quic_session_pool = session_->quic_session_pool();
|
||||
quic_session_pool->set_is_quic_known_to_work_on_current_network(true);
|
||||
ServerNetworkStats stats1;
|
||||
stats1.srtt = base::Microseconds(10);
|
||||
session_->http_server_properties()->SetServerNetworkStats(
|
||||
@ -3344,8 +3344,8 @@ TEST_P(HttpStreamFactoryJobControllerTest, ResumeMainJobLaterCanceled) {
|
||||
Initialize(request_info);
|
||||
|
||||
// Enable delayed TCP and set time delay for waiting job.
|
||||
QuicStreamFactory* quic_stream_factory = session_->quic_stream_factory();
|
||||
quic_stream_factory->set_is_quic_known_to_work_on_current_network(true);
|
||||
QuicSessionPool* quic_session_pool = session_->quic_session_pool();
|
||||
quic_session_pool->set_is_quic_known_to_work_on_current_network(true);
|
||||
ServerNetworkStats stats1;
|
||||
stats1.srtt = base::Microseconds(10);
|
||||
session_->http_server_properties()->SetServerNetworkStats(
|
||||
@ -3421,8 +3421,8 @@ TEST_P(HttpStreamFactoryJobControllerTest, DelayedTCPWithLargeSrtt) {
|
||||
quic_data.AddSocketDataToFactory(session_deps_.socket_factory.get());
|
||||
|
||||
// Enable delayed TCP and set time delay for waiting job.
|
||||
QuicStreamFactory* quic_stream_factory = session_->quic_stream_factory();
|
||||
quic_stream_factory->set_is_quic_known_to_work_on_current_network(true);
|
||||
QuicSessionPool* quic_session_pool = session_->quic_session_pool();
|
||||
quic_session_pool->set_is_quic_known_to_work_on_current_network(true);
|
||||
ServerNetworkStats stats1;
|
||||
stats1.srtt = base::Seconds(100);
|
||||
session_->http_server_properties()->SetServerNetworkStats(
|
||||
@ -3484,8 +3484,8 @@ TEST_P(HttpStreamFactoryJobControllerTest,
|
||||
quic_data.AddSocketDataToFactory(session_deps_.socket_factory.get());
|
||||
|
||||
// Enable delayed TCP and set time delay for waiting job.
|
||||
QuicStreamFactory* quic_stream_factory = session_->quic_stream_factory();
|
||||
quic_stream_factory->set_is_quic_known_to_work_on_current_network(true);
|
||||
QuicSessionPool* quic_session_pool = session_->quic_session_pool();
|
||||
quic_session_pool->set_is_quic_known_to_work_on_current_network(true);
|
||||
ServerNetworkStats stats1;
|
||||
stats1.srtt = base::Microseconds(10);
|
||||
session_->http_server_properties()->SetServerNetworkStats(
|
||||
@ -3718,8 +3718,8 @@ void HttpStreamFactoryJobControllerTestBase::
|
||||
quic_data.AddSocketDataToFactory(session_deps_.socket_factory.get());
|
||||
|
||||
// Enable delayed TCP and set time delay for waiting job.
|
||||
QuicStreamFactory* quic_stream_factory = session_->quic_stream_factory();
|
||||
quic_stream_factory->set_is_quic_known_to_work_on_current_network(true);
|
||||
QuicSessionPool* quic_session_pool = session_->quic_session_pool();
|
||||
quic_session_pool->set_is_quic_known_to_work_on_current_network(true);
|
||||
ServerNetworkStats stats1;
|
||||
stats1.srtt = base::Milliseconds(100);
|
||||
session_->http_server_properties()->SetServerNetworkStats(
|
||||
@ -4952,7 +4952,7 @@ class HttpStreamFactoryJobControllerDnsHttpsAlpnTest
|
||||
bool alt_destination,
|
||||
bool require_dns_https_alpn) {
|
||||
NetErrorDetails net_error_details;
|
||||
QuicStreamRequest quic_request(session_->quic_stream_factory());
|
||||
QuicSessionRequest quic_request(session_->quic_session_pool());
|
||||
url::SchemeHostPort scheme_host_port(
|
||||
url::kHttpsScheme,
|
||||
alt_destination ? "alt.example.org" : "www.example.org", 443);
|
||||
@ -5184,8 +5184,8 @@ TEST_F(HttpStreamFactoryJobControllerDnsHttpsAlpnTest,
|
||||
PrepareForMainJob();
|
||||
Initialize(HttpRequestInfo());
|
||||
|
||||
QuicStreamFactory* quic_stream_factory = session_->quic_stream_factory();
|
||||
quic_stream_factory->set_is_quic_known_to_work_on_current_network(true);
|
||||
QuicSessionPool* quic_session_pool = session_->quic_session_pool();
|
||||
quic_session_pool->set_is_quic_known_to_work_on_current_network(true);
|
||||
|
||||
request_ = CreateJobControllerAndStart(CreateTestHttpRequestInfo());
|
||||
|
||||
@ -5311,8 +5311,8 @@ TEST_F(HttpStreamFactoryJobControllerDnsHttpsAlpnTest,
|
||||
RegisterMockHttpsRecord();
|
||||
|
||||
Initialize(HttpRequestInfo());
|
||||
QuicStreamFactory* quic_stream_factory = session_->quic_stream_factory();
|
||||
quic_stream_factory->set_is_quic_known_to_work_on_current_network(true);
|
||||
QuicSessionPool* quic_session_pool = session_->quic_session_pool();
|
||||
quic_session_pool->set_is_quic_known_to_work_on_current_network(true);
|
||||
|
||||
request_ = CreateJobControllerAndStart(CreateTestHttpRequestInfo());
|
||||
|
||||
@ -5395,8 +5395,8 @@ TEST_F(HttpStreamFactoryJobControllerDnsHttpsAlpnTest,
|
||||
// the delaying logic of main job would work when the main job is blocked.
|
||||
// Note: In this test, we don't need this because the main job is not blocked.
|
||||
// But we set here because we want to check that the main job is not blocked.
|
||||
QuicStreamFactory* quic_stream_factory = session_->quic_stream_factory();
|
||||
quic_stream_factory->set_is_quic_known_to_work_on_current_network(true);
|
||||
QuicSessionPool* quic_session_pool = session_->quic_session_pool();
|
||||
quic_session_pool->set_is_quic_known_to_work_on_current_network(true);
|
||||
|
||||
// Put a SpdySession in the pool.
|
||||
SpdySessionKey key(HostPortPair::FromURL(request_info.url),
|
||||
@ -5456,8 +5456,8 @@ TEST_F(HttpStreamFactoryJobControllerDnsHttpsAlpnTest, MainJobHasActiveSocket) {
|
||||
|
||||
// Set |is_quic_known_to_work_on_current_network| flag so that
|
||||
// the delaying logic of main job would work when the main job is blocked.
|
||||
QuicStreamFactory* quic_stream_factory = session_->quic_stream_factory();
|
||||
quic_stream_factory->set_is_quic_known_to_work_on_current_network(true);
|
||||
QuicSessionPool* quic_session_pool = session_->quic_session_pool();
|
||||
quic_session_pool->set_is_quic_known_to_work_on_current_network(true);
|
||||
|
||||
request_ = CreateJobControllerAndStart(request_info);
|
||||
CheckJobsStatus(/*main_job_exists=*/true, /*alternative_job_exists=*/false,
|
||||
@ -5503,8 +5503,8 @@ TEST_F(HttpStreamFactoryJobControllerDnsHttpsAlpnTest,
|
||||
|
||||
// Set |is_quic_known_to_work_on_current_network| flag so that
|
||||
// the delaying logic of main job would work when the main job is blocked.
|
||||
QuicStreamFactory* quic_stream_factory = session_->quic_stream_factory();
|
||||
quic_stream_factory->set_is_quic_known_to_work_on_current_network(true);
|
||||
QuicSessionPool* quic_session_pool = session_->quic_session_pool();
|
||||
quic_session_pool->set_is_quic_known_to_work_on_current_network(true);
|
||||
|
||||
url::SchemeHostPort server(request_info.url);
|
||||
AlternativeService alternative_service(kProtoQUIC, "alt.example.org", 443);
|
||||
|
@ -56,7 +56,7 @@
|
||||
#include "net/quic/mock_crypto_client_stream_factory.h"
|
||||
#include "net/quic/mock_quic_context.h"
|
||||
#include "net/quic/quic_http_utils.h"
|
||||
#include "net/quic/quic_stream_factory_peer.h"
|
||||
#include "net/quic/quic_session_pool_peer.h"
|
||||
#include "net/quic/quic_test_packet_maker.h"
|
||||
#include "net/quic/quic_test_packet_printer.h"
|
||||
#include "net/socket/client_socket_handle.h"
|
||||
@ -877,8 +877,8 @@ TEST_F(HttpStreamFactoryTest, QuicProxyMarkedAsBad) {
|
||||
|
||||
auto session =
|
||||
std::make_unique<HttpNetworkSession>(session_params, session_context);
|
||||
session->quic_stream_factory()
|
||||
->set_is_quic_known_to_work_on_current_network(true);
|
||||
session->quic_session_pool()->set_is_quic_known_to_work_on_current_network(
|
||||
true);
|
||||
|
||||
StaticSocketDataProvider socket_data1;
|
||||
socket_data1.set_connect_data(
|
||||
@ -1999,8 +1999,8 @@ class HttpStreamFactoryBidirectionalQuicTest
|
||||
session_context.ssl_config_service = ssl_config_service_.get();
|
||||
session_context.client_socket_factory = &socket_factory_;
|
||||
session_ = std::make_unique<HttpNetworkSession>(params_, session_context);
|
||||
session_->quic_stream_factory()
|
||||
->set_is_quic_known_to_work_on_current_network(true);
|
||||
session_->quic_session_pool()->set_is_quic_known_to_work_on_current_network(
|
||||
true);
|
||||
}
|
||||
|
||||
void AddQuicAlternativeService(const url::SchemeHostPort& request_url,
|
||||
|
@ -1218,14 +1218,14 @@ EVENT_TYPE(HTTP_STREAM_JOB_INIT_CONNECTION)
|
||||
// }
|
||||
EVENT_TYPE(HTTP_STREAM_REQUEST_BOUND_TO_JOB)
|
||||
|
||||
// Identifies the NetLogSource() for the QuicStreamFactory::Job that the
|
||||
// Identifies the NetLogSource() for the QuicSessionPool::Job that the
|
||||
// HttpStreamFactory::Job was attached to.
|
||||
// The event parameters are:
|
||||
// {
|
||||
// "source_dependency": <Source identifier for the QuicStreamFactory::Job
|
||||
// "source_dependency": <Source identifier for the QuicSessionPool::Job
|
||||
// to which we were attached>,
|
||||
// }
|
||||
EVENT_TYPE(HTTP_STREAM_JOB_BOUND_TO_QUIC_STREAM_FACTORY_JOB)
|
||||
EVENT_TYPE(HTTP_STREAM_JOB_BOUND_TO_QUIC_SESSION_POOL_JOB)
|
||||
|
||||
// Identifies the NetLogSource() for the Request that the Job was attached to.
|
||||
// The event parameters are:
|
||||
@ -1776,7 +1776,7 @@ EVENT_TYPE(HTTP2_PROXY_CLIENT_SESSION)
|
||||
// }
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// QuicStreamFactory
|
||||
// QuicSessionPool
|
||||
// ------------------------------------------------------------------------
|
||||
|
||||
// This event is emitted whenever a platform notification is received that
|
||||
@ -1785,19 +1785,19 @@ EVENT_TYPE(HTTP2_PROXY_CLIENT_SESSION)
|
||||
// "signal": <Type of the platform notification>,
|
||||
// "network": <The network that triggered the notification>,
|
||||
// }
|
||||
EVENT_TYPE(QUIC_STREAM_FACTORY_PLATFORM_NOTIFICATION)
|
||||
EVENT_TYPE(QUIC_SESSION_POOL_PLATFORM_NOTIFICATION)
|
||||
|
||||
// These events track QuicStreamFactory's handling of OnIPAddressChanged and
|
||||
// These events track QuicSessionPool's handling of OnIPAddressChanged and
|
||||
// whether QuicSessions are closed or marked as going away.
|
||||
EVENT_TYPE(QUIC_STREAM_FACTORY_ON_IP_ADDRESS_CHANGED)
|
||||
EVENT_TYPE(QUIC_STREAM_FACTORY_CLOSE_ALL_SESSIONS)
|
||||
EVENT_TYPE(QUIC_STREAM_FACTORY_MARK_ALL_ACTIVE_SESSIONS_GOING_AWAY)
|
||||
EVENT_TYPE(QUIC_SESSION_POOL_ON_IP_ADDRESS_CHANGED)
|
||||
EVENT_TYPE(QUIC_SESSION_POOL_CLOSE_ALL_SESSIONS)
|
||||
EVENT_TYPE(QUIC_SESSION_POOL_MARK_ALL_ACTIVE_SESSIONS_GOING_AWAY)
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// QuicStreamFactory::Job
|
||||
// QuicSessionPool::Job
|
||||
// ------------------------------------------------------------------------
|
||||
|
||||
// Measures the time taken to execute the QuicStreamFactory::Job.
|
||||
// Measures the time taken to execute the QuicSessionPool::Job.
|
||||
// The event parameters are:
|
||||
// {
|
||||
// "host": <The origin hostname that the Job serves>,
|
||||
@ -1805,7 +1805,7 @@ EVENT_TYPE(QUIC_STREAM_FACTORY_MARK_ALL_ACTIVE_SESSIONS_GOING_AWAY)
|
||||
// "privacy_mode": <The privacy mode of the Job>,
|
||||
// "network_anonymization_key": <The NetworkAnonymizationKey of the Job>,
|
||||
// }
|
||||
EVENT_TYPE(QUIC_STREAM_FACTORY_JOB)
|
||||
EVENT_TYPE(QUIC_SESSION_POOL_JOB)
|
||||
|
||||
// Identifies the NetLogSource() for the HttpStreamFactory::Job that the Job was
|
||||
// attached to.
|
||||
@ -1814,7 +1814,7 @@ EVENT_TYPE(QUIC_STREAM_FACTORY_JOB)
|
||||
// "source_dependency": <Source identifier for the HttpStreamFactory::Job to
|
||||
// which we were attached>,
|
||||
// }
|
||||
EVENT_TYPE(QUIC_STREAM_FACTORY_JOB_BOUND_TO_HTTP_STREAM_JOB)
|
||||
EVENT_TYPE(QUIC_SESSION_POOL_JOB_BOUND_TO_HTTP_STREAM_JOB)
|
||||
|
||||
// Measures the time taken to establish a QUIC connection.
|
||||
// The event parameters are:
|
||||
@ -1822,24 +1822,24 @@ EVENT_TYPE(QUIC_STREAM_FACTORY_JOB_BOUND_TO_HTTP_STREAM_JOB)
|
||||
// "require_confirmation": <True if we require handshake confirmation
|
||||
// in the connection>
|
||||
// }
|
||||
EVENT_TYPE(QUIC_STREAM_FACTORY_JOB_CONNECT)
|
||||
EVENT_TYPE(QUIC_SESSION_POOL_JOB_CONNECT)
|
||||
|
||||
// This event indicates that the connection on the default network has failed
|
||||
// before the handshake completed and a new connection on the alternate network
|
||||
// will be attempted soon.
|
||||
EVENT_TYPE(QUIC_STREAM_FACTORY_JOB_RETRY_ON_ALTERNATE_NETWORK)
|
||||
EVENT_TYPE(QUIC_SESSION_POOL_JOB_RETRY_ON_ALTERNATE_NETWORK)
|
||||
|
||||
// This event indicates that the stale host result is used to try connecting.
|
||||
EVENT_TYPE(QUIC_STREAM_FACTORY_JOB_STALE_HOST_TRIED_ON_CONNECTION)
|
||||
EVENT_TYPE(QUIC_SESSION_POOL_JOB_STALE_HOST_TRIED_ON_CONNECTION)
|
||||
|
||||
// This event indicates that stale host was not used to try connecting.
|
||||
EVENT_TYPE(QUIC_STREAM_FACTORY_JOB_STALE_HOST_NOT_USED_ON_CONNECTION)
|
||||
EVENT_TYPE(QUIC_SESSION_POOL_JOB_STALE_HOST_NOT_USED_ON_CONNECTION)
|
||||
|
||||
// This event indicates that the stale host doesn't match with fresh host.
|
||||
EVENT_TYPE(QUIC_STREAM_FACTORY_JOB_STALE_HOST_RESOLUTION_NO_MATCH)
|
||||
EVENT_TYPE(QUIC_SESSION_POOL_JOB_STALE_HOST_RESOLUTION_NO_MATCH)
|
||||
|
||||
// This event indicates that stale host matches with fresh resolution.
|
||||
EVENT_TYPE(QUIC_STREAM_FACTORY_JOB_STALE_HOST_RESOLUTION_MATCHED)
|
||||
EVENT_TYPE(QUIC_SESSION_POOL_JOB_STALE_HOST_RESOLUTION_MATCHED)
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// quic::QuicSession
|
||||
|
@ -36,7 +36,7 @@ SOURCE_TYPE(BIDIRECTIONAL_STREAM)
|
||||
SOURCE_TYPE(NETWORK_QUALITY_ESTIMATOR)
|
||||
SOURCE_TYPE(HTTP_STREAM_JOB_CONTROLLER)
|
||||
SOURCE_TYPE(CT_TREE_STATE_TRACKER)
|
||||
SOURCE_TYPE(QUIC_STREAM_FACTORY_JOB)
|
||||
SOURCE_TYPE(QUIC_SESSION_POOL_JOB)
|
||||
SOURCE_TYPE(HTTP_SERVER_PROPERTIES)
|
||||
SOURCE_TYPE(HOST_CACHE_PERSISTENCE_MANAGER)
|
||||
SOURCE_TYPE(COOKIE_STORE)
|
||||
@ -47,5 +47,5 @@ SOURCE_TYPE(NETWORK_SERVICE_HOST_RESOLVER)
|
||||
SOURCE_TYPE(DNS_OVER_HTTPS)
|
||||
SOURCE_TYPE(DNS_TRANSACTION)
|
||||
SOURCE_TYPE(NETWORK_CHANGE_NOTIFIER)
|
||||
SOURCE_TYPE(QUIC_STREAM_FACTORY)
|
||||
SOURCE_TYPE(QUIC_SESSION_POOL)
|
||||
SOURCE_TYPE(UDP_CLIENT_SOCKET)
|
||||
|
@ -39,7 +39,7 @@
|
||||
#include "net/quic/quic_crypto_client_config_handle.h"
|
||||
#include "net/quic/quic_http_utils.h"
|
||||
#include "net/quic/quic_server_info.h"
|
||||
#include "net/quic/quic_stream_factory.h"
|
||||
#include "net/quic/quic_session_pool.h"
|
||||
#include "net/quic/quic_test_packet_maker.h"
|
||||
#include "net/quic/quic_test_packet_printer.h"
|
||||
#include "net/quic/test_quic_crypto_client_config_handle.h"
|
||||
|
@ -46,7 +46,7 @@
|
||||
#include "net/quic/quic_chromium_packet_writer.h"
|
||||
#include "net/quic/quic_crypto_client_stream_factory.h"
|
||||
#include "net/quic/quic_server_info.h"
|
||||
#include "net/quic/quic_stream_factory.h"
|
||||
#include "net/quic/quic_session_pool.h"
|
||||
#include "net/socket/datagram_client_socket.h"
|
||||
#include "net/spdy/spdy_http_utils.h"
|
||||
#include "net/spdy/spdy_log_util.h"
|
||||
@ -884,7 +884,7 @@ void QuicChromiumClientSession::QuicChromiumPathValidationWriterDelegate::
|
||||
QuicChromiumClientSession::QuicChromiumClientSession(
|
||||
quic::QuicConnection* connection,
|
||||
std::unique_ptr<DatagramClientSocket> socket,
|
||||
QuicStreamFactory* stream_factory,
|
||||
QuicSessionPool* session_pool,
|
||||
QuicCryptoClientStreamFactory* crypto_client_stream_factory,
|
||||
const quic::QuicClock* clock,
|
||||
TransportSecurityState* transport_security_state,
|
||||
@ -941,7 +941,7 @@ QuicChromiumClientSession::QuicChromiumClientSession(
|
||||
most_recent_stream_close_time_(tick_clock_->NowTicks()),
|
||||
most_recent_write_error_timestamp_(base::TimeTicks()),
|
||||
crypto_config_(std::move(crypto_config)),
|
||||
stream_factory_(stream_factory),
|
||||
session_pool_(session_pool),
|
||||
transport_security_state_(transport_security_state),
|
||||
ssl_config_service_(ssl_config_service),
|
||||
server_info_(std::move(server_info)),
|
||||
@ -1573,7 +1573,7 @@ quic::QuicSSLConfig QuicChromiumClientSession::GetSSLConfig() const {
|
||||
|
||||
void QuicChromiumClientSession::OnConfigNegotiated() {
|
||||
quic::QuicSpdyClientSessionBase::OnConfigNegotiated();
|
||||
if (!stream_factory_ || !stream_factory_->allow_server_migration()) {
|
||||
if (!session_pool_ || !session_pool_->allow_server_migration()) {
|
||||
return;
|
||||
}
|
||||
if (!config()->HasReceivedPreferredAddressConnectionIdAndToken()) {
|
||||
@ -1923,10 +1923,10 @@ void QuicChromiumClientSession::OnConnectionClosed(
|
||||
// connection timed out with open streams then QUIC traffic has become
|
||||
// blackholed. Alternatively, if too many retransmission timeouts occur
|
||||
// then QUIC traffic has become blackholed.
|
||||
if (stream_factory_ && (error == quic::QUIC_TOO_MANY_RTOS ||
|
||||
(error == quic::QUIC_NETWORK_IDLE_TIMEOUT &&
|
||||
GetNumActiveStreams() > 0))) {
|
||||
stream_factory_->OnBlackholeAfterHandshakeConfirmed(this);
|
||||
if (session_pool_ && (error == quic::QUIC_TOO_MANY_RTOS ||
|
||||
(error == quic::QUIC_NETWORK_IDLE_TIMEOUT &&
|
||||
GetNumActiveStreams() > 0))) {
|
||||
session_pool_->OnBlackholeAfterHandshakeConfirmed(this);
|
||||
}
|
||||
UMA_HISTOGRAM_COUNTS_100(
|
||||
"Net.QuicSession.CryptoRetransmitCount.HandshakeConfirmed",
|
||||
@ -2052,7 +2052,7 @@ int QuicChromiumClientSession::HandleWriteError(
|
||||
}
|
||||
}
|
||||
|
||||
if (error_code == ERR_MSG_TOO_BIG || stream_factory_ == nullptr ||
|
||||
if (error_code == ERR_MSG_TOO_BIG || session_pool_ == nullptr ||
|
||||
!migrate_session_on_network_change_v2_ || !OneRttKeysAvailable()) {
|
||||
return error_code;
|
||||
}
|
||||
@ -2097,7 +2097,7 @@ void QuicChromiumClientSession::MigrateSessionOnWriteError(
|
||||
most_recent_write_error_timestamp_ = tick_clock_->NowTicks();
|
||||
most_recent_write_error_ = error_code;
|
||||
|
||||
if (stream_factory_ == nullptr) {
|
||||
if (session_pool_ == nullptr) {
|
||||
// Close the connection if migration failed. Do not cause a
|
||||
// connection close packet to be sent since socket may be borked.
|
||||
connection()->CloseConnection(quic::QUIC_PACKET_WRITE_ERROR,
|
||||
@ -2134,7 +2134,7 @@ void QuicChromiumClientSession::MigrateSessionOnWriteError(
|
||||
}
|
||||
|
||||
handles::NetworkHandle new_network =
|
||||
stream_factory_->FindAlternateNetwork(GetCurrentNetwork());
|
||||
session_pool_->FindAlternateNetwork(GetCurrentNetwork());
|
||||
if (new_network == handles::kInvalidNetworkHandle) {
|
||||
// No alternate network found.
|
||||
HistogramAndLogMigrationFailure(MIGRATION_STATUS_NO_ALTERNATE_NETWORK,
|
||||
@ -2559,7 +2559,7 @@ void QuicChromiumClientSession::OnNetworkDisconnectedV2(
|
||||
|
||||
// Attempt to find alternative network.
|
||||
handles::NetworkHandle new_network =
|
||||
stream_factory_->FindAlternateNetwork(disconnected_network);
|
||||
session_pool_->FindAlternateNetwork(disconnected_network);
|
||||
|
||||
if (new_network == handles::kInvalidNetworkHandle) {
|
||||
OnNoNewNetwork();
|
||||
@ -2732,7 +2732,7 @@ void QuicChromiumClientSession::OnPathDegrading() {
|
||||
observer.OnSessionPathDegrading(this, current_network);
|
||||
}
|
||||
|
||||
if (!stream_factory_ || connection()->multi_port_stats()) {
|
||||
if (!session_pool_ || connection()->multi_port_stats()) {
|
||||
return;
|
||||
}
|
||||
|
||||
@ -2906,7 +2906,7 @@ void QuicChromiumClientSession::MaybeMigrateToDifferentPortOnPathDegrading() {
|
||||
|
||||
net_log_.BeginEvent(NetLogEventType::QUIC_PORT_MIGRATION_TRIGGERED);
|
||||
|
||||
if (!stream_factory_) {
|
||||
if (!session_pool_) {
|
||||
return;
|
||||
}
|
||||
|
||||
@ -2942,7 +2942,7 @@ void QuicChromiumClientSession::
|
||||
}
|
||||
|
||||
handles::NetworkHandle alternate_network =
|
||||
stream_factory_->FindAlternateNetwork(GetCurrentNetwork());
|
||||
session_pool_->FindAlternateNetwork(GetCurrentNetwork());
|
||||
if (alternate_network == handles::kInvalidNetworkHandle) {
|
||||
HistogramAndLogMigrationFailure(MIGRATION_STATUS_NO_ALTERNATE_NETWORK,
|
||||
connection_id(),
|
||||
@ -2975,7 +2975,7 @@ void QuicChromiumClientSession::MaybeStartProbing(
|
||||
ProbingCallback probing_callback,
|
||||
handles::NetworkHandle network,
|
||||
const quic::QuicSocketAddress& peer_address) {
|
||||
if (!stream_factory_) {
|
||||
if (!session_pool_) {
|
||||
task_runner_->PostTask(
|
||||
FROM_HERE, base::BindOnce(std::move(probing_callback),
|
||||
ProbingResult::DISABLED_WITH_IDLE_SESSION));
|
||||
@ -3023,21 +3023,21 @@ void QuicChromiumClientSession::CreateContextForMultiPortPath(
|
||||
std::unique_ptr<quic::MultiPortPathContextObserver> context_observer) {
|
||||
// Create and configure socket on default network
|
||||
std::unique_ptr<DatagramClientSocket> probing_socket =
|
||||
stream_factory_->CreateSocket(net_log_.net_log(), net_log_.source());
|
||||
session_pool_->CreateSocket(net_log_.net_log(), net_log_.source());
|
||||
if (base::FeatureList::IsEnabled(net::features::kAsyncMultiPortPath)) {
|
||||
DatagramClientSocket* probing_socket_ptr = probing_socket.get();
|
||||
CompletionOnceCallback configure_callback = base::BindOnce(
|
||||
&QuicChromiumClientSession::FinishCreateContextForMultiPortPath,
|
||||
weak_factory_.GetWeakPtr(), std::move(context_observer),
|
||||
std::move(probing_socket));
|
||||
stream_factory_->ConnectAndConfigureSocket(
|
||||
session_pool_->ConnectAndConfigureSocket(
|
||||
std::move(configure_callback), probing_socket_ptr,
|
||||
ToIPEndPoint(peer_address()), default_network_,
|
||||
session_key_.socket_tag());
|
||||
return;
|
||||
}
|
||||
|
||||
if (stream_factory_->ConfigureSocket(
|
||||
if (session_pool_->ConfigureSocket(
|
||||
probing_socket.get(), ToIPEndPoint(peer_address()), default_network_,
|
||||
session_key_.socket_tag()) != OK) {
|
||||
return;
|
||||
@ -3116,7 +3116,7 @@ void QuicChromiumClientSession::StartProbing(
|
||||
|
||||
// Create and configure socket on |network|.
|
||||
std::unique_ptr<DatagramClientSocket> probing_socket =
|
||||
stream_factory_->CreateSocket(net_log_.net_log(), net_log_.source());
|
||||
session_pool_->CreateSocket(net_log_.net_log(), net_log_.source());
|
||||
DatagramClientSocket* probing_socket_ptr = probing_socket.get();
|
||||
CompletionOnceCallback configure_callback =
|
||||
base::BindOnce(&QuicChromiumClientSession::FinishStartProbing,
|
||||
@ -3128,7 +3128,7 @@ void QuicChromiumClientSession::StartProbing(
|
||||
std::move(MidMigrationCallbackForTesting()).Run(); // IN-TEST
|
||||
}
|
||||
|
||||
stream_factory_->ConnectAndConfigureSocket(
|
||||
session_pool_->ConnectAndConfigureSocket(
|
||||
std::move(configure_callback), probing_socket_ptr,
|
||||
ToIPEndPoint(peer_address), network, session_key_.socket_tag());
|
||||
|
||||
@ -3500,10 +3500,10 @@ base::Value::Dict QuicChromiumClientSession::GetInfoAsValue(
|
||||
}
|
||||
|
||||
bool QuicChromiumClientSession::gquic_zero_rtt_disabled() const {
|
||||
if (!stream_factory_) {
|
||||
if (!session_pool_) {
|
||||
return false;
|
||||
}
|
||||
return stream_factory_->gquic_zero_rtt_disabled();
|
||||
return session_pool_->gquic_zero_rtt_disabled();
|
||||
}
|
||||
|
||||
std::unique_ptr<QuicChromiumClientSession::Handle>
|
||||
@ -3565,8 +3565,8 @@ bool QuicChromiumClientSession::OnPacket(
|
||||
|
||||
void QuicChromiumClientSession::NotifyFactoryOfSessionGoingAway() {
|
||||
going_away_ = true;
|
||||
if (stream_factory_) {
|
||||
stream_factory_->OnSessionGoingAway(this);
|
||||
if (session_pool_) {
|
||||
session_pool_->OnSessionGoingAway(this);
|
||||
}
|
||||
}
|
||||
|
||||
@ -3584,14 +3584,14 @@ void QuicChromiumClientSession::NotifyFactoryOfSessionClosed() {
|
||||
going_away_ = true;
|
||||
DCHECK_EQ(0u, GetNumActiveStreams());
|
||||
// Will delete |this|.
|
||||
if (stream_factory_) {
|
||||
stream_factory_->OnSessionClosed(this);
|
||||
if (session_pool_) {
|
||||
session_pool_->OnSessionClosed(this);
|
||||
}
|
||||
}
|
||||
|
||||
void QuicChromiumClientSession::OnCryptoHandshakeComplete() {
|
||||
if (stream_factory_) {
|
||||
stream_factory_->set_is_quic_known_to_work_on_current_network(true);
|
||||
if (session_pool_) {
|
||||
session_pool_->set_is_quic_known_to_work_on_current_network(true);
|
||||
}
|
||||
|
||||
// Update |connect_end| only when handshake is confirmed. This should also
|
||||
@ -3644,7 +3644,7 @@ void QuicChromiumClientSession::Migrate(handles::NetworkHandle network,
|
||||
MigrationCallback migration_callback) {
|
||||
quic_connection_migration_attempted_ = true;
|
||||
quic_connection_migration_successful_ = false;
|
||||
if (!stream_factory_) {
|
||||
if (!session_pool_) {
|
||||
task_runner_->PostTask(
|
||||
FROM_HERE,
|
||||
base::BindOnce(&QuicChromiumClientSession::DoMigrationCallback,
|
||||
@ -3677,7 +3677,7 @@ void QuicChromiumClientSession::Migrate(handles::NetworkHandle network,
|
||||
|
||||
// Create and configure socket on |network|.
|
||||
std::unique_ptr<DatagramClientSocket> socket(
|
||||
stream_factory_->CreateSocket(net_log_.net_log(), net_log_.source()));
|
||||
session_pool_->CreateSocket(net_log_.net_log(), net_log_.source()));
|
||||
DatagramClientSocket* socket_ptr = socket.get();
|
||||
DVLOG(1) << "Force blocking the packet writer";
|
||||
static_cast<QuicChromiumPacketWriter*>(connection()->writer())
|
||||
@ -3696,9 +3696,9 @@ void QuicChromiumClientSession::Migrate(handles::NetworkHandle network,
|
||||
std::move(MidMigrationCallbackForTesting()).Run(); // IN-TEST
|
||||
}
|
||||
|
||||
stream_factory_->ConnectAndConfigureSocket(std::move(connect_callback),
|
||||
socket_ptr, peer_address, network,
|
||||
session_key_.socket_tag());
|
||||
session_pool_->ConnectAndConfigureSocket(std::move(connect_callback),
|
||||
socket_ptr, peer_address, network,
|
||||
session_key_.socket_tag());
|
||||
}
|
||||
|
||||
void QuicChromiumClientSession::FinishMigrate(
|
||||
@ -3839,7 +3839,7 @@ void QuicChromiumClientSession::OnServerPreferredAddressAvailable(
|
||||
net_log_.BeginEvent(
|
||||
NetLogEventType::QUIC_ON_SERVER_PREFERRED_ADDRESS_AVAILABLE);
|
||||
|
||||
if (!stream_factory_) {
|
||||
if (!session_pool_) {
|
||||
return;
|
||||
}
|
||||
|
||||
@ -3864,8 +3864,8 @@ const std::set<std::string>&
|
||||
QuicChromiumClientSession::GetDnsAliasesForSessionKey(
|
||||
const QuicSessionKey& key) const {
|
||||
static const base::NoDestructor<std::set<std::string>> emptyset_result;
|
||||
return stream_factory_ ? stream_factory_->GetDnsAliasesForSessionKey(key)
|
||||
: *emptyset_result;
|
||||
return session_pool_ ? session_pool_->GetDnsAliasesForSessionKey(key)
|
||||
: *emptyset_result;
|
||||
}
|
||||
|
||||
#if BUILDFLAG(ENABLE_WEBSOCKETS)
|
||||
|
@ -69,7 +69,7 @@ struct HostResolverEndpointResult;
|
||||
class NetLog;
|
||||
class QuicCryptoClientStreamFactory;
|
||||
class QuicServerInfo;
|
||||
class QuicStreamFactory;
|
||||
class QuicSessionPool;
|
||||
class SSLConfigService;
|
||||
class SSLInfo;
|
||||
class TransportSecurityState;
|
||||
@ -269,7 +269,7 @@ class NET_EXPORT_PRIVATE QuicChromiumClientSession
|
||||
bool WasEverUsed() const;
|
||||
|
||||
// Retrieves any DNS aliases for the given session key from the map stored
|
||||
// in `stream_factory_`. Includes all known aliases, e.g. from A, AAAA, or
|
||||
// in `session_pool_`. Includes all known aliases, e.g. from A, AAAA, or
|
||||
// HTTPS, not just from the address used for the connection, in no
|
||||
// particular order.
|
||||
const std::set<std::string>& GetDnsAliasesForSessionKey(
|
||||
@ -546,7 +546,7 @@ class NET_EXPORT_PRIVATE QuicChromiumClientSession
|
||||
};
|
||||
|
||||
// Constructs a new session which will own |connection|, but not
|
||||
// |stream_factory|, which must outlive this session.
|
||||
// |session_pool|, which must outlive this session.
|
||||
// TODO(rch): decouple the factory from the session via a Delegate interface.
|
||||
//
|
||||
// If |require_confirmation| is true, the returned session will wait for a
|
||||
@ -557,7 +557,7 @@ class NET_EXPORT_PRIVATE QuicChromiumClientSession
|
||||
QuicChromiumClientSession(
|
||||
quic::QuicConnection* connection,
|
||||
std::unique_ptr<DatagramClientSocket> socket,
|
||||
QuicStreamFactory* stream_factory,
|
||||
QuicSessionPool* session_pool,
|
||||
QuicCryptoClientStreamFactory* crypto_client_stream_factory,
|
||||
const quic::QuicClock* clock,
|
||||
TransportSecurityState* transport_security_state,
|
||||
@ -875,7 +875,7 @@ class NET_EXPORT_PRIVATE QuicChromiumClientSession
|
||||
bool require_confirmation() const { return require_confirmation_; }
|
||||
|
||||
// Retrieves any DNS aliases for the given session key from the map stored
|
||||
// in `stream_factory_`. Includes all known aliases, e.g. from A, AAAA, or
|
||||
// in `session_pool_`. Includes all known aliases, e.g. from A, AAAA, or
|
||||
// HTTPS, not just from the address used for the connection, in no particular
|
||||
// order.
|
||||
const std::set<std::string>& GetDnsAliasesForSessionKey(
|
||||
@ -1052,7 +1052,7 @@ class NET_EXPORT_PRIVATE QuicChromiumClientSession
|
||||
std::unique_ptr<QuicCryptoClientConfigHandle> crypto_config_;
|
||||
|
||||
std::unique_ptr<quic::QuicCryptoClientStream> crypto_stream_;
|
||||
raw_ptr<QuicStreamFactory> stream_factory_;
|
||||
raw_ptr<QuicSessionPool> session_pool_;
|
||||
base::ObserverList<ConnectivityObserver> connectivity_observer_list_;
|
||||
std::vector<std::unique_ptr<QuicChromiumPacketReader>> packet_readers_;
|
||||
raw_ptr<TransportSecurityState> transport_security_state_;
|
||||
|
@ -22,7 +22,7 @@ namespace net {
|
||||
//
|
||||
// This ownership model is used instead of refcounting for stronger safety
|
||||
// guarantees, and because the underlying QuicCryptoClientConfig depends on
|
||||
// other network objects that may be deleted after the QuicStreamFactory.
|
||||
// other network objects that may be deleted after the QuicSessionPool.
|
||||
class NET_EXPORT_PRIVATE QuicCryptoClientConfigHandle {
|
||||
public:
|
||||
QuicCryptoClientConfigHandle& operator=(const QuicCryptoClientConfigHandle&) =
|
||||
|
@ -712,7 +712,7 @@ void QuicHttpStream::SetResponseStatus(int response_status) {
|
||||
int QuicHttpStream::ComputeResponseStatus() const {
|
||||
DCHECK(!has_response_status_);
|
||||
|
||||
// If the handshake has failed this will be handled by the QuicStreamFactory
|
||||
// If the handshake has failed this will be handled by the QuicSessionPool
|
||||
// and HttpStreamFactory to mark QUIC as broken if TCP is actually working.
|
||||
if (!quic_session()->OneRttKeysAvailable()) {
|
||||
return ERR_QUIC_HANDSHAKE_FAILED;
|
||||
|
@ -48,7 +48,7 @@
|
||||
#include "net/quic/quic_crypto_client_config_handle.h"
|
||||
#include "net/quic/quic_http_utils.h"
|
||||
#include "net/quic/quic_server_info.h"
|
||||
#include "net/quic/quic_stream_factory.h"
|
||||
#include "net/quic/quic_session_pool.h"
|
||||
#include "net/quic/quic_test_packet_maker.h"
|
||||
#include "net/quic/quic_test_packet_printer.h"
|
||||
#include "net/quic/test_quic_crypto_client_config_handle.h"
|
||||
|
@ -57,7 +57,7 @@
|
||||
#include "net/quic/quic_context.h"
|
||||
#include "net/quic/quic_http_stream.h"
|
||||
#include "net/quic/quic_http_utils.h"
|
||||
#include "net/quic/quic_stream_factory_peer.h"
|
||||
#include "net/quic/quic_session_pool_peer.h"
|
||||
#include "net/quic/quic_test_packet_maker.h"
|
||||
#include "net/quic/test_task_runner.h"
|
||||
#include "net/socket/client_socket_factory.h"
|
||||
@ -575,8 +575,8 @@ class QuicNetworkTransactionTest
|
||||
|
||||
session_ =
|
||||
std::make_unique<HttpNetworkSession>(session_params_, session_context_);
|
||||
session_->quic_stream_factory()
|
||||
->set_is_quic_known_to_work_on_current_network(true);
|
||||
session_->quic_session_pool()->set_is_quic_known_to_work_on_current_network(
|
||||
true);
|
||||
SpdySessionPoolPeer spdy_pool_peer(session_->spdy_session_pool());
|
||||
spdy_pool_peer.SetEnableSendingInitialData(false);
|
||||
}
|
||||
@ -2518,8 +2518,8 @@ TEST_P(QuicNetworkTransactionTest, TimeoutAfterHandshakeConfirmed) {
|
||||
|
||||
CreateSession();
|
||||
// Use a TestTaskRunner to avoid waiting in real time for timeouts.
|
||||
QuicStreamFactoryPeer::SetAlarmFactory(
|
||||
session_->quic_stream_factory(),
|
||||
QuicSessionPoolPeer::SetAlarmFactory(
|
||||
session_->quic_session_pool(),
|
||||
std::make_unique<QuicChromiumAlarmFactory>(quic_task_runner_.get(),
|
||||
context_.clock()));
|
||||
|
||||
@ -2698,8 +2698,8 @@ TEST_P(QuicNetworkTransactionTest, TimeoutAfterHandshakeConfirmedThenBroken2) {
|
||||
|
||||
CreateSession();
|
||||
// Use a TestTaskRunner to avoid waiting in real time for timeouts.
|
||||
QuicStreamFactoryPeer::SetAlarmFactory(
|
||||
session_->quic_stream_factory(),
|
||||
QuicSessionPoolPeer::SetAlarmFactory(
|
||||
session_->quic_session_pool(),
|
||||
std::make_unique<QuicChromiumAlarmFactory>(quic_task_runner_.get(),
|
||||
context_.clock()));
|
||||
|
||||
@ -3395,8 +3395,8 @@ TEST_P(QuicNetworkTransactionTest,
|
||||
socket_factory_.AddSSLSocketDataProvider(&ssl_data_);
|
||||
|
||||
CreateSession();
|
||||
QuicStreamFactoryPeer::SetAlarmFactory(
|
||||
session_->quic_stream_factory(),
|
||||
QuicSessionPoolPeer::SetAlarmFactory(
|
||||
session_->quic_session_pool(),
|
||||
std::make_unique<QuicChromiumAlarmFactory>(quic_task_runner_.get(),
|
||||
context_.clock()));
|
||||
|
||||
@ -3539,8 +3539,8 @@ TEST_P(QuicNetworkTransactionTest, UseExistingAlternativeServiceForQuic) {
|
||||
|
||||
AddHangingNonAlternateProtocolSocketData();
|
||||
CreateSession();
|
||||
QuicStreamFactoryPeer::SetAlarmFactory(
|
||||
session_->quic_stream_factory(),
|
||||
QuicSessionPoolPeer::SetAlarmFactory(
|
||||
session_->quic_session_pool(),
|
||||
std::make_unique<QuicChromiumAlarmFactory>(quic_task_runner_.get(),
|
||||
context_.clock()));
|
||||
|
||||
@ -3601,8 +3601,8 @@ TEST_P(QuicNetworkTransactionTest, PoolByOrigin) {
|
||||
AddHangingNonAlternateProtocolSocketData();
|
||||
|
||||
CreateSession();
|
||||
QuicStreamFactoryPeer::SetAlarmFactory(
|
||||
session_->quic_stream_factory(),
|
||||
QuicSessionPoolPeer::SetAlarmFactory(
|
||||
session_->quic_session_pool(),
|
||||
std::make_unique<QuicChromiumAlarmFactory>(quic_task_runner_.get(),
|
||||
context_.clock()));
|
||||
|
||||
@ -3694,8 +3694,8 @@ TEST_P(QuicNetworkTransactionTest, PoolByDestination) {
|
||||
AddHangingNonAlternateProtocolSocketData();
|
||||
|
||||
CreateSession();
|
||||
QuicStreamFactoryPeer::SetAlarmFactory(
|
||||
session_->quic_stream_factory(),
|
||||
QuicSessionPoolPeer::SetAlarmFactory(
|
||||
session_->quic_session_pool(),
|
||||
std::make_unique<QuicChromiumAlarmFactory>(quic_task_runner_.get(),
|
||||
context_.clock()));
|
||||
|
||||
@ -3827,8 +3827,8 @@ TEST_P(QuicNetworkTransactionTest,
|
||||
|
||||
AddHangingNonAlternateProtocolSocketData();
|
||||
CreateSession();
|
||||
QuicStreamFactoryPeer::SetAlarmFactory(
|
||||
session_->quic_stream_factory(),
|
||||
QuicSessionPoolPeer::SetAlarmFactory(
|
||||
session_->quic_session_pool(),
|
||||
std::make_unique<QuicChromiumAlarmFactory>(quic_task_runner_.get(),
|
||||
context_.clock()));
|
||||
|
||||
@ -4333,7 +4333,7 @@ TEST_P(QuicNetworkTransactionTest, ZeroRTTWithConfirmationRequired) {
|
||||
"");
|
||||
|
||||
CreateSession();
|
||||
session_->quic_stream_factory()->set_is_quic_known_to_work_on_current_network(
|
||||
session_->quic_session_pool()->set_is_quic_known_to_work_on_current_network(
|
||||
false);
|
||||
AddQuicAlternateProtocolMapping(MockCryptoClientStream::ZERO_RTT);
|
||||
|
||||
@ -4407,8 +4407,8 @@ TEST_P(QuicNetworkTransactionTest, ZeroRTTWithTooEarlyResponse) {
|
||||
AddHangingNonAlternateProtocolSocketData();
|
||||
CreateSession();
|
||||
AddQuicAlternateProtocolMapping(MockCryptoClientStream::ZERO_RTT);
|
||||
QuicStreamFactoryPeer::SetAlarmFactory(
|
||||
session_->quic_stream_factory(),
|
||||
QuicSessionPoolPeer::SetAlarmFactory(
|
||||
session_->quic_session_pool(),
|
||||
std::make_unique<QuicChromiumAlarmFactory>(quic_task_runner_.get(),
|
||||
context_.clock()));
|
||||
|
||||
@ -4492,8 +4492,8 @@ TEST_P(QuicNetworkTransactionTest, ZeroRTTWithMultipleTooEarlyResponse) {
|
||||
AddHangingNonAlternateProtocolSocketData();
|
||||
CreateSession();
|
||||
AddQuicAlternateProtocolMapping(MockCryptoClientStream::ZERO_RTT);
|
||||
QuicStreamFactoryPeer::SetAlarmFactory(
|
||||
session_->quic_stream_factory(),
|
||||
QuicSessionPoolPeer::SetAlarmFactory(
|
||||
session_->quic_session_pool(),
|
||||
std::make_unique<QuicChromiumAlarmFactory>(quic_task_runner_.get(),
|
||||
context_.clock()));
|
||||
|
||||
@ -4556,7 +4556,7 @@ TEST_P(QuicNetworkTransactionTest,
|
||||
"");
|
||||
|
||||
CreateSession();
|
||||
session_->quic_stream_factory()->set_is_quic_known_to_work_on_current_network(
|
||||
session_->quic_session_pool()->set_is_quic_known_to_work_on_current_network(
|
||||
false);
|
||||
AddQuicAlternateProtocolMapping(MockCryptoClientStream::ZERO_RTT);
|
||||
|
||||
@ -4620,7 +4620,7 @@ TEST_P(QuicNetworkTransactionTest,
|
||||
"");
|
||||
|
||||
CreateSession();
|
||||
session_->quic_stream_factory()->set_is_quic_known_to_work_on_current_network(
|
||||
session_->quic_session_pool()->set_is_quic_known_to_work_on_current_network(
|
||||
false);
|
||||
AddQuicAlternateProtocolMapping(MockCryptoClientStream::ZERO_RTT);
|
||||
|
||||
@ -4685,7 +4685,7 @@ TEST_P(QuicNetworkTransactionTest, RstStreamErrorHandling) {
|
||||
"");
|
||||
|
||||
CreateSession();
|
||||
session_->quic_stream_factory()->set_is_quic_known_to_work_on_current_network(
|
||||
session_->quic_session_pool()->set_is_quic_known_to_work_on_current_network(
|
||||
false);
|
||||
AddQuicAlternateProtocolMapping(MockCryptoClientStream::ZERO_RTT);
|
||||
|
||||
@ -4755,7 +4755,7 @@ TEST_P(QuicNetworkTransactionTest, RstStreamBeforeHeaders) {
|
||||
"");
|
||||
|
||||
CreateSession();
|
||||
session_->quic_stream_factory()->set_is_quic_known_to_work_on_current_network(
|
||||
session_->quic_session_pool()->set_is_quic_known_to_work_on_current_network(
|
||||
false);
|
||||
AddQuicAlternateProtocolMapping(MockCryptoClientStream::ZERO_RTT);
|
||||
|
||||
@ -4952,8 +4952,8 @@ TEST_P(QuicNetworkTransactionTest, DelayTCPOnStartWithQuicSupportOnSameIP) {
|
||||
// No HTTP data is mocked as TCP job never starts in this case.
|
||||
|
||||
CreateSession();
|
||||
// QuicStreamFactory by default requires confirmation on construction.
|
||||
session_->quic_stream_factory()->set_is_quic_known_to_work_on_current_network(
|
||||
// QuicSessionPool by default requires confirmation on construction.
|
||||
session_->quic_session_pool()->set_is_quic_known_to_work_on_current_network(
|
||||
false);
|
||||
|
||||
AddQuicAlternateProtocolMapping(MockCryptoClientStream::ZERO_RTT);
|
||||
@ -5023,7 +5023,7 @@ TEST_P(QuicNetworkTransactionTest,
|
||||
// No HTTP data is mocked as TCP job will be delayed and never starts.
|
||||
|
||||
CreateSession();
|
||||
session_->quic_stream_factory()->set_is_quic_known_to_work_on_current_network(
|
||||
session_->quic_session_pool()->set_is_quic_known_to_work_on_current_network(
|
||||
false);
|
||||
AddQuicAlternateProtocolMapping(MockCryptoClientStream::ZERO_RTT);
|
||||
|
||||
@ -5075,7 +5075,7 @@ TEST_P(QuicNetworkTransactionTest, NetErrorDetailsSetBeforeHandshake) {
|
||||
// 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_is_quic_known_to_work_on_current_network(
|
||||
session_->quic_session_pool()->set_is_quic_known_to_work_on_current_network(
|
||||
false);
|
||||
|
||||
AddQuicAlternateProtocolMapping(MockCryptoClientStream::COLD_START);
|
||||
@ -5523,8 +5523,8 @@ TEST_P(QuicNetworkTransactionTest, MaxRetriesAfterAsyncNoBufferSpace) {
|
||||
|
||||
CreateSession();
|
||||
// Use a TestTaskRunner to avoid waiting in real time for timeouts.
|
||||
QuicStreamFactoryPeer::SetTaskRunner(session_->quic_stream_factory(),
|
||||
quic_task_runner_.get());
|
||||
QuicSessionPoolPeer::SetTaskRunner(session_->quic_session_pool(),
|
||||
quic_task_runner_.get());
|
||||
|
||||
quic::QuicTime start = context_.clock()->Now();
|
||||
HttpNetworkTransaction trans(DEFAULT_PRIORITY, session_.get());
|
||||
@ -5561,8 +5561,8 @@ TEST_P(QuicNetworkTransactionTest, MaxRetriesAfterSynchronousNoBufferSpace) {
|
||||
|
||||
CreateSession();
|
||||
// Use a TestTaskRunner to avoid waiting in real time for timeouts.
|
||||
QuicStreamFactoryPeer::SetTaskRunner(session_->quic_stream_factory(),
|
||||
quic_task_runner_.get());
|
||||
QuicSessionPoolPeer::SetTaskRunner(session_->quic_session_pool(),
|
||||
quic_task_runner_.get());
|
||||
|
||||
quic::QuicTime start = context_.clock()->Now();
|
||||
HttpNetworkTransaction trans(DEFAULT_PRIORITY, session_.get());
|
||||
@ -5798,8 +5798,8 @@ class QuicNetworkTransactionWithDestinationTest
|
||||
|
||||
session_ =
|
||||
std::make_unique<HttpNetworkSession>(session_params, session_context);
|
||||
session_->quic_stream_factory()
|
||||
->set_is_quic_known_to_work_on_current_network(false);
|
||||
session_->quic_session_pool()->set_is_quic_known_to_work_on_current_network(
|
||||
false);
|
||||
}
|
||||
|
||||
void TearDown() override {
|
||||
@ -6097,8 +6097,8 @@ TEST_P(QuicNetworkTransactionWithDestinationTest, PoolIfCertificateValid) {
|
||||
|
||||
auto quic_task_runner =
|
||||
base::MakeRefCounted<TestTaskRunner>(context_.mock_clock());
|
||||
QuicStreamFactoryPeer::SetAlarmFactory(
|
||||
session_->quic_stream_factory(),
|
||||
QuicSessionPoolPeer::SetAlarmFactory(
|
||||
session_->quic_session_pool(),
|
||||
std::make_unique<QuicChromiumAlarmFactory>(quic_task_runner.get(),
|
||||
context_.clock()));
|
||||
|
||||
|
@ -43,7 +43,7 @@
|
||||
#include "net/quic/quic_crypto_client_config_handle.h"
|
||||
#include "net/quic/quic_http_utils.h"
|
||||
#include "net/quic/quic_server_info.h"
|
||||
#include "net/quic/quic_stream_factory.h"
|
||||
#include "net/quic/quic_session_pool.h"
|
||||
#include "net/quic/quic_test_packet_maker.h"
|
||||
#include "net/quic/test_quic_crypto_client_config_handle.h"
|
||||
#include "net/quic/test_task_runner.h"
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -2,8 +2,8 @@
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
#ifndef NET_QUIC_QUIC_STREAM_FACTORY_H_
|
||||
#define NET_QUIC_QUIC_STREAM_FACTORY_H_
|
||||
#ifndef NET_QUIC_QUIC_SESSION_POOL_H_
|
||||
#define NET_QUIC_QUIC_SESSION_POOL_H_
|
||||
|
||||
#include <stddef.h>
|
||||
#include <stdint.h>
|
||||
@ -77,7 +77,7 @@ class NetworkAnonymizationKey;
|
||||
class QuicChromiumConnectionHelper;
|
||||
class QuicCryptoClientStreamFactory;
|
||||
class QuicServerInfo;
|
||||
class QuicStreamFactory;
|
||||
class QuicSessionPool;
|
||||
class QuicContext;
|
||||
class SCTAuditingDelegate;
|
||||
class SocketPerformanceWatcherFactory;
|
||||
@ -85,7 +85,7 @@ class SocketTag;
|
||||
class TransportSecurityState;
|
||||
|
||||
namespace test {
|
||||
class QuicStreamFactoryPeer;
|
||||
class QuicSessionPoolPeer;
|
||||
} // namespace test
|
||||
|
||||
// Maximum number of not currently in use QuicCryptoClientConfig that can be
|
||||
@ -124,15 +124,15 @@ enum CreateSessionFailure {
|
||||
|
||||
// Encapsulates a pending request for a QuicChromiumClientSession.
|
||||
// If the request is still pending when it is destroyed, it will
|
||||
// cancel the request with the factory.
|
||||
class NET_EXPORT_PRIVATE QuicStreamRequest {
|
||||
// cancel the request with the pool.
|
||||
class NET_EXPORT_PRIVATE QuicSessionRequest {
|
||||
public:
|
||||
explicit QuicStreamRequest(QuicStreamFactory* factory);
|
||||
explicit QuicSessionRequest(QuicSessionPool* pool);
|
||||
|
||||
QuicStreamRequest(const QuicStreamRequest&) = delete;
|
||||
QuicStreamRequest& operator=(const QuicStreamRequest&) = delete;
|
||||
QuicSessionRequest(const QuicSessionRequest&) = delete;
|
||||
QuicSessionRequest& operator=(const QuicSessionRequest&) = delete;
|
||||
|
||||
~QuicStreamRequest();
|
||||
~QuicSessionRequest();
|
||||
|
||||
// |cert_verify_flags| is bitwise OR'd of CertVerifier::VerifyFlags and it is
|
||||
// passed to CertVerifier::Verify.
|
||||
@ -167,11 +167,11 @@ class NET_EXPORT_PRIVATE QuicStreamRequest {
|
||||
// ERR_IO_PENDING.
|
||||
bool WaitForHostResolution(CompletionOnceCallback callback);
|
||||
|
||||
// Tells QuicStreamRequest it should expect OnHostResolutionComplete()
|
||||
// Tells QuicSessionRequest it should expect OnHostResolutionComplete()
|
||||
// to be called in the future.
|
||||
void ExpectOnHostResolution();
|
||||
|
||||
// Will be called by the associated QuicStreamFactory::Job when host
|
||||
// Will be called by the associated QuicSessionPool::Job when host
|
||||
// resolution completes asynchronously after Request().
|
||||
void OnHostResolutionComplete(int rv);
|
||||
|
||||
@ -183,11 +183,11 @@ class NET_EXPORT_PRIVATE QuicStreamRequest {
|
||||
// `callback` will be run with ERR_IO_PENDING.
|
||||
bool WaitForQuicSessionCreation(CompletionOnceCallback callback);
|
||||
|
||||
// Tells QuicStreamRequest it should expect OnQuicSessionCreationComplete()
|
||||
// Tells QuicSessionRequest it should expect OnQuicSessionCreationComplete()
|
||||
// to be called in the future.
|
||||
void ExpectQuicSessionCreation();
|
||||
|
||||
// Will be called by the associated QuicStreamFactory::Job when session
|
||||
// Will be called by the associated QuicSessionPool::Job when session
|
||||
// creation completes asynchronously after Request().
|
||||
void OnQuicSessionCreationComplete(int rv);
|
||||
|
||||
@ -198,7 +198,7 @@ class NET_EXPORT_PRIVATE QuicStreamRequest {
|
||||
// network.
|
||||
void OnConnectionFailedOnDefaultNetwork();
|
||||
|
||||
// Helper method that calls |factory_|'s GetTimeDelayForWaitingJob(). It
|
||||
// Helper method that calls |pool_|'s GetTimeDelayForWaitingJob(). It
|
||||
// returns the amount of time waiting job should be delayed.
|
||||
base::TimeDelta GetTimeDelayForWaitingJob() const;
|
||||
|
||||
@ -228,7 +228,7 @@ class NET_EXPORT_PRIVATE QuicStreamRequest {
|
||||
const url::SchemeHostPort& destination) const;
|
||||
|
||||
private:
|
||||
raw_ptr<QuicStreamFactory> factory_;
|
||||
raw_ptr<QuicSessionPool> pool_;
|
||||
QuicSessionKey session_key_;
|
||||
NetLogWithSource net_log_;
|
||||
CompletionOnceCallback callback_;
|
||||
@ -247,8 +247,8 @@ class NET_EXPORT_PRIVATE QuicStreamRequest {
|
||||
CompletionOnceCallback create_session_callback_;
|
||||
};
|
||||
|
||||
// A factory for fetching QuicChromiumClientSessions.
|
||||
class NET_EXPORT_PRIVATE QuicStreamFactory
|
||||
// Manages a pool of QuicChromiumClientSessions.
|
||||
class NET_EXPORT_PRIVATE QuicSessionPool
|
||||
: public NetworkChangeNotifier::IPAddressObserver,
|
||||
public NetworkChangeNotifier::NetworkObserver,
|
||||
public CertDatabase::Observer,
|
||||
@ -284,7 +284,7 @@ class NET_EXPORT_PRIVATE QuicStreamFactory
|
||||
QuicSessionKey session_key_;
|
||||
};
|
||||
|
||||
QuicStreamFactory(
|
||||
QuicSessionPool(
|
||||
NetLog* net_log,
|
||||
HostResolver* host_resolver,
|
||||
SSLConfigService* ssl_config_service,
|
||||
@ -297,10 +297,10 @@ class NET_EXPORT_PRIVATE QuicStreamFactory
|
||||
QuicCryptoClientStreamFactory* quic_crypto_client_stream_factory,
|
||||
QuicContext* context);
|
||||
|
||||
QuicStreamFactory(const QuicStreamFactory&) = delete;
|
||||
QuicStreamFactory& operator=(const QuicStreamFactory&) = delete;
|
||||
QuicSessionPool(const QuicSessionPool&) = delete;
|
||||
QuicSessionPool& operator=(const QuicSessionPool&) = delete;
|
||||
|
||||
~QuicStreamFactory() override;
|
||||
~QuicSessionPool() override;
|
||||
|
||||
// Returns true if there is an existing session for |session_key| or if the
|
||||
// request can be pooled to an existing session to the IP address of
|
||||
@ -308,23 +308,23 @@ class NET_EXPORT_PRIVATE QuicStreamFactory
|
||||
bool CanUseExistingSession(const QuicSessionKey& session_key,
|
||||
const url::SchemeHostPort& destination) const;
|
||||
|
||||
// Fetches a QuicChromiumClientSession to |host_port_pair| which will be
|
||||
// owned by |request|.
|
||||
// Requests a QuicChromiumClientSession to |host_port_pair|, a handle for
|
||||
// which will be owned by |request|.
|
||||
// If a matching session already exists, this method will return OK. If no
|
||||
// matching session exists, this will return ERR_IO_PENDING and will invoke
|
||||
// OnRequestComplete asynchronously.
|
||||
// When |use_dns_aliases| is true, any DNS aliases found in host resolution
|
||||
// are stored in the |dns_aliases_by_session_key_| map. |use_dns_aliases|
|
||||
// should be false in the case of a proxy.
|
||||
int Create(const QuicSessionKey& session_key,
|
||||
url::SchemeHostPort destination,
|
||||
quic::ParsedQuicVersion quic_version,
|
||||
RequestPriority priority,
|
||||
bool use_dns_aliases,
|
||||
int cert_verify_flags,
|
||||
const GURL& url,
|
||||
const NetLogWithSource& net_log,
|
||||
QuicStreamRequest* request);
|
||||
int RequestSession(const QuicSessionKey& session_key,
|
||||
url::SchemeHostPort destination,
|
||||
quic::ParsedQuicVersion quic_version,
|
||||
RequestPriority priority,
|
||||
bool use_dns_aliases,
|
||||
int cert_verify_flags,
|
||||
const GURL& url,
|
||||
const NetLogWithSource& net_log,
|
||||
QuicSessionRequest* request);
|
||||
|
||||
// Called by a session when it is going away and no more streams should be
|
||||
// created on it.
|
||||
@ -337,16 +337,17 @@ class NET_EXPORT_PRIVATE QuicStreamFactory
|
||||
void OnBlackholeAfterHandshakeConfirmed(QuicChromiumClientSession* session);
|
||||
|
||||
// Cancels a pending request.
|
||||
void CancelRequest(QuicStreamRequest* request);
|
||||
void CancelRequest(QuicSessionRequest* request);
|
||||
|
||||
// Sets priority of a request.
|
||||
void SetRequestPriority(QuicStreamRequest* request, RequestPriority priority);
|
||||
void SetRequestPriority(QuicSessionRequest* request,
|
||||
RequestPriority priority);
|
||||
|
||||
// Closes all current sessions with specified network, QUIC error codes.
|
||||
// It sends connection close packet when closing connections.
|
||||
void CloseAllSessions(int error, quic::QuicErrorCode quic_error);
|
||||
|
||||
base::Value QuicStreamFactoryInfoToValue() const;
|
||||
base::Value QuicSessionPoolInfoToValue() const;
|
||||
|
||||
// Delete cached state objects in |crypto_config_|. If |origin_filter| is not
|
||||
// null, only objects on matching origins will be deleted.
|
||||
@ -383,7 +384,7 @@ class NET_EXPORT_PRIVATE QuicStreamFactory
|
||||
// handles::kInvalidNetworkHandle. This method calls
|
||||
// DatagramClientSocket::Connect and completes synchronously. Returns
|
||||
// net_error code.
|
||||
// TODO(liza): Remove this once QuicStreamFactory::Job calls
|
||||
// TODO(liza): Remove this once QuicSessionPool::Job calls
|
||||
// ConnectAndConfigureSocket.
|
||||
int ConfigureSocket(DatagramClientSocket* socket,
|
||||
IPEndPoint addr,
|
||||
@ -454,8 +455,8 @@ class NET_EXPORT_PRIVATE QuicStreamFactory
|
||||
class Job;
|
||||
class QuicCryptoClientConfigOwner;
|
||||
class CryptoClientConfigHandle;
|
||||
friend class MockQuicStreamFactory;
|
||||
friend class test::QuicStreamFactoryPeer;
|
||||
friend class MockQuicSessionPool;
|
||||
friend class test::QuicSessionPoolPeer;
|
||||
|
||||
using SessionMap = std::map<QuicSessionKey, QuicChromiumClientSession*>;
|
||||
using SessionIdMap =
|
||||
@ -733,9 +734,9 @@ class NET_EXPORT_PRIVATE QuicStreamFactory
|
||||
quic::DeterministicConnectionIdGenerator connection_id_generator_{
|
||||
quic::kQuicDefaultConnectionIdLength};
|
||||
|
||||
base::WeakPtrFactory<QuicStreamFactory> weak_factory_{this};
|
||||
base::WeakPtrFactory<QuicSessionPool> weak_factory_{this};
|
||||
};
|
||||
|
||||
} // namespace net
|
||||
|
||||
#endif // NET_QUIC_QUIC_STREAM_FACTORY_H_
|
||||
#endif // NET_QUIC_QUIC_SESSION_POOL_H_
|
@ -2,7 +2,7 @@
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
#include "net/quic/quic_stream_factory.h"
|
||||
#include "net/quic/quic_session_pool.h"
|
||||
|
||||
#include <fuzzer/FuzzedDataProvider.h>
|
||||
|
||||
@ -137,15 +137,13 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
|
||||
}
|
||||
}
|
||||
|
||||
std::unique_ptr<QuicStreamFactory> factory =
|
||||
std::make_unique<QuicStreamFactory>(
|
||||
env->net_log.net_log(), host_resolver.get(),
|
||||
env->ssl_config_service.get(), &socket_factory,
|
||||
&http_server_properties, env->cert_verifier.get(),
|
||||
&env->transport_security_state, nullptr, nullptr,
|
||||
&env->crypto_client_stream_factory, &env->quic_context);
|
||||
std::unique_ptr<QuicSessionPool> factory = std::make_unique<QuicSessionPool>(
|
||||
env->net_log.net_log(), host_resolver.get(),
|
||||
env->ssl_config_service.get(), &socket_factory, &http_server_properties,
|
||||
env->cert_verifier.get(), &env->transport_security_state, nullptr,
|
||||
nullptr, &env->crypto_client_stream_factory, &env->quic_context);
|
||||
|
||||
QuicStreamRequest request(factory.get());
|
||||
QuicSessionRequest request(factory.get());
|
||||
TestCompletionCallback callback;
|
||||
NetErrorDetails net_error_details;
|
||||
quic::ParsedQuicVersionVector versions = AllSupportedQuicVersions();
|
@ -2,7 +2,7 @@
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
#include "net/quic/quic_stream_factory_peer.h"
|
||||
#include "net/quic/quic_session_pool_peer.h"
|
||||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
@ -14,7 +14,7 @@
|
||||
#include "net/quic/platform/impl/quic_chromium_clock.h"
|
||||
#include "net/quic/quic_chromium_client_session.h"
|
||||
#include "net/quic/quic_http_stream.h"
|
||||
#include "net/quic/quic_stream_factory.h"
|
||||
#include "net/quic/quic_session_pool.h"
|
||||
#include "net/test/cert_test_util.h"
|
||||
#include "net/test/test_data_directory.h"
|
||||
#include "net/third_party/quiche/src/quiche/quic/core/crypto/quic_crypto_client_config.h"
|
||||
@ -24,20 +24,20 @@ using std::string;
|
||||
|
||||
namespace net::test {
|
||||
|
||||
const quic::QuicConfig* QuicStreamFactoryPeer::GetConfig(
|
||||
QuicStreamFactory* factory) {
|
||||
const quic::QuicConfig* QuicSessionPoolPeer::GetConfig(
|
||||
QuicSessionPool* factory) {
|
||||
return &factory->config_;
|
||||
}
|
||||
|
||||
std::unique_ptr<QuicCryptoClientConfigHandle>
|
||||
QuicStreamFactoryPeer::GetCryptoConfig(
|
||||
QuicStreamFactory* factory,
|
||||
QuicSessionPoolPeer::GetCryptoConfig(
|
||||
QuicSessionPool* factory,
|
||||
const NetworkAnonymizationKey& network_anonymization_key) {
|
||||
return factory->GetCryptoConfigForTesting(network_anonymization_key);
|
||||
}
|
||||
|
||||
bool QuicStreamFactoryPeer::HasActiveSession(
|
||||
QuicStreamFactory* factory,
|
||||
bool QuicSessionPoolPeer::HasActiveSession(
|
||||
QuicSessionPool* factory,
|
||||
const quic::QuicServerId& server_id,
|
||||
const NetworkAnonymizationKey& network_anonymization_key,
|
||||
bool require_dns_https_alpn) {
|
||||
@ -46,32 +46,31 @@ bool QuicStreamFactoryPeer::HasActiveSession(
|
||||
SecureDnsPolicy::kAllow, require_dns_https_alpn));
|
||||
}
|
||||
|
||||
bool QuicStreamFactoryPeer::HasActiveJob(QuicStreamFactory* factory,
|
||||
const quic::QuicServerId& server_id,
|
||||
bool require_dns_https_alpn) {
|
||||
bool QuicSessionPoolPeer::HasActiveJob(QuicSessionPool* factory,
|
||||
const quic::QuicServerId& server_id,
|
||||
bool require_dns_https_alpn) {
|
||||
return factory->HasActiveJob(
|
||||
QuicSessionKey(server_id, SocketTag(), NetworkAnonymizationKey(),
|
||||
SecureDnsPolicy::kAllow, require_dns_https_alpn));
|
||||
}
|
||||
|
||||
// static
|
||||
QuicChromiumClientSession* QuicStreamFactoryPeer::GetPendingSession(
|
||||
QuicStreamFactory* factory,
|
||||
QuicChromiumClientSession* QuicSessionPoolPeer::GetPendingSession(
|
||||
QuicSessionPool* factory,
|
||||
const quic::QuicServerId& server_id,
|
||||
url::SchemeHostPort destination) {
|
||||
QuicSessionKey session_key(server_id, SocketTag(), NetworkAnonymizationKey(),
|
||||
SecureDnsPolicy::kAllow,
|
||||
/*require_dns_https_alpn=*/false);
|
||||
QuicStreamFactory::QuicSessionAliasKey key(std::move(destination),
|
||||
session_key);
|
||||
QuicSessionPool::QuicSessionAliasKey key(std::move(destination), session_key);
|
||||
DCHECK(factory->HasActiveJob(session_key));
|
||||
DCHECK_EQ(factory->all_sessions_.size(), 1u);
|
||||
DCHECK(key == factory->all_sessions_.begin()->second);
|
||||
return factory->all_sessions_.begin()->first;
|
||||
}
|
||||
|
||||
QuicChromiumClientSession* QuicStreamFactoryPeer::GetActiveSession(
|
||||
QuicStreamFactory* factory,
|
||||
QuicChromiumClientSession* QuicSessionPoolPeer::GetActiveSession(
|
||||
QuicSessionPool* factory,
|
||||
const quic::QuicServerId& server_id,
|
||||
const NetworkAnonymizationKey& network_anonymization_key,
|
||||
bool require_dns_https_alpn) {
|
||||
@ -81,15 +80,15 @@ QuicChromiumClientSession* QuicStreamFactoryPeer::GetActiveSession(
|
||||
return factory->active_sessions_[session_key];
|
||||
}
|
||||
|
||||
bool QuicStreamFactoryPeer::HasLiveSession(QuicStreamFactory* factory,
|
||||
url::SchemeHostPort destination,
|
||||
const quic::QuicServerId& server_id,
|
||||
bool require_dns_https_alpn) {
|
||||
bool QuicSessionPoolPeer::HasLiveSession(QuicSessionPool* factory,
|
||||
url::SchemeHostPort destination,
|
||||
const quic::QuicServerId& server_id,
|
||||
bool require_dns_https_alpn) {
|
||||
QuicSessionKey session_key =
|
||||
QuicSessionKey(server_id, SocketTag(), NetworkAnonymizationKey(),
|
||||
SecureDnsPolicy::kAllow, require_dns_https_alpn);
|
||||
QuicStreamFactory::QuicSessionAliasKey alias_key(std::move(destination),
|
||||
session_key);
|
||||
QuicSessionPool::QuicSessionAliasKey alias_key(std::move(destination),
|
||||
session_key);
|
||||
for (const auto& it : factory->all_sessions_) {
|
||||
if (it.second == alias_key) {
|
||||
return true;
|
||||
@ -98,8 +97,8 @@ bool QuicStreamFactoryPeer::HasLiveSession(QuicStreamFactory* factory,
|
||||
return false;
|
||||
}
|
||||
|
||||
bool QuicStreamFactoryPeer::IsLiveSession(QuicStreamFactory* factory,
|
||||
QuicChromiumClientSession* session) {
|
||||
bool QuicSessionPoolPeer::IsLiveSession(QuicSessionPool* factory,
|
||||
QuicChromiumClientSession* session) {
|
||||
for (const auto& it : factory->all_sessions_) {
|
||||
if (it.first == session) {
|
||||
return true;
|
||||
@ -108,43 +107,43 @@ bool QuicStreamFactoryPeer::IsLiveSession(QuicStreamFactory* factory,
|
||||
return false;
|
||||
}
|
||||
|
||||
void QuicStreamFactoryPeer::SetTaskRunner(
|
||||
QuicStreamFactory* factory,
|
||||
void QuicSessionPoolPeer::SetTaskRunner(
|
||||
QuicSessionPool* factory,
|
||||
base::SequencedTaskRunner* task_runner) {
|
||||
factory->task_runner_ = task_runner;
|
||||
}
|
||||
|
||||
void QuicStreamFactoryPeer::SetTickClock(QuicStreamFactory* factory,
|
||||
const base::TickClock* tick_clock) {
|
||||
void QuicSessionPoolPeer::SetTickClock(QuicSessionPool* factory,
|
||||
const base::TickClock* tick_clock) {
|
||||
factory->tick_clock_ = tick_clock;
|
||||
}
|
||||
|
||||
quic::QuicTime::Delta QuicStreamFactoryPeer::GetPingTimeout(
|
||||
QuicStreamFactory* factory) {
|
||||
quic::QuicTime::Delta QuicSessionPoolPeer::GetPingTimeout(
|
||||
QuicSessionPool* factory) {
|
||||
return factory->ping_timeout_;
|
||||
}
|
||||
|
||||
void QuicStreamFactoryPeer::SetYieldAfterPackets(QuicStreamFactory* factory,
|
||||
int yield_after_packets) {
|
||||
void QuicSessionPoolPeer::SetYieldAfterPackets(QuicSessionPool* factory,
|
||||
int yield_after_packets) {
|
||||
factory->yield_after_packets_ = yield_after_packets;
|
||||
}
|
||||
|
||||
void QuicStreamFactoryPeer::SetYieldAfterDuration(
|
||||
QuicStreamFactory* factory,
|
||||
void QuicSessionPoolPeer::SetYieldAfterDuration(
|
||||
QuicSessionPool* factory,
|
||||
quic::QuicTime::Delta yield_after_duration) {
|
||||
factory->yield_after_duration_ = yield_after_duration;
|
||||
}
|
||||
|
||||
bool QuicStreamFactoryPeer::CryptoConfigCacheIsEmpty(
|
||||
QuicStreamFactory* factory,
|
||||
bool QuicSessionPoolPeer::CryptoConfigCacheIsEmpty(
|
||||
QuicSessionPool* factory,
|
||||
const quic::QuicServerId& quic_server_id,
|
||||
const NetworkAnonymizationKey& network_anonymization_key) {
|
||||
return factory->CryptoConfigCacheIsEmptyForTesting(quic_server_id,
|
||||
network_anonymization_key);
|
||||
}
|
||||
|
||||
void QuicStreamFactoryPeer::CacheDummyServerConfig(
|
||||
QuicStreamFactory* factory,
|
||||
void QuicSessionPoolPeer::CacheDummyServerConfig(
|
||||
QuicSessionPool* factory,
|
||||
const quic::QuicServerId& quic_server_id,
|
||||
const NetworkAnonymizationKey& network_anonymization_key) {
|
||||
// Minimum SCFG that passes config validation checks.
|
||||
@ -182,13 +181,12 @@ void QuicStreamFactoryPeer::CacheDummyServerConfig(
|
||||
DCHECK(!cached->certs().empty());
|
||||
}
|
||||
|
||||
size_t QuicStreamFactoryPeer::GetNumDegradingSessions(
|
||||
QuicStreamFactory* factory) {
|
||||
size_t QuicSessionPoolPeer::GetNumDegradingSessions(QuicSessionPool* factory) {
|
||||
return factory->connectivity_monitor_.GetNumDegradingSessions();
|
||||
}
|
||||
|
||||
void QuicStreamFactoryPeer::SetAlarmFactory(
|
||||
QuicStreamFactory* factory,
|
||||
void QuicSessionPoolPeer::SetAlarmFactory(
|
||||
QuicSessionPool* factory,
|
||||
std::unique_ptr<quic::QuicAlarmFactory> alarm_factory) {
|
||||
factory->alarm_factory_ = std::move(alarm_factory);
|
||||
}
|
@ -2,8 +2,8 @@
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
#ifndef NET_QUIC_QUIC_STREAM_FACTORY_PEER_H_
|
||||
#define NET_QUIC_QUIC_STREAM_FACTORY_PEER_H_
|
||||
#ifndef NET_QUIC_QUIC_SESSION_POOL_PEER_H_
|
||||
#define NET_QUIC_QUIC_SESSION_POOL_PEER_H_
|
||||
|
||||
#include <stddef.h>
|
||||
#include <stdint.h>
|
||||
@ -30,71 +30,71 @@ namespace net {
|
||||
class NetLogWithSource;
|
||||
class QuicChromiumClientSession;
|
||||
class QuicCryptoClientConfigHandle;
|
||||
class QuicStreamFactory;
|
||||
class QuicSessionPool;
|
||||
|
||||
namespace test {
|
||||
|
||||
class QuicStreamFactoryPeer {
|
||||
class QuicSessionPoolPeer {
|
||||
public:
|
||||
QuicStreamFactoryPeer(const QuicStreamFactoryPeer&) = delete;
|
||||
QuicStreamFactoryPeer& operator=(const QuicStreamFactoryPeer&) = delete;
|
||||
QuicSessionPoolPeer(const QuicSessionPoolPeer&) = delete;
|
||||
QuicSessionPoolPeer& operator=(const QuicSessionPoolPeer&) = delete;
|
||||
|
||||
static const quic::QuicConfig* GetConfig(QuicStreamFactory* factory);
|
||||
static const quic::QuicConfig* GetConfig(QuicSessionPool* factory);
|
||||
|
||||
static std::unique_ptr<QuicCryptoClientConfigHandle> GetCryptoConfig(
|
||||
QuicStreamFactory* factory,
|
||||
QuicSessionPool* factory,
|
||||
const NetworkAnonymizationKey& network_anonymization_key);
|
||||
|
||||
static bool HasActiveSession(
|
||||
QuicStreamFactory* factory,
|
||||
QuicSessionPool* factory,
|
||||
const quic::QuicServerId& server_id,
|
||||
const NetworkAnonymizationKey& network_anonymization_key =
|
||||
NetworkAnonymizationKey(),
|
||||
bool require_dns_https_alpn = false);
|
||||
|
||||
static bool HasActiveJob(QuicStreamFactory* factory,
|
||||
static bool HasActiveJob(QuicSessionPool* factory,
|
||||
const quic::QuicServerId& server_id,
|
||||
bool require_dns_https_alpn = false);
|
||||
|
||||
static QuicChromiumClientSession* GetPendingSession(
|
||||
QuicStreamFactory* factory,
|
||||
QuicSessionPool* factory,
|
||||
const quic::QuicServerId& server_id,
|
||||
url::SchemeHostPort destination);
|
||||
|
||||
static QuicChromiumClientSession* GetActiveSession(
|
||||
QuicStreamFactory* factory,
|
||||
QuicSessionPool* factory,
|
||||
const quic::QuicServerId& server_id,
|
||||
const NetworkAnonymizationKey& network_anonymization_key =
|
||||
NetworkAnonymizationKey(),
|
||||
bool require_dns_https_alpn = false);
|
||||
|
||||
static bool HasLiveSession(QuicStreamFactory* factory,
|
||||
static bool HasLiveSession(QuicSessionPool* factory,
|
||||
url::SchemeHostPort destination,
|
||||
const quic::QuicServerId& server_id,
|
||||
bool require_dns_https_alpn = false);
|
||||
|
||||
static bool IsLiveSession(QuicStreamFactory* factory,
|
||||
static bool IsLiveSession(QuicSessionPool* factory,
|
||||
QuicChromiumClientSession* session);
|
||||
|
||||
static void SetTickClock(QuicStreamFactory* factory,
|
||||
static void SetTickClock(QuicSessionPool* factory,
|
||||
const base::TickClock* tick_clock);
|
||||
|
||||
static void SetTaskRunner(QuicStreamFactory* factory,
|
||||
static void SetTaskRunner(QuicSessionPool* factory,
|
||||
base::SequencedTaskRunner* task_runner);
|
||||
|
||||
static quic::QuicTime::Delta GetPingTimeout(QuicStreamFactory* factory);
|
||||
static quic::QuicTime::Delta GetPingTimeout(QuicSessionPool* factory);
|
||||
|
||||
static void SetYieldAfterPackets(QuicStreamFactory* factory,
|
||||
static void SetYieldAfterPackets(QuicSessionPool* factory,
|
||||
int yield_after_packets);
|
||||
|
||||
static void SetYieldAfterDuration(QuicStreamFactory* factory,
|
||||
static void SetYieldAfterDuration(QuicSessionPool* factory,
|
||||
quic::QuicTime::Delta yield_after_duration);
|
||||
|
||||
static size_t GetNumberOfActiveJobs(QuicStreamFactory* factory,
|
||||
static size_t GetNumberOfActiveJobs(QuicSessionPool* factory,
|
||||
const quic::QuicServerId& server_id);
|
||||
|
||||
static bool CryptoConfigCacheIsEmpty(
|
||||
QuicStreamFactory* factory,
|
||||
QuicSessionPool* factory,
|
||||
const quic::QuicServerId& quic_server_id,
|
||||
const NetworkAnonymizationKey& network_anonymization_key);
|
||||
|
||||
@ -102,18 +102,18 @@ class QuicStreamFactoryPeer {
|
||||
// onto a QuicCryptoClientConfigHandle for the corresponding
|
||||
// |network_anonymization_key|.
|
||||
static void CacheDummyServerConfig(
|
||||
QuicStreamFactory* factory,
|
||||
QuicSessionPool* factory,
|
||||
const quic::QuicServerId& quic_server_id,
|
||||
const NetworkAnonymizationKey& network_anonymization_key);
|
||||
|
||||
static size_t GetNumDegradingSessions(QuicStreamFactory* factory);
|
||||
static size_t GetNumDegradingSessions(QuicSessionPool* factory);
|
||||
|
||||
static void SetAlarmFactory(
|
||||
QuicStreamFactory* factory,
|
||||
QuicSessionPool* factory,
|
||||
std::unique_ptr<quic::QuicAlarmFactory> alarm_factory);
|
||||
};
|
||||
|
||||
} // namespace test
|
||||
} // namespace net
|
||||
|
||||
#endif // NET_QUIC_QUIC_STREAM_FACTORY_PEER_H_
|
||||
#endif // NET_QUIC_QUIC_SESSION_POOL_PEER_H_
|
File diff suppressed because it is too large
Load Diff
@ -702,7 +702,7 @@ class ClientSocketPoolBaseTest : public TestWithTaskEnvironment {
|
||||
/*http_auth_handler_factory=*/nullptr,
|
||||
/*spdy_session_pool=*/nullptr,
|
||||
/*quic_supported_versions=*/nullptr,
|
||||
/*quic_stream_factory=*/nullptr,
|
||||
/*quic_session_pool=*/nullptr,
|
||||
/*proxy_delegate=*/nullptr,
|
||||
/*http_user_agent_settings=*/nullptr,
|
||||
/*ssl_client_context=*/nullptr,
|
||||
|
@ -34,7 +34,7 @@ CommonConnectJobParams::CommonConnectJobParams(
|
||||
HttpAuthHandlerFactory* http_auth_handler_factory,
|
||||
SpdySessionPool* spdy_session_pool,
|
||||
const quic::ParsedQuicVersionVector* quic_supported_versions,
|
||||
QuicStreamFactory* quic_stream_factory,
|
||||
QuicSessionPool* quic_session_pool,
|
||||
ProxyDelegate* proxy_delegate,
|
||||
const HttpUserAgentSettings* http_user_agent_settings,
|
||||
SSLClientContext* ssl_client_context,
|
||||
@ -53,7 +53,7 @@ CommonConnectJobParams::CommonConnectJobParams(
|
||||
http_auth_handler_factory(http_auth_handler_factory),
|
||||
spdy_session_pool(spdy_session_pool),
|
||||
quic_supported_versions(quic_supported_versions),
|
||||
quic_stream_factory(quic_stream_factory),
|
||||
quic_session_pool(quic_session_pool),
|
||||
proxy_delegate(proxy_delegate),
|
||||
http_user_agent_settings(http_user_agent_settings),
|
||||
ssl_client_context(ssl_client_context),
|
||||
|
@ -46,7 +46,7 @@ class NetLog;
|
||||
class NetLogWithSource;
|
||||
class NetworkQualityEstimator;
|
||||
class ProxyDelegate;
|
||||
class QuicStreamFactory;
|
||||
class QuicSessionPool;
|
||||
class SocketPerformanceWatcherFactory;
|
||||
class SocketTag;
|
||||
class SpdySessionPool;
|
||||
@ -69,7 +69,7 @@ struct NET_EXPORT_PRIVATE CommonConnectJobParams {
|
||||
HttpAuthHandlerFactory* http_auth_handler_factory,
|
||||
SpdySessionPool* spdy_session_pool,
|
||||
const quic::ParsedQuicVersionVector* quic_supported_versions,
|
||||
QuicStreamFactory* quic_stream_factory,
|
||||
QuicSessionPool* quic_session_pool,
|
||||
ProxyDelegate* proxy_delegate,
|
||||
const HttpUserAgentSettings* http_user_agent_settings,
|
||||
SSLClientContext* ssl_client_context,
|
||||
@ -93,7 +93,7 @@ struct NET_EXPORT_PRIVATE CommonConnectJobParams {
|
||||
raw_ptr<HttpAuthHandlerFactory> http_auth_handler_factory;
|
||||
raw_ptr<SpdySessionPool> spdy_session_pool;
|
||||
raw_ptr<const quic::ParsedQuicVersionVector> quic_supported_versions;
|
||||
raw_ptr<QuicStreamFactory> quic_stream_factory;
|
||||
raw_ptr<QuicSessionPool> quic_session_pool;
|
||||
raw_ptr<ProxyDelegate> proxy_delegate;
|
||||
raw_ptr<const HttpUserAgentSettings> http_user_agent_settings;
|
||||
raw_ptr<SSLClientContext> ssl_client_context;
|
||||
|
@ -179,7 +179,7 @@ class ConnectJobFactoryTest : public TestWithTaskEnvironment {
|
||||
/*http_auth_handler_factory=*/nullptr,
|
||||
/*spdy_session_pool=*/nullptr,
|
||||
/*quic_supported_versions=*/nullptr,
|
||||
/*quic_stream_factory=*/nullptr,
|
||||
/*quic_session_pool=*/nullptr,
|
||||
/*proxy_delegate=*/nullptr,
|
||||
/*http_user_agent_settings=*/nullptr,
|
||||
/*ssl_client_context=*/nullptr,
|
||||
|
@ -100,7 +100,7 @@ class ConnectJobTest : public testing::Test {
|
||||
/*http_auth_handler_factory=*/nullptr,
|
||||
/*spdy_session_pool=*/nullptr,
|
||||
/*quic_supported_versions=*/nullptr,
|
||||
/*quic_stream_factory=*/nullptr,
|
||||
/*quic_session_pool=*/nullptr,
|
||||
/*proxy_delegate=*/nullptr,
|
||||
/*http_user_agent_settings=*/nullptr,
|
||||
/*ssl_client_context=*/nullptr,
|
||||
|
@ -57,7 +57,7 @@ class SOCKSConnectJobTest : public testing::Test, public WithTaskEnvironment {
|
||||
/*http_auth_handler_factory=*/nullptr,
|
||||
/*spdy_session_pool=*/nullptr,
|
||||
/*quic_supported_versions=*/nullptr,
|
||||
/*quic_stream_factory=*/nullptr,
|
||||
/*quic_session_pool=*/nullptr,
|
||||
/*proxy_delegate=*/nullptr,
|
||||
/*http_user_agent_settings=*/nullptr,
|
||||
/*ssl_client_context=*/nullptr,
|
||||
|
@ -59,7 +59,7 @@ class TransportConnectJobTest : public WithTaskEnvironment,
|
||||
/*http_auth_handler_factory=*/nullptr,
|
||||
/*spdy_session_pool=*/nullptr,
|
||||
/*quic_supported_versions=*/nullptr,
|
||||
/*quic_stream_factory=*/nullptr,
|
||||
/*quic_session_pool=*/nullptr,
|
||||
/*proxy_delegate=*/nullptr,
|
||||
/*http_user_agent_settings=*/nullptr,
|
||||
&ssl_client_context_,
|
||||
|
@ -96,7 +96,7 @@ class WebSocketTransportClientSocketPoolTest : public TestWithTaskEnvironment {
|
||||
/*http_auth_handler_factory=*/nullptr,
|
||||
/*spdy_session_pool=*/nullptr,
|
||||
/*quic_supported_versions=*/nullptr,
|
||||
/*quic_stream_factory=*/nullptr,
|
||||
/*quic_session_pool=*/nullptr,
|
||||
/*proxy_delegate=*/nullptr,
|
||||
/*http_user_agent_settings=*/nullptr,
|
||||
/*ssl_client_context=*/nullptr,
|
||||
|
@ -43,7 +43,7 @@
|
||||
#include "net/nqe/network_quality_estimator.h"
|
||||
#include "net/proxy_resolution/configured_proxy_resolution_service.h"
|
||||
#include "net/quic/quic_context.h"
|
||||
#include "net/quic/quic_stream_factory.h"
|
||||
#include "net/quic/quic_session_pool.h"
|
||||
#include "net/socket/network_binding_client_socket_factory.h"
|
||||
#include "net/ssl/ssl_config_service_defaults.h"
|
||||
#include "net/url_request/static_http_user_agent_settings.h"
|
||||
|
@ -129,7 +129,7 @@ class WebSocketBasicStreamSocketTest : public TestWithTaskEnvironment {
|
||||
/*http_auth_handler_factory=*/nullptr,
|
||||
/*spdy_session_pool=*/nullptr,
|
||||
/*quic_supported_versions=*/nullptr,
|
||||
/*quic_stream_factory=*/nullptr,
|
||||
/*quic_session_pool=*/nullptr,
|
||||
/*proxy_delegate=*/nullptr,
|
||||
/*http_user_agent_settings=*/nullptr,
|
||||
/*ssl_client_context=*/nullptr,
|
||||
|
@ -138,7 +138,7 @@ class MockClientSocketHandleFactory {
|
||||
/*http_auth_handler_factory=*/nullptr,
|
||||
/*spdy_session_pool=*/nullptr,
|
||||
/*quic_supported_versions=*/nullptr,
|
||||
/*quic_stream_factory=*/nullptr,
|
||||
/*quic_session_pool=*/nullptr,
|
||||
/*proxy_delegate=*/nullptr,
|
||||
/*http_user_agent_settings=*/nullptr,
|
||||
/*ssl_client_context=*/nullptr,
|
||||
|
@ -22,7 +22,7 @@
|
||||
#include "net/base/request_priority.h"
|
||||
#include "net/log/net_log_with_source.h"
|
||||
#include "net/quic/quic_chromium_client_session.h"
|
||||
#include "net/quic/quic_stream_factory.h"
|
||||
#include "net/quic/quic_session_pool.h"
|
||||
#include "net/third_party/quiche/src/quiche/spdy/core/http2_header_block.h"
|
||||
#include "net/websockets/websocket_basic_stream_adapters.h"
|
||||
#include "net/websockets/websocket_handshake_stream_base.h"
|
||||
|
@ -79,7 +79,7 @@ std::unique_ptr<HttpCacheDataRemover> HttpCacheDataRemover::CreateAndStart(
|
||||
// TODO(crbug.com/817849): add a browser test to validate the QUIC information
|
||||
// is cleared.
|
||||
http_cache->GetSession()
|
||||
->quic_stream_factory()
|
||||
->quic_session_pool()
|
||||
->ClearCachedStatesInCryptoConfig(remover->url_matcher_);
|
||||
|
||||
net::CompletionOnceCallback callback =
|
||||
|
@ -121,7 +121,7 @@ create a new fuzzing test.
|
||||
**Note:** Most of the targets are small. They may perform one or a few API calls
|
||||
using the data provided by the fuzzing engine as an argument. However, fuzz
|
||||
targets may be more complex if a certain initialization procedure needs to be
|
||||
performed. [quic_stream_factory_fuzzer.cc] is a good example of a complex fuzz
|
||||
performed. [quic_session_pool_fuzzer.cc] is a good example of a complex fuzz
|
||||
target.
|
||||
***
|
||||
|
||||
@ -425,5 +425,5 @@ fuzzing engine.
|
||||
[code coverage report]: efficient_fuzzing.md#Code-coverage
|
||||
[upstream documentation]: https://github.com/google/fuzzing/blob/master/docs/split-inputs.md#fuzzed-data-provider
|
||||
[libFuzzer's output documentation]: http://llvm.org/docs/LibFuzzer.html#output
|
||||
[quic_stream_factory_fuzzer.cc]: https://cs.chromium.org/chromium/src/net/quic/quic_stream_factory_fuzzer.cc
|
||||
[quic_session_pool_fuzzer.cc]: https://cs.chromium.org/chromium/src/net/quic/quic_session_pool_fuzzer.cc
|
||||
[getting started guide here]: getting_started.md
|
||||
|
@ -257,7 +257,7 @@ FUZZERS_WITH_CORPORA = [
|
||||
'net_quic_crypto_framer_parse_message_fuzzer',
|
||||
'net_quic_framer_fuzzer',
|
||||
'net_quic_framer_process_data_packet_fuzzer',
|
||||
'net_quic_stream_factory_fuzzer',
|
||||
'net_quic_session_pool_fuzzer',
|
||||
'net_socks5_client_socket_fuzzer',
|
||||
'net_socks_client_socket_fuzzer',
|
||||
'net_structured_headers_fuzzer',
|
||||
|
@ -117,7 +117,7 @@ chromium-metrics-reviews@google.com.
|
||||
|
||||
<enum name="BrokenAlternateProtocolLocation">
|
||||
<int value="0" label="HTTP_STREAM_FACTORY_JOB"/>
|
||||
<int value="1" label="QUIC_STREAM_FACTORY"/>
|
||||
<int value="1" label="QUIC_SESSION_POOL"/>
|
||||
<int value="2" label="HTTP_STREAM_FACTORY_JOB_ALT"/>
|
||||
<int value="3" label="HTTP_STREAM_FACTORY_JOB_MAIN"/>
|
||||
<int value="4" label="QUIC_HTTP_STREAM"/>
|
||||
|
@ -2175,7 +2175,7 @@ chromium-metrics-reviews@google.com.
|
||||
<owner>dschinazi@chromium.org</owner>
|
||||
<owner>src/net/quic/OWNERS</owner>
|
||||
<summary>
|
||||
The number of QUIC sessions when the QuicStreamFactory is destroyed.
|
||||
The number of QUIC sessions when the QuicSessionPool is destroyed.
|
||||
</summary>
|
||||
</histogram>
|
||||
|
||||
@ -4208,7 +4208,7 @@ chromium-metrics-reviews@google.com.
|
||||
<owner>renjietang@chromium.org</owner>
|
||||
<owner>src/net/quic/OWNERS</owner>
|
||||
<summary>
|
||||
The time a QuicStreamFactory Job takes from host rersolution to connection
|
||||
The time a QuicSessionPool Job takes from host rersolution to connection
|
||||
confirmation.
|
||||
</summary>
|
||||
</histogram>
|
||||
@ -4415,7 +4415,7 @@ chromium-metrics-reviews@google.com.
|
||||
<owner>src/net/quic/OWNERS</owner>
|
||||
<summary>
|
||||
Records, for initial socket created for each new QUIC connection, whether
|
||||
the bound network matched the default network tracked by QuicStreamFactory.
|
||||
the bound network matched the default network tracked by QuicSessionPool.
|
||||
</summary>
|
||||
</histogram>
|
||||
|
||||
@ -4436,7 +4436,7 @@ chromium-metrics-reviews@google.com.
|
||||
<owner>renjietang@chromium.org</owner>
|
||||
<owner>src/net/quic/OWNERS</owner>
|
||||
<summary>
|
||||
Log the location in QuicStreamFactory where QUIC_PROTOCOL_ERROR is reported.
|
||||
Log the location in QuicSessionPool where QUIC_PROTOCOL_ERROR is reported.
|
||||
</summary>
|
||||
</histogram>
|
||||
|
||||
|
Reference in New Issue
Block a user