gfe-relnote: (n/a) Change QUIC frame structs to use default member initializer instead of member initializer list. No behavior change.

PiperOrigin-RevId: 307598459
Change-Id: If71260113ae44917e74c358c80085a9dcf6fda2a
diff --git a/quic/core/frames/quic_ack_frame.cc b/quic/core/frames/quic_ack_frame.cc
index 2946c01..3fd3dea 100644
--- a/quic/core/frames/quic_ack_frame.cc
+++ b/quic/core/frames/quic_ack_frame.cc
@@ -26,12 +26,7 @@
          !ack_frame.packets.Contains(packet_number);
 }
 
-QuicAckFrame::QuicAckFrame()
-    : ack_delay_time(QuicTime::Delta::Infinite()),
-      ecn_counters_populated(false),
-      ect_0_count(0),
-      ect_1_count(0),
-      ecn_ce_count(0) {}
+QuicAckFrame::QuicAckFrame() = default;
 
 QuicAckFrame::QuicAckFrame(const QuicAckFrame& other) = default;
 
diff --git a/quic/core/frames/quic_ack_frame.h b/quic/core/frames/quic_ack_frame.h
index 9003c76..6902340 100644
--- a/quic/core/frames/quic_ack_frame.h
+++ b/quic/core/frames/quic_ack_frame.h
@@ -108,7 +108,7 @@
 
   // Time elapsed since largest_observed() was received until this Ack frame was
   // sent.
-  QuicTime::Delta ack_delay_time;
+  QuicTime::Delta ack_delay_time = QuicTime::Delta::Infinite();
 
   // Vector of <packet_number, time> for when packets arrived.
   PacketTimeVector received_packet_times;
@@ -118,10 +118,10 @@
 
   // ECN counters, used only in version 99's ACK frame and valid only when
   // |ecn_counters_populated| is true.
-  bool ecn_counters_populated;
-  QuicPacketCount ect_0_count;
-  QuicPacketCount ect_1_count;
-  QuicPacketCount ecn_ce_count;
+  bool ecn_counters_populated = false;
+  QuicPacketCount ect_0_count = 0;
+  QuicPacketCount ect_1_count = 0;
+  QuicPacketCount ecn_ce_count = 0;
 };
 
 // The highest acked packet number we've observed from the peer. If no packets
diff --git a/quic/core/frames/quic_blocked_frame.cc b/quic/core/frames/quic_blocked_frame.cc
index 41ba144..1da520e 100644
--- a/quic/core/frames/quic_blocked_frame.cc
+++ b/quic/core/frames/quic_blocked_frame.cc
@@ -3,13 +3,9 @@
 // found in the LICENSE file.
 
 #include "net/third_party/quiche/src/quic/core/frames/quic_blocked_frame.h"
-#include "net/third_party/quiche/src/quic/core/quic_constants.h"
 
 namespace quic {
 
-QuicBlockedFrame::QuicBlockedFrame()
-    : control_frame_id(kInvalidControlFrameId), stream_id(0), offset(0) {}
-
 QuicBlockedFrame::QuicBlockedFrame(QuicControlFrameId control_frame_id,
                                    QuicStreamId stream_id)
     : control_frame_id(control_frame_id), stream_id(stream_id), offset(0) {}
diff --git a/quic/core/frames/quic_blocked_frame.h b/quic/core/frames/quic_blocked_frame.h
index 30dcdf4..64f3aee 100644
--- a/quic/core/frames/quic_blocked_frame.h
+++ b/quic/core/frames/quic_blocked_frame.h
@@ -7,6 +7,7 @@
 
 #include <ostream>
 
+#include "net/third_party/quiche/src/quic/core/quic_constants.h"
 #include "net/third_party/quiche/src/quic/core/quic_types.h"
 
 namespace quic {
@@ -16,7 +17,7 @@
 // send data. The BLOCKED frame is purely advisory and optional.
 // Based on SPDY's BLOCKED frame (undocumented as of 2014-01-28).
 struct QUIC_EXPORT_PRIVATE QuicBlockedFrame {
-  QuicBlockedFrame();
+  QuicBlockedFrame() = default;
   QuicBlockedFrame(QuicControlFrameId control_frame_id, QuicStreamId stream_id);
   QuicBlockedFrame(QuicControlFrameId control_frame_id,
                    QuicStreamId stream_id,
@@ -28,7 +29,7 @@
 
   // A unique identifier of this control frame. 0 when this frame is received,
   // and non-zero when sent.
-  QuicControlFrameId control_frame_id;
+  QuicControlFrameId control_frame_id = kInvalidControlFrameId;
 
   // 0 is a special case meaning the connection is blocked, rather than a
   // stream.  So stream_id 0 corresponds to a BLOCKED frame and non-0
@@ -36,10 +37,10 @@
   // TODO(fkastenholz): This should be converted to use
   // QuicUtils::GetInvalidStreamId to get the correct invalid stream id value
   // and not rely on 0.
-  QuicStreamId stream_id;
+  QuicStreamId stream_id = 0;
 
   // For Google QUIC, the offset is ignored.
-  QuicStreamOffset offset;
+  QuicStreamOffset offset = 0;
 };
 
 }  // namespace quic
diff --git a/quic/core/frames/quic_connection_close_frame.cc b/quic/core/frames/quic_connection_close_frame.cc
index e2555e3..e1b9302 100644
--- a/quic/core/frames/quic_connection_close_frame.cc
+++ b/quic/core/frames/quic_connection_close_frame.cc
@@ -10,12 +10,6 @@
 #include "net/third_party/quiche/src/quic/core/quic_types.h"
 
 namespace quic {
-QuicConnectionCloseFrame::QuicConnectionCloseFrame()
-    // Default close type ensures that existing, pre-V99 code works as expected.
-    : close_type(GOOGLE_QUIC_CONNECTION_CLOSE),
-      wire_error_code(QUIC_NO_ERROR),
-      quic_error_code(QUIC_NO_ERROR),
-      transport_close_frame_type(0) {}
 
 QuicConnectionCloseFrame::QuicConnectionCloseFrame(
     QuicTransportVersion transport_version,
diff --git a/quic/core/frames/quic_connection_close_frame.h b/quic/core/frames/quic_connection_close_frame.h
index ce41b03..de40dad 100644
--- a/quic/core/frames/quic_connection_close_frame.h
+++ b/quic/core/frames/quic_connection_close_frame.h
@@ -16,7 +16,7 @@
 namespace quic {
 
 struct QUIC_EXPORT_PRIVATE QuicConnectionCloseFrame {
-  QuicConnectionCloseFrame();
+  QuicConnectionCloseFrame() = default;
 
   // Builds a connection close frame based on the transport version
   // and the mapping of error_code. THIS IS THE PREFERRED C'TOR
@@ -34,18 +34,18 @@
   // Indicates whether the the frame is a Google QUIC CONNECTION_CLOSE frame,
   // an IETF QUIC CONNECTION_CLOSE frame with transport error code,
   // or an IETF QUIC CONNECTION_CLOSE frame with application error code.
-  QuicConnectionCloseType close_type;
+  QuicConnectionCloseType close_type = GOOGLE_QUIC_CONNECTION_CLOSE;
 
   // The error code on the wire.  For Google QUIC frames, this has the same
   // value as |quic_error_code|.
-  uint64_t wire_error_code;
+  uint64_t wire_error_code = QUIC_NO_ERROR;
 
   // The underlying error.  For Google QUIC frames, this has the same value as
   // |wire_error_code|.  For sent IETF QUIC frames, this is the error that
   // triggered the closure of the connection.  For received IETF QUIC frames,
   // this is parsed from the Reason Phrase field of the CONNECTION_CLOSE frame,
   // or QUIC_IETF_GQUIC_ERROR_MISSING.
-  QuicErrorCode quic_error_code;
+  QuicErrorCode quic_error_code = QUIC_NO_ERROR;
 
   // String with additional error details. |quic_error_code| and a colon will be
   // prepended to the error details when sending IETF QUIC frames, and parsed
@@ -57,7 +57,7 @@
   // Contains the type of frame that triggered the connection close. Made a
   // uint64, as opposed to the QuicIetfFrameType, to support possible
   // extensions as well as reporting invalid frame types received from the peer.
-  uint64_t transport_close_frame_type;
+  uint64_t transport_close_frame_type = 0;
 };
 
 }  // namespace quic
diff --git a/quic/core/frames/quic_crypto_frame.cc b/quic/core/frames/quic_crypto_frame.cc
index 6fd9be8..81b3e18 100644
--- a/quic/core/frames/quic_crypto_frame.cc
+++ b/quic/core/frames/quic_crypto_frame.cc
@@ -9,9 +9,6 @@
 
 namespace quic {
 
-QuicCryptoFrame::QuicCryptoFrame()
-    : QuicCryptoFrame(ENCRYPTION_INITIAL, 0, nullptr, 0) {}
-
 QuicCryptoFrame::QuicCryptoFrame(EncryptionLevel level,
                                  QuicStreamOffset offset,
                                  QuicPacketLength data_length)
diff --git a/quic/core/frames/quic_crypto_frame.h b/quic/core/frames/quic_crypto_frame.h
index 28434cb..2bb7a08 100644
--- a/quic/core/frames/quic_crypto_frame.h
+++ b/quic/core/frames/quic_crypto_frame.h
@@ -16,7 +16,7 @@
 namespace quic {
 
 struct QUIC_EXPORT_PRIVATE QuicCryptoFrame {
-  QuicCryptoFrame();
+  QuicCryptoFrame() = default;
   QuicCryptoFrame(EncryptionLevel level,
                   QuicStreamOffset offset,
                   QuicPacketLength data_length);
@@ -31,12 +31,12 @@
   // When writing a crypto frame to a packet, the packet must be encrypted at
   // |level|. When a crypto frame is read, the encryption level of the packet it
   // was received in is put in |level|.
-  EncryptionLevel level;
-  QuicPacketLength data_length;
+  EncryptionLevel level = ENCRYPTION_INITIAL;
+  QuicPacketLength data_length = 0;
   // When reading, |data_buffer| points to the data that was received in the
   // frame. |data_buffer| is not used when writing.
-  const char* data_buffer;
-  QuicStreamOffset offset;  // Location of this data in the stream.
+  const char* data_buffer = nullptr;
+  QuicStreamOffset offset = 0;  // Location of this data in the stream.
 
   QuicCryptoFrame(EncryptionLevel level,
                   QuicStreamOffset offset,
diff --git a/quic/core/frames/quic_goaway_frame.cc b/quic/core/frames/quic_goaway_frame.cc
index 3842f92..4c8848d 100644
--- a/quic/core/frames/quic_goaway_frame.cc
+++ b/quic/core/frames/quic_goaway_frame.cc
@@ -5,15 +5,9 @@
 #include <string>
 
 #include "net/third_party/quiche/src/quic/core/frames/quic_goaway_frame.h"
-#include "net/third_party/quiche/src/quic/core/quic_constants.h"
 
 namespace quic {
 
-QuicGoAwayFrame::QuicGoAwayFrame()
-    : control_frame_id(kInvalidControlFrameId),
-      error_code(QUIC_NO_ERROR),
-      last_good_stream_id(0) {}
-
 QuicGoAwayFrame::QuicGoAwayFrame(QuicControlFrameId control_frame_id,
                                  QuicErrorCode error_code,
                                  QuicStreamId last_good_stream_id,
diff --git a/quic/core/frames/quic_goaway_frame.h b/quic/core/frames/quic_goaway_frame.h
index ecceee6..b642cfa 100644
--- a/quic/core/frames/quic_goaway_frame.h
+++ b/quic/core/frames/quic_goaway_frame.h
@@ -8,13 +8,14 @@
 #include <ostream>
 #include <string>
 
+#include "net/third_party/quiche/src/quic/core/quic_constants.h"
 #include "net/third_party/quiche/src/quic/core/quic_error_codes.h"
 #include "net/third_party/quiche/src/quic/core/quic_types.h"
 
 namespace quic {
 
 struct QUIC_EXPORT_PRIVATE QuicGoAwayFrame {
-  QuicGoAwayFrame();
+  QuicGoAwayFrame() = default;
   QuicGoAwayFrame(QuicControlFrameId control_frame_id,
                   QuicErrorCode error_code,
                   QuicStreamId last_good_stream_id,
@@ -25,9 +26,9 @@
 
   // A unique identifier of this control frame. 0 when this frame is received,
   // and non-zero when sent.
-  QuicControlFrameId control_frame_id;
-  QuicErrorCode error_code;
-  QuicStreamId last_good_stream_id;
+  QuicControlFrameId control_frame_id = kInvalidControlFrameId;
+  QuicErrorCode error_code = QUIC_NO_ERROR;
+  QuicStreamId last_good_stream_id = 0;
   std::string reason_phrase;
 };
 
diff --git a/quic/core/frames/quic_handshake_done_frame.cc b/quic/core/frames/quic_handshake_done_frame.cc
index 6f411a5..f4a97c1 100644
--- a/quic/core/frames/quic_handshake_done_frame.cc
+++ b/quic/core/frames/quic_handshake_done_frame.cc
@@ -7,8 +7,7 @@
 namespace quic {
 
 QuicHandshakeDoneFrame::QuicHandshakeDoneFrame()
-    : QuicInlinedFrame(HANDSHAKE_DONE_FRAME),
-      control_frame_id(kInvalidControlFrameId) {}
+    : QuicInlinedFrame(HANDSHAKE_DONE_FRAME) {}
 
 QuicHandshakeDoneFrame::QuicHandshakeDoneFrame(
     QuicControlFrameId control_frame_id)
diff --git a/quic/core/frames/quic_handshake_done_frame.h b/quic/core/frames/quic_handshake_done_frame.h
index 48aa3c7..c16c169 100644
--- a/quic/core/frames/quic_handshake_done_frame.h
+++ b/quic/core/frames/quic_handshake_done_frame.h
@@ -25,7 +25,7 @@
 
   // A unique identifier of this control frame. 0 when this frame is received,
   // and non-zero when sent.
-  QuicControlFrameId control_frame_id;
+  QuicControlFrameId control_frame_id = kInvalidControlFrameId;
 };
 
 }  // namespace quic
diff --git a/quic/core/frames/quic_max_streams_frame.cc b/quic/core/frames/quic_max_streams_frame.cc
index 6301e72..1726080 100644
--- a/quic/core/frames/quic_max_streams_frame.cc
+++ b/quic/core/frames/quic_max_streams_frame.cc
@@ -7,10 +7,7 @@
 namespace quic {
 
 QuicMaxStreamsFrame::QuicMaxStreamsFrame()
-    : QuicInlinedFrame(MAX_STREAMS_FRAME),
-      control_frame_id(kInvalidControlFrameId),
-      stream_count(0),
-      unidirectional(false) {}
+    : QuicInlinedFrame(MAX_STREAMS_FRAME) {}
 
 QuicMaxStreamsFrame::QuicMaxStreamsFrame(QuicControlFrameId control_frame_id,
                                          QuicStreamCount stream_count,
diff --git a/quic/core/frames/quic_max_streams_frame.h b/quic/core/frames/quic_max_streams_frame.h
index f8c78f9..e1595c0 100644
--- a/quic/core/frames/quic_max_streams_frame.h
+++ b/quic/core/frames/quic_max_streams_frame.h
@@ -30,12 +30,12 @@
 
   // A unique identifier of this control frame. 0 when this frame is received,
   // and non-zero when sent.
-  QuicControlFrameId control_frame_id;
+  QuicControlFrameId control_frame_id = kInvalidControlFrameId;
 
   // The number of streams that may be opened.
-  QuicStreamCount stream_count;
+  QuicStreamCount stream_count = 0;
   // Whether uni- or bi-directional streams
-  bool unidirectional;
+  bool unidirectional = false;
 };
 
 }  // namespace quic
diff --git a/quic/core/frames/quic_message_frame.cc b/quic/core/frames/quic_message_frame.cc
index 196f6e9..45748ad 100644
--- a/quic/core/frames/quic_message_frame.cc
+++ b/quic/core/frames/quic_message_frame.cc
@@ -10,9 +10,6 @@
 
 namespace quic {
 
-QuicMessageFrame::QuicMessageFrame()
-    : message_id(0), data(nullptr), message_length(0) {}
-
 QuicMessageFrame::QuicMessageFrame(QuicMessageId message_id)
     : message_id(message_id), data(nullptr), message_length(0) {}
 
diff --git a/quic/core/frames/quic_message_frame.h b/quic/core/frames/quic_message_frame.h
index 5f28513..7f0179c 100644
--- a/quic/core/frames/quic_message_frame.h
+++ b/quic/core/frames/quic_message_frame.h
@@ -16,7 +16,7 @@
 typedef QuicInlinedVector<QuicMemSlice, 1> QuicMessageData;
 
 struct QUIC_EXPORT_PRIVATE QuicMessageFrame {
-  QuicMessageFrame();
+  QuicMessageFrame() = default;
   explicit QuicMessageFrame(QuicMessageId message_id);
   QuicMessageFrame(QuicMessageId message_id, QuicMemSliceSpan span);
   QuicMessageFrame(const char* data, QuicPacketLength length);
@@ -35,11 +35,11 @@
 
   // message_id is only used on the sender side and does not get serialized on
   // wire.
-  QuicMessageId message_id;
+  QuicMessageId message_id = 0;
   // Not owned, only used on read path.
-  const char* data;
+  const char* data = nullptr;
   // Total length of message_data, must be fit into one packet.
-  QuicPacketLength message_length;
+  QuicPacketLength message_length = 0;
 
   // The actual message data which is reference counted, used on write path.
   QuicMessageData message_data;
diff --git a/quic/core/frames/quic_new_connection_id_frame.cc b/quic/core/frames/quic_new_connection_id_frame.cc
index f6c8661..d2e8cea 100644
--- a/quic/core/frames/quic_new_connection_id_frame.cc
+++ b/quic/core/frames/quic_new_connection_id_frame.cc
@@ -3,15 +3,9 @@
 // found in the LICENSE file.
 
 #include "net/third_party/quiche/src/quic/core/frames/quic_new_connection_id_frame.h"
-#include "net/third_party/quiche/src/quic/core/quic_constants.h"
 
 namespace quic {
 
-QuicNewConnectionIdFrame::QuicNewConnectionIdFrame()
-    : control_frame_id(kInvalidControlFrameId),
-      connection_id(EmptyQuicConnectionId()),
-      sequence_number(0) {}
-
 QuicNewConnectionIdFrame::QuicNewConnectionIdFrame(
     QuicControlFrameId control_frame_id,
     QuicConnectionId connection_id,
diff --git a/quic/core/frames/quic_new_connection_id_frame.h b/quic/core/frames/quic_new_connection_id_frame.h
index 441ca1a..7bd4586 100644
--- a/quic/core/frames/quic_new_connection_id_frame.h
+++ b/quic/core/frames/quic_new_connection_id_frame.h
@@ -7,6 +7,8 @@
 
 #include <ostream>
 
+#include "net/third_party/quiche/src/quic/core/quic_connection_id.h"
+#include "net/third_party/quiche/src/quic/core/quic_constants.h"
 #include "net/third_party/quiche/src/quic/core/quic_error_codes.h"
 #include "net/third_party/quiche/src/quic/core/quic_types.h"
 #include "net/third_party/quiche/src/quic/platform/api/quic_uint128.h"
@@ -14,7 +16,7 @@
 namespace quic {
 
 struct QUIC_EXPORT_PRIVATE QuicNewConnectionIdFrame {
-  QuicNewConnectionIdFrame();
+  QuicNewConnectionIdFrame() = default;
   QuicNewConnectionIdFrame(QuicControlFrameId control_frame_id,
                            QuicConnectionId connection_id,
                            QuicConnectionIdSequenceNumber sequence_number,
@@ -27,9 +29,9 @@
 
   // A unique identifier of this control frame. 0 when this frame is received,
   // and non-zero when sent.
-  QuicControlFrameId control_frame_id;
-  QuicConnectionId connection_id;
-  QuicConnectionIdSequenceNumber sequence_number;
+  QuicControlFrameId control_frame_id = kInvalidControlFrameId;
+  QuicConnectionId connection_id = EmptyQuicConnectionId();
+  QuicConnectionIdSequenceNumber sequence_number = 0;
   QuicUint128 stateless_reset_token;
   uint64_t retire_prior_to;
 };
diff --git a/quic/core/frames/quic_new_token_frame.cc b/quic/core/frames/quic_new_token_frame.cc
index 2dfb97f..0178422 100644
--- a/quic/core/frames/quic_new_token_frame.cc
+++ b/quic/core/frames/quic_new_token_frame.cc
@@ -4,15 +4,11 @@
 
 #include "net/third_party/quiche/src/quic/core/frames/quic_new_token_frame.h"
 
-#include "net/third_party/quiche/src/quic/core/quic_constants.h"
 #include "net/third_party/quiche/src/quic/platform/api/quic_logging.h"
 #include "net/third_party/quiche/src/common/platform/api/quiche_text_utils.h"
 
 namespace quic {
 
-QuicNewTokenFrame::QuicNewTokenFrame()
-    : control_frame_id(kInvalidControlFrameId) {}
-
 QuicNewTokenFrame::QuicNewTokenFrame(QuicControlFrameId control_frame_id,
                                      std::string token)
     : control_frame_id(control_frame_id), token(token) {}
diff --git a/quic/core/frames/quic_new_token_frame.h b/quic/core/frames/quic_new_token_frame.h
index 0491477..abb0eec 100644
--- a/quic/core/frames/quic_new_token_frame.h
+++ b/quic/core/frames/quic_new_token_frame.h
@@ -9,13 +9,14 @@
 #include <ostream>
 
 #include "net/third_party/quiche/src/quic/core/quic_buffer_allocator.h"
+#include "net/third_party/quiche/src/quic/core/quic_constants.h"
 #include "net/third_party/quiche/src/quic/core/quic_types.h"
 #include "net/third_party/quiche/src/quic/platform/api/quic_export.h"
 
 namespace quic {
 
 struct QUIC_EXPORT_PRIVATE QuicNewTokenFrame {
-  QuicNewTokenFrame();
+  QuicNewTokenFrame() = default;
   QuicNewTokenFrame(QuicControlFrameId control_frame_id, std::string token);
 
   friend QUIC_EXPORT_PRIVATE std::ostream& operator<<(
@@ -24,7 +25,7 @@
 
   // A unique identifier of this control frame. 0 when this frame is received,
   // and non-zero when sent.
-  QuicControlFrameId control_frame_id;
+  QuicControlFrameId control_frame_id = kInvalidControlFrameId;
 
   std::string token;
 };
diff --git a/quic/core/frames/quic_padding_frame.h b/quic/core/frames/quic_padding_frame.h
index 03e0a40..0918f0f 100644
--- a/quic/core/frames/quic_padding_frame.h
+++ b/quic/core/frames/quic_padding_frame.h
@@ -17,17 +17,17 @@
 // A padding frame contains no payload.
 struct QUIC_EXPORT_PRIVATE QuicPaddingFrame
     : public QuicInlinedFrame<QuicPaddingFrame> {
-  QuicPaddingFrame() : QuicInlinedFrame(PADDING_FRAME), num_padding_bytes(-1) {}
+  QuicPaddingFrame() : QuicInlinedFrame(PADDING_FRAME) {}
   explicit QuicPaddingFrame(int num_padding_bytes)
       : QuicInlinedFrame(PADDING_FRAME), num_padding_bytes(num_padding_bytes) {}
 
   friend QUIC_EXPORT_PRIVATE std::ostream& operator<<(
       std::ostream& os,
-      const QuicPaddingFrame& s);
+      const QuicPaddingFrame& padding_frame);
 
   // -1: full padding to the end of a max-sized packet
   // otherwise: only pad up to num_padding_bytes bytes
-  int num_padding_bytes;
+  int num_padding_bytes = -1;
 };
 
 }  // namespace quic
diff --git a/quic/core/frames/quic_path_challenge_frame.cc b/quic/core/frames/quic_path_challenge_frame.cc
index 998ae48..4a8d120 100644
--- a/quic/core/frames/quic_path_challenge_frame.cc
+++ b/quic/core/frames/quic_path_challenge_frame.cc
@@ -4,15 +4,11 @@
 
 #include "net/third_party/quiche/src/quic/core/frames/quic_path_challenge_frame.h"
 
-#include "net/third_party/quiche/src/quic/core/quic_constants.h"
 #include "net/third_party/quiche/src/quic/platform/api/quic_bug_tracker.h"
 #include "net/third_party/quiche/src/common/platform/api/quiche_text_utils.h"
 
 namespace quic {
 
-QuicPathChallengeFrame::QuicPathChallengeFrame()
-    : control_frame_id(kInvalidControlFrameId) {}
-
 QuicPathChallengeFrame::QuicPathChallengeFrame(
     QuicControlFrameId control_frame_id,
     const QuicPathFrameBuffer& data_buff)
diff --git a/quic/core/frames/quic_path_challenge_frame.h b/quic/core/frames/quic_path_challenge_frame.h
index 46a010a..e173117 100644
--- a/quic/core/frames/quic_path_challenge_frame.h
+++ b/quic/core/frames/quic_path_challenge_frame.h
@@ -8,15 +8,13 @@
 #include <memory>
 #include <ostream>
 
+#include "net/third_party/quiche/src/quic/core/quic_constants.h"
 #include "net/third_party/quiche/src/quic/core/quic_types.h"
 
 namespace quic {
 
-// Size of the entire IETF Quic Path Challenge frame.
-const size_t kQuicPathChallengeFrameSize = kQuicPathFrameBufferSize;
-
 struct QUIC_EXPORT_PRIVATE QuicPathChallengeFrame {
-  QuicPathChallengeFrame();
+  QuicPathChallengeFrame() = default;
   QuicPathChallengeFrame(QuicControlFrameId control_frame_id,
                          const QuicPathFrameBuffer& data_buff);
   ~QuicPathChallengeFrame();
@@ -27,7 +25,7 @@
 
   // A unique identifier of this control frame. 0 when this frame is received,
   // and non-zero when sent.
-  QuicControlFrameId control_frame_id;
+  QuicControlFrameId control_frame_id = kInvalidControlFrameId;
 
   QuicPathFrameBuffer data_buffer;
 };
diff --git a/quic/core/frames/quic_path_response_frame.cc b/quic/core/frames/quic_path_response_frame.cc
index e652698..4779c6a 100644
--- a/quic/core/frames/quic_path_response_frame.cc
+++ b/quic/core/frames/quic_path_response_frame.cc
@@ -4,15 +4,11 @@
 
 #include "net/third_party/quiche/src/quic/core/frames/quic_path_response_frame.h"
 
-#include "net/third_party/quiche/src/quic/core/quic_constants.h"
 #include "net/third_party/quiche/src/quic/platform/api/quic_bug_tracker.h"
 #include "net/third_party/quiche/src/common/platform/api/quiche_text_utils.h"
 
 namespace quic {
 
-QuicPathResponseFrame::QuicPathResponseFrame()
-    : control_frame_id(kInvalidControlFrameId) {}
-
 QuicPathResponseFrame::QuicPathResponseFrame(
     QuicControlFrameId control_frame_id,
     const QuicPathFrameBuffer& data_buff)
diff --git a/quic/core/frames/quic_path_response_frame.h b/quic/core/frames/quic_path_response_frame.h
index e953ad8..cdb0ba8 100644
--- a/quic/core/frames/quic_path_response_frame.h
+++ b/quic/core/frames/quic_path_response_frame.h
@@ -8,15 +8,13 @@
 #include <memory>
 #include <ostream>
 
+#include "net/third_party/quiche/src/quic/core/quic_constants.h"
 #include "net/third_party/quiche/src/quic/core/quic_types.h"
 
 namespace quic {
 
-// Size of the entire IETF Quic Path Response frame.
-const size_t kQuicPathResponseFrameSize = kQuicPathFrameBufferSize;
-
 struct QUIC_EXPORT_PRIVATE QuicPathResponseFrame {
-  QuicPathResponseFrame();
+  QuicPathResponseFrame() = default;
   QuicPathResponseFrame(QuicControlFrameId control_frame_id,
                         const QuicPathFrameBuffer& data_buff);
   ~QuicPathResponseFrame();
@@ -27,7 +25,7 @@
 
   // A unique identifier of this control frame. 0 when this frame is received,
   // and non-zero when sent.
-  QuicControlFrameId control_frame_id;
+  QuicControlFrameId control_frame_id = kInvalidControlFrameId;
 
   QuicPathFrameBuffer data_buffer;
 };
diff --git a/quic/core/frames/quic_ping_frame.cc b/quic/core/frames/quic_ping_frame.cc
index d31efb0..064d917 100644
--- a/quic/core/frames/quic_ping_frame.cc
+++ b/quic/core/frames/quic_ping_frame.cc
@@ -6,8 +6,7 @@
 
 namespace quic {
 
-QuicPingFrame::QuicPingFrame()
-    : QuicInlinedFrame(PING_FRAME), control_frame_id(kInvalidControlFrameId) {}
+QuicPingFrame::QuicPingFrame() : QuicInlinedFrame(PING_FRAME) {}
 
 QuicPingFrame::QuicPingFrame(QuicControlFrameId control_frame_id)
     : QuicInlinedFrame(PING_FRAME), control_frame_id(control_frame_id) {}
diff --git a/quic/core/frames/quic_ping_frame.h b/quic/core/frames/quic_ping_frame.h
index 352d079..5cefdf9 100644
--- a/quic/core/frames/quic_ping_frame.h
+++ b/quic/core/frames/quic_ping_frame.h
@@ -25,7 +25,7 @@
 
   // A unique identifier of this control frame. 0 when this frame is received,
   // and non-zero when sent.
-  QuicControlFrameId control_frame_id;
+  QuicControlFrameId control_frame_id = kInvalidControlFrameId;
 };
 
 }  // namespace quic
diff --git a/quic/core/frames/quic_retire_connection_id_frame.cc b/quic/core/frames/quic_retire_connection_id_frame.cc
index 6828ce4..0da9e0c 100644
--- a/quic/core/frames/quic_retire_connection_id_frame.cc
+++ b/quic/core/frames/quic_retire_connection_id_frame.cc
@@ -3,13 +3,9 @@
 // found in the LICENSE file.
 
 #include "net/third_party/quiche/src/quic/core/frames/quic_retire_connection_id_frame.h"
-#include "net/third_party/quiche/src/quic/core/quic_constants.h"
 
 namespace quic {
 
-QuicRetireConnectionIdFrame::QuicRetireConnectionIdFrame()
-    : control_frame_id(kInvalidControlFrameId), sequence_number(0) {}
-
 QuicRetireConnectionIdFrame::QuicRetireConnectionIdFrame(
     QuicControlFrameId control_frame_id,
     QuicConnectionIdSequenceNumber sequence_number)
diff --git a/quic/core/frames/quic_retire_connection_id_frame.h b/quic/core/frames/quic_retire_connection_id_frame.h
index 79521f6..4451d31 100644
--- a/quic/core/frames/quic_retire_connection_id_frame.h
+++ b/quic/core/frames/quic_retire_connection_id_frame.h
@@ -7,6 +7,7 @@
 
 #include <ostream>
 
+#include "net/third_party/quiche/src/quic/core/quic_constants.h"
 #include "net/third_party/quiche/src/quic/core/quic_error_codes.h"
 #include "net/third_party/quiche/src/quic/core/quic_types.h"
 #include "net/third_party/quiche/src/quic/platform/api/quic_uint128.h"
@@ -14,7 +15,7 @@
 namespace quic {
 
 struct QUIC_EXPORT_PRIVATE QuicRetireConnectionIdFrame {
-  QuicRetireConnectionIdFrame();
+  QuicRetireConnectionIdFrame() = default;
   QuicRetireConnectionIdFrame(QuicControlFrameId control_frame_id,
                               QuicConnectionIdSequenceNumber sequence_number);
 
@@ -24,8 +25,8 @@
 
   // A unique identifier of this control frame. 0 when this frame is received,
   // and non-zero when sent.
-  QuicControlFrameId control_frame_id;
-  QuicConnectionIdSequenceNumber sequence_number;
+  QuicControlFrameId control_frame_id = kInvalidControlFrameId;
+  QuicConnectionIdSequenceNumber sequence_number = 0;
 };
 
 }  // namespace quic
diff --git a/quic/core/frames/quic_rst_stream_frame.cc b/quic/core/frames/quic_rst_stream_frame.cc
index 91e44f0..41a1fd3 100644
--- a/quic/core/frames/quic_rst_stream_frame.cc
+++ b/quic/core/frames/quic_rst_stream_frame.cc
@@ -3,17 +3,9 @@
 // found in the LICENSE file.
 
 #include "net/third_party/quiche/src/quic/core/frames/quic_rst_stream_frame.h"
-#include "net/third_party/quiche/src/quic/core/quic_constants.h"
 
 namespace quic {
 
-QuicRstStreamFrame::QuicRstStreamFrame()
-    : control_frame_id(kInvalidControlFrameId),
-      stream_id(0),
-      error_code(QUIC_STREAM_NO_ERROR),
-      ietf_error_code(0),
-      byte_offset(0) {}
-
 QuicRstStreamFrame::QuicRstStreamFrame(QuicControlFrameId control_frame_id,
                                        QuicStreamId stream_id,
                                        QuicRstStreamErrorCode error_code,
diff --git a/quic/core/frames/quic_rst_stream_frame.h b/quic/core/frames/quic_rst_stream_frame.h
index e15ae1d..691a868 100644
--- a/quic/core/frames/quic_rst_stream_frame.h
+++ b/quic/core/frames/quic_rst_stream_frame.h
@@ -7,13 +7,14 @@
 
 #include <ostream>
 
+#include "net/third_party/quiche/src/quic/core/quic_constants.h"
 #include "net/third_party/quiche/src/quic/core/quic_error_codes.h"
 #include "net/third_party/quiche/src/quic/core/quic_types.h"
 
 namespace quic {
 
 struct QUIC_EXPORT_PRIVATE QuicRstStreamFrame {
-  QuicRstStreamFrame();
+  QuicRstStreamFrame() = default;
   QuicRstStreamFrame(QuicControlFrameId control_frame_id,
                      QuicStreamId stream_id,
                      QuicRstStreamErrorCode error_code,
@@ -25,25 +26,25 @@
 
   // A unique identifier of this control frame. 0 when this frame is received,
   // and non-zero when sent.
-  QuicControlFrameId control_frame_id;
+  QuicControlFrameId control_frame_id = kInvalidControlFrameId;
 
-  QuicStreamId stream_id;
+  QuicStreamId stream_id = 0;
 
   // When using Google QUIC: the RST_STREAM error code on the wire.
   // When using IETF QUIC: for an outgoing RESET_STREAM frame, the error code
   // generated by the application that determines |ietf_error_code| to be sent
   // on the wire; for an incoming RESET_STREAM frame, the error code inferred
   // from the |ietf_error_code| received on the wire.
-  QuicRstStreamErrorCode error_code;
+  QuicRstStreamErrorCode error_code = QUIC_STREAM_NO_ERROR;
 
   // Application error code of RESET_STREAM frame.  Used for IETF QUIC only.
-  uint64_t ietf_error_code;
+  uint64_t ietf_error_code = 0;
 
   // Used to update flow control windows. On termination of a stream, both
   // endpoints must inform the peer of the number of bytes they have sent on
   // that stream. This can be done through normal termination (data packet with
   // FIN) or through a RST.
-  QuicStreamOffset byte_offset;
+  QuicStreamOffset byte_offset = 0;
 };
 
 }  // namespace quic
diff --git a/quic/core/frames/quic_stop_sending_frame.cc b/quic/core/frames/quic_stop_sending_frame.cc
index 1afd512..c4d732e 100644
--- a/quic/core/frames/quic_stop_sending_frame.cc
+++ b/quic/core/frames/quic_stop_sending_frame.cc
@@ -3,15 +3,9 @@
 // found in the LICENSE file.
 
 #include "net/third_party/quiche/src/quic/core/frames/quic_stop_sending_frame.h"
-#include "net/third_party/quiche/src/quic/core/quic_constants.h"
 
 namespace quic {
 
-QuicStopSendingFrame::QuicStopSendingFrame()
-    : control_frame_id(kInvalidControlFrameId),
-      stream_id(0),
-      application_error_code(0) {}
-
 QuicStopSendingFrame::QuicStopSendingFrame(
     QuicControlFrameId control_frame_id,
     QuicStreamId stream_id,
diff --git a/quic/core/frames/quic_stop_sending_frame.h b/quic/core/frames/quic_stop_sending_frame.h
index 7ca639d..8222067 100644
--- a/quic/core/frames/quic_stop_sending_frame.h
+++ b/quic/core/frames/quic_stop_sending_frame.h
@@ -7,13 +7,14 @@
 
 #include <ostream>
 
+#include "net/third_party/quiche/src/quic/core/quic_constants.h"
 #include "net/third_party/quiche/src/quic/core/quic_error_codes.h"
 #include "net/third_party/quiche/src/quic/core/quic_types.h"
 
 namespace quic {
 
 struct QUIC_EXPORT_PRIVATE QuicStopSendingFrame {
-  QuicStopSendingFrame();
+  QuicStopSendingFrame() = default;
   QuicStopSendingFrame(QuicControlFrameId control_frame_id,
                        QuicStreamId stream_id,
                        QuicApplicationErrorCode application_error_code);
@@ -24,9 +25,9 @@
 
   // A unique identifier of this control frame. 0 when this frame is received,
   // and non-zero when sent.
-  QuicControlFrameId control_frame_id;
-  QuicStreamId stream_id;
-  QuicApplicationErrorCode application_error_code;
+  QuicControlFrameId control_frame_id = kInvalidControlFrameId;
+  QuicStreamId stream_id = 0;
+  QuicApplicationErrorCode application_error_code = 0;
 };
 
 }  // namespace quic
diff --git a/quic/core/frames/quic_stream_frame.cc b/quic/core/frames/quic_stream_frame.cc
index 54a5252..db19999 100644
--- a/quic/core/frames/quic_stream_frame.cc
+++ b/quic/core/frames/quic_stream_frame.cc
@@ -9,8 +9,7 @@
 
 namespace quic {
 
-QuicStreamFrame::QuicStreamFrame()
-    : QuicStreamFrame(-1, false, 0, nullptr, 0) {}
+QuicStreamFrame::QuicStreamFrame() : QuicInlinedFrame(STREAM_FRAME) {}
 
 QuicStreamFrame::QuicStreamFrame(QuicStreamId stream_id,
                                  bool fin,
diff --git a/quic/core/frames/quic_stream_frame.h b/quic/core/frames/quic_stream_frame.h
index fc78ff9..f807ee1 100644
--- a/quic/core/frames/quic_stream_frame.h
+++ b/quic/core/frames/quic_stream_frame.h
@@ -35,11 +35,13 @@
 
   bool operator!=(const QuicStreamFrame& rhs) const;
 
-  bool fin;
-  QuicPacketLength data_length;
-  QuicStreamId stream_id;
-  const char* data_buffer;  // Not owned.
-  QuicStreamOffset offset;  // Location of this data in the stream.
+  bool fin = false;
+  QuicPacketLength data_length = 0;
+  // TODO(wub): Change to a QuicUtils::GetInvalidStreamId when it is not version
+  // dependent.
+  QuicStreamId stream_id = -1;
+  const char* data_buffer = nullptr;  // Not owned.
+  QuicStreamOffset offset = 0;        // Location of this data in the stream.
 
   QuicStreamFrame(QuicStreamId stream_id,
                   bool fin,
diff --git a/quic/core/frames/quic_streams_blocked_frame.cc b/quic/core/frames/quic_streams_blocked_frame.cc
index f0579c5..9300ce3 100644
--- a/quic/core/frames/quic_streams_blocked_frame.cc
+++ b/quic/core/frames/quic_streams_blocked_frame.cc
@@ -7,9 +7,7 @@
 namespace quic {
 
 QuicStreamsBlockedFrame::QuicStreamsBlockedFrame()
-    : QuicInlinedFrame(STREAMS_BLOCKED_FRAME),
-      control_frame_id(kInvalidControlFrameId),
-      unidirectional(false) {}
+    : QuicInlinedFrame(STREAMS_BLOCKED_FRAME) {}
 
 QuicStreamsBlockedFrame::QuicStreamsBlockedFrame(
     QuicControlFrameId control_frame_id,
diff --git a/quic/core/frames/quic_streams_blocked_frame.h b/quic/core/frames/quic_streams_blocked_frame.h
index ff7c7f4..91c7ac9 100644
--- a/quic/core/frames/quic_streams_blocked_frame.h
+++ b/quic/core/frames/quic_streams_blocked_frame.h
@@ -30,13 +30,13 @@
 
   // A unique identifier of this control frame. 0 when this frame is received,
   // and non-zero when sent.
-  QuicControlFrameId control_frame_id;
+  QuicControlFrameId control_frame_id = kInvalidControlFrameId;
 
   // The number of streams that the sender wishes to exceed
   QuicStreamCount stream_count;
 
   // Whether uni- or bi-directional streams
-  bool unidirectional;
+  bool unidirectional = false;
 };
 
 }  // namespace quic
diff --git a/quic/core/frames/quic_window_update_frame.cc b/quic/core/frames/quic_window_update_frame.cc
index 81ca125..a4f3ec3 100644
--- a/quic/core/frames/quic_window_update_frame.cc
+++ b/quic/core/frames/quic_window_update_frame.cc
@@ -3,13 +3,9 @@
 // found in the LICENSE file.
 
 #include "net/third_party/quiche/src/quic/core/frames/quic_window_update_frame.h"
-#include "net/third_party/quiche/src/quic/core/quic_constants.h"
 
 namespace quic {
 
-QuicWindowUpdateFrame::QuicWindowUpdateFrame()
-    : control_frame_id(kInvalidControlFrameId) {}
-
 QuicWindowUpdateFrame::QuicWindowUpdateFrame(
     QuicControlFrameId control_frame_id,
     QuicStreamId stream_id,
diff --git a/quic/core/frames/quic_window_update_frame.h b/quic/core/frames/quic_window_update_frame.h
index ff44785..74181f5 100644
--- a/quic/core/frames/quic_window_update_frame.h
+++ b/quic/core/frames/quic_window_update_frame.h
@@ -7,6 +7,7 @@
 
 #include <ostream>
 
+#include "net/third_party/quiche/src/quic/core/quic_constants.h"
 #include "net/third_party/quiche/src/quic/core/quic_types.h"
 
 namespace quic {
@@ -15,7 +16,7 @@
 // Based on SPDY's WINDOW_UPDATE frame, but uses an absolute max data bytes
 // rather than a window delta.
 struct QUIC_EXPORT_PRIVATE QuicWindowUpdateFrame {
-  QuicWindowUpdateFrame();
+  QuicWindowUpdateFrame() = default;
   QuicWindowUpdateFrame(QuicControlFrameId control_frame_id,
                         QuicStreamId stream_id,
                         QuicByteCount max_data);
@@ -26,7 +27,7 @@
 
   // A unique identifier of this control frame. 0 when this frame is received,
   // and non-zero when sent.
-  QuicControlFrameId control_frame_id;
+  QuicControlFrameId control_frame_id = kInvalidControlFrameId;
 
   // The stream this frame applies to.  0 is a special case meaning the overall
   // connection rather than a specific stream.