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

Unified Diff: net/socket/client_socket_pool_base.cc

Issue 2414883005: TEMP DO NOT LAND (Closed)
Patch Set: temp Created 4 years, 2 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
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 4e88c745acfe97a4d9ce1f47d05b309df42905c5..3cc931b6e98fde00d61db48aeb3bbf972d364c56 100644
--- a/net/socket/client_socket_pool_base.cc
+++ b/net/socket/client_socket_pool_base.cc
@@ -23,6 +23,10 @@
#include "net/log/net_log_event_type.h"
#include "net/log/net_log_source.h"
+#include "base/trace_event/memory_allocator_dump.h"
+#include "base/trace_event/process_memory_dump.h"
+#include "base/strings/stringprintf.h"
+
using base::TimeDelta;
namespace net {
@@ -495,6 +499,8 @@ bool ClientSocketPoolBaseHelper::AssignIdleSocketToRequest(
if (idle_socket.socket->WasEverUsed())
idle_socket.socket->ClearConnectionAttempts();
+ idle_socket.socket->OnRemovedFromPool();
+
HandOutSocket(std::unique_ptr<StreamSocket>(idle_socket.socket), reuse_type,
LoadTimingInfo::ConnectTiming(), request.handle(), idle_time,
group, request.net_log());
@@ -651,6 +657,20 @@ ClientSocketPoolBaseHelper::GetInfoAsValue(const std::string& name,
return dict;
}
+void ClientSocketPoolBaseHelper::PopulateAllocatorDump(
+ base::trace_event::MemoryAllocatorDump* dump) const {
+ base::trace_event::MemoryAllocatorDump* socket_pool_dump =
+ dump->process_memory_dump()->CreateAllocatorDump(base::StringPrintf(
+ "%s/socket_pool", dump->absolute_name().c_str()));
+ for (GroupMap::const_iterator it = group_map_.begin(); it != group_map_.end();
+ ++it) {
+ const std::list<IdleSocket> sockets = it->second->idle_sockets();
+ for (auto socket : sockets) {
+ socket.socket->PopulateAllocatorDump(socket_pool_dump);
+ }
+ }
+}
+
bool ClientSocketPoolBaseHelper::IdleSocket::IsUsable() const {
if (socket->WasEverUsed())
return socket->IsConnectedAndIdle();
@@ -1010,6 +1030,7 @@ void ClientSocketPoolBaseHelper::AddIdleSocket(
std::unique_ptr<StreamSocket> socket,
Group* group) {
DCHECK(socket);
+ socket->OnAddedToPool();
IdleSocket idle_socket;
idle_socket.socket = socket.release();
idle_socket.start_time = base::TimeTicks::Now();

Powered by Google App Engine
This is Rietveld 408576698