Replace quiche::QuicheStringPiece with absl::string_view.

PiperOrigin-RevId: 336805352
Change-Id: I90543ee2730573441efea777ef67729792796902
diff --git a/spdy/core/hpack/hpack_decoder_adapter.cc b/spdy/core/hpack/hpack_decoder_adapter.cc
index cf9a0e7..fa54464 100644
--- a/spdy/core/hpack/hpack_decoder_adapter.cc
+++ b/spdy/core/hpack/hpack_decoder_adapter.cc
@@ -185,7 +185,7 @@
 }
 
 void HpackDecoderAdapter::ListenerAdapter::OnHeaderErrorDetected(
-    quiche::QuicheStringPiece error_message) {
+    absl::string_view error_message) {
   SPDY_VLOG(1) << error_message;
 }
 
diff --git a/spdy/core/hpack/hpack_decoder_adapter.h b/spdy/core/hpack/hpack_decoder_adapter.h
index f521ee1..36f42b7 100644
--- a/spdy/core/hpack/hpack_decoder_adapter.h
+++ b/spdy/core/hpack/hpack_decoder_adapter.h
@@ -13,13 +13,13 @@
 #include <cstdint>
 #include <memory>
 
+#include "absl/strings/string_view.h"
 #include "net/third_party/quiche/src/http2/hpack/decoder/hpack_decoder.h"
 #include "net/third_party/quiche/src/http2/hpack/decoder/hpack_decoder_listener.h"
 #include "net/third_party/quiche/src/http2/hpack/decoder/hpack_decoder_tables.h"
 #include "net/third_party/quiche/src/http2/hpack/hpack_string.h"
 #include "net/third_party/quiche/src/http2/hpack/http2_hpack_constants.h"
 #include "net/third_party/quiche/src/common/platform/api/quiche_export.h"
-#include "net/third_party/quiche/src/common/platform/api/quiche_string_piece.h"
 #include "net/third_party/quiche/src/spdy/core/hpack/hpack_header_table.h"
 #include "net/third_party/quiche/src/spdy/core/spdy_header_block.h"
 #include "net/third_party/quiche/src/spdy/core/spdy_headers_handler_interface.h"
@@ -113,8 +113,7 @@
     void OnHeader(const http2::HpackString& name,
                   const http2::HpackString& value) override;
     void OnHeaderListEnd() override;
-    void OnHeaderErrorDetected(
-        quiche::QuicheStringPiece error_message) override;
+    void OnHeaderErrorDetected(absl::string_view error_message) override;
 
     // Override the HpackDecoderTablesDebugListener methods:
     int64_t OnEntryInserted(const http2::HpackStringPair& entry,
diff --git a/spdy/core/hpack/hpack_decoder_adapter_test.cc b/spdy/core/hpack/hpack_decoder_adapter_test.cc
index fb9bfbd..c1ed5d6 100644
--- a/spdy/core/hpack/hpack_decoder_adapter_test.cc
+++ b/spdy/core/hpack/hpack_decoder_adapter_test.cc
@@ -65,8 +65,8 @@
   explicit HpackDecoderAdapterPeer(HpackDecoderAdapter* decoder)
       : decoder_(decoder) {}
 
-  void HandleHeaderRepresentation(quiche::QuicheStringPiece name,
-                                  quiche::QuicheStringPiece value) {
+  void HandleHeaderRepresentation(absl::string_view name,
+                                  absl::string_view value) {
     decoder_->listener_adapter_.OnHeader(HpackString(name), HpackString(value));
   }
 
@@ -133,7 +133,7 @@
     }
   }
 
-  bool HandleControlFrameHeadersData(quiche::QuicheStringPiece str) {
+  bool HandleControlFrameHeadersData(absl::string_view str) {
     SPDY_VLOG(3) << "HandleControlFrameHeadersData:\n" << SpdyHexDump(str);
     bytes_passed_in_ += str.size();
     return decoder_.HandleControlFrameHeadersData(str.data(), str.size());
@@ -147,7 +147,7 @@
     return rc;
   }
 
-  bool DecodeHeaderBlock(quiche::QuicheStringPiece str,
+  bool DecodeHeaderBlock(absl::string_view str,
                          bool check_decoded_size = true) {
     // Don't call this again if HandleControlFrameHeadersData failed previously.
     EXPECT_FALSE(decode_has_failed_);
@@ -225,8 +225,7 @@
     return size;
   }
 
-  const SpdyHeaderBlock& DecodeBlockExpectingSuccess(
-      quiche::QuicheStringPiece str) {
+  const SpdyHeaderBlock& DecodeBlockExpectingSuccess(absl::string_view str) {
     EXPECT_TRUE(DecodeHeaderBlock(str));
     return decoded_block();
   }
@@ -434,11 +433,10 @@
       decoded_block(),
       ElementsAre(
           Pair("cookie", " part 1; part 2 ; part3;  fin!"),
-          Pair("passed-through", quiche::QuicheStringPiece("foo\0baz", 7)),
-          Pair("joined",
-               quiche::QuicheStringPiece("joined\0value 1\0value 2", 22)),
+          Pair("passed-through", absl::string_view("foo\0baz", 7)),
+          Pair("joined", absl::string_view("joined\0value 1\0value 2", 22)),
           Pair("empty", ""),
-          Pair("empty-joined", quiche::QuicheStringPiece("\0foo\0\0", 6))));
+          Pair("empty-joined", absl::string_view("\0foo\0\0", 6))));
 }
 
 // Decoding indexed static table field should work.
@@ -503,7 +501,7 @@
     output_stream.AppendUint32(126);
 
     output_stream.TakeString(&input);
-    EXPECT_TRUE(DecodeHeaderBlock(quiche::QuicheStringPiece(input)));
+    EXPECT_TRUE(DecodeHeaderBlock(absl::string_view(input)));
     EXPECT_EQ(126u, decoder_peer_.header_table_size_limit());
   }
   {
@@ -513,7 +511,7 @@
     output_stream.AppendUint32(kDefaultHeaderTableSizeSetting);
 
     output_stream.TakeString(&input);
-    EXPECT_TRUE(DecodeHeaderBlock(quiche::QuicheStringPiece(input)));
+    EXPECT_TRUE(DecodeHeaderBlock(absl::string_view(input)));
     EXPECT_EQ(kDefaultHeaderTableSizeSetting,
               decoder_peer_.header_table_size_limit());
   }
@@ -524,7 +522,7 @@
     output_stream.AppendUint32(kDefaultHeaderTableSizeSetting + 1);
 
     output_stream.TakeString(&input);
-    EXPECT_FALSE(DecodeHeaderBlock(quiche::QuicheStringPiece(input)));
+    EXPECT_FALSE(DecodeHeaderBlock(absl::string_view(input)));
     EXPECT_EQ(kDefaultHeaderTableSizeSetting,
               decoder_peer_.header_table_size_limit());
   }
@@ -542,7 +540,7 @@
     output_stream.AppendUint32(122);
 
     output_stream.TakeString(&input);
-    EXPECT_TRUE(DecodeHeaderBlock(quiche::QuicheStringPiece(input)));
+    EXPECT_TRUE(DecodeHeaderBlock(absl::string_view(input)));
     EXPECT_EQ(122u, decoder_peer_.header_table_size_limit());
   }
 }
@@ -562,7 +560,7 @@
 
     output_stream.TakeString(&input);
 
-    EXPECT_FALSE(DecodeHeaderBlock(quiche::QuicheStringPiece(input)));
+    EXPECT_FALSE(DecodeHeaderBlock(absl::string_view(input)));
     EXPECT_EQ(10u, decoder_peer_.header_table_size_limit());
   }
 }
@@ -581,7 +579,7 @@
 
     output_stream.TakeString(&input);
 
-    EXPECT_FALSE(DecodeHeaderBlock(quiche::QuicheStringPiece(input)));
+    EXPECT_FALSE(DecodeHeaderBlock(absl::string_view(input)));
     EXPECT_EQ(kDefaultHeaderTableSizeSetting,
               decoder_peer_.header_table_size_limit());
   }
@@ -604,7 +602,7 @@
 
     output_stream.TakeString(&input);
 
-    EXPECT_FALSE(DecodeHeaderBlock(quiche::QuicheStringPiece(input)));
+    EXPECT_FALSE(DecodeHeaderBlock(absl::string_view(input)));
     EXPECT_EQ(60u, decoder_peer_.header_table_size_limit());
   }
 }
@@ -616,7 +614,7 @@
   // name.
   const char input[] = "\x04\x0c/sample/path\x00\x06:path2\x0e/sample/path/2";
   const SpdyHeaderBlock& header_set = DecodeBlockExpectingSuccess(
-      quiche::QuicheStringPiece(input, QUICHE_ARRAYSIZE(input) - 1));
+      absl::string_view(input, QUICHE_ARRAYSIZE(input) - 1));
 
   SpdyHeaderBlock expected_header_set;
   expected_header_set[":path"] = "/sample/path";
@@ -629,7 +627,7 @@
 TEST_P(HpackDecoderAdapterTest, LiteralHeaderIncrementalIndexing) {
   const char input[] = "\x44\x0c/sample/path\x40\x06:path2\x0e/sample/path/2";
   const SpdyHeaderBlock& header_set = DecodeBlockExpectingSuccess(
-      quiche::QuicheStringPiece(input, QUICHE_ARRAYSIZE(input) - 1));
+      absl::string_view(input, QUICHE_ARRAYSIZE(input) - 1));
 
   SpdyHeaderBlock expected_header_set;
   expected_header_set[":path"] = "/sample/path";
@@ -642,23 +640,23 @@
   EXPECT_TRUE(EncodeAndDecodeDynamicTableSizeUpdates(0, 0));
 
   // Name is the last static index. Works.
-  EXPECT_TRUE(DecodeHeaderBlock(quiche::QuicheStringPiece("\x7d\x03ooo")));
+  EXPECT_TRUE(DecodeHeaderBlock(absl::string_view("\x7d\x03ooo")));
   // Name is one beyond the last static index. Fails.
-  EXPECT_FALSE(DecodeHeaderBlock(quiche::QuicheStringPiece("\x7e\x03ooo")));
+  EXPECT_FALSE(DecodeHeaderBlock(absl::string_view("\x7e\x03ooo")));
 }
 
 TEST_P(HpackDecoderAdapterTest, LiteralHeaderNoIndexingInvalidNameIndex) {
   // Name is the last static index. Works.
-  EXPECT_TRUE(DecodeHeaderBlock(quiche::QuicheStringPiece("\x0f\x2e\x03ooo")));
+  EXPECT_TRUE(DecodeHeaderBlock(absl::string_view("\x0f\x2e\x03ooo")));
   // Name is one beyond the last static index. Fails.
-  EXPECT_FALSE(DecodeHeaderBlock(quiche::QuicheStringPiece("\x0f\x2f\x03ooo")));
+  EXPECT_FALSE(DecodeHeaderBlock(absl::string_view("\x0f\x2f\x03ooo")));
 }
 
 TEST_P(HpackDecoderAdapterTest, LiteralHeaderNeverIndexedInvalidNameIndex) {
   // Name is the last static index. Works.
-  EXPECT_TRUE(DecodeHeaderBlock(quiche::QuicheStringPiece("\x1f\x2e\x03ooo")));
+  EXPECT_TRUE(DecodeHeaderBlock(absl::string_view("\x1f\x2e\x03ooo")));
   // Name is one beyond the last static index. Fails.
-  EXPECT_FALSE(DecodeHeaderBlock(quiche::QuicheStringPiece("\x1f\x2f\x03ooo")));
+  EXPECT_FALSE(DecodeHeaderBlock(absl::string_view("\x1f\x2f\x03ooo")));
 }
 
 TEST_P(HpackDecoderAdapterTest, TruncatedIndex) {
@@ -1055,10 +1053,10 @@
   hbb.AppendDynamicTableSizeUpdate(0);
   hbb.AppendDynamicTableSizeUpdate(63);
 
-  const quiche::QuicheStringPiece name("some-name");
-  const quiche::QuicheStringPiece value1("some-value");
-  const quiche::QuicheStringPiece value2("another-value");
-  const quiche::QuicheStringPiece value3("yet-another-value");
+  const absl::string_view name("some-name");
+  const absl::string_view value1("some-value");
+  const absl::string_view value2("another-value");
+  const absl::string_view value3("yet-another-value");
 
   // Add an entry that will become the first in the dynamic table, entry 62.
   hbb.AppendLiteralNameAndValue(HpackEntryType::kIndexedLiteralHeader, false,
diff --git a/spdy/core/hpack/hpack_encoder.cc b/spdy/core/hpack/hpack_encoder.cc
index 566f4ee..6ad6a5f 100644
--- a/spdy/core/hpack/hpack_encoder.cc
+++ b/spdy/core/hpack/hpack_encoder.cc
@@ -58,12 +58,10 @@
 namespace {
 
 // The default header listener.
-void NoOpListener(quiche::QuicheStringPiece /*name*/,
-                  quiche::QuicheStringPiece /*value*/) {}
+void NoOpListener(absl::string_view /*name*/, absl::string_view /*value*/) {}
 
 // The default HPACK indexing policy.
-bool DefaultPolicy(quiche::QuicheStringPiece name,
-                   quiche::QuicheStringPiece /* value */) {
+bool DefaultPolicy(absl::string_view name, absl::string_view /* value */) {
   if (name.empty()) {
     return false;
   }
@@ -200,7 +198,7 @@
   EmitString(representation.second);
 }
 
-void HpackEncoder::EmitString(quiche::QuicheStringPiece str) {
+void HpackEncoder::EmitString(absl::string_view str) {
   size_t encoded_size =
       enable_compression_
           ? (use_fast_huffman_encoder_ ? http2::HuffmanSize(str)
@@ -249,21 +247,19 @@
   // See Section 8.1.2.5. "Compressing the Cookie Header Field" in the HTTP/2
   // specification at https://tools.ietf.org/html/draft-ietf-httpbis-http2-14.
   // Cookie values are split into individually-encoded HPACK representations.
-  quiche::QuicheStringPiece cookie_value = cookie.second;
+  absl::string_view cookie_value = cookie.second;
   // Consume leading and trailing whitespace if present.
-  quiche::QuicheStringPiece::size_type first =
-      cookie_value.find_first_not_of(" \t");
-  quiche::QuicheStringPiece::size_type last =
-      cookie_value.find_last_not_of(" \t");
-  if (first == quiche::QuicheStringPiece::npos) {
-    cookie_value = quiche::QuicheStringPiece();
+  absl::string_view::size_type first = cookie_value.find_first_not_of(" \t");
+  absl::string_view::size_type last = cookie_value.find_last_not_of(" \t");
+  if (first == absl::string_view::npos) {
+    cookie_value = absl::string_view();
   } else {
     cookie_value = cookie_value.substr(first, (last - first) + 1);
   }
   for (size_t pos = 0;;) {
     size_t end = cookie_value.find(";", pos);
 
-    if (end == quiche::QuicheStringPiece::npos) {
+    if (end == absl::string_view::npos) {
       out->push_back(std::make_pair(cookie.first, cookie_value.substr(pos)));
       break;
     }
@@ -283,12 +279,12 @@
                                            Representations* out) {
   size_t pos = 0;
   size_t end = 0;
-  while (end != quiche::QuicheStringPiece::npos) {
+  while (end != absl::string_view::npos) {
     end = header_field.second.find('\0', pos);
     out->push_back(std::make_pair(
         header_field.first,
         header_field.second.substr(
-            pos, end == quiche::QuicheStringPiece::npos ? end : end - pos)));
+            pos, end == absl::string_view::npos ? end : end - pos)));
     pos = end + 1;
   }
 }
diff --git a/spdy/core/hpack/hpack_encoder.h b/spdy/core/hpack/hpack_encoder.h
index 3b3e0d1..f9cc0d1 100644
--- a/spdy/core/hpack/hpack_encoder.h
+++ b/spdy/core/hpack/hpack_encoder.h
@@ -14,8 +14,8 @@
 #include <utility>
 #include <vector>
 
+#include "absl/strings/string_view.h"
 #include "net/third_party/quiche/src/common/platform/api/quiche_export.h"
-#include "net/third_party/quiche/src/common/platform/api/quiche_string_piece.h"
 #include "net/third_party/quiche/src/spdy/core/hpack/hpack_header_table.h"
 #include "net/third_party/quiche/src/spdy/core/hpack/hpack_output_stream.h"
 #include "net/third_party/quiche/src/spdy/core/spdy_protocol.h"
@@ -33,19 +33,18 @@
 
 class QUICHE_EXPORT_PRIVATE HpackEncoder {
  public:
-  using Representation =
-      std::pair<quiche::QuicheStringPiece, quiche::QuicheStringPiece>;
+  using Representation = std::pair<absl::string_view, absl::string_view>;
   using Representations = std::vector<Representation>;
 
   // Callers may provide a HeaderListener to be informed of header name-value
   // pairs processed by this encoder.
   using HeaderListener =
-      std::function<void(quiche::QuicheStringPiece, quiche::QuicheStringPiece)>;
+      std::function<void(absl::string_view, absl::string_view)>;
 
   // An indexing policy should return true if the provided header name-value
   // pair should be inserted into the HPACK dynamic table.
   using IndexingPolicy =
-      std::function<bool(quiche::QuicheStringPiece, quiche::QuicheStringPiece)>;
+      std::function<bool(absl::string_view, absl::string_view)>;
 
   HpackEncoder();
   HpackEncoder(const HpackEncoder&) = delete;
@@ -125,7 +124,7 @@
   void EmitLiteral(const Representation& representation);
 
   // Emits a Huffman or identity string (whichever is smaller).
-  void EmitString(quiche::QuicheStringPiece str);
+  void EmitString(absl::string_view str);
 
   // Emits the current dynamic table size if the table size was recently
   // updated and we have not yet emitted it (Section 6.3).
diff --git a/spdy/core/hpack/hpack_encoder_test.cc b/spdy/core/hpack/hpack_encoder_test.cc
index 62c7887..52693db 100644
--- a/spdy/core/hpack/hpack_encoder_test.cc
+++ b/spdy/core/hpack/hpack_encoder_test.cc
@@ -40,12 +40,12 @@
   bool compression_enabled() const { return encoder_->enable_compression_; }
   HpackHeaderTable* table() { return &encoder_->header_table_; }
   HpackHeaderTablePeer table_peer() { return HpackHeaderTablePeer(table()); }
-  void EmitString(quiche::QuicheStringPiece str) { encoder_->EmitString(str); }
+  void EmitString(absl::string_view str) { encoder_->EmitString(str); }
   void TakeString(std::string* out) {
     encoder_->output_stream_.TakeString(out);
   }
-  static void CookieToCrumbs(quiche::QuicheStringPiece cookie,
-                             std::vector<quiche::QuicheStringPiece>* out) {
+  static void CookieToCrumbs(absl::string_view cookie,
+                             std::vector<absl::string_view>* out) {
     Representations tmp;
     HpackEncoder::CookieToCrumbs(std::make_pair("", cookie), &tmp);
 
@@ -54,9 +54,8 @@
       out->push_back(tmp[i].second);
     }
   }
-  static void DecomposeRepresentation(
-      quiche::QuicheStringPiece value,
-      std::vector<quiche::QuicheStringPiece>* out) {
+  static void DecomposeRepresentation(absl::string_view value,
+                                      std::vector<absl::string_view>* out) {
     Representations tmp;
     HpackEncoder::DecomposeRepresentation(std::make_pair("foobar", value),
                                           &tmp);
@@ -150,12 +149,11 @@
     peer_.table()->SetMaxSize(peer_.table()->size());
   }
 
-  void SaveHeaders(quiche::QuicheStringPiece name,
-                   quiche::QuicheStringPiece value) {
-    quiche::QuicheStringPiece n(
-        headers_storage_.Memdup(name.data(), name.size()), name.size());
-    quiche::QuicheStringPiece v(
-        headers_storage_.Memdup(value.data(), value.size()), value.size());
+  void SaveHeaders(absl::string_view name, absl::string_view value) {
+    absl::string_view n(headers_storage_.Memdup(name.data(), name.size()),
+                        name.size());
+    absl::string_view v(headers_storage_.Memdup(value.data(), value.size()),
+                        value.size());
     headers_observed_.push_back(std::make_pair(n, v));
   }
 
@@ -164,32 +162,31 @@
     expected_.AppendUint32(index);
   }
   void ExpectIndexedLiteral(const HpackEntry* key_entry,
-                            quiche::QuicheStringPiece value) {
+                            absl::string_view value) {
     expected_.AppendPrefix(kLiteralIncrementalIndexOpcode);
     expected_.AppendUint32(IndexOf(key_entry));
     ExpectString(&expected_, value);
   }
-  void ExpectIndexedLiteral(quiche::QuicheStringPiece name,
-                            quiche::QuicheStringPiece value) {
+  void ExpectIndexedLiteral(absl::string_view name, absl::string_view value) {
     expected_.AppendPrefix(kLiteralIncrementalIndexOpcode);
     expected_.AppendUint32(0);
     ExpectString(&expected_, name);
     ExpectString(&expected_, value);
   }
-  void ExpectNonIndexedLiteral(quiche::QuicheStringPiece name,
-                               quiche::QuicheStringPiece value) {
+  void ExpectNonIndexedLiteral(absl::string_view name,
+                               absl::string_view value) {
     expected_.AppendPrefix(kLiteralNoIndexOpcode);
     expected_.AppendUint32(0);
     ExpectString(&expected_, name);
     ExpectString(&expected_, value);
   }
   void ExpectNonIndexedLiteralWithNameIndex(const HpackEntry* key_entry,
-                                            quiche::QuicheStringPiece value) {
+                                            absl::string_view value) {
     expected_.AppendPrefix(kLiteralNoIndexOpcode);
     expected_.AppendUint32(IndexOf(key_entry));
     ExpectString(&expected_, value);
   }
-  void ExpectString(HpackOutputStream* stream, quiche::QuicheStringPiece str) {
+  void ExpectString(HpackOutputStream* stream, absl::string_view str) {
     const HpackHuffmanTable& huffman_table = ObtainHpackHuffmanTable();
     size_t encoded_size =
         peer_.compression_enabled()
@@ -261,7 +258,7 @@
   const HpackEntry* cookie_c_;
 
   SpdySimpleArena headers_storage_;
-  std::vector<std::pair<quiche::QuicheStringPiece, quiche::QuicheStringPiece>>
+  std::vector<std::pair<absl::string_view, absl::string_view>>
       headers_observed_;
 
   HpackOutputStream expected_;
@@ -278,16 +275,15 @@
 
 TEST_P(HpackEncoderTestWithDefaultStrategy, EncodeRepresentations) {
   encoder_.SetHeaderListener(
-      [this](quiche::QuicheStringPiece name, quiche::QuicheStringPiece value) {
+      [this](absl::string_view name, absl::string_view value) {
         this->SaveHeaders(name, value);
       });
-  const std::vector<
-      std::pair<quiche::QuicheStringPiece, quiche::QuicheStringPiece>>
+  const std::vector<std::pair<absl::string_view, absl::string_view>>
       header_list = {{"cookie", "val1; val2;val3"},
                      {":path", "/home"},
                      {"accept", "text/html, text/plain,application/xml"},
                      {"cookie", "val4"},
-                     {"withnul", quiche::QuicheStringPiece("one\0two", 7)}};
+                     {"withnul", absl::string_view("one\0two", 7)}};
   ExpectNonIndexedLiteralWithNameIndex(peer_.table()->GetByName(":path"),
                                        "/home");
   ExpectIndexedLiteral(peer_.table()->GetByName("cookie"), "val1");
@@ -296,7 +292,7 @@
   ExpectIndexedLiteral(peer_.table()->GetByName("accept"),
                        "text/html, text/plain,application/xml");
   ExpectIndexedLiteral(peer_.table()->GetByName("cookie"), "val4");
-  ExpectIndexedLiteral("withnul", quiche::QuicheStringPiece("one\0two", 7));
+  ExpectIndexedLiteral("withnul", absl::string_view("one\0two", 7));
 
   CompareWithExpectedEncoding(header_list);
   EXPECT_THAT(
@@ -305,7 +301,7 @@
                   Pair("cookie", "val2"), Pair("cookie", "val3"),
                   Pair("accept", "text/html, text/plain,application/xml"),
                   Pair("cookie", "val4"),
-                  Pair("withnul", quiche::QuicheStringPiece("one\0two", 7))));
+                  Pair("withnul", absl::string_view("one\0two", 7))));
 }
 
 INSTANTIATE_TEST_SUITE_P(HpackEncoderTests,
@@ -317,7 +313,7 @@
 
 TEST_P(HpackEncoderTest, SingleDynamicIndex) {
   encoder_.SetHeaderListener(
-      [this](quiche::QuicheStringPiece name, quiche::QuicheStringPiece value) {
+      [this](absl::string_view name, absl::string_view value) {
         this->SaveHeaders(name, value);
       });
 
@@ -438,7 +434,7 @@
 
 TEST_P(HpackEncoderTest, EncodingWithoutCompression) {
   encoder_.SetHeaderListener(
-      [this](quiche::QuicheStringPiece name, quiche::QuicheStringPiece value) {
+      [this](absl::string_view name, absl::string_view value) {
         this->SaveHeaders(name, value);
       });
   encoder_.DisableCompression();
@@ -466,11 +462,10 @@
   if (strategy_ == kRepresentations) {
     EXPECT_THAT(
         headers_observed_,
-        ElementsAre(
-            Pair(":path", "/index.html"), Pair("cookie", "foo=bar"),
-            Pair("cookie", "baz=bing"),
-            Pair("hello", quiche::QuicheStringPiece("goodbye\0aloha", 13)),
-            Pair("multivalue", "value1, value2")));
+        ElementsAre(Pair(":path", "/index.html"), Pair("cookie", "foo=bar"),
+                    Pair("cookie", "baz=bing"),
+                    Pair("hello", absl::string_view("goodbye\0aloha", 13)),
+                    Pair("multivalue", "value1, value2")));
   } else {
     EXPECT_THAT(
         headers_observed_,
@@ -483,7 +478,7 @@
 
 TEST_P(HpackEncoderTest, MultipleEncodingPasses) {
   encoder_.SetHeaderListener(
-      [this](quiche::QuicheStringPiece name, quiche::QuicheStringPiece value) {
+      [this](absl::string_view name, absl::string_view value) {
         this->SaveHeaders(name, value);
       });
 
@@ -580,7 +575,7 @@
 
 TEST_P(HpackEncoderTest, CookieToCrumbs) {
   test::HpackEncoderPeer peer(nullptr);
-  std::vector<quiche::QuicheStringPiece> out;
+  std::vector<absl::string_view> out;
 
   // Leading and trailing whitespace is consumed. A space after ';' is consumed.
   // All other spaces remain. ';' at beginning and end of string produce empty
@@ -614,7 +609,7 @@
 
 TEST_P(HpackEncoderTest, DecomposeRepresentation) {
   test::HpackEncoderPeer peer(nullptr);
-  std::vector<quiche::QuicheStringPiece> out;
+  std::vector<absl::string_view> out;
 
   peer.DecomposeRepresentation("", &out);
   EXPECT_THAT(out, ElementsAre(""));
@@ -622,19 +617,16 @@
   peer.DecomposeRepresentation("foobar", &out);
   EXPECT_THAT(out, ElementsAre("foobar"));
 
-  peer.DecomposeRepresentation(quiche::QuicheStringPiece("foo\0bar", 7), &out);
+  peer.DecomposeRepresentation(absl::string_view("foo\0bar", 7), &out);
   EXPECT_THAT(out, ElementsAre("foo", "bar"));
 
-  peer.DecomposeRepresentation(quiche::QuicheStringPiece("\0foo\0bar", 8),
-                               &out);
+  peer.DecomposeRepresentation(absl::string_view("\0foo\0bar", 8), &out);
   EXPECT_THAT(out, ElementsAre("", "foo", "bar"));
 
-  peer.DecomposeRepresentation(quiche::QuicheStringPiece("foo\0bar\0", 8),
-                               &out);
+  peer.DecomposeRepresentation(absl::string_view("foo\0bar\0", 8), &out);
   EXPECT_THAT(out, ElementsAre("foo", "bar", ""));
 
-  peer.DecomposeRepresentation(quiche::QuicheStringPiece("\0foo\0bar\0", 9),
-                               &out);
+  peer.DecomposeRepresentation(absl::string_view("\0foo\0bar\0", 9), &out);
   EXPECT_THAT(out, ElementsAre("", "foo", "bar", ""));
 }
 
diff --git a/spdy/core/hpack/hpack_entry.cc b/spdy/core/hpack/hpack_entry.cc
index 586f321..7f251e6 100644
--- a/spdy/core/hpack/hpack_entry.cc
+++ b/spdy/core/hpack/hpack_entry.cc
@@ -12,8 +12,8 @@
 
 const size_t HpackEntry::kSizeOverhead = 32;
 
-HpackEntry::HpackEntry(quiche::QuicheStringPiece name,
-                       quiche::QuicheStringPiece value,
+HpackEntry::HpackEntry(absl::string_view name,
+                       absl::string_view value,
                        bool is_static,
                        size_t insertion_index)
     : name_(name.data(), name.size()),
@@ -24,8 +24,7 @@
       type_(is_static ? STATIC : DYNAMIC),
       time_added_(0) {}
 
-HpackEntry::HpackEntry(quiche::QuicheStringPiece name,
-                       quiche::QuicheStringPiece value)
+HpackEntry::HpackEntry(absl::string_view name, absl::string_view value)
     : name_ref_(name),
       value_ref_(value),
       insertion_index_(0),
@@ -44,8 +43,8 @@
   } else {
     name_ = other.name_;
     value_ = other.value_;
-    name_ref_ = quiche::QuicheStringPiece(name_.data(), name_.size());
-    value_ref_ = quiche::QuicheStringPiece(value_.data(), value_.size());
+    name_ref_ = absl::string_view(name_.data(), name_.size());
+    value_ref_ = absl::string_view(value_.data(), value_.size());
   }
 }
 
@@ -61,16 +60,15 @@
   }
   name_ = other.name_;
   value_ = other.value_;
-  name_ref_ = quiche::QuicheStringPiece(name_.data(), name_.size());
-  value_ref_ = quiche::QuicheStringPiece(value_.data(), value_.size());
+  name_ref_ = absl::string_view(name_.data(), name_.size());
+  value_ref_ = absl::string_view(value_.data(), value_.size());
   return *this;
 }
 
 HpackEntry::~HpackEntry() = default;
 
 // static
-size_t HpackEntry::Size(quiche::QuicheStringPiece name,
-                        quiche::QuicheStringPiece value) {
+size_t HpackEntry::Size(absl::string_view name, absl::string_view value) {
   return name.size() + value.size() + kSizeOverhead;
 }
 size_t HpackEntry::Size() const {
diff --git a/spdy/core/hpack/hpack_entry.h b/spdy/core/hpack/hpack_entry.h
index 750c7e6..e9c4efc 100644
--- a/spdy/core/hpack/hpack_entry.h
+++ b/spdy/core/hpack/hpack_entry.h
@@ -9,8 +9,8 @@
 #include <cstdint>
 #include <string>
 
+#include "absl/strings/string_view.h"
 #include "net/third_party/quiche/src/common/platform/api/quiche_export.h"
-#include "net/third_party/quiche/src/common/platform/api/quiche_string_piece.h"
 
 // All section references below are to
 // http://tools.ietf.org/html/draft-ietf-httpbis-header-compression-08
@@ -34,15 +34,15 @@
   // The combination of |is_static| and |insertion_index| allows an
   // HpackEntryTable to determine the index of an HpackEntry in O(1) time.
   // Copies |name| and |value|.
-  HpackEntry(quiche::QuicheStringPiece name,
-             quiche::QuicheStringPiece value,
+  HpackEntry(absl::string_view name,
+             absl::string_view value,
              bool is_static,
              size_t insertion_index);
 
   // Create a 'lookup' entry (only) suitable for querying a HpackEntrySet. The
   // instance InsertionIndex() always returns 0 and IsLookup() returns true.
   // The memory backing |name| and |value| must outlive this object.
-  HpackEntry(quiche::QuicheStringPiece name, quiche::QuicheStringPiece value);
+  HpackEntry(absl::string_view name, absl::string_view value);
 
   HpackEntry(const HpackEntry& other);
   HpackEntry& operator=(const HpackEntry& other);
@@ -53,8 +53,8 @@
 
   ~HpackEntry();
 
-  quiche::QuicheStringPiece name() const { return name_ref_; }
-  quiche::QuicheStringPiece value() const { return value_ref_; }
+  absl::string_view name() const { return name_ref_; }
+  absl::string_view value() const { return value_ref_; }
 
   // Returns whether this entry is a member of the static (as opposed to
   // dynamic) table.
@@ -67,8 +67,7 @@
   size_t InsertionIndex() const { return insertion_index_; }
 
   // Returns the size of an entry as defined in 5.1.
-  static size_t Size(quiche::QuicheStringPiece name,
-                     quiche::QuicheStringPiece value);
+  static size_t Size(absl::string_view name, absl::string_view value);
   size_t Size() const;
 
   std::string GetDebugString() const;
@@ -92,8 +91,8 @@
 
   // These members are always valid. For DYNAMIC and STATIC entries, they
   // always point to |name_| and |value_|.
-  quiche::QuicheStringPiece name_ref_;
-  quiche::QuicheStringPiece value_ref_;
+  absl::string_view name_ref_;
+  absl::string_view value_ref_;
 
   // The entry's index in the total set of entries ever inserted into the header
   // table.
diff --git a/spdy/core/hpack/hpack_header_table.cc b/spdy/core/hpack/hpack_header_table.cc
index 67a0a5f..1ecfd79 100644
--- a/spdy/core/hpack/hpack_header_table.cc
+++ b/spdy/core/hpack/hpack_header_table.cc
@@ -60,7 +60,7 @@
   return nullptr;
 }
 
-const HpackEntry* HpackHeaderTable::GetByName(quiche::QuicheStringPiece name) {
+const HpackEntry* HpackHeaderTable::GetByName(absl::string_view name) {
   {
     auto it = static_name_index_.find(name);
     if (it != static_name_index_.end()) {
@@ -80,9 +80,8 @@
   return nullptr;
 }
 
-const HpackEntry* HpackHeaderTable::GetByNameAndValue(
-    quiche::QuicheStringPiece name,
-    quiche::QuicheStringPiece value) {
+const HpackEntry* HpackHeaderTable::GetByNameAndValue(absl::string_view name,
+                                                      absl::string_view value) {
   HpackEntry query(name, value);
   {
     auto it = static_index_.find(&query);
@@ -128,8 +127,8 @@
   SetMaxSize(settings_size_bound_);
 }
 
-void HpackHeaderTable::EvictionSet(quiche::QuicheStringPiece name,
-                                   quiche::QuicheStringPiece value,
+void HpackHeaderTable::EvictionSet(absl::string_view name,
+                                   absl::string_view value,
                                    EntryTable::iterator* begin_out,
                                    EntryTable::iterator* end_out) {
   size_t eviction_count = EvictionCountForEntry(name, value);
@@ -137,9 +136,8 @@
   *end_out = dynamic_entries_.end();
 }
 
-size_t HpackHeaderTable::EvictionCountForEntry(
-    quiche::QuicheStringPiece name,
-    quiche::QuicheStringPiece value) const {
+size_t HpackHeaderTable::EvictionCountForEntry(absl::string_view name,
+                                               absl::string_view value) const {
   size_t available_size = max_size_ - size_;
   size_t entry_size = HpackEntry::Size(name, value);
 
@@ -185,9 +183,8 @@
   }
 }
 
-const HpackEntry* HpackHeaderTable::TryAddEntry(
-    quiche::QuicheStringPiece name,
-    quiche::QuicheStringPiece value) {
+const HpackEntry* HpackHeaderTable::TryAddEntry(absl::string_view name,
+                                                absl::string_view value) {
   Evict(EvictionCountForEntry(name, value));
 
   size_t entry_size = HpackEntry::Size(name, value);
diff --git a/spdy/core/hpack/hpack_header_table.h b/spdy/core/hpack/hpack_header_table.h
index 88ef6d7..7f558bd 100644
--- a/spdy/core/hpack/hpack_header_table.h
+++ b/spdy/core/hpack/hpack_header_table.h
@@ -10,6 +10,7 @@
 #include <deque>
 #include <memory>
 
+#include "absl/strings/string_view.h"
 #include "net/third_party/quiche/src/common/platform/api/quiche_export.h"
 #include "net/third_party/quiche/src/common/platform/api/quiche_string_piece.h"
 #include "net/third_party/quiche/src/spdy/core/hpack/hpack_entry.h"
@@ -67,7 +68,7 @@
     bool operator()(const HpackEntry* lhs, const HpackEntry* rhs) const;
   };
   using UnorderedEntrySet = SpdyHashSet<HpackEntry*, EntryHasher, EntriesEq>;
-  using NameToEntryMap = SpdyHashMap<quiche::QuicheStringPiece,
+  using NameToEntryMap = SpdyHashMap<absl::string_view,
                                      const HpackEntry*,
                                      quiche::QuicheStringPieceHash>;
 
@@ -89,11 +90,11 @@
   const HpackEntry* GetByIndex(size_t index);
 
   // Returns the lowest-value entry having |name|, or NULL.
-  const HpackEntry* GetByName(quiche::QuicheStringPiece name);
+  const HpackEntry* GetByName(absl::string_view name);
 
   // Returns the lowest-index matching entry, or NULL.
-  const HpackEntry* GetByNameAndValue(quiche::QuicheStringPiece name,
-                                      quiche::QuicheStringPiece value);
+  const HpackEntry* GetByNameAndValue(absl::string_view name,
+                                      absl::string_view value);
 
   // Returns the index of an entry within this header table.
   size_t IndexOf(const HpackEntry* entry) const;
@@ -109,8 +110,8 @@
   // Determine the set of entries which would be evicted by the insertion
   // of |name| & |value| into the table, as per section 4.4. No eviction
   // actually occurs. The set is returned via range [begin_out, end_out).
-  void EvictionSet(quiche::QuicheStringPiece name,
-                   quiche::QuicheStringPiece value,
+  void EvictionSet(absl::string_view name,
+                   absl::string_view value,
                    EntryTable::iterator* begin_out,
                    EntryTable::iterator* end_out);
 
@@ -118,8 +119,8 @@
   // and |value| must not be owned by an entry which could be evicted. The
   // added HpackEntry is returned, or NULL is returned if all entries were
   // evicted and the empty table is of insufficent size for the representation.
-  const HpackEntry* TryAddEntry(quiche::QuicheStringPiece name,
-                                quiche::QuicheStringPiece value);
+  const HpackEntry* TryAddEntry(absl::string_view name,
+                                absl::string_view value);
 
   void DebugLogTableState() const SPDY_UNUSED;
 
@@ -132,8 +133,8 @@
 
  private:
   // Returns number of evictions required to enter |name| & |value|.
-  size_t EvictionCountForEntry(quiche::QuicheStringPiece name,
-                               quiche::QuicheStringPiece value) const;
+  size_t EvictionCountForEntry(absl::string_view name,
+                               absl::string_view value) const;
 
   // Returns number of evictions required to reclaim |reclaim_size| table size.
   size_t EvictionCountToReclaim(size_t reclaim_size) const;
diff --git a/spdy/core/hpack/hpack_header_table_test.cc b/spdy/core/hpack/hpack_header_table_test.cc
index cc5674f..0b6799e 100644
--- a/spdy/core/hpack/hpack_header_table_test.cc
+++ b/spdy/core/hpack/hpack_header_table_test.cc
@@ -33,8 +33,8 @@
   size_t index_size() {
     return table_->static_index_.size() + table_->dynamic_index_.size();
   }
-  std::vector<HpackEntry*> EvictionSet(quiche::QuicheStringPiece name,
-                                       quiche::QuicheStringPiece value) {
+  std::vector<HpackEntry*> EvictionSet(absl::string_view name,
+                                       absl::string_view value) {
     HpackHeaderTable::EntryTable::iterator begin, end;
     table_->EvictionSet(name, value, &begin, &end);
     std::vector<HpackEntry*> result;
@@ -45,8 +45,8 @@
   }
   size_t total_insertions() { return table_->total_insertions_; }
   size_t dynamic_entries_count() { return table_->dynamic_entries_.size(); }
-  size_t EvictionCountForEntry(quiche::QuicheStringPiece name,
-                               quiche::QuicheStringPiece value) {
+  size_t EvictionCountForEntry(absl::string_view name,
+                               absl::string_view value) {
     return table_->EvictionCountForEntry(name, value);
   }
   size_t EvictionCountToReclaim(size_t reclaim_size) {
@@ -54,8 +54,7 @@
   }
   void Evict(size_t count) { return table_->Evict(count); }
 
-  void AddDynamicEntry(quiche::QuicheStringPiece name,
-                       quiche::QuicheStringPiece value) {
+  void AddDynamicEntry(absl::string_view name, absl::string_view value) {
     table_->dynamic_entries_.push_back(
         HpackEntry(name, value, false, table_->total_insertions_++));
   }
diff --git a/spdy/core/hpack/hpack_huffman_table.cc b/spdy/core/hpack/hpack_huffman_table.cc
index eb799d0..aac6d1b 100644
--- a/spdy/core/hpack/hpack_huffman_table.cc
+++ b/spdy/core/hpack/hpack_huffman_table.cc
@@ -96,7 +96,7 @@
   return !code_by_id_.empty();
 }
 
-void HpackHuffmanTable::EncodeString(quiche::QuicheStringPiece in,
+void HpackHuffmanTable::EncodeString(absl::string_view in,
                                      HpackOutputStream* out) const {
   size_t bit_remnant = 0;
   for (size_t i = 0; i != in.size(); i++) {
@@ -129,7 +129,7 @@
   }
 }
 
-size_t HpackHuffmanTable::EncodedSize(quiche::QuicheStringPiece in) const {
+size_t HpackHuffmanTable::EncodedSize(absl::string_view in) const {
   size_t bit_count = 0;
   for (size_t i = 0; i != in.size(); i++) {
     uint16_t symbol_id = static_cast<uint8_t>(in[i]);
diff --git a/spdy/core/hpack/hpack_huffman_table.h b/spdy/core/hpack/hpack_huffman_table.h
index b7c2649..81af770 100644
--- a/spdy/core/hpack/hpack_huffman_table.h
+++ b/spdy/core/hpack/hpack_huffman_table.h
@@ -9,8 +9,8 @@
 #include <cstdint>
 #include <vector>
 
+#include "absl/strings/string_view.h"
 #include "net/third_party/quiche/src/common/platform/api/quiche_export.h"
-#include "net/third_party/quiche/src/common/platform/api/quiche_string_piece.h"
 #include "net/third_party/quiche/src/spdy/core/hpack/hpack_constants.h"
 
 namespace spdy {
@@ -45,10 +45,10 @@
 
   // Encodes the input string to the output stream using the table's Huffman
   // context.
-  void EncodeString(quiche::QuicheStringPiece in, HpackOutputStream* out) const;
+  void EncodeString(absl::string_view in, HpackOutputStream* out) const;
 
   // Returns the encoded size of the input string.
-  size_t EncodedSize(quiche::QuicheStringPiece in) const;
+  size_t EncodedSize(absl::string_view in) const;
 
   // Returns the estimate of dynamically allocated memory in bytes.
   size_t EstimateMemoryUsage() const;
diff --git a/spdy/core/hpack/hpack_huffman_table_test.cc b/spdy/core/hpack/hpack_huffman_table_test.cc
index f49c73d..b820f5e 100644
--- a/spdy/core/hpack/hpack_huffman_table_test.cc
+++ b/spdy/core/hpack/hpack_huffman_table_test.cc
@@ -42,7 +42,7 @@
  protected:
   GenericHuffmanTableTest() : table_(), peer_(table_) {}
 
-  std::string EncodeString(quiche::QuicheStringPiece input) {
+  std::string EncodeString(absl::string_view input) {
     std::string result;
     HpackOutputStream output_stream;
     table_.EncodeString(input, &output_stream);
@@ -171,12 +171,10 @@
   EXPECT_EQ(0b10011000, peer_.pad_bits());
 
   char input_storage[] = {2, 3, 2, 7, 4};
-  quiche::QuicheStringPiece input(input_storage,
-                                  QUICHE_ARRAYSIZE(input_storage));
+  absl::string_view input(input_storage, QUICHE_ARRAYSIZE(input_storage));
   // By symbol: (2) 00 (3) 010 (2) 00 (7) 10010 (4) 10000 (6 as pad) 1001100.
   char expect_storage[] = {0b00010001, 0b00101000, 0b01001100};
-  quiche::QuicheStringPiece expect(expect_storage,
-                                   QUICHE_ARRAYSIZE(expect_storage));
+  absl::string_view expect(expect_storage, QUICHE_ARRAYSIZE(expect_storage));
   EXPECT_EQ(expect, EncodeString(input));
 }
 
@@ -258,7 +256,7 @@
   for (size_t i = 0; i != 256; i++) {
     char c = static_cast<char>(i);
     char storage[3] = {c, c, c};
-    quiche::QuicheStringPiece input(storage, QUICHE_ARRAYSIZE(storage));
+    absl::string_view input(storage, QUICHE_ARRAYSIZE(storage));
     std::string buffer_in = EncodeString(input);
     std::string buffer_out;
     DecodeString(buffer_in, &buffer_out);
@@ -272,7 +270,7 @@
     storage[i] = static_cast<char>(i);
     storage[511 - i] = static_cast<char>(i);
   }
-  quiche::QuicheStringPiece input(storage, QUICHE_ARRAYSIZE(storage));
+  absl::string_view input(storage, QUICHE_ARRAYSIZE(storage));
   std::string buffer_in = EncodeString(input);
   std::string buffer_out;
   DecodeString(buffer_in, &buffer_out);
diff --git a/spdy/core/hpack/hpack_output_stream.cc b/spdy/core/hpack/hpack_output_stream.cc
index c53f07f..a532f0b 100644
--- a/spdy/core/hpack/hpack_output_stream.cc
+++ b/spdy/core/hpack/hpack_output_stream.cc
@@ -41,7 +41,7 @@
   AppendBits(prefix.bits, prefix.bit_size);
 }
 
-void HpackOutputStream::AppendBytes(quiche::QuicheStringPiece buffer) {
+void HpackOutputStream::AppendBytes(absl::string_view buffer) {
   DCHECK_EQ(bit_offset_, 0u);
   buffer_.append(buffer.data(), buffer.size());
 }
diff --git a/spdy/core/hpack/hpack_output_stream.h b/spdy/core/hpack/hpack_output_stream.h
index f99097a..b94aa0c 100644
--- a/spdy/core/hpack/hpack_output_stream.h
+++ b/spdy/core/hpack/hpack_output_stream.h
@@ -9,8 +9,8 @@
 #include <map>
 #include <string>
 
+#include "absl/strings/string_view.h"
 #include "net/third_party/quiche/src/common/platform/api/quiche_export.h"
-#include "net/third_party/quiche/src/common/platform/api/quiche_string_piece.h"
 #include "net/third_party/quiche/src/spdy/core/hpack/hpack_constants.h"
 
 // All section references below are to
@@ -37,7 +37,7 @@
   void AppendPrefix(HpackPrefix prefix);
 
   // Directly appends |buffer|.
-  void AppendBytes(quiche::QuicheStringPiece buffer);
+  void AppendBytes(absl::string_view buffer);
 
   // Appends the given integer using the representation described in
   // 6.1. If the internal buffer ends on a byte boundary, the prefix
diff --git a/spdy/core/hpack/hpack_static_table.cc b/spdy/core/hpack/hpack_static_table.cc
index e8b07f1..c0815ce 100644
--- a/spdy/core/hpack/hpack_static_table.cc
+++ b/spdy/core/hpack/hpack_static_table.cc
@@ -4,7 +4,7 @@
 
 #include "net/third_party/quiche/src/spdy/core/hpack/hpack_static_table.h"
 
-#include "net/third_party/quiche/src/common/platform/api/quiche_string_piece.h"
+#include "absl/strings/string_view.h"
 #include "net/third_party/quiche/src/spdy/core/hpack/hpack_constants.h"
 #include "net/third_party/quiche/src/spdy/core/hpack/hpack_entry.h"
 #include "net/third_party/quiche/src/spdy/platform/api/spdy_estimate_memory_usage.h"
@@ -24,8 +24,8 @@
   for (const HpackStaticEntry* it = static_entry_table;
        it != static_entry_table + static_entry_count; ++it) {
     static_entries_.push_back(
-        HpackEntry(quiche::QuicheStringPiece(it->name, it->name_len),
-                   quiche::QuicheStringPiece(it->value, it->value_len),
+        HpackEntry(absl::string_view(it->name, it->name_len),
+                   absl::string_view(it->value, it->value_len),
                    true,  // is_static
                    total_insertions));
     HpackEntry* entry = &static_entries_.back();
diff --git a/spdy/core/hpack/hpack_static_table_test.cc b/spdy/core/hpack/hpack_static_table_test.cc
index 42c6254..36eb831 100644
--- a/spdy/core/hpack/hpack_static_table_test.cc
+++ b/spdy/core/hpack/hpack_static_table_test.cc
@@ -7,7 +7,7 @@
 #include <set>
 #include <vector>
 
-#include "net/third_party/quiche/src/common/platform/api/quiche_string_piece.h"
+#include "absl/strings/string_view.h"
 #include "net/third_party/quiche/src/common/platform/api/quiche_test.h"
 #include "net/third_party/quiche/src/spdy/core/hpack/hpack_constants.h"
 
@@ -39,7 +39,7 @@
 
   HpackHeaderTable::NameToEntryMap static_name_index =
       table_.GetStaticNameIndex();
-  std::set<quiche::QuicheStringPiece> names;
+  std::set<absl::string_view> names;
   for (auto* entry : static_index) {
     names.insert(entry->name());
   }