Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(187)

Unified Diff: net/http/http_stream_factory_impl_job.cc

Issue 2958133002: Change QuicStreamRequest::Request() to take a preferred QuicVersion so that (Closed)
Patch Set: self review Created 3 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: net/http/http_stream_factory_impl_job.cc
diff --git a/net/http/http_stream_factory_impl_job.cc b/net/http/http_stream_factory_impl_job.cc
index c5a1b9adf12c05f1024cc223005f4d9f8f1723de..8239af664f51ff7bf393a7203eda2e13f0f97729 100644
--- a/net/http/http_stream_factory_impl_job.cc
+++ b/net/http/http_stream_factory_impl_job.cc
@@ -162,6 +162,7 @@ HttpStreamFactoryImpl::Job::Job(Delegate* delegate,
HostPortPair destination,
GURL origin_url,
NextProto alternative_protocol,
+ QuicVersion quic_version,
const ProxyServer& alternative_proxy_server,
bool enable_ip_based_pooling,
NetLog* net_log)
@@ -188,6 +189,7 @@ HttpStreamFactoryImpl::Job::Job(Delegate* delegate,
using_quic_(
alternative_protocol == kProtoQUIC ||
ShouldForceQuic(session, destination, origin_url, proxy_info)),
+ quic_version_(quic_version),
expect_spdy_(alternative_protocol == kProtoHTTP2 && !using_quic_),
using_spdy_(false),
should_reconsider_proxy_(false),
@@ -208,6 +210,10 @@ HttpStreamFactoryImpl::Job::Job(Delegate* delegate,
stream_type_(HttpStreamRequest::BIDIRECTIONAL_STREAM),
init_connection_already_resumed_(false),
ptr_factory_(this) {
+ if (quic_version_ == QUIC_VERSION_UNSUPPORTED &&
+ ShouldForceQuic(session, destination, origin_url, proxy_info))
Ryan Hamilton 2017/07/06 13:27:45 Why does this only apply when "ShouldForceQuic" is
Zhongyi Shi 2017/07/06 18:13:39 When we create the Jobs in JobController, we pass
Ryan Hamilton 2017/07/06 19:00:04 (I guess an alternative would be to pass in suppor
Zhongyi Shi 2017/07/06 19:40:56 This could work. However, it might also be confusi
+ quic_version_ = session->params().quic_supported_versions[0];
Ryan Hamilton 2017/07/06 13:27:45 nit: {}s since the if predicate is more than one l
Zhongyi Shi 2017/07/06 18:13:40 Done.
+
DCHECK(session);
if (alternative_protocol != kProtoUnknown) {
// The job cannot have protocol requirements dictated by alternative service
@@ -898,10 +904,10 @@ int HttpStreamFactoryImpl::Job::DoInitConnectionImpl() {
destination = destination_;
ssl_config = &server_ssl_config_;
}
- int rv =
- quic_request_.Request(destination, request_info_.privacy_mode,
- ssl_config->GetCertVerifyFlags(), url,
- request_info_.method, net_log_, io_callback_);
+ int rv = quic_request_.Request(
+ destination, quic_version_, request_info_.privacy_mode,
+ ssl_config->GetCertVerifyFlags(), url, request_info_.method, net_log_,
+ io_callback_);
if (rv == OK) {
using_existing_quic_session_ = true;
} else {
@@ -1467,7 +1473,8 @@ HttpStreamFactoryImpl::JobFactory::CreateMainJob(
return base::MakeUnique<HttpStreamFactoryImpl::Job>(
delegate, job_type, session, request_info, priority, proxy_info,
server_ssl_config, proxy_ssl_config, destination, origin_url,
- kProtoUnknown, ProxyServer(), enable_ip_based_pooling, net_log);
+ kProtoUnknown, QUIC_VERSION_UNSUPPORTED, ProxyServer(),
+ enable_ip_based_pooling, net_log);
}
std::unique_ptr<HttpStreamFactoryImpl::Job>
@@ -1483,12 +1490,14 @@ HttpStreamFactoryImpl::JobFactory::CreateAltSvcJob(
HostPortPair destination,
GURL origin_url,
NextProto alternative_protocol,
+ QuicVersion quic_version,
bool enable_ip_based_pooling,
NetLog* net_log) {
return base::MakeUnique<HttpStreamFactoryImpl::Job>(
delegate, job_type, session, request_info, priority, proxy_info,
server_ssl_config, proxy_ssl_config, destination, origin_url,
- alternative_protocol, ProxyServer(), enable_ip_based_pooling, net_log);
+ alternative_protocol, quic_version, ProxyServer(),
+ enable_ip_based_pooling, net_log);
}
std::unique_ptr<HttpStreamFactoryImpl::Job>
@@ -1509,8 +1518,8 @@ HttpStreamFactoryImpl::JobFactory::CreateAltProxyJob(
return base::MakeUnique<HttpStreamFactoryImpl::Job>(
delegate, job_type, session, request_info, priority, proxy_info,
server_ssl_config, proxy_ssl_config, destination, origin_url,
- kProtoUnknown, alternative_proxy_server, enable_ip_based_pooling,
- net_log);
+ kProtoUnknown, QUIC_VERSION_UNSUPPORTED, alternative_proxy_server,
+ enable_ip_based_pooling, net_log);
}
} // namespace net

Powered by Google App Engine
This is Rietveld 408576698