| Index: net/spdy/spdy_session.cc
|
| diff --git a/net/spdy/spdy_session.cc b/net/spdy/spdy_session.cc
|
| index edb1ae9b44877b08c4088e3f34ce45052d7e5cbf..d7e8fc39697b86ee2b9ec4020c1f378bf225d62e 100644
|
| --- a/net/spdy/spdy_session.cc
|
| +++ b/net/spdy/spdy_session.cc
|
| @@ -25,6 +25,7 @@
|
| #include "base/strings/utf_string_conversions.h"
|
| #include "base/threading/thread_task_runner_handle.h"
|
| #include "base/time/time.h"
|
| +#include "base/trace_event/memory_usage_estimator.h"
|
| #include "base/trace_event/trace_event.h"
|
| #include "base/values.h"
|
| #include "crypto/ec_private_key.h"
|
| @@ -572,6 +573,10 @@ base::WeakPtr<SpdyStream> SpdyStreamRequest::ReleaseStream() {
|
| return stream;
|
| }
|
|
|
| +size_t SpdyStreamRequest::EstimateMemoryUsage() const {
|
| + return base::trace_event::EstimateItemMemoryUsage(url_);
|
| +}
|
| +
|
| void SpdyStreamRequest::OnRequestCompleteSuccess(
|
| const base::WeakPtr<SpdyStream>& stream) {
|
| DCHECK(session_);
|
| @@ -650,6 +655,11 @@ SpdySession::UnclaimedPushedStreamContainer::insert(
|
| stream_id, creation_time)));
|
| }
|
|
|
| +size_t SpdySession::UnclaimedPushedStreamContainer::EstimateMemoryUsage()
|
| + const {
|
| + return base::trace_event::EstimateMemoryUsage(streams_);
|
| +}
|
| +
|
| // static
|
| bool SpdySession::CanPool(TransportSecurityState* transport_security_state,
|
| const SSLInfo& ssl_info,
|
| @@ -1072,10 +1082,26 @@ bool SpdySession::CloseOneIdleConnection() {
|
| return false;
|
| }
|
|
|
| -void SpdySession::DumpMemoryStats(StreamSocket::SocketMemoryStats* stats,
|
| - bool* is_session_active) const {
|
| +size_t SpdySession::DumpMemoryStats(StreamSocket::SocketMemoryStats* stats,
|
| + bool* is_session_active) const {
|
| + // TODO(xunjieli): Include |pending_create_stream_queues_| when WeakPtr is
|
| + // supported in memory_usage_estimator.h.
|
| *is_session_active = is_active();
|
| connection_->DumpMemoryStats(stats);
|
| + // |connection_| is estimated in stats->total_size. |read_buffer_| is
|
| + // estimated in kReadBufferSize. TODO(xunjieli): Make them use EMU().
|
| + return stats->total_size + kReadBufferSize +
|
| + base::trace_event::EstimateMemoryUsage(spdy_session_key_) +
|
| + base::trace_event::EstimateMemoryUsage(pooled_aliases_) +
|
| + base::trace_event::EstimateMemoryUsage(active_streams_) +
|
| + base::trace_event::EstimateMemoryUsage(unclaimed_pushed_streams_) +
|
| + base::trace_event::EstimateMemoryUsage(created_streams_) +
|
| + base::trace_event::EstimateMemoryUsage(write_queue_) +
|
| + base::trace_event::EstimateMemoryUsage(in_flight_write_) +
|
| + base::trace_event::EstimateMemoryUsage(buffered_spdy_framer_) +
|
| + base::trace_event::EstimateMemoryUsage(initial_settings_) +
|
| + base::trace_event::EstimateMemoryUsage(stream_send_unstall_queue_) +
|
| + base::trace_event::EstimateMemoryUsage(priority_dependency_state_);
|
| }
|
|
|
| void SpdySession::EnqueueStreamWrite(
|
|
|