| 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(
|
|
|