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 94f97c26c8a86f4510ad0ad8d758da5ee8b8f270..1967aced3a01cd5ee352647e4d30ed0cfd858dde 100644 |
--- a/net/socket/transport_client_socket_pool.cc |
+++ b/net/socket/transport_client_socket_pool.cc |
@@ -19,6 +19,7 @@ |
#include "base/values.h" |
#include "net/base/ip_endpoint.h" |
#include "net/base/net_errors.h" |
+#include "net/base/socket_performance_watcher_factory.h" |
#include "net/log/net_log.h" |
#include "net/socket/client_socket_factory.h" |
#include "net/socket/client_socket_handle.h" |
@@ -198,6 +199,7 @@ TransportConnectJob::TransportConnectJob( |
const scoped_refptr<TransportSocketParams>& params, |
base::TimeDelta timeout_duration, |
ClientSocketFactory* client_socket_factory, |
+ SocketPerformanceWatcherFactory* socket_performance_watcher_factory, |
HostResolver* host_resolver, |
Delegate* delegate, |
NetLog* net_log) |
@@ -208,6 +210,7 @@ TransportConnectJob::TransportConnectJob( |
delegate, |
BoundNetLog::Make(net_log, NetLog::SOURCE_CONNECT_JOB)), |
helper_(params, client_socket_factory, host_resolver, &connect_timing_), |
+ socket_performance_watcher_factory_(socket_performance_watcher_factory), |
interval_between_connects_(CONNECT_INTERVAL_GT_20MS), |
resolve_result_(OK) { |
helper_.SetOnIOComplete(this); |
@@ -296,7 +299,8 @@ int TransportConnectJob::DoTransportConnect() { |
TransportConnectJobHelper::STATE_TRANSPORT_CONNECT_COMPLETE); |
transport_socket_ = |
helper_.client_socket_factory()->CreateTransportClientSocket( |
- helper_.addresses(), net_log().net_log(), net_log().source()); |
+ helper_.addresses(), socket_performance_watcher_factory_, |
+ net_log().net_log(), net_log().source()); |
// If the list contains IPv6 and IPv4 addresses, the first address will |
// be IPv6, and the IPv4 addresses will be tried as fallback addresses, |
@@ -415,7 +419,8 @@ void TransportConnectJob::DoIPv6FallbackTransportConnect() { |
MakeAddressListStartWithIPv4(fallback_addresses_.get()); |
fallback_transport_socket_ = |
helper_.client_socket_factory()->CreateTransportClientSocket( |
- *fallback_addresses_, net_log().net_log(), net_log().source()); |
+ *fallback_addresses_, socket_performance_watcher_factory_, |
+ net_log().net_log(), net_log().source()); |
fallback_connect_start_time_ = base::TimeTicks::Now(); |
int rv = fallback_transport_socket_->Connect( |
base::Bind( |
@@ -490,7 +495,13 @@ TransportClientSocketPool::TransportConnectJobFactory::NewConnectJob( |
return scoped_ptr<ConnectJob>(new TransportConnectJob( |
group_name, request.priority(), request.respect_limits(), |
request.params(), ConnectionTimeout(), client_socket_factory_, |
- host_resolver_, delegate, net_log_)); |
+ socket_performance_watcher_factory_, host_resolver_, delegate, net_log_)); |
+} |
+ |
+void TransportClientSocketPool::TransportConnectJobFactory:: |
+ SetSocketPerformanceWatcherFactory( |
+ SocketPerformanceWatcherFactory* socket_performance_watcher_factory) { |
+ socket_performance_watcher_factory_ = socket_performance_watcher_factory; |
} |
base::TimeDelta |
@@ -516,6 +527,11 @@ TransportClientSocketPool::TransportClientSocketPool( |
base_.EnableConnectBackupJobs(); |
} |
+void TransportClientSocketPool::SetSocketPerformanceWatcherFactory( |
+ SocketPerformanceWatcherFactory* socket_performance_watcher_factory) { |
+ base_.SetSocketPerformanceWatcherFactory(socket_performance_watcher_factory); |
+} |
+ |
TransportClientSocketPool::~TransportClientSocketPool() {} |
int TransportClientSocketPool::RequestSocket(const std::string& group_name, |