Migrates all users of spdy::Http2HeaderBlock to quiche::HttpHeaderBlock.

The former is merely an alias for the latter, so this is not a functional change.

Tested:
    TAP for global presubmit queue
    http://test/OCL:651173268:BASE:652853027:1721143399639:28650e2a

Protected by refactoring, no functional change, not protected.

PiperOrigin-RevId: 652869845
diff --git a/quiche/quic/core/qpack/qpack_encoder.cc b/quiche/quic/core/qpack/qpack_encoder.cc
index 61996a5..fda0e3c 100644
--- a/quiche/quic/core/qpack/qpack_encoder.cc
+++ b/quiche/quic/core/qpack/qpack_encoder.cc
@@ -78,7 +78,7 @@
 }
 
 QpackEncoder::Representations QpackEncoder::FirstPassEncode(
-    QuicStreamId stream_id, const spdy::Http2HeaderBlock& header_list,
+    QuicStreamId stream_id, const quiche::HttpHeaderBlock& header_list,
     QpackBlockingManager::IndexSet* referred_indices,
     QuicByteCount* encoder_stream_sent_byte_count) {
   // If previous instructions are buffered in |encoder_stream_sender_|,
@@ -389,7 +389,7 @@
 }
 
 std::string QpackEncoder::EncodeHeaderList(
-    QuicStreamId stream_id, const spdy::Http2HeaderBlock& header_list,
+    QuicStreamId stream_id, const quiche::HttpHeaderBlock& header_list,
     QuicByteCount* encoder_stream_sent_byte_count) {
   // Keep track of all dynamic table indices that this header block refers to so
   // that it can be passed to QpackBlockingManager.
diff --git a/quiche/quic/core/qpack/qpack_encoder.h b/quiche/quic/core/qpack/qpack_encoder.h
index 201f623..a631ac4 100644
--- a/quiche/quic/core/qpack/qpack_encoder.h
+++ b/quiche/quic/core/qpack/qpack_encoder.h
@@ -21,7 +21,7 @@
 #include "quiche/quic/platform/api/quic_export.h"
 #include "quiche/quic/platform/api/quic_exported_stats.h"
 #include "quiche/quic/platform/api/quic_flags.h"
-#include "quiche/spdy/core/http2_header_block.h"
+#include "quiche/common/http/http_header_block.h"
 
 namespace quic {
 
@@ -53,7 +53,7 @@
   // |*encoder_stream_sent_byte_count| will be set to the number of bytes sent
   // on the encoder stream to insert dynamic table entries.
   std::string EncodeHeaderList(QuicStreamId stream_id,
-                               const spdy::Http2HeaderBlock& header_list,
+                               const quiche::HttpHeaderBlock& header_list,
                                QuicByteCount* encoder_stream_sent_byte_count);
 
   // Set maximum dynamic table capacity to |maximum_dynamic_table_capacity|,
@@ -137,7 +137,7 @@
   // absolute indices.  Returned representation objects may have
   // absl::string_views pointing to strings owned by |*header_list|.
   Representations FirstPassEncode(
-      QuicStreamId stream_id, const spdy::Http2HeaderBlock& header_list,
+      QuicStreamId stream_id, const quiche::HttpHeaderBlock& header_list,
       QpackBlockingManager::IndexSet* referred_indices,
       QuicByteCount* encoder_stream_sent_byte_count);
 
diff --git a/quiche/quic/core/qpack/qpack_encoder_test.cc b/quiche/quic/core/qpack/qpack_encoder_test.cc
index d38e90c..13b7b6b 100644
--- a/quiche/quic/core/qpack/qpack_encoder_test.cc
+++ b/quiche/quic/core/qpack/qpack_encoder_test.cc
@@ -70,7 +70,7 @@
     return huffman_encoding_ == HuffmanEncoding::kEnabled;
   }
 
-  std::string Encode(const spdy::Http2HeaderBlock& header_list) {
+  std::string Encode(const quiche::HttpHeaderBlock& header_list) {
     return encoder_.EncodeHeaderList(/* stream_id = */ 1, header_list,
                                      &encoder_stream_sent_byte_count_);
   }
@@ -90,7 +90,7 @@
 TEST_P(QpackEncoderTest, Empty) {
   EXPECT_CALL(encoder_stream_sender_delegate_, NumBytesBuffered())
       .WillRepeatedly(Return(0));
-  spdy::Http2HeaderBlock header_list;
+  quiche::HttpHeaderBlock header_list;
   std::string output = Encode(header_list);
 
   std::string expected_output;
@@ -101,7 +101,7 @@
 TEST_P(QpackEncoderTest, EmptyName) {
   EXPECT_CALL(encoder_stream_sender_delegate_, NumBytesBuffered())
       .WillRepeatedly(Return(0));
-  spdy::Http2HeaderBlock header_list;
+  quiche::HttpHeaderBlock header_list;
   header_list[""] = "foo";
   std::string output = Encode(header_list);
 
@@ -117,7 +117,7 @@
 TEST_P(QpackEncoderTest, EmptyValue) {
   EXPECT_CALL(encoder_stream_sender_delegate_, NumBytesBuffered())
       .WillRepeatedly(Return(0));
-  spdy::Http2HeaderBlock header_list;
+  quiche::HttpHeaderBlock header_list;
   header_list["foo"] = "";
   std::string output = Encode(header_list);
 
@@ -133,7 +133,7 @@
 TEST_P(QpackEncoderTest, EmptyNameAndValue) {
   EXPECT_CALL(encoder_stream_sender_delegate_, NumBytesBuffered())
       .WillRepeatedly(Return(0));
-  spdy::Http2HeaderBlock header_list;
+  quiche::HttpHeaderBlock header_list;
   header_list[""] = "";
   std::string output = Encode(header_list);
 
@@ -145,7 +145,7 @@
 TEST_P(QpackEncoderTest, Simple) {
   EXPECT_CALL(encoder_stream_sender_delegate_, NumBytesBuffered())
       .WillRepeatedly(Return(0));
-  spdy::Http2HeaderBlock header_list;
+  quiche::HttpHeaderBlock header_list;
   header_list["foo"] = "bar";
   std::string output = Encode(header_list);
 
@@ -162,7 +162,7 @@
 TEST_P(QpackEncoderTest, Multiple) {
   EXPECT_CALL(encoder_stream_sender_delegate_, NumBytesBuffered())
       .WillRepeatedly(Return(0));
-  spdy::Http2HeaderBlock header_list;
+  quiche::HttpHeaderBlock header_list;
   header_list["foo"] = "bar";
   // 'Z' would be Huffman encoded to 8 bits, so no Huffman encoding is used.
   header_list["ZZZZZZZ"] = std::string(127, 'Z');
@@ -196,7 +196,7 @@
   EXPECT_CALL(encoder_stream_sender_delegate_, NumBytesBuffered())
       .WillRepeatedly(Return(0));
   {
-    spdy::Http2HeaderBlock header_list;
+    quiche::HttpHeaderBlock header_list;
     header_list[":method"] = "GET";
     header_list["accept-encoding"] = "gzip, deflate, br";
     header_list["location"] = "";
@@ -207,7 +207,7 @@
     EXPECT_EQ(expected_output, output);
   }
   {
-    spdy::Http2HeaderBlock header_list;
+    quiche::HttpHeaderBlock header_list;
     header_list[":method"] = "POST";
     header_list["accept-encoding"] = "compress";
     header_list["location"] = "foo";
@@ -224,7 +224,7 @@
     EXPECT_EQ(expected_output, output);
   }
   {
-    spdy::Http2HeaderBlock header_list;
+    quiche::HttpHeaderBlock header_list;
     header_list[":method"] = "TRACE";
     header_list["accept-encoding"] = "";
 
@@ -251,7 +251,7 @@
 TEST_P(QpackEncoderTest, SplitAlongNullCharacter) {
   EXPECT_CALL(encoder_stream_sender_delegate_, NumBytesBuffered())
       .WillRepeatedly(Return(0));
-  spdy::Http2HeaderBlock header_list;
+  quiche::HttpHeaderBlock header_list;
   header_list["foo"] = absl::string_view("bar\0bar\0baz", 11);
   std::string output = Encode(header_list);
 
@@ -336,7 +336,7 @@
   encoder_.SetMaximumDynamicTableCapacity(4096);
   encoder_.SetDynamicTableCapacity(4096);
 
-  spdy::Http2HeaderBlock header_list;
+  quiche::HttpHeaderBlock header_list;
   header_list["foo"] = "bar";
   header_list.AppendValueOrAddHeader("foo",
                                      "baz");  // name matches dynamic entry
@@ -386,7 +386,7 @@
   encoder_.SetMaximumDynamicTableCapacity(QpackEntry::Size("foo", "bar"));
   encoder_.SetDynamicTableCapacity(QpackEntry::Size("foo", "bar"));
 
-  spdy::Http2HeaderBlock header_list;
+  quiche::HttpHeaderBlock header_list;
   header_list["foo"] = "bar";
   header_list.AppendValueOrAddHeader("foo",
                                      "baz");  // name matches dynamic entry
@@ -438,7 +438,7 @@
   encoder_.SetMaximumDynamicTableCapacity(4096);
   encoder_.SetDynamicTableCapacity(4096);
 
-  spdy::Http2HeaderBlock header_list1;
+  quiche::HttpHeaderBlock header_list1;
   header_list1["foo"] = "bar";
 
   // Set Dynamic Table Capacity instruction.
@@ -474,7 +474,7 @@
   EXPECT_EQ(insert_entry1.size(), encoder_stream_sent_byte_count_);
 
   // Stream 1 is blocked.  Stream 2 is not allowed to block.
-  spdy::Http2HeaderBlock header_list2;
+  quiche::HttpHeaderBlock header_list2;
   header_list2["foo"] = "bar";  // name and value match dynamic entry
   header_list2.AppendValueOrAddHeader("foo",
                                       "baz");  // name matches dynamic entry
@@ -606,7 +606,7 @@
 TEST_P(QpackEncoderTest, Draining) {
   EXPECT_CALL(encoder_stream_sender_delegate_, NumBytesBuffered())
       .WillRepeatedly(Return(0));
-  spdy::Http2HeaderBlock header_list1;
+  quiche::HttpHeaderBlock header_list1;
   header_list1["one"] = "foo";
   header_list1["two"] = "foo";
   header_list1["three"] = "foo";
@@ -643,7 +643,7 @@
 
   // Entry is identical to oldest one, which is draining.  It will be
   // duplicated and referenced.
-  spdy::Http2HeaderBlock header_list2;
+  quiche::HttpHeaderBlock header_list2;
   header_list2["one"] = "foo";
 
   // Duplicate oldest entry.
@@ -657,7 +657,7 @@
                              &expected_output));
   EXPECT_EQ(expected_output, Encode(header_list2));
 
-  spdy::Http2HeaderBlock header_list3;
+  quiche::HttpHeaderBlock header_list3;
   // Entry is identical to second oldest one, which is draining.  There is no
   // room to duplicate, it will be encoded with string literals.
   header_list3.AppendValueOrAddHeader("two", "foo");
@@ -698,7 +698,7 @@
   encoder_.SetMaximumDynamicTableCapacity(4096);
   encoder_.SetDynamicTableCapacity(4096);
 
-  spdy::Http2HeaderBlock header_list1;
+  quiche::HttpHeaderBlock header_list1;
   header_list1["foo"] = "bar";
   header_list1.AppendValueOrAddHeader("foo", "baz");
   header_list1["cookie"] = "baz";  // name matches static entry
@@ -738,7 +738,7 @@
   EXPECT_CALL(encoder_stream_sender_delegate_, NumBytesBuffered())
       .WillRepeatedly(Return(0));
 
-  spdy::Http2HeaderBlock header_list2;
+  quiche::HttpHeaderBlock header_list2;
   header_list2["foo"] = "bar";
   header_list2.AppendValueOrAddHeader("foo",
                                       "baz");  // name matches dynamic entry
@@ -787,7 +787,7 @@
   encoder_.SetMaximumDynamicTableCapacity(4096);
   encoder_.SetDynamicTableCapacity(4096);
 
-  spdy::Http2HeaderBlock header_list1;
+  quiche::HttpHeaderBlock header_list1;
   header_list1["foo"] = "bar";
   header_list1.AppendValueOrAddHeader("foo",
                                       "baz");  // name matches dynamic entry
@@ -834,7 +834,7 @@
   EXPECT_CALL(encoder_stream_sender_delegate_, NumBytesBuffered())
       .WillRepeatedly(Return(kTooManyBytesBuffered));
 
-  spdy::Http2HeaderBlock header_list2;
+  quiche::HttpHeaderBlock header_list2;
   header_list2["foo"] = "bar";  // matches previously inserted dynamic entry
   header_list2["bar"] = "baz";
   header_list2["cookie"] = "baz";  // name matches static entry
@@ -868,7 +868,7 @@
   EXPECT_EQ(0u, header_table->inserted_entry_count());
   EXPECT_EQ(0u, header_table->dropped_entry_count());
 
-  spdy::Http2HeaderBlock header_list1;
+  quiche::HttpHeaderBlock header_list1;
   header_list1["foo"] = "bar";
 
   // Set Dynamic Table Capacity instruction.
@@ -911,7 +911,7 @@
   // cancelled.  However, this entry is unacknowledged, therefore it must not be
   // evicted according to RFC 9204 Section 2.1.1.
 
-  spdy::Http2HeaderBlock header_list2;
+  quiche::HttpHeaderBlock header_list2;
   header_list2["bar"] = "baz";
 
   ASSERT_TRUE(
@@ -937,7 +937,7 @@
   encoder_.SetMaximumDynamicTableCapacity(4096);
   encoder_.SetDynamicTableCapacity(4096);
 
-  spdy::Http2HeaderBlock header_list;
+  quiche::HttpHeaderBlock header_list;
   header_list[":method"] = "bar";
 
   // Set Dynamic Table Capacity instruction.
@@ -989,7 +989,7 @@
 TEST_P(QpackEncoderTest, UseDynamicTableNameOnlyMatch) {
   EXPECT_CALL(encoder_stream_sender_delegate_, NumBytesBuffered())
       .WillRepeatedly(Return(0));
-  spdy::Http2HeaderBlock header_list1;
+  quiche::HttpHeaderBlock header_list1;
   header_list1["one"] = "foo";
   header_list1["two"] = "foo";
   header_list1["three"] = "foo";
@@ -1025,7 +1025,7 @@
   EXPECT_EQ(expected_output, Encode(header_list1));
 
   // Entry has the same name as the first one.
-  spdy::Http2HeaderBlock header_list2;
+  quiche::HttpHeaderBlock header_list2;
   header_list2["one"] = "bar";
 
   ASSERT_TRUE(absl::HexStringToBytes(
@@ -1043,7 +1043,7 @@
 
   // Entry is identical to the first one, which is draining, and has the same
   // name but different value as the last one, which is not draining.
-  spdy::Http2HeaderBlock header_list3;
+  quiche::HttpHeaderBlock header_list3;
   header_list3["one"] = "foo";
 
   // Entry matches name and value of oldest dynamic table entry, which cannot be
diff --git a/quiche/quic/core/qpack/qpack_round_trip_test.cc b/quiche/quic/core/qpack/qpack_round_trip_test.cc
index ed3fb19..a03660b 100644
--- a/quiche/quic/core/qpack/qpack_round_trip_test.cc
+++ b/quiche/quic/core/qpack/qpack_round_trip_test.cc
@@ -11,7 +11,7 @@
 #include "quiche/quic/platform/api/quic_test.h"
 #include "quiche/quic/test_tools/qpack/qpack_decoder_test_utils.h"
 #include "quiche/quic/test_tools/qpack/qpack_test_utils.h"
-#include "quiche/spdy/core/http2_header_block.h"
+#include "quiche/common/http/http_header_block.h"
 
 using ::testing::Values;
 
@@ -24,8 +24,8 @@
   QpackRoundTripTest() = default;
   ~QpackRoundTripTest() override = default;
 
-  spdy::Http2HeaderBlock EncodeThenDecode(
-      const spdy::Http2HeaderBlock& header_list) {
+  quiche::HttpHeaderBlock EncodeThenDecode(
+      const quiche::HttpHeaderBlock& header_list) {
     NoopDecoderStreamErrorDelegate decoder_stream_error_delegate;
     NoopQpackStreamSenderDelegate encoder_stream_sender_delegate;
     QpackEncoder encoder(&decoder_stream_error_delegate,
@@ -56,80 +56,80 @@
                                 FragmentMode::kOctetByOctet));
 
 TEST_P(QpackRoundTripTest, Empty) {
-  spdy::Http2HeaderBlock header_list;
-  spdy::Http2HeaderBlock output = EncodeThenDecode(header_list);
+  quiche::HttpHeaderBlock header_list;
+  quiche::HttpHeaderBlock output = EncodeThenDecode(header_list);
   EXPECT_EQ(header_list, output);
 }
 
 TEST_P(QpackRoundTripTest, EmptyName) {
-  spdy::Http2HeaderBlock header_list;
+  quiche::HttpHeaderBlock header_list;
   header_list["foo"] = "bar";
   header_list[""] = "bar";
 
-  spdy::Http2HeaderBlock output = EncodeThenDecode(header_list);
+  quiche::HttpHeaderBlock output = EncodeThenDecode(header_list);
   EXPECT_EQ(header_list, output);
 }
 
 TEST_P(QpackRoundTripTest, EmptyValue) {
-  spdy::Http2HeaderBlock header_list;
+  quiche::HttpHeaderBlock header_list;
   header_list["foo"] = "";
   header_list[""] = "";
 
-  spdy::Http2HeaderBlock output = EncodeThenDecode(header_list);
+  quiche::HttpHeaderBlock output = EncodeThenDecode(header_list);
   EXPECT_EQ(header_list, output);
 }
 
 TEST_P(QpackRoundTripTest, MultipleWithLongEntries) {
-  spdy::Http2HeaderBlock header_list;
+  quiche::HttpHeaderBlock header_list;
   header_list["foo"] = "bar";
   header_list[":path"] = "/";
   header_list["foobaar"] = std::string(127, 'Z');
   header_list[std::string(1000, 'b')] = std::string(1000, 'c');
 
-  spdy::Http2HeaderBlock output = EncodeThenDecode(header_list);
+  quiche::HttpHeaderBlock output = EncodeThenDecode(header_list);
   EXPECT_EQ(header_list, output);
 }
 
 TEST_P(QpackRoundTripTest, StaticTable) {
   {
-    spdy::Http2HeaderBlock header_list;
+    quiche::HttpHeaderBlock header_list;
     header_list[":method"] = "GET";
     header_list["accept-encoding"] = "gzip, deflate";
     header_list["cache-control"] = "";
     header_list["foo"] = "bar";
     header_list[":path"] = "/";
 
-    spdy::Http2HeaderBlock output = EncodeThenDecode(header_list);
+    quiche::HttpHeaderBlock output = EncodeThenDecode(header_list);
     EXPECT_EQ(header_list, output);
   }
   {
-    spdy::Http2HeaderBlock header_list;
+    quiche::HttpHeaderBlock header_list;
     header_list[":method"] = "POST";
     header_list["accept-encoding"] = "brotli";
     header_list["cache-control"] = "foo";
     header_list["foo"] = "bar";
     header_list[":path"] = "/";
 
-    spdy::Http2HeaderBlock output = EncodeThenDecode(header_list);
+    quiche::HttpHeaderBlock output = EncodeThenDecode(header_list);
     EXPECT_EQ(header_list, output);
   }
   {
-    spdy::Http2HeaderBlock header_list;
+    quiche::HttpHeaderBlock header_list;
     header_list[":method"] = "CONNECT";
     header_list["accept-encoding"] = "";
     header_list["foo"] = "bar";
     header_list[":path"] = "/";
 
-    spdy::Http2HeaderBlock output = EncodeThenDecode(header_list);
+    quiche::HttpHeaderBlock output = EncodeThenDecode(header_list);
     EXPECT_EQ(header_list, output);
   }
 }
 
 TEST_P(QpackRoundTripTest, ValueHasNullCharacter) {
-  spdy::Http2HeaderBlock header_list;
+  quiche::HttpHeaderBlock header_list;
   header_list["foo"] = absl::string_view("bar\0bar\0baz", 11);
 
-  spdy::Http2HeaderBlock output = EncodeThenDecode(header_list);
+  quiche::HttpHeaderBlock output = EncodeThenDecode(header_list);
   EXPECT_EQ(header_list, output);
 }
 
diff --git a/quiche/quic/core/qpack/value_splitting_header_list.cc b/quiche/quic/core/qpack/value_splitting_header_list.cc
index 754b673..ad6d3a4 100644
--- a/quiche/quic/core/qpack/value_splitting_header_list.cc
+++ b/quiche/quic/core/qpack/value_splitting_header_list.cc
@@ -20,8 +20,8 @@
 }  // namespace
 
 ValueSplittingHeaderList::const_iterator::const_iterator(
-    const spdy::Http2HeaderBlock* header_list,
-    spdy::Http2HeaderBlock::const_iterator header_list_iterator)
+    const quiche::HttpHeaderBlock* header_list,
+    quiche::HttpHeaderBlock::const_iterator header_list_iterator)
     : header_list_(header_list),
       header_list_iterator_(header_list_iterator),
       value_start_(0) {
@@ -93,7 +93,7 @@
 }
 
 ValueSplittingHeaderList::ValueSplittingHeaderList(
-    const spdy::Http2HeaderBlock* header_list)
+    const quiche::HttpHeaderBlock* header_list)
     : header_list_(header_list) {
   QUICHE_DCHECK(header_list_);
 }
diff --git a/quiche/quic/core/qpack/value_splitting_header_list.h b/quiche/quic/core/qpack/value_splitting_header_list.h
index fb8d647..1ef5f7c 100644
--- a/quiche/quic/core/qpack/value_splitting_header_list.h
+++ b/quiche/quic/core/qpack/value_splitting_header_list.h
@@ -7,7 +7,7 @@
 
 #include "absl/strings/string_view.h"
 #include "quiche/quic/platform/api/quic_export.h"
-#include "quiche/spdy/core/http2_header_block.h"
+#include "quiche/common/http/http_header_block.h"
 
 namespace quic {
 
@@ -16,13 +16,14 @@
 // cookies and along '\0' separators for other header fields.
 class QUICHE_EXPORT ValueSplittingHeaderList {
  public:
-  using value_type = spdy::Http2HeaderBlock::value_type;
+  using value_type = quiche::HttpHeaderBlock::value_type;
 
   class QUICHE_EXPORT const_iterator {
    public:
     // |header_list| must outlive this object.
-    const_iterator(const spdy::Http2HeaderBlock* header_list,
-                   spdy::Http2HeaderBlock::const_iterator header_list_iterator);
+    const_iterator(
+        const quiche::HttpHeaderBlock* header_list,
+        quiche::HttpHeaderBlock::const_iterator header_list_iterator);
     const_iterator(const const_iterator&) = default;
     const_iterator& operator=(const const_iterator&) = delete;
 
@@ -38,15 +39,15 @@
     // Find next separator; update |value_end_| and |header_field_|.
     void UpdateHeaderField();
 
-    const spdy::Http2HeaderBlock* const header_list_;
-    spdy::Http2HeaderBlock::const_iterator header_list_iterator_;
+    const quiche::HttpHeaderBlock* const header_list_;
+    quiche::HttpHeaderBlock::const_iterator header_list_iterator_;
     absl::string_view::size_type value_start_;
     absl::string_view::size_type value_end_;
     value_type header_field_;
   };
 
   // |header_list| must outlive this object.
-  explicit ValueSplittingHeaderList(const spdy::Http2HeaderBlock* header_list);
+  explicit ValueSplittingHeaderList(const quiche::HttpHeaderBlock* header_list);
   ValueSplittingHeaderList(const ValueSplittingHeaderList&) = delete;
   ValueSplittingHeaderList& operator=(const ValueSplittingHeaderList&) = delete;
 
@@ -54,7 +55,7 @@
   const_iterator end() const;
 
  private:
-  const spdy::Http2HeaderBlock* const header_list_;
+  const quiche::HttpHeaderBlock* const header_list_;
 };
 
 }  // namespace quic
diff --git a/quiche/quic/core/qpack/value_splitting_header_list_test.cc b/quiche/quic/core/qpack/value_splitting_header_list_test.cc
index 555afd6..f71538d 100644
--- a/quiche/quic/core/qpack/value_splitting_header_list_test.cc
+++ b/quiche/quic/core/qpack/value_splitting_header_list_test.cc
@@ -18,7 +18,7 @@
 using ::testing::Pair;
 
 TEST(ValueSplittingHeaderListTest, Comparison) {
-  spdy::Http2HeaderBlock block;
+  quiche::HttpHeaderBlock block;
   block["foo"] = absl::string_view("bar\0baz", 7);
   block["baz"] = "qux";
   block["cookie"] = "foo; bar";
@@ -77,7 +77,7 @@
 }
 
 TEST(ValueSplittingHeaderListTest, Empty) {
-  spdy::Http2HeaderBlock block;
+  quiche::HttpHeaderBlock block;
 
   ValueSplittingHeaderList headers(&block);
   EXPECT_THAT(headers, ElementsAre());
@@ -116,7 +116,7 @@
   };
 
   for (size_t i = 0; i < ABSL_ARRAYSIZE(kTestData); ++i) {
-    spdy::Http2HeaderBlock block;
+    quiche::HttpHeaderBlock block;
     block[kTestData[i].name] = kTestData[i].value;
 
     ValueSplittingHeaderList headers(&block);
@@ -132,7 +132,7 @@
 }
 
 TEST(ValueSplittingHeaderListTest, MultipleFields) {
-  spdy::Http2HeaderBlock block;
+  quiche::HttpHeaderBlock block;
   block["foo"] = absl::string_view("bar\0baz\0", 8);
   block["cookie"] = "foo; bar";
   block["bar"] = absl::string_view("qux\0foo", 7);
@@ -145,7 +145,7 @@
 }
 
 TEST(ValueSplittingHeaderListTest, CookieStartsWithSpace) {
-  spdy::Http2HeaderBlock block;
+  quiche::HttpHeaderBlock block;
   block["foo"] = "bar";
   block["cookie"] = " foo";
   block["bar"] = "baz";
diff --git a/quiche/quic/masque/masque_client_session.cc b/quiche/quic/masque/masque_client_session.cc
index 686c6d8..4ecf75d 100644
--- a/quiche/quic/masque/masque_client_session.cc
+++ b/quiche/quic/masque/masque_client_session.cc
@@ -39,13 +39,13 @@
 #include "quiche/quic/platform/api/quic_socket_address.h"
 #include "quiche/quic/tools/quic_url.h"
 #include "quiche/common/capsule.h"
+#include "quiche/common/http/http_header_block.h"
 #include "quiche/common/platform/api/quiche_googleurl.h"
 #include "quiche/common/platform/api/quiche_logging.h"
 #include "quiche/common/platform/api/quiche_url_utils.h"
 #include "quiche/common/quiche_ip_address.h"
 #include "quiche/common/quiche_random.h"
 #include "quiche/common/quiche_text_utils.h"
-#include "quiche/spdy/core/http2_header_block.h"
 
 namespace quic {
 
@@ -177,7 +177,7 @@
                   << authority << "\" path=\"" << canonicalized_path << "\"";
 
   // Send the request.
-  spdy::Http2HeaderBlock headers;
+  quiche::HttpHeaderBlock headers;
   headers[":method"] = "CONNECT";
   headers[":protocol"] = "connect-udp";
   headers[":scheme"] = scheme;
@@ -224,7 +224,7 @@
                   << "\" path=\"" << path << "\"";
 
   // Send the request.
-  spdy::Http2HeaderBlock headers;
+  quiche::HttpHeaderBlock headers;
   headers[":method"] = "CONNECT";
   headers[":protocol"] = "connect-ip";
   headers[":scheme"] = scheme;
@@ -275,7 +275,7 @@
                   << authority << "\" path=\"" << path << "\"";
 
   // Send the request.
-  spdy::Http2HeaderBlock headers;
+  quiche::HttpHeaderBlock headers;
   headers[":method"] = "CONNECT";
   headers[":protocol"] = "connect-ethernet";
   headers[":scheme"] = scheme;
@@ -752,7 +752,7 @@
                   << "\" path=\"" << path << "\"";
 
   // Send the request.
-  spdy::Http2HeaderBlock headers;
+  quiche::HttpHeaderBlock headers;
   headers[":method"] = "GET";
   headers[":scheme"] = scheme;
   headers[":authority"] = authority;
@@ -827,7 +827,7 @@
       ", v=", absl::WebSafeBase64Escape(verification));
 }
 
-void MasqueClientSession::AddAdditionalHeaders(spdy::Http2HeaderBlock& headers,
+void MasqueClientSession::AddAdditionalHeaders(quiche::HttpHeaderBlock& headers,
                                                const QuicUrl& url) {
   std::optional<std::string> concealed_auth_header =
       ComputeConcealedAuthHeader(url);
diff --git a/quiche/quic/masque/masque_client_session.h b/quiche/quic/masque/masque_client_session.h
index 173af35..4ea6939 100644
--- a/quiche/quic/masque/masque_client_session.h
+++ b/quiche/quic/masque/masque_client_session.h
@@ -28,8 +28,8 @@
 #include "quiche/quic/platform/api/quic_socket_address.h"
 #include "quiche/quic/tools/quic_url.h"
 #include "quiche/common/capsule.h"
+#include "quiche/common/http/http_header_block.h"
 #include "quiche/common/quiche_ip_address.h"
-#include "quiche/spdy/core/http2_header_block.h"
 
 namespace quic {
 
@@ -329,7 +329,7 @@
       EncapsulatedEthernetSession* encapsulated_ethernet_session);
 
   std::optional<std::string> ComputeConcealedAuthHeader(const QuicUrl& url);
-  void AddAdditionalHeaders(spdy::Http2HeaderBlock& headers,
+  void AddAdditionalHeaders(quiche::HttpHeaderBlock& headers,
                             const QuicUrl& url);
 
   MasqueMode masque_mode_;
diff --git a/quiche/quic/masque/masque_client_tools.cc b/quiche/quic/masque/masque_client_tools.cc
index bf31ecb..1e71ada 100644
--- a/quiche/quic/masque/masque_client_tools.cc
+++ b/quiche/quic/masque/masque_client_tools.cc
@@ -24,9 +24,9 @@
 #include "quiche/quic/tools/fake_proof_verifier.h"
 #include "quiche/quic/tools/quic_name_lookup.h"
 #include "quiche/quic/tools/quic_url.h"
+#include "quiche/common/http/http_header_block.h"
 #include "quiche/common/platform/api/quiche_logging.h"
 #include "quiche/common/quiche_ip_address.h"
-#include "quiche/spdy/core/http2_header_block.h"
 
 namespace quic {
 namespace tools {
@@ -133,7 +133,7 @@
   const std::string body = "";
 
   // Construct a GET request for supplied URL.
-  spdy::Http2HeaderBlock header_block;
+  quiche::HttpHeaderBlock header_block;
   header_block[":method"] = "GET";
   header_block[":scheme"] = url.scheme();
   header_block[":authority"] = url.HostPort();
diff --git a/quiche/quic/masque/masque_server_backend.cc b/quiche/quic/masque/masque_server_backend.cc
index 97a58e6..86d06f3 100644
--- a/quiche/quic/masque/masque_server_backend.cc
+++ b/quiche/quic/masque/masque_server_backend.cc
@@ -23,8 +23,8 @@
 #include "quiche/quic/tools/quic_backend_response.h"
 #include "quiche/quic/tools/quic_memory_cache_backend.h"
 #include "quiche/quic/tools/quic_simple_server_backend.h"
+#include "quiche/common/http/http_header_block.h"
 #include "quiche/common/quiche_text_utils.h"
-#include "quiche/spdy/core/http2_header_block.h"
 
 namespace quic {
 
@@ -49,7 +49,7 @@
 }
 
 bool MasqueServerBackend::MaybeHandleMasqueRequest(
-    const spdy::Http2HeaderBlock& request_headers,
+    const quiche::HttpHeaderBlock& request_headers,
     QuicSimpleServerBackend::RequestHandler* request_handler) {
   auto method_pair = request_headers.find(":method");
   if (method_pair == request_headers.end()) {
@@ -109,7 +109,7 @@
 }
 
 void MasqueServerBackend::FetchResponseFromBackend(
-    const spdy::Http2HeaderBlock& request_headers,
+    const quiche::HttpHeaderBlock& request_headers,
     const std::string& request_body,
     QuicSimpleServerBackend::RequestHandler* request_handler) {
   if (MaybeHandleMasqueRequest(request_headers, request_handler)) {
@@ -123,7 +123,7 @@
 }
 
 void MasqueServerBackend::HandleConnectHeaders(
-    const spdy::Http2HeaderBlock& request_headers,
+    const quiche::HttpHeaderBlock& request_headers,
     RequestHandler* request_handler) {
   if (MaybeHandleMasqueRequest(request_headers, request_handler)) {
     // Request was handled as a MASQUE request.
diff --git a/quiche/quic/masque/masque_server_backend.h b/quiche/quic/masque/masque_server_backend.h
index 48f40cd..d097c23 100644
--- a/quiche/quic/masque/masque_server_backend.h
+++ b/quiche/quic/masque/masque_server_backend.h
@@ -21,7 +21,7 @@
 #include "quiche/quic/tools/quic_backend_response.h"
 #include "quiche/quic/tools/quic_memory_cache_backend.h"
 #include "quiche/quic/tools/quic_simple_server_backend.h"
-#include "quiche/spdy/core/http2_header_block.h"
+#include "quiche/common/http/http_header_block.h"
 
 namespace quic {
 
@@ -34,7 +34,7 @@
   class QUIC_NO_EXPORT BackendClient {
    public:
     virtual std::unique_ptr<QuicBackendResponse> HandleMasqueRequest(
-        const spdy::Http2HeaderBlock& request_headers,
+        const quiche::HttpHeaderBlock& request_headers,
         QuicSimpleServerBackend::RequestHandler* request_handler) = 0;
     virtual ~BackendClient() = default;
   };
@@ -49,10 +49,10 @@
 
   // From QuicMemoryCacheBackend.
   void FetchResponseFromBackend(
-      const spdy::Http2HeaderBlock& request_headers,
+      const quiche::HttpHeaderBlock& request_headers,
       const std::string& request_body,
       QuicSimpleServerBackend::RequestHandler* request_handler) override;
-  void HandleConnectHeaders(const spdy::Http2HeaderBlock& request_headers,
+  void HandleConnectHeaders(const quiche::HttpHeaderBlock& request_headers,
                             RequestHandler* request_handler) override;
 
   void CloseBackendResponseStream(
@@ -96,7 +96,7 @@
  private:
   // Handle MASQUE request.
   bool MaybeHandleMasqueRequest(
-      const spdy::Http2HeaderBlock& request_headers,
+      const quiche::HttpHeaderBlock& request_headers,
       QuicSimpleServerBackend::RequestHandler* request_handler);
 
   MasqueMode masque_mode_;
diff --git a/quiche/quic/masque/masque_server_session.cc b/quiche/quic/masque/masque_server_session.cc
index 9e91483..69482af 100644
--- a/quiche/quic/masque/masque_server_session.cc
+++ b/quiche/quic/masque/masque_server_session.cc
@@ -54,11 +54,11 @@
 #include "quiche/quic/tools/quic_simple_server_session.h"
 #include "quiche/quic/tools/quic_url.h"
 #include "quiche/common/capsule.h"
+#include "quiche/common/http/http_header_block.h"
 #include "quiche/common/platform/api/quiche_logging.h"
 #include "quiche/common/platform/api/quiche_url_utils.h"
 #include "quiche/common/quiche_ip_address.h"
 #include "quiche/common/quiche_text_utils.h"
-#include "quiche/spdy/core/http2_header_block.h"
 
 namespace quic {
 
@@ -113,7 +113,7 @@
 
 std::unique_ptr<QuicBackendResponse> CreateBackendErrorResponse(
     absl::string_view status, absl::string_view error_details) {
-  spdy::Http2HeaderBlock response_headers;
+  quiche::HttpHeaderBlock response_headers;
   response_headers[":status"] = status;
   response_headers["masque-debug-info"] = error_details;
   auto response = std::make_unique<QuicBackendResponse>();
@@ -189,7 +189,7 @@
 
 std::unique_ptr<QuicBackendResponse>
 MasqueServerSession::MaybeCheckConcealedAuth(
-    const spdy::Http2HeaderBlock& request_headers, absl::string_view authority,
+    const quiche::HttpHeaderBlock& request_headers, absl::string_view authority,
     absl::string_view scheme,
     QuicSimpleServerBackend::RequestHandler* request_handler) {
   // TODO(dschinazi) Add command-line flag that makes this implementation
@@ -392,7 +392,7 @@
 }
 
 std::unique_ptr<QuicBackendResponse> MasqueServerSession::HandleMasqueRequest(
-    const spdy::Http2HeaderBlock& request_headers,
+    const quiche::HttpHeaderBlock& request_headers,
     QuicSimpleServerBackend::RequestHandler* request_handler) {
   // Authority.
   auto authority_pair = request_headers.find(":authority");
@@ -493,7 +493,7 @@
     connect_ip_server_states_.push_back(
         ConnectIpServerState(client_ip, stream, fd, this));
 
-    spdy::Http2HeaderBlock response_headers;
+    quiche::HttpHeaderBlock response_headers;
     response_headers[":status"] = "200";
     auto response = std::make_unique<QuicBackendResponse>();
     response->set_response_type(QuicBackendResponse::INCOMPLETE_RESPONSE);
@@ -526,7 +526,7 @@
     connect_ethernet_server_states_.push_back(
         ConnectEthernetServerState(stream, fd, this));
 
-    spdy::Http2HeaderBlock response_headers;
+    quiche::HttpHeaderBlock response_headers;
     response_headers[":status"] = "200";
     auto response = std::make_unique<QuicBackendResponse>();
     response->set_response_type(QuicBackendResponse::INCOMPLETE_RESPONSE);
@@ -606,7 +606,7 @@
   connect_udp_server_states_.push_back(ConnectUdpServerState(
       stream, target_server_address, fd_wrapper.extract_fd(), this));
 
-  spdy::Http2HeaderBlock response_headers;
+  quiche::HttpHeaderBlock response_headers;
   response_headers[":status"] = "200";
   auto response = std::make_unique<QuicBackendResponse>();
   response->set_response_type(QuicBackendResponse::INCOMPLETE_RESPONSE);
diff --git a/quiche/quic/masque/masque_server_session.h b/quiche/quic/masque/masque_server_session.h
index 6b6a796..202bb62 100644
--- a/quiche/quic/masque/masque_server_session.h
+++ b/quiche/quic/masque/masque_server_session.h
@@ -33,7 +33,7 @@
 #include "quiche/quic/tools/quic_simple_server_backend.h"
 #include "quiche/quic/tools/quic_simple_server_session.h"
 #include "quiche/common/capsule.h"
-#include "quiche/spdy/core/http2_header_block.h"
+#include "quiche/common/http/http_header_block.h"
 
 namespace quic {
 
@@ -66,7 +66,7 @@
 
   // From MasqueServerBackend::BackendClient.
   std::unique_ptr<QuicBackendResponse> HandleMasqueRequest(
-      const spdy::Http2HeaderBlock& request_headers,
+      const quiche::HttpHeaderBlock& request_headers,
       QuicSimpleServerBackend::RequestHandler* request_handler) override;
 
   // From QuicSocketEventListener.
@@ -83,7 +83,7 @@
   bool HandleConnectEthernetSocketEvent(QuicUdpSocketFd fd,
                                         QuicSocketEventMask events);
   std::unique_ptr<QuicBackendResponse> MaybeCheckConcealedAuth(
-      const spdy::Http2HeaderBlock& request_headers,
+      const quiche::HttpHeaderBlock& request_headers,
       absl::string_view authority, absl::string_view scheme,
       QuicSimpleServerBackend::RequestHandler* request_handler);