| Index: net/socket/tcp_client_socket_win.cc
|
| ===================================================================
|
| --- net/socket/tcp_client_socket_win.cc (revision 90003)
|
| +++ net/socket/tcp_client_socket_win.cc (working copy)
|
| @@ -323,7 +323,9 @@
|
| next_connect_state_(CONNECT_STATE_NONE),
|
| connect_os_error_(0),
|
| net_log_(BoundNetLog::Make(net_log, NetLog::SOURCE_SOCKET)),
|
| - previously_disconnected_(false) {
|
| + previously_disconnected_(false),
|
| + num_bytes_read_(0),
|
| + connect_time_micros_(-1) {
|
| scoped_refptr<NetLog::EventParameters> params;
|
| if (source.is_valid())
|
| params = new NetLogSourceParameter("source_dependency", source);
|
| @@ -484,6 +486,7 @@
|
|
|
| core_->write_overlapped_.hEvent = WSACreateEvent();
|
|
|
| + connect_start_time_ = base::TimeTicks::Now();
|
| if (!connect(socket_, ai->ai_addr, static_cast<int>(ai->ai_addrlen))) {
|
| // Connected without waiting!
|
| //
|
| @@ -522,6 +525,8 @@
|
| net_log_.EndEvent(NetLog::TYPE_TCP_CONNECT_ATTEMPT, params);
|
|
|
| if (result == OK) {
|
| + connect_time_micros_ = (base::TimeTicks::Now() -
|
| + connect_start_time_).ToInternalValue();
|
| use_history_.set_was_ever_connected();
|
| return OK; // Done!
|
| }
|
| @@ -658,6 +663,14 @@
|
| return false;
|
| }
|
|
|
| +int64 TCPClientSocketWin::NumBytesRead() const {
|
| + return num_bytes_read_;
|
| +}
|
| +
|
| +int TCPClientSocketWin::GetConnectTimeMicros() const {
|
| + return connect_time_micros_;
|
| +}
|
| +
|
| int TCPClientSocketWin::Read(IOBuffer* buf,
|
| int buf_len,
|
| CompletionCallback* callback) {
|
| @@ -688,6 +701,7 @@
|
| base::MemoryDebug::MarkAsInitialized(core_->read_buffer_.buf, num);
|
| base::StatsCounter read_bytes("tcp.read_bytes");
|
| read_bytes.Add(num);
|
| + num_bytes_read_ += num;
|
| if (num > 0)
|
| use_history_.set_was_used_to_convey_data();
|
| net_log_.AddByteTransferEvent(NetLog::TYPE_SOCKET_BYTES_RECEIVED, num,
|
| @@ -858,6 +872,7 @@
|
| if (ok) {
|
| base::StatsCounter read_bytes("tcp.read_bytes");
|
| read_bytes.Add(num_bytes);
|
| + num_bytes_read_ += num_bytes;
|
| if (num_bytes > 0)
|
| use_history_.set_was_used_to_convey_data();
|
| net_log_.AddByteTransferEvent(NetLog::TYPE_SOCKET_BYTES_RECEIVED,
|
|
|