Index: net/socket/transport_client_socket_pool.cc |
diff --git a/net/socket/transport_client_socket_pool.cc b/net/socket/transport_client_socket_pool.cc |
index cf247c032706793693d28b4ee8ba91848d140bff..e55ec7542a5a949cb4996409916ea133a0c6caf7 100644 |
--- a/net/socket/transport_client_socket_pool.cc |
+++ b/net/socket/transport_client_socket_pool.cc |
@@ -63,7 +63,22 @@ TransportSocketParams::TransportSocketParams( |
const OnHostResolutionCallback& host_resolution_callback) |
: destination_(host_port_pair), |
ignore_limits_(ignore_limits), |
- host_resolution_callback_(host_resolution_callback) { |
+ host_resolution_callback_(host_resolution_callback), |
+ use_tcp_fastopen_if_supported_(false) { |
+ if (disable_resolver_cache) |
+ destination_.set_allow_cached_response(false); |
+} |
+ |
+TransportSocketParams::TransportSocketParams( |
+ const HostPortPair& host_port_pair, |
+ bool disable_resolver_cache, |
+ bool ignore_limits, |
+ const OnHostResolutionCallback& host_resolution_callback, |
+ bool use_tcp_fastopen_if_supported) |
+ : destination_(host_port_pair), |
+ ignore_limits_(ignore_limits), |
+ host_resolution_callback_(host_resolution_callback), |
+ use_tcp_fastopen_if_supported_(use_tcp_fastopen_if_supported) { |
if (disable_resolver_cache) |
destination_.set_allow_cached_response(false); |
} |
@@ -261,6 +276,10 @@ int TransportConnectJob::DoTransportConnect() { |
transport_socket_ = |
helper_.client_socket_factory()->CreateTransportClientSocket( |
helper_.addresses(), net_log().net_log(), net_log().source()); |
+ |
+ if (helper_.params()->use_tcp_fastopen_if_supported()) |
+ transport_socket_->EnableTCPFastOpen(); |
+ |
int rv = transport_socket_->Connect(helper_.on_io_complete()); |
if (rv == ERR_IO_PENDING && |
helper_.addresses().front().GetFamily() == ADDRESS_FAMILY_IPV6 && |