Remove QuicSpdySession::server_push_enabled() and deprecate QNSP connection tag.
PiperOrigin-RevId: 370735636
Change-Id: Iaa83c76f88a6716427e301bd221fbfbd72a9d075
diff --git a/quic/core/crypto/crypto_protocol.h b/quic/core/crypto/crypto_protocol.h
index 8a86255..c485a25 100644
--- a/quic/core/crypto/crypto_protocol.h
+++ b/quic/core/crypto/crypto_protocol.h
@@ -28,7 +28,7 @@
// The following tags have been deprecated and should not be reused:
// "1CON", "BBQ4", "NCON", "RCID", "SREJ", "TBKP", "TB10", "SCLS", "SMHL",
-// "QNZR", "B2HI", "H2PR", "FIFO", "LIFO", "RRWS"
+// "QNZR", "B2HI", "H2PR", "FIFO", "LIFO", "RRWS", "QNSP"
// clang-format off
const QuicTag kCHLO = TAG('C', 'H', 'L', 'O'); // Client hello
@@ -402,9 +402,6 @@
const QuicTag kQNZ2 = TAG('Q', 'N', 'Z', '2'); // Turn off QUIC crypto 0-RTT.
-const QuicTag kQNSP = TAG('Q', 'N', 'S', 'P'); // Turn off server push in
- // gQUIC.
-
const QuicTag kMAD = TAG('M', 'A', 'D', 0); // Max Ack Delay (IETF QUIC)
const QuicTag kIGNP = TAG('I', 'G', 'N', 'P'); // Do not use PING only packet
diff --git a/quic/core/http/quic_headers_stream_test.cc b/quic/core/http/quic_headers_stream_test.cc
index 55dafac..42fef63 100644
--- a/quic/core/http/quic_headers_stream_test.cc
+++ b/quic/core/http/quic_headers_stream_test.cc
@@ -563,6 +563,10 @@
}
TEST_P(QuicHeadersStreamTest, ProcessPushPromiseDisabledSetting) {
+ if (perspective() != Perspective::IS_CLIENT) {
+ return;
+ }
+
session_.OnConfigNegotiated();
SpdySettingsIR data;
// Respect supported settings frames SETTINGS_ENABLE_PUSH.
@@ -570,15 +574,11 @@
SpdySerializedFrame frame(framer_->SerializeFrame(data));
stream_frame_.data_buffer = frame.data();
stream_frame_.data_length = frame.size();
- if (perspective() == Perspective::IS_CLIENT) {
- EXPECT_CALL(
- *connection_,
- CloseConnection(QUIC_INVALID_HEADERS_STREAM_DATA,
- "Unsupported field of HTTP/2 SETTINGS frame: 2", _));
- }
+ EXPECT_CALL(
+ *connection_,
+ CloseConnection(QUIC_INVALID_HEADERS_STREAM_DATA,
+ "Unsupported field of HTTP/2 SETTINGS frame: 2", _));
headers_stream_->OnStreamFrame(stream_frame_);
- EXPECT_EQ(session_.server_push_enabled(),
- perspective() == Perspective::IS_CLIENT);
}
TEST_P(QuicHeadersStreamTest, ProcessLargeRawData) {
diff --git a/quic/core/http/quic_server_session_base.cc b/quic/core/http/quic_server_session_base.cc
index b955835..c78df58 100644
--- a/quic/core/http/quic_server_session_base.cc
+++ b/quic/core/http/quic_server_session_base.cc
@@ -50,12 +50,6 @@
return;
}
- // Disable server push if peer sends the corresponding connection option.
- if (!version().UsesHttp3() &&
- ContainsQuicTag(config()->ReceivedConnectionOptions(), kQNSP)) {
- OnSetting(spdy::SETTINGS_ENABLE_PUSH, 0);
- }
-
// Enable bandwidth resumption if peer sent correct connection options.
const bool last_bandwidth_resumption =
ContainsQuicTag(config()->ReceivedConnectionOptions(), kBWRE);
diff --git a/quic/core/http/quic_server_session_base_test.cc b/quic/core/http/quic_server_session_base_test.cc
index 52ddc91..ac7fc1e 100644
--- a/quic/core/http/quic_server_session_base_test.cc
+++ b/quic/core/http/quic_server_session_base_test.cc
@@ -723,20 +723,6 @@
QuicServerSessionBasePeer::IsBandwidthResumptionEnabled(session_.get()));
}
-TEST_P(QuicServerSessionBaseTest, TurnOffServerPush) {
- if (VersionHasIetfQuicFrames(transport_version())) {
- return;
- }
-
- EXPECT_TRUE(session_->server_push_enabled());
- QuicTagVector copt;
- copt.push_back(kQNSP);
- QuicConfigPeer::SetReceivedConnectionOptions(session_->config(), copt);
- connection_->SetDefaultEncryptionLevel(ENCRYPTION_FORWARD_SECURE);
- session_->OnConfigNegotiated();
- EXPECT_FALSE(session_->server_push_enabled());
-}
-
// Tests which check the lifetime management of data members of
// QuicCryptoServerStream objects when async GetProof is in use.
class StreamMemberLifetimeTest : public QuicServerSessionBaseTest {
diff --git a/quic/core/http/quic_spdy_session.cc b/quic/core/http/quic_spdy_session.cc
index 2b22fbe..084b596 100644
--- a/quic/core/http/quic_spdy_session.cc
+++ b/quic/core/http/quic_spdy_session.cc
@@ -497,7 +497,6 @@
spdy_framer_visitor_(new SpdyFramerVisitor(this)),
debug_visitor_(nullptr),
destruction_indicator_(123456789),
- server_push_enabled_(true),
next_available_datagram_flow_id_(perspective() == Perspective::IS_SERVER
? kFirstDatagramFlowIdServer
: kFirstDatagramFlowIdClient) {
@@ -858,10 +857,6 @@
absl::string_view(frame.data(), frame.size()), false, nullptr);
}
-bool QuicSpdySession::server_push_enabled() const {
- return VersionUsesHttp3(transport_version()) ? false : server_push_enabled_;
-}
-
void QuicSpdySession::SendInitialData() {
if (!VersionUsesHttp3(transport_version())) {
return;
@@ -1239,8 +1234,7 @@
return true;
}
QUIC_DVLOG(1) << ENDPOINT << "SETTINGS_ENABLE_PUSH received with value "
- << value;
- server_push_enabled_ = value;
+ << value << ", ignoring.";
break;
} else {
QUIC_DLOG(ERROR)
diff --git a/quic/core/http/quic_spdy_session.h b/quic/core/http/quic_spdy_session.h
index b200484..823bb2e 100644
--- a/quic/core/http/quic_spdy_session.h
+++ b/quic/core/http/quic_spdy_session.h
@@ -251,12 +251,6 @@
const QuicHeadersStream* headers_stream() const { return headers_stream_; }
- // Returns whether server push is enabled.
- // For a Google QUIC client this always returns false.
- // For a Google QUIC server this is set by incoming SETTINGS_ENABLE_PUSH.
- // For an IETF QUIC client or server this returns false.
- bool server_push_enabled() const;
-
// Called when the control stream receives HTTP/3 SETTINGS.
// Returns false in case of 0-RTT if received settings are incompatible with
// cached values, true otherwise.
@@ -684,10 +678,6 @@
// an use-after-free.
int32_t destruction_indicator_;
- // Used in Google QUIC only. Set every time SETTINGS_ENABLE_PUSH is received.
- // Defaults to true.
- bool server_push_enabled_;
-
// The identifier in the most recently received GOAWAY frame. Unset if no
// GOAWAY frame has been received yet.
absl::optional<uint64_t> last_received_http3_goaway_id_;
diff --git a/quic/core/http/quic_spdy_session_test.cc b/quic/core/http/quic_spdy_session_test.cc
index 34a7ebc..c638a0a 100644
--- a/quic/core/http/quic_spdy_session_test.cc
+++ b/quic/core/http/quic_spdy_session_test.cc
@@ -2938,14 +2938,6 @@
session_.OnStreamFrame(data3);
}
-TEST_P(QuicSpdySessionTestServer, ServerPushEnabledDefaultValue) {
- if (VersionUsesHttp3(transport_version())) {
- EXPECT_FALSE(session_.server_push_enabled());
- } else {
- EXPECT_TRUE(session_.server_push_enabled());
- }
-}
-
TEST_P(QuicSpdySessionTestServer, OnSetting) {
CompleteHandshake();
if (VersionUsesHttp3(transport_version())) {
@@ -2975,10 +2967,6 @@
session_.OnSetting(SETTINGS_MAX_FIELD_SECTION_SIZE, 5);
EXPECT_EQ(5u, session_.max_outbound_header_list_size());
- EXPECT_TRUE(session_.server_push_enabled());
- session_.OnSetting(spdy::SETTINGS_ENABLE_PUSH, 0);
- EXPECT_FALSE(session_.server_push_enabled());
-
spdy::HpackEncoder* hpack_encoder =
QuicSpdySessionPeer::GetSpdyFramer(&session_)->GetHpackEncoder();
EXPECT_EQ(4096u, hpack_encoder->CurrentHeaderTableSizeSetting());