| Index: net/spdy/spdy_session.cc
 | 
| diff --git a/net/spdy/spdy_session.cc b/net/spdy/spdy_session.cc
 | 
| index ddfa2a2be9e3454a427dac39035b3692f71ffcb3..181d32f7568070e0f134b708d037a99ce3cf5c28 100644
 | 
| --- a/net/spdy/spdy_session.cc
 | 
| +++ b/net/spdy/spdy_session.cc
 | 
| @@ -394,6 +394,7 @@ net::Error SpdySession::InitializeWithSocket(
 | 
|  
 | 
|    state_ = CONNECTED;
 | 
|    connection_.reset(connection);
 | 
| +  connection_->AddLayeredPool(this);
 | 
|    is_secure_ = is_secure;
 | 
|    certificate_error_code_ = certificate_error_code;
 | 
|  
 | 
| @@ -1191,6 +1192,18 @@ int SpdySession::GetLocalAddress(IPEndPoint* address) const {
 | 
|    return connection_->socket()->GetLocalAddress(address);
 | 
|  }
 | 
|  
 | 
| +bool SpdySession::CloseOneIdleConnection() {
 | 
| +  if (spdy_session_pool_ && num_active_streams() == 0) {
 | 
| +    bool ret = HasOneRef();
 | 
| +    // Will remove a reference to this.
 | 
| +    RemoveFromPool();
 | 
| +    // Since the underlying socket is only returned when |this| is destroyed
 | 
| +    // we should only return true if RemoveFromPool() removed the last ref.
 | 
| +    return ret;
 | 
| +  }
 | 
| +  return false;
 | 
| +}
 | 
| +
 | 
|  void SpdySession::ActivateStream(SpdyStream* stream) {
 | 
|    const spdy::SpdyStreamId id = stream->stream_id();
 | 
|    DCHECK(!IsStreamActive(id));
 | 
| 
 |