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

Unified Diff: net/cert/x509_certificate.cc

Issue 1569673002: [NOT FOR LANDING] Detailed loading traces Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 4 years, 10 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
« no previous file with comments | « net/base/network_delegate.cc ('k') | net/cert/x509_certificate_nss.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/cert/x509_certificate.cc
diff --git a/net/cert/x509_certificate.cc b/net/cert/x509_certificate.cc
index 797793fa634c49d905918dba03b9ad2f16663f69..70bbd66a23e7f93fa68affbd92f1bac2a4069179 100644
--- a/net/cert/x509_certificate.cc
+++ b/net/cert/x509_certificate.cc
@@ -12,6 +12,7 @@
#include <string>
#include <vector>
+#include "base/trace_event/trace_event.h"
#include "base/base64.h"
#include "base/lazy_instance.h"
#include "base/logging.h"
@@ -265,6 +266,8 @@ scoped_refptr<X509Certificate> X509Certificate::CreateFromHandle(
// static
scoped_refptr<X509Certificate> X509Certificate::CreateFromDERCertChain(
const std::vector<base::StringPiece>& der_certs) {
+ TRACE_EVENT0("toplevel", "X509Certificate::CreateFromDERCertChain");
+
// TODO(cbentzel): Remove ScopedTracker below once crbug.com/424386 is fixed.
tracked_objects::ScopedTracker tracking_profile(
FROM_HERE_WITH_EXPLICIT_FUNCTION(
@@ -273,6 +276,8 @@ scoped_refptr<X509Certificate> X509Certificate::CreateFromDERCertChain(
if (der_certs.empty())
return NULL;
+ TRACE_EVENT0("toplevel", "X509Certificate::CreateFromDERCertChain::A");
+
X509Certificate::OSCertHandles intermediate_ca_certs;
for (size_t i = 1; i < der_certs.size(); i++) {
OSCertHandle handle = CreateOSCertHandleFromBytes(
@@ -282,18 +287,23 @@ scoped_refptr<X509Certificate> X509Certificate::CreateFromDERCertChain(
intermediate_ca_certs.push_back(handle);
}
+ TRACE_EVENT0("toplevel", "X509Certificate::CreateFromDERCertChain::B");
OSCertHandle handle = NULL;
// Return NULL if we failed to parse any of the certs.
if (der_certs.size() - 1 == intermediate_ca_certs.size()) {
handle = CreateOSCertHandleFromBytes(
const_cast<char*>(der_certs[0].data()), der_certs[0].size());
}
+ TRACE_EVENT0("toplevel", "X509Certificate::CreateFromDERCertChain::C");
scoped_refptr<X509Certificate> cert = nullptr;
if (handle) {
+ TRACE_EVENT0("toplevel", "X509Certificate::CreateFromDERCertChain::C.1");
cert = CreateFromHandle(handle, intermediate_ca_certs);
+ TRACE_EVENT0("toplevel", "X509Certificate::CreateFromDERCertChain::C.2");
FreeOSCertHandle(handle);
}
+ TRACE_EVENT0("toplevel", "X509Certificate::CreateFromDERCertChain::D");
for (size_t i = 0; i < intermediate_ca_certs.size(); i++)
FreeOSCertHandle(intermediate_ca_certs[i]);
@@ -319,6 +329,8 @@ scoped_refptr<X509Certificate> X509Certificate::CreateFromBytes(
scoped_refptr<X509Certificate> X509Certificate::CreateFromPickle(
base::PickleIterator* pickle_iter,
PickleType type) {
+ TRACE_EVENT0("toplevel", "X509Certificate::CreateFromPickle");
+
if (type == PICKLETYPE_CERTIFICATE_CHAIN_V3) {
int chain_length = 0;
if (!pickle_iter->ReadLength(&chain_length))
@@ -328,8 +340,10 @@ scoped_refptr<X509Certificate> X509Certificate::CreateFromPickle(
const char* data = NULL;
int data_length = 0;
for (int i = 0; i < chain_length; ++i) {
+ TRACE_EVENT0("toplevel", "X509Certificate::CreateFromPickle::A");
if (!pickle_iter->ReadData(&data, &data_length))
return NULL;
+ TRACE_EVENT0("toplevel", "X509Certificate::CreateFromPickle::B");
cert_chain.push_back(base::StringPiece(data, data_length));
}
return CreateFromDERCertChain(cert_chain);
@@ -379,6 +393,7 @@ scoped_refptr<X509Certificate> X509Certificate::CreateFromPickle(
return NULL;
}
}
+
if (zero_check)
*pickle_iter = saved_iter;
#endif // defined(OS_POSIX) && !defined(OS_MACOSX) && defined(__x86_64__)
@@ -743,7 +758,9 @@ SHA256HashValue X509Certificate::CalculateChainFingerprint256(
X509Certificate::X509Certificate(OSCertHandle cert_handle,
const OSCertHandles& intermediates)
: cert_handle_(DupOSCertHandle(cert_handle)) {
+ TRACE_EVENT0("toplevel", "X509Certificate::X509Certificate::A");
InsertOrUpdateCache(&cert_handle_);
+ TRACE_EVENT0("toplevel", "X509Certificate::X509Certificate::B");
for (size_t i = 0; i < intermediates.size(); ++i) {
// Duplicate the incoming certificate, as the caller retains ownership
// of |intermediates|.
@@ -753,6 +770,7 @@ X509Certificate::X509Certificate(OSCertHandle cert_handle,
InsertOrUpdateCache(&intermediate);
intermediate_ca_certs_.push_back(intermediate);
}
+ TRACE_EVENT0("toplevel", "X509Certificate::X509Certificate::C");
// Platform-specific initialization.
Initialize();
}
« no previous file with comments | « net/base/network_delegate.cc ('k') | net/cert/x509_certificate_nss.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698