diff options
Diffstat (limited to 'net/quic/quic_chromium_client_session.cc')
-rw-r--r-- | net/quic/quic_chromium_client_session.cc | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/net/quic/quic_chromium_client_session.cc b/net/quic/quic_chromium_client_session.cc index 85d06ae..fbc1382 100644 --- a/net/quic/quic_chromium_client_session.cc +++ b/net/quic/quic_chromium_client_session.cc @@ -18,6 +18,7 @@ #include "net/base/io_buffer.h" #include "net/base/net_errors.h" #include "net/base/network_activity_monitor.h" +#include "net/http/http_log_util.h" #include "net/http/transport_security_state.h" #include "net/quic/crypto/proof_verifier_chromium.h" #include "net/quic/crypto/quic_server_info.h" @@ -128,6 +129,31 @@ scoped_ptr<base::Value> NetLogQuicClientSessionCallback( return std::move(dict); } +scoped_ptr<base::ListValue> SpdyHeaderBlockToListValue( + const SpdyHeaderBlock& headers, + NetLogCaptureMode capture_mode) { + scoped_ptr<base::ListValue> headers_list(new base::ListValue()); + for (const auto& it : headers) { + headers_list->AppendString( + it.first.as_string() + ": " + + ElideHeaderValueForNetLog(capture_mode, it.first.as_string(), + it.second.as_string())); + } + return headers_list; +} + +scoped_ptr<base::Value> NetLogQuicPushPromiseReceivedCallback( + const SpdyHeaderBlock* headers, + SpdyStreamId stream_id, + SpdyStreamId promised_stream_id, + NetLogCaptureMode capture_mode) { + scoped_ptr<base::DictionaryValue> dict(new base::DictionaryValue()); + dict->Set("headers", SpdyHeaderBlockToListValue(*headers, capture_mode)); + dict->SetInteger("id", stream_id); + dict->SetInteger("promised_stream_id", promised_stream_id); + return std::move(dict); +} + } // namespace QuicChromiumClientSession::StreamRequest::StreamRequest() : stream_(nullptr) {} @@ -1124,4 +1150,13 @@ bool QuicChromiumClientSession::HasNonMigratableStreams() const { return false; } +void QuicChromiumClientSession::HandlePromised(QuicStreamId id, + QuicStreamId promised_id, + const SpdyHeaderBlock& headers) { + QuicClientSessionBase::HandlePromised(id, promised_id, headers); + net_log_.AddEvent(NetLog::TYPE_QUIC_SESSION_PUSH_PROMISE_RECEIVED, + base::Bind(&NetLogQuicPushPromiseReceivedCallback, &headers, + id, promised_id)); +} + } // namespace net |