In quic, update crypto_retransmit_count for ietf quic. stats only, not protected.

crypto_retransmit_count is used for crypto retransmission timeout histogram in chrome: https://cs.chromium.org/chromium/src/net/quic/quic_chromium_client_session.cc?rcl=1b569384c7ba089e4d3a190c6229ebb51791854a&l=1741

PiperOrigin-RevId: 311607181
Change-Id: I7fd2ec186d86ceb1b37ce1a6e5bca701861cad4a
diff --git a/quic/core/quic_connection_test.cc b/quic/core/quic_connection_test.cc
index 24f233e..0b72013 100644
--- a/quic/core/quic_connection_test.cc
+++ b/quic/core/quic_connection_test.cc
@@ -10009,7 +10009,7 @@
   EXPECT_CALL(visitor_, SendPing()).WillOnce(Invoke([this]() { SendPing(); }));
   connection_.GetRetransmissionAlarm()->Fire();
   EXPECT_EQ(1u, connection_.GetStats().pto_count);
-  EXPECT_EQ(0u, connection_.GetStats().crypto_retransmit_count);
+  EXPECT_EQ(1u, connection_.GetStats().crypto_retransmit_count);
   EXPECT_EQ(1u, writer_->ping_frames().size());
 }
 
diff --git a/quic/core/quic_sent_packet_manager.cc b/quic/core/quic_sent_packet_manager.cc
index 92401b0..7ccd82d 100644
--- a/quic/core/quic_sent_packet_manager.cc
+++ b/quic/core/quic_sent_packet_manager.cc
@@ -754,6 +754,9 @@
     case PTO_MODE:
       QUIC_DVLOG(1) << ENDPOINT << "PTO mode";
       ++stats_->pto_count;
+      if (handshake_mode_disabled_ && !ShouldArmPtoForApplicationData()) {
+        ++stats_->crypto_retransmit_count;
+      }
       ++consecutive_pto_count_;
       pending_timer_transmission_count_ = max_probe_packets_per_pto_;
       return PTO_MODE;
diff --git a/quic/core/quic_sent_packet_manager_test.cc b/quic/core/quic_sent_packet_manager_test.cc
index 79fc798..7692c49 100644
--- a/quic/core/quic_sent_packet_manager_test.cc
+++ b/quic/core/quic_sent_packet_manager_test.cc
@@ -2811,7 +2811,7 @@
 
 TEST_F(QuicSentPacketManagerTest, DisableHandshakeModeClient) {
   QuicSentPacketManagerPeer::SetPerspective(&manager_, Perspective::IS_CLIENT);
-  manager_.EnableIetfPtoAndLossDetection();
+  manager_.EnableMultiplePacketNumberSpacesSupport();
   // Send CHLO.
   SendCryptoPacket(1);
   EXPECT_NE(QuicTime::Zero(), manager_.GetRetransmissionTime());
@@ -3340,6 +3340,7 @@
   manager_.OnRetransmissionTimeout();
   EXPECT_EQ(QuicTime::Delta::Zero(), manager_.TimeUntilSend(clock_.Now()));
   EXPECT_EQ(1u, stats_.pto_count);
+  EXPECT_EQ(1u, stats_.crypto_retransmit_count);
 
   // Verify probe packet gets sent.
   EXPECT_CALL(notifier_, RetransmitFrames(_, _))
@@ -3911,7 +3912,7 @@
 // Regression test for b/154050235.
 TEST_F(QuicSentPacketManagerTest, ExponentialBackoffWithNoRttMeasurement) {
   QuicSentPacketManagerPeer::SetPerspective(&manager_, Perspective::IS_CLIENT);
-  manager_.EnableIetfPtoAndLossDetection();
+  manager_.EnableMultiplePacketNumberSpacesSupport();
   RttStats* rtt_stats = const_cast<RttStats*>(manager_.GetRttStats());
   EXPECT_EQ(QuicTime::Delta::FromMilliseconds(kInitialRttMs),
             rtt_stats->initial_rtt());
@@ -3939,7 +3940,7 @@
 }
 
 TEST_F(QuicSentPacketManagerTest, PtoDelayWithTinyInitialRtt) {
-  manager_.EnableIetfPtoAndLossDetection();
+  manager_.EnableMultiplePacketNumberSpacesSupport();
   RttStats* rtt_stats = const_cast<RttStats*>(manager_.GetRttStats());
   // Assume client provided a tiny initial RTT.
   rtt_stats->set_initial_rtt(QuicTime::Delta::FromMicroseconds(1));