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

Unified Diff: net/socket/ssl_client_socket_impl.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/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) {

Powered by Google App Engine
This is Rietveld 408576698