Index: net/quic/quic_chromium_client_session.cc |
diff --git a/net/quic/quic_chromium_client_session.cc b/net/quic/quic_chromium_client_session.cc |
index 6ae42dd3755639aff100fd7b48968765d559c204..d7bebcbc18f9ddaa7631d7f3785e5cc895fb0b59 100644 |
--- a/net/quic/quic_chromium_client_session.cc |
+++ b/net/quic/quic_chromium_client_session.cc |
@@ -141,6 +141,22 @@ std::unique_ptr<base::Value> NetLogQuicPushPromiseReceivedCallback( |
return std::move(dict); |
} |
+class HpackEncoderDebugVisitor : public QuicHeadersStream::HpackDebugVisitor { |
+ void OnUseEntry(QuicTime::Delta elapsed) override { |
+ UMA_HISTOGRAM_TIMES( |
+ "Net.QuicHpackEncoder.IndexedEntryAge", |
+ base::TimeDelta::FromMicroseconds(elapsed.ToMicroseconds())); |
+ } |
+}; |
+ |
+class HpackDecoderDebugVisitor : public QuicHeadersStream::HpackDebugVisitor { |
+ void OnUseEntry(QuicTime::Delta elapsed) override { |
+ UMA_HISTOGRAM_TIMES( |
+ "Net.QuicHpackDecoder.IndexedEntryAge", |
+ base::TimeDelta::FromMicroseconds(elapsed.ToMicroseconds())); |
+ } |
+}; |
+ |
} // namespace |
QuicChromiumClientSession::StreamRequest::StreamRequest() : stream_(nullptr) {} |
@@ -366,6 +382,14 @@ QuicChromiumClientSession::~QuicChromiumClientSession() { |
static_cast<base::HistogramBase::Sample>(stats.max_sequence_reordering)); |
} |
+void QuicChromiumClientSession::Initialize() { |
+ QuicClientSessionBase::Initialize(); |
+ headers_stream()->SetHpackEncoderDebugVisitor( |
+ base::WrapUnique(new HpackEncoderDebugVisitor())); |
+ headers_stream()->SetHpackDecoderDebugVisitor( |
+ base::WrapUnique(new HpackDecoderDebugVisitor())); |
+} |
+ |
void QuicChromiumClientSession::OnHeadersHeadOfLineBlocking( |
QuicTime::Delta delta) { |
UMA_HISTOGRAM_TIMES( |