Add logging only ack_frame accessor.

gfe-relnote: n/a (logging only change)
PiperOrigin-RevId: 248533601
Change-Id: I1a72e6caed4c322ede61f4378f42ffbc161d55a7
diff --git a/quic/core/quic_connection.cc b/quic/core/quic_connection.cc
index c1d1d76..e61bae4 100644
--- a/quic/core/quic_connection.cc
+++ b/quic/core/quic_connection.cc
@@ -1040,7 +1040,7 @@
                   << "Received an unencrypted data frame: closing connection"
                   << " packet_number:" << last_header_.packet_number
                   << " stream_id:" << frame.stream_id
-                  << " received_packets:" << GetUpdatedAckFrame();
+                  << " received_packets:" << ack_frame();
     CloseConnection(QUIC_UNENCRYPTED_STREAM_DATA,
                     "Unencrypted stream data seen.",
                     ConnectionCloseBehavior::SEND_CONNECTION_CLOSE_PACKET);
@@ -4204,5 +4204,16 @@
   }
 }
 
+const QuicAckFrame& QuicConnection::ack_frame() const {
+  if (SupportsMultiplePacketNumberSpaces()) {
+    return uber_received_packet_manager_.GetAckFrame(
+        QuicUtils::GetPacketNumberSpace(last_decrypted_packet_level_));
+  }
+  if (use_uber_received_packet_manager_) {
+    return uber_received_packet_manager_.ack_frame();
+  }
+  return received_packet_manager_.ack_frame();
+}
+
 #undef ENDPOINT  // undef for jumbo builds
 }  // namespace quic
diff --git a/quic/core/quic_connection.h b/quic/core/quic_connection.h
index 413a582..8c8ed2b 100644
--- a/quic/core/quic_connection.h
+++ b/quic/core/quic_connection.h
@@ -526,6 +526,8 @@
   bool ShouldGeneratePacket(HasRetransmittableData retransmittable,
                             IsHandshake handshake) override;
   const QuicFrames MaybeBundleAckOpportunistically() override;
+  // Please note, this is not a const function. For logging purpose, please use
+  // ack_frame().
   const QuicFrame GetUpdatedAckFrame() override;
   void PopulateStopWaitingFrame(QuicStopWaitingFrame* stop_waiting) override;
 
@@ -887,6 +889,9 @@
   // Returns true if this connection supports multiple packet number spaces.
   bool SupportsMultiplePacketNumberSpaces() const;
 
+  // For logging purpose.
+  const QuicAckFrame& ack_frame() const;
+
  protected:
   // Calls cancel() on all the alarms owned by this connection.
   void CancelAllAlarms();
diff --git a/quic/core/uber_received_packet_manager.cc b/quic/core/uber_received_packet_manager.cc
index e887636..a3c79d3 100644
--- a/quic/core/uber_received_packet_manager.cc
+++ b/quic/core/uber_received_packet_manager.cc
@@ -195,6 +195,12 @@
   return received_packet_managers_[0].ack_frame();
 }
 
+const QuicAckFrame& UberReceivedPacketManager::GetAckFrame(
+    PacketNumberSpace packet_number_space) const {
+  DCHECK(supports_multiple_packet_number_spaces_);
+  return received_packet_managers_[packet_number_space].ack_frame();
+}
+
 void UberReceivedPacketManager::set_max_ack_ranges(size_t max_ack_ranges) {
   for (auto& received_packet_manager : received_packet_managers_) {
     received_packet_manager.set_max_ack_ranges(max_ack_ranges);
diff --git a/quic/core/uber_received_packet_manager.h b/quic/core/uber_received_packet_manager.h
index 5c813e2..21c2c0c 100644
--- a/quic/core/uber_received_packet_manager.h
+++ b/quic/core/uber_received_packet_manager.h
@@ -85,6 +85,7 @@
 
   // For logging purposes.
   const QuicAckFrame& ack_frame() const;
+  const QuicAckFrame& GetAckFrame(PacketNumberSpace packet_number_space) const;
 
   void set_max_ack_ranges(size_t max_ack_ranges);