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

Unified Diff: net/socket/client_socket_pool_base.cc

Issue 2533063002: Fix Net.Socket.IdleSocketTimeSaving histogram (Closed)
Patch Set: self review Created 4 years, 1 month 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/client_socket_pool_base.h ('k') | net/socket/client_socket_pool_base_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/socket/client_socket_pool_base.cc
diff --git a/net/socket/client_socket_pool_base.cc b/net/socket/client_socket_pool_base.cc
index 165ea53a7a9d7639a7bd4c1c0a456455b0136317..f5db5f40ac2db6ce78175e6bf7d35919ad59b9db 100644
--- a/net/socket/client_socket_pool_base.cc
+++ b/net/socket/client_socket_pool_base.cc
@@ -450,7 +450,8 @@ int ClientSocketPoolBaseHelper::RequestSocketInternal(
connect_job->connect_timing(), handle, base::TimeDelta(),
group, request.net_log());
} else {
- AddIdleSocket(connect_job->PassSocket(), group);
+ AddIdleSocket(connect_job->PassSocket(), group,
+ connect_job->connect_timing());
}
} else if (rv == ERR_IO_PENDING) {
// If we don't have any sockets in this group, set a timer for potentially
@@ -542,7 +543,7 @@ bool ClientSocketPoolBaseHelper::AssignIdleSocketToRequest(
idle_socket.socket->ClearConnectionAttempts();
HandOutSocket(std::unique_ptr<StreamSocket>(idle_socket.socket), reuse_type,
- LoadTimingInfo::ConnectTiming(), request.handle(), idle_time,
+ idle_socket.connect_timing, request.handle(), idle_time,
group, request.net_log());
return true;
}
@@ -568,7 +569,8 @@ void ClientSocketPoolBaseHelper::CancelRequest(
if (socket) {
if (result != OK)
socket->Disconnect();
- ReleaseSocket(handle->group_name(), std::move(socket), handle->id());
+ ReleaseSocket(handle->group_name(), std::move(socket), handle->id(),
+ handle->connect_timing());
}
return;
}
@@ -800,7 +802,8 @@ void ClientSocketPoolBaseHelper::DecrementIdleCount() {
void ClientSocketPoolBaseHelper::ReleaseSocket(
const std::string& group_name,
std::unique_ptr<StreamSocket> socket,
- int id) {
+ int id,
+ const LoadTimingInfo::ConnectTiming& connect_timing) {
GroupMap::iterator i = group_map_.find(group_name);
CHECK(i != group_map_.end());
@@ -816,7 +819,7 @@ void ClientSocketPoolBaseHelper::ReleaseSocket(
id == pool_generation_number_;
if (can_reuse) {
// Add it to the idle list.
- AddIdleSocket(std::move(socket), group);
+ AddIdleSocket(std::move(socket), group, connect_timing);
OnAvailableSocketSlot(group_name, group);
} else {
socket.reset();
@@ -929,7 +932,7 @@ void ClientSocketPoolBaseHelper::OnConnectJobComplete(
request->net_log().EndEvent(NetLogEventType::SOCKET_POOL);
InvokeUserCallbackLater(request->handle(), request->callback(), result);
} else {
- AddIdleSocket(std::move(socket), group);
+ AddIdleSocket(std::move(socket), group, connect_timing);
OnAvailableSocketSlot(group_name, group);
CheckForStalledSocketGroups();
}
@@ -1041,7 +1044,7 @@ void ClientSocketPoolBaseHelper::HandOutSocket(
UMA_HISTOGRAM_COUNTS_1000("Net.Socket.IdleSocketReuseTime",
idle_time.InSeconds());
UMA_HISTOGRAM_TIMES(
- "Net.Socket.IdleSocketTimeSaving",
+ "Net.Socket.IdleSocketTimeSaving2",
connect_timing.connect_end - connect_timing.connect_start);
}
@@ -1062,11 +1065,13 @@ void ClientSocketPoolBaseHelper::HandOutSocket(
void ClientSocketPoolBaseHelper::AddIdleSocket(
std::unique_ptr<StreamSocket> socket,
- Group* group) {
+ Group* group,
+ const LoadTimingInfo::ConnectTiming& connect_timing) {
DCHECK(socket);
IdleSocket idle_socket;
idle_socket.socket = socket.release();
idle_socket.start_time = base::TimeTicks::Now();
+ idle_socket.connect_timing = connect_timing;
group->mutable_idle_sockets()->push_back(idle_socket);
IncrementIdleCount();
« no previous file with comments | « net/socket/client_socket_pool_base.h ('k') | net/socket/client_socket_pool_base_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698