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,