Remove QpackEncoder::DebugVisitor.

This is a follow-up to cr/272023695.

gfe-relnote: n/a, change to QUIC v99-only code.  Protected by existing disabled gfe2_reloadable_flag_quic_enable_version_99.
PiperOrigin-RevId: 272688523
Change-Id: Ie3b16f295dd87afaf1650619ff8f7ef9e38c847c
diff --git a/quic/core/qpack/qpack_encoder.cc b/quic/core/qpack/qpack_encoder.cc
index 56cd17a..a3420be 100644
--- a/quic/core/qpack/qpack_encoder.cc
+++ b/quic/core/qpack/qpack_encoder.cc
@@ -36,7 +36,6 @@
     : decoder_stream_error_delegate_(decoder_stream_error_delegate),
       decoder_stream_receiver_(this),
       maximum_blocked_streams_(0),
-      debug_visitor_(nullptr),
       header_list_count_(0) {
   DCHECK(decoder_stream_error_delegate_);
 }
@@ -112,7 +111,7 @@
   const bool blocking_allowed = blocking_manager_.blocking_allowed_on_stream(
       stream_id, maximum_blocked_streams_);
 
-  // Track events for debug visitor.
+  // Track events for histograms.
   bool dynamic_table_insertion_blocked = false;
   bool blocked_stream_limit_exhausted = false;
 
@@ -326,11 +325,6 @@
         "prevent referencing unacknowledged dynamic table entries.");
   }
 
-  if (debug_visitor_) {
-    debug_visitor_->OnHeaderListEncoded(dynamic_table_insertion_blocked,
-                                        blocked_stream_limit_exhausted);
-  }
-
   return instructions;
 }
 
diff --git a/quic/core/qpack/qpack_encoder.h b/quic/core/qpack/qpack_encoder.h
index 6060798..be4f4e2 100644
--- a/quic/core/qpack/qpack_encoder.h
+++ b/quic/core/qpack/qpack_encoder.h
@@ -47,25 +47,6 @@
     virtual void OnDecoderStreamError(QuicStringPiece error_message) = 0;
   };
 
-  // Interface for logging whenever dynamic table insertion is blocked and
-  // whenever using unacknowledged entries is not allowed because of the blocked
-  // stream limit.
-  class QUIC_EXPORT_PRIVATE DebugVisitor {
-   public:
-    virtual ~DebugVisitor() = default;
-
-    // Called once for each header list encoded.
-    // |dynamic_table_insertion_blocked| it true if for any header field in this
-    // header list the encoder would have inserted an entry into the dynamic
-    // table, but could not because that insertion would have evicted a blocking
-    // entry. |blocked_stream_limit_exhausted| is true if for any header field
-    // in this header list the encoder would have referred to an unacknowledged
-    // entry in the dynamic table, but could not because that would have
-    // violated the limit on the number of blocked streams.
-    virtual void OnHeaderListEncoded(bool dynamic_table_insertion_blocked,
-                                     bool blocked_stream_limit_exhausted) = 0;
-  };
-
   QpackEncoder(DecoderStreamErrorDelegate* decoder_stream_error_delegate);
   ~QpackEncoder() override;
 
@@ -106,10 +87,6 @@
     return &decoder_stream_receiver_;
   }
 
-  void set_debug_visitor(DebugVisitor* debug_visitor) {
-    debug_visitor_ = debug_visitor;
-  }
-
  private:
   friend class test::QpackEncoderPeer;
 
@@ -172,8 +149,6 @@
   QpackHeaderTable header_table_;
   uint64_t maximum_blocked_streams_;
   QpackBlockingManager blocking_manager_;
-  // TODO(bnc): Remove |debug_visitor_|.
-  DebugVisitor* debug_visitor_;
   int header_list_count_;
 };
 
diff --git a/quic/core/qpack/qpack_encoder_test.cc b/quic/core/qpack/qpack_encoder_test.cc
index fc3e7f0..9850822 100644
--- a/quic/core/qpack/qpack_encoder_test.cc
+++ b/quic/core/qpack/qpack_encoder_test.cc
@@ -22,15 +22,6 @@
 namespace test {
 namespace {
 
-class MockDebugVisitor : public QpackEncoder::DebugVisitor {
- public:
-  virtual ~MockDebugVisitor() = default;
-
-  MOCK_METHOD2(OnHeaderListEncoded,
-               void(bool dynamic_table_insertion_blocked,
-                    bool blocked_stream_limit_exhausted));
-};
-
 class QpackEncoderTest : public QuicTest {
  protected:
   QpackEncoderTest()
@@ -474,70 +465,6 @@
   EXPECT_EQ(30u, QpackHeaderTablePeer::dynamic_table_capacity(header_table));
 }
 
-TEST_F(QpackEncoderTest, DebugVisitor) {
-  StrictMock<MockDebugVisitor> debug_visitor;
-  encoder_.set_debug_visitor(&debug_visitor);
-  encoder_.SetMaximumDynamicTableCapacity(QpackEntry::Size("foo", "bar"));
-
-  // Set Dynamic Table Capacity instruction.
-  EXPECT_CALL(encoder_stream_sender_delegate_, WriteStreamData(_));
-  encoder_.SetDynamicTableCapacity(QpackEntry::Size("foo", "bar"));
-
-  // Static table entry only, no blocking.
-  spdy::SpdyHeaderBlock header_list1;
-  header_list1[":method"] = "GET";
-  EXPECT_CALL(debug_visitor, OnHeaderListEncoded(
-                                 /* dynamic_table_insertion_blocked = */ false,
-                                 /* blocked_stream_limit_exhausted = */ false));
-  encoder_.EncodeHeaderList(/* stream_id = */ 1, header_list1, nullptr);
-
-  // Insert single dynamic table entry.  First stream is allowed to be blocked.
-  spdy::SpdyHeaderBlock header_list2;
-  header_list2["foo"] = "bar";
-  EXPECT_CALL(debug_visitor, OnHeaderListEncoded(
-                                 /* dynamic_table_insertion_blocked = */ false,
-                                 /* blocked_stream_limit_exhausted = */ false));
-  // Add entry to dynamic table.
-  EXPECT_CALL(encoder_stream_sender_delegate_, WriteStreamData(_));
-  encoder_.EncodeHeaderList(/* stream_id = */ 1, header_list2, nullptr);
-
-  // First stream is blocked.  Second stream is not allowed to be blocked.
-  // This would have been an insertion with name reference.
-  spdy::SpdyHeaderBlock header_list3;
-  header_list3["foo"] = "baz";
-  EXPECT_CALL(debug_visitor, OnHeaderListEncoded(
-                                 /* dynamic_table_insertion_blocked = */ false,
-                                 /* blocked_stream_limit_exhausted = */ true));
-  encoder_.EncodeHeaderList(/* stream_id = */ 2, header_list3, nullptr);
-
-  // First stream is blocked.  Second stream is not allowed to be blocked.
-  // This would have been an insertion without name reference.
-  spdy::SpdyHeaderBlock header_list4;
-  header_list4["bar"] = "baz";
-  EXPECT_CALL(debug_visitor, OnHeaderListEncoded(
-                                 /* dynamic_table_insertion_blocked = */ false,
-                                 /* blocked_stream_limit_exhausted = */ true));
-  encoder_.EncodeHeaderList(/* stream_id = */ 2, header_list4, nullptr);
-
-  // Cannot insert into dynamic table because first entry takes up all space and
-  // it is blocking.  This would have been an insertion with name reference.
-  spdy::SpdyHeaderBlock header_list5;
-  header_list5["foo"] = "baz";
-  EXPECT_CALL(debug_visitor, OnHeaderListEncoded(
-                                 /* dynamic_table_insertion_blocked = */ true,
-                                 /* blocked_stream_limit_exhausted = */ false));
-  encoder_.EncodeHeaderList(/* stream_id = */ 1, header_list5, nullptr);
-
-  // Cannot insert into dynamic table because first entry takes up all space and
-  // it is blocking.  This would have been an insertion without name reference.
-  spdy::SpdyHeaderBlock header_list6;
-  header_list6["bar"] = "baz";
-  EXPECT_CALL(debug_visitor, OnHeaderListEncoded(
-                                 /* dynamic_table_insertion_blocked = */ true,
-                                 /* blocked_stream_limit_exhausted = */ false));
-  encoder_.EncodeHeaderList(/* stream_id = */ 1, header_list6, nullptr);
-}
-
 }  // namespace
 }  // namespace test
 }  // namespace quic