Remove QuicSpdySession::server_push_enabled() and deprecate QNSP connection tag.

PiperOrigin-RevId: 370735636
Change-Id: Iaa83c76f88a6716427e301bd221fbfbd72a9d075
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());