Remove reloadable flag quic_http3_goaway_new_behavior. PiperOrigin-RevId: 331576745 Change-Id: I299622188b454616d244819cd664f89ccb65dee8
diff --git a/quic/core/http/quic_receive_control_stream.cc b/quic/core/http/quic_receive_control_stream.cc index 62c9ba8..1367a95 100644 --- a/quic/core/http/quic_receive_control_stream.cc +++ b/quic/core/http/quic_receive_control_stream.cc
@@ -110,13 +110,6 @@ return false; } - if (GetQuicReloadableFlag(quic_http3_goaway_new_behavior)) { - QUIC_RELOADABLE_FLAG_COUNT(quic_http3_goaway_new_behavior); - } else if (spdy_session()->perspective() == Perspective::IS_SERVER) { - OnWrongFrame("Go Away"); - return false; - } - spdy_session()->OnHttp3GoAway(frame.id); return true; }
diff --git a/quic/core/http/quic_receive_control_stream_test.cc b/quic/core/http/quic_receive_control_stream_test.cc index d1db3c4..e908162 100644 --- a/quic/core/http/quic_receive_control_stream_test.cc +++ b/quic/core/http/quic_receive_control_stream_test.cc
@@ -296,18 +296,8 @@ EXPECT_CALL(debug_visitor, OnGoAwayFrameReceived(goaway)); - if (!GetQuicReloadableFlag(quic_http3_goaway_new_behavior) && - perspective() == Perspective::IS_SERVER) { - EXPECT_CALL( - *connection_, - CloseConnection(QUIC_HTTP_FRAME_UNEXPECTED_ON_CONTROL_STREAM, _, _)); - } - receive_control_stream_->OnStreamFrame(frame); - if (GetQuicReloadableFlag(quic_http3_goaway_new_behavior) || - perspective() == Perspective::IS_CLIENT) { - EXPECT_TRUE(session_.goaway_received()); - } + EXPECT_TRUE(session_.goaway_received()); } TEST_P(QuicReceiveControlStreamTest, PushPromiseOnControlStreamShouldClose) {
diff --git a/quic/core/http/quic_spdy_session.cc b/quic/core/http/quic_spdy_session.cc index 03eb235..e8f4db8 100644 --- a/quic/core/http/quic_spdy_session.cc +++ b/quic/core/http/quic_spdy_session.cc
@@ -664,42 +664,21 @@ QUIC_BUG_IF(!version().UsesHttp3()) << "HTTP/3 GOAWAY received on version " << version(); - if (GetQuicReloadableFlag(quic_http3_goaway_new_behavior)) { - if (last_received_http3_goaway_id_.has_value() && - id > last_received_http3_goaway_id_.value()) { - CloseConnectionWithDetails( - QUIC_HTTP_GOAWAY_ID_LARGER_THAN_PREVIOUS, - quiche::QuicheStrCat("GOAWAY received with ID ", id, - " greater than previously received ID ", - last_received_http3_goaway_id_.value())); - return; - } - last_received_http3_goaway_id_ = id; - - if (perspective() == Perspective::IS_SERVER) { - // TODO(b/151749109): Cancel server pushes with push ID larger than |id|. - return; - } - - // QuicStreamId is uint32_t. Casting to this narrower type is well-defined - // and preserves the lower 32 bits. Both IsBidirectionalStreamId() and - // IsIncomingStream() give correct results, because their return value is - // determined by the least significant two bits. - QuicStreamId stream_id = static_cast<QuicStreamId>(id); - if (!QuicUtils::IsBidirectionalStreamId(stream_id, version()) || - IsIncomingStream(stream_id)) { - CloseConnectionWithDetails(QUIC_HTTP_GOAWAY_INVALID_STREAM_ID, - "GOAWAY with invalid stream ID"); - return; - } - - // TODO(b/161252736): Cancel client requests with ID larger than |id|. - // If |id| is larger than numeric_limits<QuicStreamId>::max(), then use - // max() instead of downcast value. + if (last_received_http3_goaway_id_.has_value() && + id > last_received_http3_goaway_id_.value()) { + CloseConnectionWithDetails( + QUIC_HTTP_GOAWAY_ID_LARGER_THAN_PREVIOUS, + quiche::QuicheStrCat("GOAWAY received with ID ", id, + " greater than previously received ID ", + last_received_http3_goaway_id_.value())); return; } + last_received_http3_goaway_id_ = id; - DCHECK_EQ(perspective(), Perspective::IS_CLIENT); + if (perspective() == Perspective::IS_SERVER) { + // TODO(b/151749109): Cancel server pushes with push ID larger than |id|. + return; + } // QuicStreamId is uint32_t. Casting to this narrower type is well-defined // and preserves the lower 32 bits. Both IsBidirectionalStreamId() and @@ -708,12 +687,14 @@ QuicStreamId stream_id = static_cast<QuicStreamId>(id); if (!QuicUtils::IsBidirectionalStreamId(stream_id, version()) || IsIncomingStream(stream_id)) { - CloseConnectionWithDetails( - QUIC_INVALID_STREAM_ID, - "GOAWAY's last stream id has to point to a request stream"); + CloseConnectionWithDetails(QUIC_HTTP_GOAWAY_INVALID_STREAM_ID, + "GOAWAY with invalid stream ID"); return; } - last_received_http3_goaway_id_ = id; + + // TODO(b/161252736): Cancel client requests with ID larger than |id|. + // If |id| is larger than numeric_limits<QuicStreamId>::max(), then use + // max() instead of downcast value. } bool QuicSpdySession::OnStreamsBlockedFrame(
diff --git a/quic/core/http/quic_spdy_session_test.cc b/quic/core/http/quic_spdy_session_test.cc index accb2a0..a3c4a52 100644 --- a/quic/core/http/quic_spdy_session_test.cc +++ b/quic/core/http/quic_spdy_session_test.cc
@@ -1195,9 +1195,6 @@ if (!VersionUsesHttp3(transport_version())) { return; } - if (!GetQuicReloadableFlag(quic_http3_goaway_new_behavior)) { - return; - } EXPECT_FALSE(session_.goaway_received()); PushId push_id1 = 0; @@ -2770,17 +2767,9 @@ if (!VersionUsesHttp3(transport_version())) { return; } - if (GetQuicReloadableFlag(quic_http3_goaway_new_behavior)) { - EXPECT_CALL(*connection_, - CloseConnection(QUIC_HTTP_GOAWAY_INVALID_STREAM_ID, - "GOAWAY with invalid stream ID", _)); - } else { - EXPECT_CALL( - *connection_, - CloseConnection( - QUIC_INVALID_STREAM_ID, - "GOAWAY's last stream id has to point to a request stream", _)); - } + EXPECT_CALL(*connection_, + CloseConnection(QUIC_HTTP_GOAWAY_INVALID_STREAM_ID, + "GOAWAY with invalid stream ID", _)); QuicStreamId stream_id = GetNthServerInitiatedUnidirectionalStreamId(transport_version(), 0); session_.OnHttp3GoAway(stream_id); @@ -2790,9 +2779,6 @@ if (!VersionUsesHttp3(transport_version())) { return; } - if (!GetQuicReloadableFlag(quic_http3_goaway_new_behavior)) { - return; - } EXPECT_FALSE(session_.goaway_received()); QuicStreamId stream_id1 =