Replace QuicheStringPiece with absl::string_view

PiperOrigin-RevId: 336334623
Change-Id: If24102f4c28ed976948e6d9b8b40538cadf00d4f
diff --git a/quic/quic_transport/quic_transport_client_session.cc b/quic/quic_transport/quic_transport_client_session.cc
index 4d5da07..f38d6b3 100644
--- a/quic/quic_transport/quic_transport_client_session.cc
+++ b/quic/quic_transport/quic_transport_client_session.cc
@@ -10,6 +10,7 @@
 #include <string>
 #include <utility>
 
+#include "absl/strings/string_view.h"
 #include "url/gurl.h"
 #include "net/third_party/quiche/src/quic/core/quic_constants.h"
 #include "net/third_party/quiche/src/quic/core/quic_crypto_client_stream.h"
@@ -22,7 +23,6 @@
 #include "net/third_party/quiche/src/quic/platform/api/quic_logging.h"
 #include "net/third_party/quiche/src/quic/quic_transport/quic_transport_protocol.h"
 #include "net/third_party/quiche/src/quic/quic_transport/quic_transport_stream.h"
-#include "net/third_party/quiche/src/common/platform/api/quiche_string_piece.h"
 
 namespace quic {
 
@@ -53,8 +53,7 @@
       /*proof_handler=*/this, /*has_application_state = */ true);
 }
 
-void QuicTransportClientSession::OnAlpnSelected(
-    quiche::QuicheStringPiece alpn) {
+void QuicTransportClientSession::OnAlpnSelected(absl::string_view alpn) {
   // Defense in-depth: ensure the ALPN selected is the desired one.
   if (alpn != QuicTransportAlpn()) {
     QUIC_BUG << "QuicTransport negotiated non-QuicTransport ALPN: " << alpn;
@@ -237,8 +236,7 @@
   visitor_->OnSessionReady();
 }
 
-void QuicTransportClientSession::OnMessageReceived(
-    quiche::QuicheStringPiece message) {
+void QuicTransportClientSession::OnMessageReceived(absl::string_view message) {
   visitor_->OnDatagramReceived(message);
 }
 
diff --git a/quic/quic_transport/quic_transport_client_session.h b/quic/quic_transport/quic_transport_client_session.h
index 6fe2619..c4f417f 100644
--- a/quic/quic_transport/quic_transport_client_session.h
+++ b/quic/quic_transport/quic_transport_client_session.h
@@ -8,6 +8,7 @@
 #include <cstdint>
 #include <memory>
 
+#include "absl/strings/string_view.h"
 #include "url/gurl.h"
 #include "url/origin.h"
 #include "net/third_party/quiche/src/quic/core/crypto/quic_crypto_client_config.h"
@@ -24,7 +25,6 @@
 #include "net/third_party/quiche/src/quic/quic_transport/quic_transport_protocol.h"
 #include "net/third_party/quiche/src/quic/quic_transport/quic_transport_session_interface.h"
 #include "net/third_party/quiche/src/quic/quic_transport/quic_transport_stream.h"
-#include "net/third_party/quiche/src/common/platform/api/quiche_string_piece.h"
 
 namespace quic {
 
@@ -49,7 +49,7 @@
     virtual void OnIncomingUnidirectionalStreamAvailable() = 0;
 
     // Notifies the visitor when a new datagram has been received.
-    virtual void OnDatagramReceived(quiche::QuicheStringPiece datagram) = 0;
+    virtual void OnDatagramReceived(absl::string_view datagram) = 0;
 
     // Notifies the visitor that a new outgoing stream can now be created.
     virtual void OnCanCreateNewOutgoingBidirectionalStream() = 0;
@@ -68,7 +68,7 @@
   std::vector<std::string> GetAlpnsToOffer() const override {
     return std::vector<std::string>({QuicTransportAlpn()});
   }
-  void OnAlpnSelected(quiche::QuicheStringPiece alpn) override;
+  void OnAlpnSelected(absl::string_view alpn) override;
   bool alpn_received() const { return alpn_received_; }
 
   void CryptoConnect() { crypto_stream_->CryptoConnect(); }
@@ -97,7 +97,7 @@
 
   void SetDefaultEncryptionLevel(EncryptionLevel level) override;
   void OnTlsHandshakeComplete() override;
-  void OnMessageReceived(quiche::QuicheStringPiece message) override;
+  void OnMessageReceived(absl::string_view message) override;
 
   // Return the earliest incoming stream that has been received by the session
   // but has not been accepted.  Returns nullptr if there are no incoming
diff --git a/quic/quic_transport/quic_transport_integration_test.cc b/quic/quic_transport/quic_transport_integration_test.cc
index 4a99724..1965c6d 100644
--- a/quic/quic_transport/quic_transport_integration_test.cc
+++ b/quic/quic_transport/quic_transport_integration_test.cc
@@ -8,6 +8,7 @@
 #include <memory>
 #include <vector>
 
+#include "absl/strings/string_view.h"
 #include "url/gurl.h"
 #include "url/origin.h"
 #include "net/third_party/quiche/src/quic/core/crypto/quic_crypto_client_config.h"
@@ -31,7 +32,6 @@
 #include "net/third_party/quiche/src/quic/test_tools/simulator/simulator.h"
 #include "net/third_party/quiche/src/quic/test_tools/simulator/switch.h"
 #include "net/third_party/quiche/src/quic/tools/quic_transport_simple_server_session.h"
-#include "net/third_party/quiche/src/common/platform/api/quiche_string_piece.h"
 
 namespace quic {
 namespace test {
@@ -377,7 +377,7 @@
   size_t received = 0;
   EXPECT_CALL(*client_->visitor(), OnDatagramReceived(_))
       .WillRepeatedly(
-          [&received](quiche::QuicheStringPiece /*datagram*/) { received++; });
+          [&received](absl::string_view /*datagram*/) { received++; });
   ASSERT_TRUE(simulator_.RunUntilOrTimeout(
       [this]() { return client_->session()->datagram_queue()->empty(); },
       3 * kServerBandwidth.TransferTime(1000 * kMaxOutgoingPacketSize)));
diff --git a/quic/quic_transport/quic_transport_server_session.cc b/quic/quic_transport/quic_transport_server_session.cc
index c2de659..083e6fc 100644
--- a/quic/quic_transport/quic_transport_server_session.cc
+++ b/quic/quic_transport/quic_transport_server_session.cc
@@ -8,6 +8,7 @@
 #include <memory>
 #include <string>
 
+#include "absl/strings/string_view.h"
 #include "url/gurl.h"
 #include "url/url_constants.h"
 #include "net/third_party/quiche/src/quic/core/quic_error_codes.h"
@@ -16,7 +17,6 @@
 #include "net/third_party/quiche/src/quic/quic_transport/quic_transport_protocol.h"
 #include "net/third_party/quiche/src/quic/quic_transport/quic_transport_stream.h"
 #include "net/third_party/quiche/src/common/platform/api/quiche_str_cat.h"
-#include "net/third_party/quiche/src/common/platform/api/quiche_string_piece.h"
 
 namespace quic {
 
@@ -109,7 +109,7 @@
       return false;
     }
 
-    quiche::QuicheStringPiece value;
+    absl::string_view value;
     if (!reader_.ReadStringPiece16(&value)) {
       ParseError(quiche::QuicheStrCat("Failed to read value for key ", key));
       return false;
@@ -160,7 +160,7 @@
 }
 
 bool QuicTransportServerSession::ClientIndicationParser::ProcessPath(
-    quiche::QuicheStringPiece path) {
+    absl::string_view path) {
   if (path.empty() || path[0] != '/') {
     // https://tools.ietf.org/html/draft-vvv-webtransport-quic-01#section-3.2.2
     Error("Path must begin with a '/'");
@@ -193,13 +193,13 @@
 }
 
 void QuicTransportServerSession::ClientIndicationParser::ParseError(
-    quiche::QuicheStringPiece error_message) {
+    absl::string_view error_message) {
   Error(quiche::QuicheStrCat("Failed to parse the client indication stream: ",
                              error_message, reader_.DebugString()));
 }
 
 void QuicTransportServerSession::ProcessClientIndication(
-    quiche::QuicheStringPiece indication) {
+    absl::string_view indication) {
   ClientIndicationParser parser(this, indication);
   if (!parser.Parse()) {
     return;
diff --git a/quic/quic_transport/quic_transport_server_session.h b/quic/quic_transport/quic_transport_server_session.h
index 1b9dda0..4085998 100644
--- a/quic/quic_transport/quic_transport_server_session.h
+++ b/quic/quic_transport/quic_transport_server_session.h
@@ -5,6 +5,7 @@
 #ifndef QUICHE_QUIC_QUIC_TRANSPORT_QUIC_TRANSPORT_SERVER_SESSION_H_
 #define QUICHE_QUIC_QUIC_TRANSPORT_QUIC_TRANSPORT_SERVER_SESSION_H_
 
+#include "absl/strings/string_view.h"
 #include "url/gurl.h"
 #include "url/origin.h"
 #include "net/third_party/quiche/src/quic/core/quic_connection.h"
@@ -13,7 +14,6 @@
 #include "net/third_party/quiche/src/quic/quic_transport/quic_transport_protocol.h"
 #include "net/third_party/quiche/src/quic/quic_transport/quic_transport_session_interface.h"
 #include "net/third_party/quiche/src/quic/quic_transport/quic_transport_stream.h"
-#include "net/third_party/quiche/src/common/platform/api/quiche_string_piece.h"
 
 namespace quic {
 
@@ -44,8 +44,8 @@
                              QuicCompressedCertsCache* compressed_certs_cache,
                              ServerVisitor* visitor);
 
-  std::vector<quiche::QuicheStringPiece>::const_iterator SelectAlpn(
-      const std::vector<quiche::QuicheStringPiece>& alpns) const override {
+  std::vector<absl::string_view>::const_iterator SelectAlpn(
+      const std::vector<absl::string_view>& alpns) const override {
     return std::find(alpns.cbegin(), alpns.cend(), QuicTransportAlpn());
   }
 
@@ -86,7 +86,7 @@
   class QUIC_EXPORT_PRIVATE ClientIndicationParser {
    public:
     ClientIndicationParser(QuicTransportServerSession* session,
-                           quiche::QuicheStringPiece indication)
+                           absl::string_view indication)
         : session_(session), reader_(indication) {}
 
     // Parses the specified indication.  Automatically closes the connection
@@ -96,10 +96,10 @@
 
    private:
     void Error(const std::string& error_message);
-    void ParseError(quiche::QuicheStringPiece error_message);
+    void ParseError(absl::string_view error_message);
 
     // Processes the path portion of the client indication.
-    bool ProcessPath(quiche::QuicheStringPiece path);
+    bool ProcessPath(absl::string_view path);
 
     QuicTransportServerSession* session_;
     QuicDataReader reader_;
@@ -107,7 +107,7 @@
 
   // Parses and processes the client indication as described in
   // https://vasilvv.github.io/webtransport/draft-vvv-webtransport-quic.html#rfc.section.3.2
-  void ProcessClientIndication(quiche::QuicheStringPiece indication);
+  void ProcessClientIndication(absl::string_view indication);
 
   virtual void OnIncomingDataStream(QuicTransportStream* /*stream*/) {}
 
diff --git a/quic/quic_transport/quic_transport_server_session_test.cc b/quic/quic_transport/quic_transport_server_session_test.cc
index 8176b03..c4e40d5 100644
--- a/quic/quic_transport/quic_transport_server_session_test.cc
+++ b/quic/quic_transport/quic_transport_server_session_test.cc
@@ -8,6 +8,7 @@
 #include <memory>
 #include <string>
 
+#include "absl/strings/string_view.h"
 #include "url/gurl.h"
 #include "url/origin.h"
 #include "net/third_party/quiche/src/quic/core/crypto/quic_compressed_certs_cache.h"
@@ -20,7 +21,6 @@
 #include "net/third_party/quiche/src/quic/test_tools/crypto_test_utils.h"
 #include "net/third_party/quiche/src/quic/test_tools/quic_test_utils.h"
 #include "net/third_party/quiche/src/quic/test_tools/quic_transport_test_tools.h"
-#include "net/third_party/quiche/src/common/platform/api/quiche_string_piece.h"
 #include "net/third_party/quiche/src/common/platform/api/quiche_text_utils.h"
 
 namespace quic {
@@ -88,7 +88,7 @@
         QuicServerId("test.example.com", 443), options, QuicTransportAlpn());
   }
 
-  void ReceiveIndication(quiche::QuicheStringPiece indication) {
+  void ReceiveIndication(absl::string_view indication) {
     QUIC_LOG(INFO) << "Receiving indication: "
                    << quiche::QuicheTextUtils::HexDump(indication);
     constexpr size_t kChunkSize = 1024;
@@ -101,10 +101,10 @@
     }
     session_->OnStreamFrame(QuicStreamFrame(ClientIndicationStream(),
                                             /*fin=*/true, indication.size(),
-                                            quiche::QuicheStringPiece()));
+                                            absl::string_view()));
   }
 
-  void ReceiveIndicationWithPath(quiche::QuicheStringPiece path) {
+  void ReceiveIndicationWithPath(absl::string_view path) {
     constexpr char kTestOriginClientIndicationPrefix[] =
         "\0\0"                      // key (0x0000, origin)
         "\0\x18"                    // length
@@ -149,14 +149,14 @@
   for (; i < sizeof(kTestOriginClientIndication) - 2; i++) {
     QuicStreamFrame frame(
         ClientIndicationStream(), false, i,
-        quiche::QuicheStringPiece(&kTestOriginClientIndication[i], 1));
+        absl::string_view(&kTestOriginClientIndication[i], 1));
     session_->OnStreamFrame(frame);
   }
 
   EXPECT_CALL(visitor_, CheckOrigin(_)).WillOnce(Return(true));
   QuicStreamFrame last_frame(
       ClientIndicationStream(), true, i,
-      quiche::QuicheStringPiece(&kTestOriginClientIndication[i], 1));
+      absl::string_view(&kTestOriginClientIndication[i], 1));
   session_->OnStreamFrame(last_frame);
   EXPECT_TRUE(session_->IsSessionReady());
 }
@@ -170,7 +170,7 @@
   EXPECT_FALSE(session_->IsSessionReady());
 }
 
-std::string MakeUnknownField(quiche::QuicheStringPiece payload) {
+std::string MakeUnknownField(absl::string_view payload) {
   std::string buffer;
   buffer.resize(payload.size() + 4);
   QuicDataWriter writer(buffer.size(), &buffer[0]);
diff --git a/quic/quic_transport/quic_transport_stream.cc b/quic/quic_transport/quic_transport_stream.cc
index 0fb988a..38614e1 100644
--- a/quic/quic_transport/quic_transport_stream.cc
+++ b/quic/quic_transport/quic_transport_stream.cc
@@ -6,11 +6,11 @@
 
 #include <sys/types.h>
 
+#include "absl/strings/string_view.h"
 #include "net/third_party/quiche/src/quic/core/quic_buffer_allocator.h"
 #include "net/third_party/quiche/src/quic/core/quic_error_codes.h"
 #include "net/third_party/quiche/src/quic/core/quic_types.h"
 #include "net/third_party/quiche/src/quic/core/quic_utils.h"
-#include "net/third_party/quiche/src/common/platform/api/quiche_string_piece.h"
 
 namespace quic {
 
@@ -52,7 +52,7 @@
   return bytes_read;
 }
 
-bool QuicTransportStream::Write(quiche::QuicheStringPiece data) {
+bool QuicTransportStream::Write(absl::string_view data) {
   if (!CanWrite()) {
     return false;
   }
diff --git a/quic/quic_transport/quic_transport_stream.h b/quic/quic_transport/quic_transport_stream.h
index f2bac88..0b98ac5 100644
--- a/quic/quic_transport/quic_transport_stream.h
+++ b/quic/quic_transport/quic_transport_stream.h
@@ -8,12 +8,12 @@
 #include <cstddef>
 #include <memory>
 
+#include "absl/strings/string_view.h"
 #include "net/third_party/quiche/src/quic/core/quic_session.h"
 #include "net/third_party/quiche/src/quic/core/quic_stream.h"
 #include "net/third_party/quiche/src/quic/core/quic_types.h"
 #include "net/third_party/quiche/src/quic/platform/api/quic_macros.h"
 #include "net/third_party/quiche/src/quic/quic_transport/quic_transport_session_interface.h"
-#include "net/third_party/quiche/src/common/platform/api/quiche_string_piece.h"
 
 namespace quic {
 
@@ -40,7 +40,7 @@
   // Reads all available data and appends it to the end of |output|.
   size_t Read(std::string* output);
   // Writes |data| into the stream.  Returns true on success.
-  QUIC_MUST_USE_RESULT bool Write(quiche::QuicheStringPiece data);
+  QUIC_MUST_USE_RESULT bool Write(absl::string_view data);
   // Sends the FIN on the stream.  Returns true on success.
   QUIC_MUST_USE_RESULT bool SendFin();
 
diff --git a/quic/quic_transport/quic_transport_stream_test.cc b/quic/quic_transport/quic_transport_stream_test.cc
index 0f0d770..e6c244b 100644
--- a/quic/quic_transport/quic_transport_stream_test.cc
+++ b/quic/quic_transport/quic_transport_stream_test.cc
@@ -6,6 +6,7 @@
 
 #include <memory>
 
+#include "absl/strings/string_view.h"
 #include "net/third_party/quiche/src/quic/core/frames/quic_window_update_frame.h"
 #include "net/third_party/quiche/src/quic/platform/api/quic_expect_bug.h"
 #include "net/third_party/quiche/src/quic/platform/api/quic_ptr_util.h"
@@ -14,7 +15,6 @@
 #include "net/third_party/quiche/src/quic/test_tools/quic_config_peer.h"
 #include "net/third_party/quiche/src/quic/test_tools/quic_test_utils.h"
 #include "net/third_party/quiche/src/quic/test_tools/quic_transport_test_tools.h"
-#include "net/third_party/quiche/src/common/platform/api/quiche_string_piece.h"
 
 namespace quic {
 namespace test {
@@ -51,8 +51,7 @@
     stream_->set_visitor(std::move(visitor));
   }
 
-  void ReceiveStreamData(quiche::QuicheStringPiece data,
-                         QuicStreamOffset offset) {
+  void ReceiveStreamData(absl::string_view data, QuicStreamOffset offset) {
     QuicStreamFrame frame(0, false, offset, data);
     stream_->OnStreamFrame(frame);
   }
diff --git a/quic/quic_transport/web_transport_fingerprint_proof_verifier.cc b/quic/quic_transport/web_transport_fingerprint_proof_verifier.cc
index 81466de..2ea1e44 100644
--- a/quic/quic_transport/web_transport_fingerprint_proof_verifier.cc
+++ b/quic/quic_transport/web_transport_fingerprint_proof_verifier.cc
@@ -7,13 +7,13 @@
 #include <cstdint>
 #include <memory>
 
+#include "absl/strings/string_view.h"
 #include "third_party/boringssl/src/include/openssl/sha.h"
 #include "net/third_party/quiche/src/quic/core/crypto/certificate_view.h"
 #include "net/third_party/quiche/src/quic/core/quic_time.h"
 #include "net/third_party/quiche/src/quic/core/quic_types.h"
 #include "net/third_party/quiche/src/quic/platform/api/quic_bug_tracker.h"
 #include "net/third_party/quiche/src/common/platform/api/quiche_str_cat.h"
-#include "net/third_party/quiche/src/common/platform/api/quiche_string_piece.h"
 #include "net/third_party/quiche/src/common/platform/api/quiche_text_utils.h"
 
 namespace quic {
@@ -39,7 +39,7 @@
 
 constexpr char CertificateFingerprint::kSha256[];
 
-std::string ComputeSha256Fingerprint(quiche::QuicheStringPiece input) {
+std::string ComputeSha256Fingerprint(absl::string_view input) {
   std::vector<uint8_t> raw_hash;
   raw_hash.resize(SHA256_DIGEST_LENGTH);
   SHA256(reinterpret_cast<const uint8_t*>(input.data()), input.size(),
@@ -114,7 +114,7 @@
     const uint16_t /*port*/,
     const std::string& /*server_config*/,
     QuicTransportVersion /*transport_version*/,
-    quiche::QuicheStringPiece /*chlo_hash*/,
+    absl::string_view /*chlo_hash*/,
     const std::vector<std::string>& /*certs*/,
     const std::string& /*cert_sct*/,
     const std::string& /*signature*/,
@@ -185,7 +185,7 @@
 }
 
 bool WebTransportFingerprintProofVerifier::HasKnownFingerprint(
-    quiche::QuicheStringPiece der_certificate) {
+    absl::string_view der_certificate) {
   // https://wicg.github.io/web-transport/#verify-a-certificate-fingerprint
   const std::string fingerprint = ComputeSha256Fingerprint(der_certificate);
   for (const CertificateFingerprint& reference : fingerprints_) {
diff --git a/quic/quic_transport/web_transport_fingerprint_proof_verifier.h b/quic/quic_transport/web_transport_fingerprint_proof_verifier.h
index 7e4358d..fba1f83 100644
--- a/quic/quic_transport/web_transport_fingerprint_proof_verifier.h
+++ b/quic/quic_transport/web_transport_fingerprint_proof_verifier.h
@@ -7,10 +7,10 @@
 
 #include <vector>
 
+#include "absl/strings/string_view.h"
 #include "net/third_party/quiche/src/quic/core/crypto/certificate_view.h"
 #include "net/third_party/quiche/src/quic/core/crypto/proof_verifier.h"
 #include "net/third_party/quiche/src/quic/core/quic_clock.h"
-#include "net/third_party/quiche/src/common/platform/api/quiche_string_piece.h"
 
 namespace quic {
 
@@ -30,7 +30,7 @@
 // Computes a SHA-256 fingerprint of the specified input formatted in the same
 // format as CertificateFingerprint::fingerprint would contain.
 QUIC_EXPORT_PRIVATE std::string ComputeSha256Fingerprint(
-    quiche::QuicheStringPiece input);
+    absl::string_view input);
 
 // WebTransportFingerprintProofVerifier verifies the server leaf certificate
 // against a supplied list of certificate fingerprints following the procedure
@@ -83,7 +83,7 @@
       const uint16_t port,
       const std::string& server_config,
       QuicTransportVersion transport_version,
-      quiche::QuicheStringPiece chlo_hash,
+      absl::string_view chlo_hash,
       const std::vector<std::string>& certs,
       const std::string& cert_sct,
       const std::string& signature,
@@ -104,7 +104,7 @@
   std::unique_ptr<ProofVerifyContext> CreateDefaultContext() override;
 
  private:
-  bool HasKnownFingerprint(quiche::QuicheStringPiece der_certificate);
+  bool HasKnownFingerprint(absl::string_view der_certificate);
   bool HasValidExpiry(const CertificateView& certificate);
   bool IsWithinValidityPeriod(const CertificateView& certificate);
 
diff --git a/quic/quic_transport/web_transport_fingerprint_proof_verifier_test.cc b/quic/quic_transport/web_transport_fingerprint_proof_verifier_test.cc
index f9f27e5..b527ae6 100644
--- a/quic/quic_transport/web_transport_fingerprint_proof_verifier_test.cc
+++ b/quic/quic_transport/web_transport_fingerprint_proof_verifier_test.cc
@@ -6,11 +6,11 @@
 
 #include <memory>
 
+#include "absl/strings/string_view.h"
 #include "net/third_party/quiche/src/quic/core/quic_types.h"
 #include "net/third_party/quiche/src/quic/platform/api/quic_test.h"
 #include "net/third_party/quiche/src/quic/test_tools/mock_clock.h"
 #include "net/third_party/quiche/src/quic/test_tools/test_certificates.h"
-#include "net/third_party/quiche/src/common/platform/api/quiche_string_piece.h"
 
 namespace quic {
 namespace test {
@@ -37,7 +37,7 @@
   }
 
  protected:
-  VerifyResult Verify(quiche::QuicheStringPiece certificate) {
+  VerifyResult Verify(absl::string_view certificate) {
     VerifyResult result;
     std::unique_ptr<ProofVerifyDetails> details;
     result.status = verifier_->VerifyCertChain(
@@ -136,7 +136,7 @@
 }
 
 TEST_F(WebTransportFingerprintProofVerifierTest, InvalidCertificate) {
-  constexpr quiche::QuicheStringPiece kInvalidCertificate = "Hello, world!";
+  constexpr absl::string_view kInvalidCertificate = "Hello, world!";
   ASSERT_TRUE(verifier_->AddFingerprint(
       {CertificateFingerprint::kSha256,
        ComputeSha256Fingerprint(kInvalidCertificate)}));