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)}));