Chromium Code Reviews| 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 91f763c9d6dcdf6b4186589fe9adbb173342e40d..34936c322cfdbea88ddbb0a748b1ee1508daa175 100644 |
| --- a/net/quic/quic_chromium_client_session.cc |
| +++ b/net/quic/quic_chromium_client_session.cc |
| @@ -143,6 +143,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.QuicHpackEncoderIndexedEntryAge", |
|
Alexei Svitkine (slow)
2016/05/24 18:00:30
Nit: Maybe slightly more readable if you add anoth
Buck
2016/05/24 18:15:06
Done.
|
| + base::TimeDelta::FromMicroseconds(elapsed.ToMicroseconds())); |
| + } |
| +}; |
| + |
| +class HpackDecoderDebugVisitor : public QuicHeadersStream::HpackDebugVisitor { |
| + void OnUseEntry(QuicTime::Delta elapsed) override { |
| + UMA_HISTOGRAM_TIMES( |
| + "Net.QuicHpackDecoderIndexedEntryAge", |
| + base::TimeDelta::FromMicroseconds(elapsed.ToMicroseconds())); |
| + } |
| +}; |
| + |
| } // namespace |
| QuicChromiumClientSession::StreamRequest::StreamRequest() : stream_(nullptr) {} |
| @@ -368,6 +384,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( |