| Index: net/socket/tcp_client_socket.cc
|
| diff --git a/net/socket/tcp_client_socket.cc b/net/socket/tcp_client_socket.cc
|
| index 700fa1c1655b0117d9cdb977af7b37200b77eaf5..15e5729208c215fb485d633dac73fd8653d41072 100644
|
| --- a/net/socket/tcp_client_socket.cc
|
| +++ b/net/socket/tcp_client_socket.cc
|
| @@ -15,13 +15,19 @@
|
| #include "net/base/ip_endpoint.h"
|
| #include "net/base/net_errors.h"
|
| #include "net/base/net_util.h"
|
| +#include "net/base/socket_performance_watcher.h"
|
|
|
| namespace net {
|
|
|
| -TCPClientSocket::TCPClientSocket(const AddressList& addresses,
|
| - net::NetLog* net_log,
|
| - const net::NetLog::Source& source)
|
| - : socket_(new TCPSocket(net_log, source)),
|
| +TCPClientSocket::TCPClientSocket(
|
| + const AddressList& addresses,
|
| + scoped_ptr<SocketPerformanceWatcher> socket_performance_watcher,
|
| + net::NetLog* net_log,
|
| + const net::NetLog::Source& source)
|
| + : socket_performance_watcher_(socket_performance_watcher.get()),
|
| + socket_(new TCPSocket(std::move(socket_performance_watcher),
|
| + net_log,
|
| + source)),
|
| addresses_(addresses),
|
| current_address_index_(-1),
|
| next_connect_state_(CONNECT_STATE_NONE),
|
| @@ -30,7 +36,8 @@ TCPClientSocket::TCPClientSocket(const AddressList& addresses,
|
|
|
| TCPClientSocket::TCPClientSocket(scoped_ptr<TCPSocket> connected_socket,
|
| const IPEndPoint& peer_address)
|
| - : socket_(std::move(connected_socket)),
|
| + : socket_performance_watcher_(nullptr),
|
| + socket_(std::move(connected_socket)),
|
| addresses_(AddressList(peer_address)),
|
| current_address_index_(0),
|
| next_connect_state_(CONNECT_STATE_NONE),
|
| @@ -196,6 +203,8 @@ void TCPClientSocket::DoDisconnect() {
|
| // disconnected.
|
| previously_disconnected_ = socket_->IsValid() && current_address_index_ >= 0;
|
| socket_->Close();
|
| + if (socket_performance_watcher_)
|
| + socket_performance_watcher_->Reset();
|
| }
|
|
|
| bool TCPClientSocket::IsConnected() const {
|
|
|