Add MaybeUpdateAckTimeout to OnAckFrequencyFrame as this frame type also instigates ack.

PiperOrigin-RevId: 333093235
Change-Id: I8058c42cc2465cb8bf10b4f70ec17d4b459cd1b1
diff --git a/quic/core/quic_connection.cc b/quic/core/quic_connection.cc
index bf97fbc..2348191 100644
--- a/quic/core/quic_connection.cc
+++ b/quic/core/quic_connection.cc
@@ -1723,6 +1723,7 @@
         << "Get AckFrequencyFrame in packet number space "
         << packet_number_space;
   }
+  MaybeUpdateAckTimeout();
   return true;
 }
 
diff --git a/quic/core/quic_connection_test.cc b/quic/core/quic_connection_test.cc
index 60226f2..85b6224 100644
--- a/quic/core/quic_connection_test.cc
+++ b/quic/core/quic_connection_test.cc
@@ -2980,20 +2980,21 @@
   if (!GetParam().version.HasIetfQuicFrames()) {
     return;
   }
-
-  QuicAckFrequencyFrame frame;
-  frame.packet_tolerance = 3;
-
   connection_.set_can_receive_ack_frequency_frame();
-  connection_.OnDecryptedPacket(ENCRYPTION_FORWARD_SECURE);
-  connection_.OnAckFrequencyFrame(frame);
 
-  EXPECT_CALL(visitor_, OnSuccessfulVersionNegotiation(_));
-  EXPECT_CALL(visitor_, OnStreamFrame(_)).Times(39);
-  // Expect 13 acks, every 3rd packet.
+  // Expect 13 acks, every 3rd packet including the first packet with
+  // AckFrequencyFrame.
   EXPECT_CALL(*send_algorithm_, OnPacketSent(_, _, _, _, _)).Times(13);
-  // Receives packets 1 - 39.
-  for (size_t i = 1; i <= 39; ++i) {
+  EXPECT_CALL(visitor_, OnSuccessfulVersionNegotiation(_));
+
+  QuicAckFrequencyFrame ack_frequency_frame;
+  ack_frequency_frame.packet_tolerance = 3;
+  ProcessFramePacketAtLevel(1, QuicFrame(&ack_frequency_frame),
+                            ENCRYPTION_FORWARD_SECURE);
+
+  EXPECT_CALL(visitor_, OnStreamFrame(_)).Times(38);
+  // Receives packets 2 - 39.
+  for (size_t i = 2; i <= 39; ++i) {
     ProcessDataPacket(i);
   }
 }
@@ -3003,20 +3004,19 @@
   if (!GetParam().version.HasIetfQuicFrames()) {
     return;
   }
-
-  QuicAckFrequencyFrame frame;
-  frame.packet_tolerance = 3;
   connection_.set_can_receive_ack_frequency_frame();
-  connection_.OnDecryptedPacket(ENCRYPTION_HANDSHAKE);
-  connection_.OnAckFrequencyFrame(frame);
-  connection_.OnDecryptedPacket(ENCRYPTION_FORWARD_SECURE);
 
-  EXPECT_CALL(visitor_, OnSuccessfulVersionNegotiation(_));
-  EXPECT_CALL(visitor_, OnStreamFrame(_)).Times(60);
-  // Expect 30 acks, every 2nd (instead of 3rd) packet.
+  QuicAckFrequencyFrame ack_frequency_frame;
+  ack_frequency_frame.packet_tolerance = 3;
+  ProcessFramePacketAtLevel(1, QuicFrame(&ack_frequency_frame),
+                            ENCRYPTION_HANDSHAKE);
+
+  // Expect 30 acks, every 2nd (instead of 3rd) packet including the first
+  // packet with AckFrequencyFrame.
   EXPECT_CALL(*send_algorithm_, OnPacketSent(_, _, _, _, _)).Times(30);
-  // Receives packets 1 - 60.
-  for (size_t i = 1; i <= 60; ++i) {
+  EXPECT_CALL(visitor_, OnStreamFrame(_)).Times(60);
+  // Receives packets 2 - 61.
+  for (size_t i = 2; i <= 61; ++i) {
     ProcessDataPacket(i);
   }
 }