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

Unified Diff: net/socket/transport_client_socket_pool.cc

Issue 1376473003: Notify NQE of TCP RTT values (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Reorder initialization in constructor Created 4 years, 8 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
« no previous file with comments | « net/socket/transport_client_socket_pool.h ('k') | net/socket/transport_client_socket_pool_test_util.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 dbc701a938681a2d074f217b1025ce247d57ee4a..241a71219d3d21839fc98e78a75621a5fd201dc6 100644
--- a/net/socket/transport_client_socket_pool.cc
+++ b/net/socket/transport_client_socket_pool.cc
@@ -20,6 +20,8 @@
#include "base/values.h"
#include "net/base/ip_endpoint.h"
#include "net/base/net_errors.h"
+#include "net/base/socket_performance_watcher.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"
@@ -200,6 +202,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)
@@ -210,6 +213,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,9 +300,17 @@ int TransportConnectJob::DoTransportConnect() {
helper_.set_next_state(
TransportConnectJobHelper::STATE_TRANSPORT_CONNECT_COMPLETE);
+ // Create a |SocketPerformanceWatcher|, and pass the ownership.
+ scoped_ptr<SocketPerformanceWatcher> socket_performance_watcher;
+ if (socket_performance_watcher_factory_) {
+ socket_performance_watcher =
+ socket_performance_watcher_factory_->CreateSocketPerformanceWatcher(
+ SocketPerformanceWatcherFactory::PROTOCOL_TCP);
+ }
transport_socket_ =
helper_.client_socket_factory()->CreateTransportClientSocket(
- helper_.addresses(), net_log().net_log(), net_log().source());
+ helper_.addresses(), std::move(socket_performance_watcher),
+ 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,
@@ -413,11 +425,20 @@ void TransportConnectJob::DoIPv6FallbackTransportConnect() {
DCHECK(!fallback_transport_socket_.get());
DCHECK(!fallback_addresses_.get());
+ // Create a |SocketPerformanceWatcher|, and pass the ownership.
+ scoped_ptr<SocketPerformanceWatcher> socket_performance_watcher;
+ if (socket_performance_watcher_factory_) {
+ socket_performance_watcher =
+ socket_performance_watcher_factory_->CreateSocketPerformanceWatcher(
+ SocketPerformanceWatcherFactory::PROTOCOL_TCP);
+ }
+
fallback_addresses_.reset(new AddressList(helper_.addresses()));
MakeAddressListStartWithIPv4(fallback_addresses_.get());
fallback_transport_socket_ =
helper_.client_socket_factory()->CreateTransportClientSocket(
- *fallback_addresses_, net_log().net_log(), net_log().source());
+ *fallback_addresses_, std::move(socket_performance_watcher),
+ net_log().net_log(), net_log().source());
fallback_connect_start_time_ = base::TimeTicks::Now();
int rv = fallback_transport_socket_->Connect(
base::Bind(
@@ -492,7 +513,7 @@ 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_));
}
base::TimeDelta
@@ -506,6 +527,7 @@ TransportClientSocketPool::TransportClientSocketPool(
int max_sockets_per_group,
HostResolver* host_resolver,
ClientSocketFactory* client_socket_factory,
+ SocketPerformanceWatcherFactory* socket_performance_watcher_factory,
NetLog* net_log)
: base_(NULL,
max_sockets,
@@ -514,6 +536,7 @@ TransportClientSocketPool::TransportClientSocketPool(
ClientSocketPool::used_idle_socket_timeout(),
new TransportConnectJobFactory(client_socket_factory,
host_resolver,
+ socket_performance_watcher_factory,
net_log)) {
base_.EnableConnectBackupJobs();
}
« no previous file with comments | « net/socket/transport_client_socket_pool.h ('k') | net/socket/transport_client_socket_pool_test_util.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698