| Index: net/http/http_network_session.cc
|
| diff --git a/net/http/http_network_session.cc b/net/http/http_network_session.cc
|
| index f81f4882f6a54cf425ab6c96aba5ad21cae54c85..5d2a78681c4ed644a8b536be7f850a02ba7b0fef 100644
|
| --- a/net/http/http_network_session.cc
|
| +++ b/net/http/http_network_session.cc
|
| @@ -15,6 +15,9 @@
|
| #include "base/profiler/scoped_tracker.h"
|
| #include "base/strings/string_number_conversions.h"
|
| #include "base/strings/string_util.h"
|
| +#include "base/strings/stringprintf.h"
|
| +#include "base/trace_event/memory_allocator_dump.h"
|
| +#include "base/trace_event/process_memory_dump.h"
|
| #include "base/values.h"
|
| #include "net/base/network_throttle_manager_impl.h"
|
| #include "net/http/http_auth_handler_factory.h"
|
| @@ -377,6 +380,29 @@ void HttpNetworkSession::GetSSLConfig(const HttpRequestInfo& request,
|
| }
|
| }
|
|
|
| +void HttpNetworkSession::DumpMemoryStats(
|
| + base::trace_event::ProcessMemoryDump* pmd,
|
| + const std::string& parent_absolute_name) const {
|
| + std::string name = base::StringPrintf("net/http_network_session_%p", this);
|
| + base::trace_event::MemoryAllocatorDump* http_network_session_dump =
|
| + pmd->GetAllocatorDump(name);
|
| + // If memory dump already exists, it means that this is not the first
|
| + // DumpMemoryStats() invocation on this object and it is reached by another
|
| + // "parent." If that's the case, add an ownership edge and return early.
|
| + // This is needed because URLRequestContexts can share an HttpNetworkSession.
|
| + if (http_network_session_dump != nullptr) {
|
| + pmd->AddOwnershipEdge(pmd->GetAllocatorDump(parent_absolute_name)->guid(),
|
| + http_network_session_dump->guid());
|
| +
|
| + return;
|
| + }
|
| + http_network_session_dump = pmd->CreateAllocatorDump(name);
|
| + normal_socket_pool_manager_->DumpMemoryStats(
|
| + pmd, http_network_session_dump->absolute_name());
|
| + pmd->AddOwnershipEdge(pmd->GetAllocatorDump(parent_absolute_name)->guid(),
|
| + http_network_session_dump->guid());
|
| +}
|
| +
|
| ClientSocketPoolManager* HttpNetworkSession::GetSocketPoolManager(
|
| SocketPoolType pool_type) {
|
| switch (pool_type) {
|
|
|