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

Unified Diff: net/quic/crypto/quic_crypto_client_config.cc

Issue 416983005: QUIC - Track the reason for sending InchoateClientHello in UMA (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@chlo_histogram
Patch Set: rebase TOT Created 6 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
« no previous file with comments | « no previous file | tools/metrics/histograms/histograms.xml » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/quic/crypto/quic_crypto_client_config.cc
diff --git a/net/quic/crypto/quic_crypto_client_config.cc b/net/quic/crypto/quic_crypto_client_config.cc
index 33d5242b708bf82bfc6bd79b5109b520cee3b56d..27d9d060489b1fba4bde17090cf9d88ee06a1800 100644
--- a/net/quic/crypto/quic_crypto_client_config.cc
+++ b/net/quic/crypto/quic_crypto_client_config.cc
@@ -4,6 +4,7 @@
#include "net/quic/crypto/quic_crypto_client_config.h"
+#include "base/metrics/histogram.h"
#include "base/metrics/sparse_histogram.h"
#include "base/stl_util.h"
#include "base/strings/string_util.h"
@@ -29,6 +30,30 @@ using std::vector;
namespace net {
+namespace {
+
+enum ServerConfigState {
+ // WARNING: Do not change the numerical values of any of server config state.
+ // Do not remove deprecated server config states - just comment them as
+ // deprecated.
+ SERVER_CONFIG_EMPTY = 0,
+ SERVER_CONFIG_INVALID = 1,
+ SERVER_CONFIG_CORRUPTED = 2,
+ SERVER_CONFIG_EXPIRED = 3,
+
+ // NOTE: Add new server config states only immediately above this line. Make
+ // sure to update the QuicServerConfigState enum in
+ // tools/metrics/histograms/histograms.xml accordingly.
+ SERVER_CONFIG_COUNT
+};
+
+void RecordServerConfigState(ServerConfigState server_config_state) {
+ UMA_HISTOGRAM_ENUMERATION("Net.QuicClientHelloServerConfigState",
+ server_config_state, SERVER_CONFIG_COUNT);
+}
+
+} // namespace
+
QuicCryptoClientConfig::QuicCryptoClientConfig()
: disable_ecdsa_(false) {}
@@ -43,7 +68,13 @@ QuicCryptoClientConfig::CachedState::CachedState()
QuicCryptoClientConfig::CachedState::~CachedState() {}
bool QuicCryptoClientConfig::CachedState::IsComplete(QuicWallTime now) const {
- if (server_config_.empty() || !server_config_valid_) {
+ if (server_config_.empty()) {
+ RecordServerConfigState(SERVER_CONFIG_EMPTY);
+ return false;
+ }
+
+ if (!server_config_valid_) {
+ RecordServerConfigState(SERVER_CONFIG_INVALID);
return false;
}
@@ -51,12 +82,14 @@ bool QuicCryptoClientConfig::CachedState::IsComplete(QuicWallTime now) const {
if (!scfg) {
// Should be impossible short of cache corruption.
DCHECK(false);
+ RecordServerConfigState(SERVER_CONFIG_CORRUPTED);
return false;
}
uint64 expiry_seconds;
if (scfg->GetUint64(kEXPY, &expiry_seconds) != QUIC_NO_ERROR ||
wtc 2014/07/29 01:29:06 Nit: scfg->GetUint64(kEXPY, &expiry_seconds) != QU
ramant (doing other things) 2014/07/29 23:52:32 Thanks Wan-Teh. Fixed it in https://codereview.chr
now.ToUNIXSeconds() >= expiry_seconds) {
+ RecordServerConfigState(SERVER_CONFIG_EXPIRED);
return false;
}
« no previous file with comments | « no previous file | tools/metrics/histograms/histograms.xml » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698