| 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 9770a655c251650425a5ca5d835e209f91ba92d6..90036c7f888c40086e409c95f7c61bf0daafac0d 100644
|
| --- a/net/socket/ssl_client_socket_impl.cc
|
| +++ b/net/socket/ssl_client_socket_impl.cc
|
| @@ -53,6 +53,9 @@
|
| #include "net/ssl/ssl_private_key.h"
|
| #include "net/ssl/token_binding.h"
|
|
|
| +#include "base/trace_event/memory_dump_manager.h"
|
| +#include "base/strings/stringprintf.h"
|
| +
|
| #if !defined(OS_NACL)
|
| #include "net/ssl/ssl_key_logger.h"
|
| #endif
|
| @@ -500,6 +503,7 @@ SSLClientSocketImpl::SSLClientSocketImpl(
|
| policy_enforcer_(context.ct_policy_enforcer),
|
| pkp_bypassed_(false),
|
| net_log_(transport_->socket()->NetLog()),
|
| + in_pool_(false),
|
| weak_factory_(this) {
|
| CHECK(cert_verifier_);
|
| CHECK(transport_security_state_);
|
| @@ -674,6 +678,14 @@ bool SSLClientSocketImpl::IsConnectedAndIdle() const {
|
| return transport_->socket()->IsConnectedAndIdle();
|
| }
|
|
|
| +void SSLClientSocketImpl::OnAddedToPool() {
|
| + in_pool_ = true;
|
| +}
|
| +
|
| +void SSLClientSocketImpl::OnRemovedFromPool() {
|
| + in_pool_ = false;
|
| +}
|
| +
|
| int SSLClientSocketImpl::GetPeerAddress(IPEndPoint* addressList) const {
|
| return transport_->socket()->GetPeerAddress(addressList);
|
| }
|
| @@ -766,6 +778,47 @@ int64_t SSLClientSocketImpl::GetTotalReceivedBytes() const {
|
| return transport_->socket()->GetTotalReceivedBytes();
|
| }
|
|
|
| +void SSLClientSocketImpl::PopulateAllocatorDump(
|
| + base::trace_event::MemoryAllocatorDump* dump) const {
|
| + base::trace_event::MemoryAllocatorDump* socket_dump =
|
| + dump->process_memory_dump()->CreateAllocatorDump(base::StringPrintf(
|
| + "%s/ssl_socket/%p", dump->absolute_name().c_str(), this));
|
| + size_t total_buffer_size =
|
| + send_buffer_->capacity() + recv_buffer_->capacity();
|
| + size_t buffer_count = 2;
|
| + socket_dump->AddScalar("buffers_size",
|
| + base::trace_event::MemoryAllocatorDump::kUnitsBytes,
|
| + total_buffer_size);
|
| + socket_dump->AddScalar("buffer_count",
|
| + base::trace_event::MemoryAllocatorDump::kUnitsObjects,
|
| + buffer_count);
|
| +
|
| + size_t total_cert_size = 0;
|
| + size_t cert_count = 0;
|
| + auto cert_chain = ssl_ ? SSL_get_peer_cert_chain(ssl_.get()) : nullptr;
|
| + if (cert_chain) {
|
| + cert_count = sk_X509_num(cert_chain);
|
| + for (size_t i = 0; i != cert_count; ++i) {
|
| + X509* cert = sk_X509_value(cert_chain, i);
|
| + total_cert_size += i2d_X509(cert, nullptr);
|
| + }
|
| + }
|
| + socket_dump->AddScalar("certs_size",
|
| + base::trace_event::MemoryAllocatorDump::kUnitsBytes,
|
| + total_cert_size);
|
| + socket_dump->AddScalar("cert_count",
|
| + base::trace_event::MemoryAllocatorDump::kUnitsObjects,
|
| + cert_count);
|
| +
|
| + size_t total_size = total_buffer_size + total_cert_size;
|
| + socket_dump->AddScalar(base::trace_event::MemoryAllocatorDump::kNameSize,
|
| + base::trace_event::MemoryAllocatorDump::kUnitsBytes,
|
| + total_size);
|
| +
|
| + socket_dump->AddScalar(
|
| + "socket_count", base::trace_event::MemoryAllocatorDump::kUnitsObjects, 1);
|
| +}
|
| +
|
| int SSLClientSocketImpl::Read(IOBuffer* buf,
|
| int buf_len,
|
| const CompletionCallback& callback) {
|
|
|