Chromium Code Reviews| Index: net/quic/quic_connection_logger.cc |
| diff --git a/net/quic/quic_connection_logger.cc b/net/quic/quic_connection_logger.cc |
| index 5b335443a86c92642cee6508379c7a36464e98bd..7e612030b4ff34e2acd0f5b73be5a3ab1f9cdcb0 100644 |
| --- a/net/quic/quic_connection_logger.cc |
| +++ b/net/quic/quic_connection_logger.cc |
| @@ -25,6 +25,22 @@ Value* NetLogQuicPacketCallback(const IPEndPoint* self_address, |
| return dict; |
| } |
| +Value* NetLogQuicPacketSentCallback(QuicPacketSequenceNumber sequence_number, |
| + EncryptionLevel level, |
| + size_t packet_size, |
| + int rv, |
| + NetLog::LogLevel /* log_level */) { |
| + DictionaryValue* dict = new DictionaryValue(); |
|
eroman
2013/06/20 22:20:04
Drop the "t". It is cleaner.
Nah, just kidding :)
Ryan Hamilton
2013/06/20 22:44:16
:>
|
| + dict->SetInteger("encryption_level", level); |
| + dict->SetString("packet_sequence_number", |
| + base::Uint64ToString(sequence_number)); |
| + dict->SetInteger("size", packet_size); |
| + if (rv < 0) { |
| + dict->SetInteger("net_error", rv); |
| + } |
| + return dict; |
| +} |
| + |
| Value* NetLogQuicPacketHeaderCallback(const QuicPacketHeader* header, |
| NetLog::LogLevel /* log_level */) { |
| DictionaryValue* dict = new DictionaryValue(); |
| @@ -136,7 +152,56 @@ QuicConnectionLogger::QuicConnectionLogger(const BoundNetLog& net_log) |
| QuicConnectionLogger::~QuicConnectionLogger() { |
| } |
| - // QuicConnectionDebugVisitorInterface |
| +void QuicConnectionLogger::OnFrameAddedToPacket(const QuicFrame& frame) { |
| + switch (frame.type) { |
| + case PADDING_FRAME: |
| + break; |
| + case STREAM_FRAME: |
| + net_log_.AddEvent( |
| + NetLog::TYPE_QUIC_SESSION_STREAM_FRAME_SENT, |
| + base::Bind(&NetLogQuicStreamFrameCallback, frame.stream_frame)); |
| + break; |
| + case ACK_FRAME: |
| + net_log_.AddEvent( |
| + NetLog::TYPE_QUIC_SESSION_ACK_FRAME_SENT, |
| + base::Bind(&NetLogQuicAckFrameCallback, frame.ack_frame)); |
| + break; |
| + case CONGESTION_FEEDBACK_FRAME: |
| + net_log_.AddEvent( |
| + NetLog::TYPE_QUIC_SESSION_CONGESTION_FEEDBACK_FRAME_SENT, |
| + base::Bind(&NetLogQuicCongestionFeedbackFrameCallback, |
| + frame.congestion_feedback_frame)); |
| + break; |
| + case RST_STREAM_FRAME: |
| + net_log_.AddEvent( |
| + NetLog::TYPE_QUIC_SESSION_RST_STREAM_FRAME_SENT, |
| + base::Bind(&NetLogQuicRstStreamFrameCallback, |
| + frame.rst_stream_frame)); |
| + break; |
| + case CONNECTION_CLOSE_FRAME: |
| + net_log_.AddEvent( |
| + NetLog::TYPE_QUIC_SESSION_CONNECTION_CLOSE_FRAME_SENT, |
| + base::Bind(&NetLogQuicConnectionCloseFrameCallback, |
| + frame.connection_close_frame)); |
| + break; |
| + case GOAWAY_FRAME: |
| + break; |
| + default: |
| + DCHECK(false) << "Illegal frame type: " << frame.type; |
| + } |
| +} |
| + |
| +void QuicConnectionLogger::OnPacketSent( |
| + QuicPacketSequenceNumber sequence_number, |
| + EncryptionLevel level, |
| + const QuicEncryptedPacket& packet, |
| + int rv) { |
| + net_log_.AddEvent( |
| + NetLog::TYPE_QUIC_SESSION_PACKET_SENT, |
| + base::Bind(&NetLogQuicPacketSentCallback, sequence_number, level, |
| + packet.length(), rv)); |
| +} |
| + |
| void QuicConnectionLogger::OnPacketReceived(const IPEndPoint& self_address, |
| const IPEndPoint& peer_address, |
| const QuicEncryptedPacket& packet) { |