In quic, update packet_size_ when first frame gets queued. protected by gfe2_reloadable_flag_quic_update_packet_size.

This allows up to mark multiple functions const.

PiperOrigin-RevId: 318090174
Change-Id: I5783ff1548360e4a262f44f15fc6966d6351e6d5
diff --git a/quic/core/quic_packet_creator.h b/quic/core/quic_packet_creator.h
index d71a1af..76d6557 100644
--- a/quic/core/quic_packet_creator.h
+++ b/quic/core/quic_packet_creator.h
@@ -142,12 +142,14 @@
 
   // Returns true if current open packet can accommodate more stream frames of
   // stream |id| at |offset| and data length |data_size|, false otherwise.
+  // TODO(fayang): mark this const when deprecating quic_update_packet_size.
   bool HasRoomForStreamFrame(QuicStreamId id,
                              QuicStreamOffset offset,
                              size_t data_size);
 
   // Returns true if current open packet can accommodate a message frame of
   // |length|.
+  // TODO(fayang): mark this const when deprecating quic_update_packet_size.
   bool HasRoomForMessageFrame(QuicByteCount length);
 
   // Serializes all added frames into a single packet and invokes the delegate_
@@ -179,6 +181,7 @@
   // frames in the packet.  Since stream frames are slightly smaller when they
   // are the last frame in a packet, this method will return a different
   // value than max_packet_size - PacketSize(), in this case.
+  // TODO(fayang): mark this const when deprecating quic_update_packet_size.
   size_t BytesFree();
 
   // Returns the number of bytes that the packet will expand by if a new frame
@@ -191,6 +194,7 @@
   // if serialized with the current frames.  Adding a frame to the packet
   // may change the serialized length of existing frames, as per the comment
   // in BytesFree.
+  // TODO(fayang): mark this const when deprecating quic_update_packet_size.
   size_t PacketSize();
 
   // Tries to add |frame| to the packet creator's list of frames to be
@@ -557,7 +561,8 @@
   // Frames to be added to the next SerializedPacket
   QuicFrames queued_frames_;
 
-  // packet_size should never be read directly, use PacketSize() instead.
+  // Serialization size of header + frames. If there is no queued frames,
+  // packet_size_ is 0.
   // TODO(ianswett): Move packet_size_ into SerializedPacket once
   // QuicEncryptedPacket has been flattened into SerializedPacket.
   size_t packet_size_;
@@ -612,6 +617,8 @@
 
   // When true, this will override the padding generation code to disable it.
   bool disable_padding_override_ = false;
+
+  bool update_packet_size_ = GetQuicReloadableFlag(quic_update_packet_size);
 };
 
 }  // namespace quic