| Index: net/socket/ssl_client_socket_impl.cc
|
| diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket_impl.cc
|
| index d20d81e2d12b8c4c8c29d4da2234a88d23f5d29c..39ebb98ab63bc8b9fdda1e01bd200d4096d119ca 100644
|
| --- a/net/socket/ssl_client_socket_impl.cc
|
| +++ b/net/socket/ssl_client_socket_impl.cc
|
| @@ -21,8 +21,11 @@
|
| #include "base/profiler/scoped_tracker.h"
|
| #include "base/strings/string_number_conversions.h"
|
| #include "base/strings/string_piece.h"
|
| +#include "base/strings/stringprintf.h"
|
| #include "base/synchronization/lock.h"
|
| #include "base/threading/thread_local.h"
|
| +#include "base/trace_event/memory_allocator_dump.h"
|
| +#include "base/trace_event/process_memory_dump.h"
|
| #include "base/trace_event/trace_event.h"
|
| #include "base/values.h"
|
| #include "crypto/ec_private_key.h"
|
| @@ -802,6 +805,46 @@ int64_t SSLClientSocketImpl::GetTotalReceivedBytes() const {
|
| return transport_->socket()->GetTotalReceivedBytes();
|
| }
|
|
|
| +void SSLClientSocketImpl::DumpMemoryStats(
|
| + base::trace_event::MemoryAllocatorDump* dump) const {
|
| + size_t total_size = 0;
|
| + base::trace_event::MemoryAllocatorDump* socket_dump =
|
| + dump->process_memory_dump()->CreateAllocatorDump(base::StringPrintf(
|
| + "%s/ssl_socket_%p", dump->absolute_name().c_str(), this));
|
| + if (transport_adapter_) {
|
| + size_t bio_buffers_size = transport_adapter_->GetAllocationSize();
|
| + socket_dump->AddScalar("buffer_size",
|
| + base::trace_event::MemoryAllocatorDump::kUnitsBytes,
|
| + bio_buffers_size);
|
| + total_size += bio_buffers_size;
|
| + }
|
| + size_t total_cert_size = 0;
|
| + size_t certs_count = 0;
|
| + if (server_cert_chain_) {
|
| + certs_count = server_cert_chain_->size();
|
| + for (size_t i = 0; i < certs_count; ++i) {
|
| + X509* cert = server_cert_chain_->Get(i);
|
| + total_cert_size += i2d_X509(cert, nullptr);
|
| + }
|
| + }
|
| + total_size += total_cert_size;
|
| + socket_dump->AddScalar("cert_size",
|
| + base::trace_event::MemoryAllocatorDump::kUnitsBytes,
|
| + total_cert_size);
|
| + socket_dump->AddScalar("cert_count",
|
| + base::trace_event::MemoryAllocatorDump::kUnitsObjects,
|
| + certs_count);
|
| + socket_dump->AddScalar(base::trace_event::MemoryAllocatorDump::kNameSize,
|
| + base::trace_event::MemoryAllocatorDump::kUnitsBytes,
|
| + total_size);
|
| +}
|
| +
|
| +// static
|
| +void SSLClientSocketImpl::DumpSSLClientSessionMemoryStats(
|
| + base::trace_event::ProcessMemoryDump* pmd) {
|
| + SSLContext::GetInstance()->session_cache()->DumpMemoryStats(pmd);
|
| +}
|
| +
|
| int SSLClientSocketImpl::Read(IOBuffer* buf,
|
| int buf_len,
|
| const CompletionCallback& callback) {
|
|
|