| Index: net/quic/quic_connection_logger.cc
 | 
| diff --git a/net/quic/quic_connection_logger.cc b/net/quic/quic_connection_logger.cc
 | 
| index 8b4e8b9ee2421cfcc8bf9e1583673a435e1e4095..8a9c3a711181be7109d1f7232168fd43a2cf0713 100644
 | 
| --- a/net/quic/quic_connection_logger.cc
 | 
| +++ b/net/quic/quic_connection_logger.cc
 | 
| @@ -11,6 +11,7 @@
 | 
|  #include "base/callback.h"
 | 
|  #include "base/metrics/histogram.h"
 | 
|  #include "base/metrics/sparse_histogram.h"
 | 
| +#include "base/profiler/scoped_tracker.h"
 | 
|  #include "base/strings/string_number_conversions.h"
 | 
|  #include "base/values.h"
 | 
|  #include "net/base/net_log.h"
 | 
| @@ -267,6 +268,11 @@ void UpdatePublicResetAddressMismatchHistogram(
 | 
|  }
 | 
|  
 | 
|  const char* GetConnectionDescriptionString() {
 | 
| +  // TODO(rtenneti): Remove ScopedTracker below once crbug.com/422516 is fixed.
 | 
| +  tracked_objects::ScopedTracker tracking_profile(
 | 
| +      FROM_HERE_WITH_EXPLICIT_FUNCTION(
 | 
| +          "422516 QuicConnectionLogger GetConnectionDescriptionString"));
 | 
| +
 | 
|    NetworkChangeNotifier::ConnectionType type =
 | 
|        NetworkChangeNotifier::GetConnectionType();
 | 
|    const char* description = NetworkChangeNotifier::ConnectionTypeToString(type);
 | 
| @@ -326,9 +332,11 @@ QuicConnectionLogger::QuicConnectionLogger(QuicSession* session,
 | 
|        session_(session),
 | 
|        last_received_packet_sequence_number_(0),
 | 
|        last_received_packet_size_(0),
 | 
| +      previous_received_packet_size_(0),
 | 
|        largest_received_packet_sequence_number_(0),
 | 
|        largest_received_missing_packet_sequence_number_(0),
 | 
|        num_out_of_order_received_packets_(0),
 | 
| +      num_out_of_order_large_received_packets_(0),
 | 
|        num_packets_received_(0),
 | 
|        num_truncated_acks_sent_(0),
 | 
|        num_truncated_acks_received_(0),
 | 
| @@ -345,6 +353,8 @@ QuicConnectionLogger::QuicConnectionLogger(QuicSession* session,
 | 
|  QuicConnectionLogger::~QuicConnectionLogger() {
 | 
|    UMA_HISTOGRAM_COUNTS("Net.QuicSession.OutOfOrderPacketsReceived",
 | 
|                         num_out_of_order_received_packets_);
 | 
| +  UMA_HISTOGRAM_COUNTS("Net.QuicSession.OutOfOrderLargePacketsReceived",
 | 
| +                       num_out_of_order_large_received_packets_);
 | 
|    UMA_HISTOGRAM_COUNTS("Net.QuicSession.TruncatedAcksSent",
 | 
|                         num_truncated_acks_sent_);
 | 
|    UMA_HISTOGRAM_COUNTS("Net.QuicSession.TruncatedAcksReceived",
 | 
| @@ -496,6 +506,7 @@ void QuicConnectionLogger::OnPacketReceived(const IPEndPoint& self_address,
 | 
|                                ADDRESS_FAMILY_LAST);
 | 
|    }
 | 
|  
 | 
| +  previous_received_packet_size_ = last_received_packet_size_;
 | 
|    last_received_packet_size_ = packet.length();
 | 
|    net_log_.AddEvent(
 | 
|        NetLog::TYPE_QUIC_SESSION_PACKET_RECEIVED,
 | 
| @@ -546,6 +557,8 @@ void QuicConnectionLogger::OnPacketHeader(const QuicPacketHeader& header) {
 | 
|    }
 | 
|    if (header.packet_sequence_number < last_received_packet_sequence_number_) {
 | 
|      ++num_out_of_order_received_packets_;
 | 
| +    if (previous_received_packet_size_ < last_received_packet_size_)
 | 
| +      ++num_out_of_order_large_received_packets_;
 | 
|      UMA_HISTOGRAM_COUNTS(
 | 
|          "Net.QuicSession.OutOfOrderGapReceived",
 | 
|          static_cast<base::HistogramBase::Sample>(
 | 
| 
 |