Remove the header argument from WebTransport OnSessionReady callback We in general should avoid using headers for communicating application-related payload, since those are intentionally not exposed in the browser. Even if we do want to support headers, OnSessionReady() is not a good place for those, since headers may become available at a different time than the OnSessionReady() call. PiperOrigin-RevId: 532572942
diff --git a/quiche/quic/core/http/web_transport_http3.cc b/quiche/quic/core/http/web_transport_http3.cc index f1c922b..6388e4c 100644 --- a/quiche/quic/core/http/web_transport_http3.cc +++ b/quiche/quic/core/http/web_transport_http3.cc
@@ -30,7 +30,7 @@ namespace { class QUIC_NO_EXPORT NoopWebTransportVisitor : public WebTransportVisitor { - void OnSessionReady(const spdy::Http2HeaderBlock&) override {} + void OnSessionReady() override {} void OnSessionClosed(WebTransportSessionError /*error_code*/, const std::string& /*error_message*/) override {} void OnIncomingBidirectionalStreamAvailable() override {} @@ -205,7 +205,7 @@ QUIC_DVLOG(1) << ENDPOINT << "WebTransport session " << id_ << " ready."; ready_ = true; - visitor_->OnSessionReady(headers); + visitor_->OnSessionReady(); session_->ProcessBufferedWebTransportStreamsForSession(this); }
diff --git a/quiche/quic/test_tools/quic_test_backend.cc b/quiche/quic/test_tools/quic_test_backend.cc index 983db8e..be8068b 100644 --- a/quiche/quic/test_tools/quic_test_backend.cc +++ b/quiche/quic/test_tools/quic_test_backend.cc
@@ -28,7 +28,7 @@ public: SessionCloseVisitor(WebTransportSession* session) : session_(session) {} - void OnSessionReady(const spdy::Http2HeaderBlock& /*headers*/) override {} + void OnSessionReady() override {} void OnSessionClosed(WebTransportSessionError /*error_code*/, const std::string& /*error_message*/) override {}
diff --git a/quiche/quic/test_tools/web_transport_resets_backend.cc b/quiche/quic/test_tools/web_transport_resets_backend.cc index 63bb842..e77a9f4 100644 --- a/quiche/quic/test_tools/web_transport_resets_backend.cc +++ b/quiche/quic/test_tools/web_transport_resets_backend.cc
@@ -36,7 +36,7 @@ public: ResetsVisitor(WebTransportSession* session) : session_(session) {} - void OnSessionReady(const spdy::Http2HeaderBlock& /*headers*/) override {} + void OnSessionReady() override {} void OnSessionClosed(WebTransportSessionError /*error_code*/, const std::string& /*error_message*/) override {}
diff --git a/quiche/quic/test_tools/web_transport_test_tools.h b/quiche/quic/test_tools/web_transport_test_tools.h index 353b48f..60d21aa 100644 --- a/quiche/quic/test_tools/web_transport_test_tools.h +++ b/quiche/quic/test_tools/web_transport_test_tools.h
@@ -5,39 +5,13 @@ #ifndef QUICHE_QUIC_TEST_TOOLS_WEB_TRANSPORT_TEST_TOOLS_H_ #define QUICHE_QUIC_TEST_TOOLS_WEB_TRANSPORT_TEST_TOOLS_H_ -#include "quiche/quic/core/web_transport_interface.h" -#include "quiche/quic/platform/api/quic_test.h" -#include "quiche/spdy/core/http2_header_block.h" +#include "quiche/web_transport/test_tools/mock_web_transport.h" -namespace quic { -namespace test { +namespace quic::test { -class MockWebTransportSessionVisitor : public WebTransportVisitor { - public: - MOCK_METHOD(void, OnSessionReady, (const spdy::Http2HeaderBlock&), - (override)); - MOCK_METHOD(void, OnSessionClosed, - (WebTransportSessionError, const std::string&), (override)); - MOCK_METHOD(void, OnIncomingBidirectionalStreamAvailable, (), (override)); - MOCK_METHOD(void, OnIncomingUnidirectionalStreamAvailable, (), (override)); - MOCK_METHOD(void, OnDatagramReceived, (absl::string_view), (override)); - MOCK_METHOD(void, OnCanCreateNewOutgoingBidirectionalStream, (), (override)); - MOCK_METHOD(void, OnCanCreateNewOutgoingUnidirectionalStream, (), (override)); -}; +using MockWebTransportSessionVisitor = ::webtransport::test::MockSessionVisitor; +using MockWebTransportStreamVisitor = ::webtransport::test::MockStreamVisitor; -class MockWebTransportStreamVisitor : public WebTransportStreamVisitor { - public: - MOCK_METHOD(void, OnCanRead, (), (override)); - MOCK_METHOD(void, OnCanWrite, (), (override)); - - MOCK_METHOD(void, OnResetStreamReceived, (WebTransportStreamError error), - (override)); - MOCK_METHOD(void, OnStopSendingReceived, (WebTransportStreamError error), - (override)); - MOCK_METHOD(void, OnWriteSideInDataRecvdState, (), (override)); -}; - -} // namespace test -} // namespace quic +} // namespace quic::test #endif // QUICHE_QUIC_TEST_TOOLS_WEB_TRANSPORT_TEST_TOOLS_H_
diff --git a/quiche/quic/tools/web_transport_test_visitors.h b/quiche/quic/tools/web_transport_test_visitors.h index 0770af6..5fc3fbd 100644 --- a/quiche/quic/tools/web_transport_test_visitors.h +++ b/quiche/quic/tools/web_transport_test_visitors.h
@@ -183,7 +183,7 @@ EchoWebTransportSessionVisitor(WebTransportSession* session) : session_(session) {} - void OnSessionReady(const spdy::Http2HeaderBlock&) override { + void OnSessionReady() override { if (session_->CanOpenNextOutgoingBidirectionalStream()) { OnCanCreateNewOutgoingBidirectionalStream(); }
diff --git a/quiche/web_transport/test_tools/mock_web_transport.h b/quiche/web_transport/test_tools/mock_web_transport.h index 9fdecfc..923702d 100644 --- a/quiche/web_transport/test_tools/mock_web_transport.h +++ b/quiche/web_transport/test_tools/mock_web_transport.h
@@ -14,6 +14,7 @@ namespace test { class QUICHE_NO_EXPORT MockStreamVisitor : public StreamVisitor { + public: MOCK_METHOD(void, OnCanRead, (), (override)); MOCK_METHOD(void, OnCanWrite, (), (override)); MOCK_METHOD(void, OnResetStreamReceived, (StreamErrorCode), (override)); @@ -22,6 +23,7 @@ }; class QUICHE_NO_EXPORT MockStream : public Stream { + public: MOCK_METHOD(ReadResult, Read, (absl::Span<char> buffer), (override)); MOCK_METHOD(ReadResult, Read, (std::string * output), (override)); MOCK_METHOD(absl::Status, Writev, @@ -42,8 +44,8 @@ }; class QUICHE_NO_EXPORT MockSessionVisitor : public SessionVisitor { - MOCK_METHOD(void, OnSessionReady, (const spdy::Http2HeaderBlock& headers), - (override)); + public: + MOCK_METHOD(void, OnSessionReady, (), (override)); MOCK_METHOD(void, OnSessionClosed, (SessionErrorCode error_code, const std::string& error_message), (override));
diff --git a/quiche/web_transport/web_transport.h b/quiche/web_transport/web_transport.h index 70bb36f..39a1ac1 100644 --- a/quiche/web_transport/web_transport.h +++ b/quiche/web_transport/web_transport.h
@@ -19,7 +19,6 @@ #include "absl/types/span.h" #include "quiche/common/platform/api/quiche_export.h" #include "quiche/common/quiche_stream.h" -#include "quiche/spdy/core/http2_header_block.h" namespace webtransport { @@ -136,7 +135,7 @@ // Notifies the visitor when the session is ready to exchange application // data. - virtual void OnSessionReady(const spdy::Http2HeaderBlock& headers) = 0; + virtual void OnSessionReady() = 0; // Notifies the visitor when the session has been closed. virtual void OnSessionClosed(SessionErrorCode error_code,