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

Unified Diff: components/certificate_transparency/single_tree_tracker.cc

Issue 2153123002: Certificate Transparency: Collect metrics on age of SCT vs STH (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Renaming enum name Created 4 years, 5 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: components/certificate_transparency/single_tree_tracker.cc
diff --git a/components/certificate_transparency/single_tree_tracker.cc b/components/certificate_transparency/single_tree_tracker.cc
index 7946208ca753303a7589260e7a60fd34a58bb5e0..dcd28a52335dfdb0ad4d5bdf0da687a96fd765ec 100644
--- a/components/certificate_transparency/single_tree_tracker.cc
+++ b/components/certificate_transparency/single_tree_tracker.cc
@@ -6,6 +6,7 @@
#include <utility>
+#include "base/metrics/histogram_macros.h"
#include "net/cert/ct_log_verifier.h"
#include "net/cert/signed_certificate_timestamp.h"
#include "net/cert/x509_certificate.h"
@@ -14,6 +15,22 @@ using net::ct::SignedTreeHead;
namespace certificate_transparency {
+namespace internal {
+
+const char kCanCheckForInclusionHistogramName[] =
+ "Net.CertificateTransparency.CanInclusionCheckSCT";
+
+} // namespace internal
+
+namespace {
+
+void LogCanBeCheckedForInclusionToUMA(bool can_be_checked) {
Eran Messeri 2016/07/21 17:53:43 FYI I've documented, in this function, what we're
+ UMA_HISTOGRAM_BOOLEAN(internal::kCanCheckForInclusionHistogramName,
+ can_be_checked);
+}
+
+} // namespace
Ryan Sleevi 2016/07/20 20:34:00 Generally we try to have the unnamed namespace at
Eran Messeri 2016/07/21 17:53:43 Moved the unnamed namespace to the top, will keep
+
SingleTreeTracker::SingleTreeTracker(
scoped_refptr<const net::CTLogVerifier> ct_log)
: ct_log_(std::move(ct_log)) {}
@@ -34,15 +51,18 @@ void SingleTreeTracker::OnSCTVerified(
if (verified_sth_.timestamp.is_null() ||
(verified_sth_.timestamp <
(sct->timestamp + base::TimeDelta::FromHours(24)))) {
- // TODO(eranm): UMA - how often SCTs have to wait for a newer STH for
- // inclusion check.
entries_status_.insert(
std::make_pair(sct->timestamp, SCT_PENDING_NEWER_STH));
+
+ // Do not log histogram if there's no STH for this log yet, as it does
+ // not provide any meaningful data on how fresh SCTs usually are.
+ if (!verified_sth_.timestamp.is_null())
+ LogCanBeCheckedForInclusionToUMA(false);
return;
}
+ LogCanBeCheckedForInclusionToUMA(true);
// TODO(eranm): Check inclusion here.
- // TODO(eranm): UMA - how often inclusion can be checked immediately.
entries_status_.insert(
std::make_pair(sct->timestamp, SCT_PENDING_INCLUSION_CHECK));
}

Powered by Google App Engine
This is Rietveld 408576698