| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef NET_SPDY_SPDY_SESSION_H_ | 5 #ifndef NET_SPDY_SPDY_SESSION_H_ |
| 6 #define NET_SPDY_SPDY_SESSION_H_ | 6 #define NET_SPDY_SPDY_SESSION_H_ |
| 7 | 7 |
| 8 #include <stddef.h> | 8 #include <stddef.h> |
| 9 #include <stdint.h> | 9 #include <stdint.h> |
| 10 | 10 |
| (...skipping 29 matching lines...) Expand all Loading... |
| 40 #include "net/spdy/spdy_framer.h" | 40 #include "net/spdy/spdy_framer.h" |
| 41 #include "net/spdy/spdy_header_block.h" | 41 #include "net/spdy/spdy_header_block.h" |
| 42 #include "net/spdy/spdy_protocol.h" | 42 #include "net/spdy/spdy_protocol.h" |
| 43 #include "net/spdy/spdy_session_pool.h" | 43 #include "net/spdy/spdy_session_pool.h" |
| 44 #include "net/spdy/spdy_stream.h" | 44 #include "net/spdy/spdy_stream.h" |
| 45 #include "net/spdy/spdy_write_queue.h" | 45 #include "net/spdy/spdy_write_queue.h" |
| 46 #include "net/ssl/ssl_config_service.h" | 46 #include "net/ssl/ssl_config_service.h" |
| 47 #include "url/gurl.h" | 47 #include "url/gurl.h" |
| 48 #include "url/scheme_host_port.h" | 48 #include "url/scheme_host_port.h" |
| 49 | 49 |
| 50 namespace base { | |
| 51 namespace trace_event { | |
| 52 class ProcessMemoryDump; | |
| 53 } | |
| 54 } | |
| 55 | |
| 56 namespace net { | 50 namespace net { |
| 57 | 51 |
| 58 namespace test { | 52 namespace test { |
| 59 class SpdyStreamTest; | 53 class SpdyStreamTest; |
| 60 } | 54 } |
| 61 | 55 |
| 62 // This is somewhat arbitrary and not really fixed, but it will always work | 56 // This is somewhat arbitrary and not really fixed, but it will always work |
| 63 // reasonably with ethernet. Chop the world into 2-packet chunks. This is | 57 // reasonably with ethernet. Chop the world into 2-packet chunks. This is |
| 64 // somewhat arbitrary, but is reasonably small and ensures that we elicit | 58 // somewhat arbitrary, but is reasonably small and ensures that we elicit |
| 65 // ACKs quickly from TCP (because TCP tries to only ACK every other packet). | 59 // ACKs quickly from TCP (because TCP tries to only ACK every other packet). |
| (...skipping 491 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 557 // https://http2.github.io/http2-spec/#TLSUsage mandates minimum security | 551 // https://http2.github.io/http2-spec/#TLSUsage mandates minimum security |
| 558 // standards for TLS. | 552 // standards for TLS. |
| 559 bool HasAcceptableTransportSecurity() const; | 553 bool HasAcceptableTransportSecurity() const; |
| 560 | 554 |
| 561 // Must be used only by |pool_|. | 555 // Must be used only by |pool_|. |
| 562 base::WeakPtr<SpdySession> GetWeakPtr(); | 556 base::WeakPtr<SpdySession> GetWeakPtr(); |
| 563 | 557 |
| 564 // HigherLayeredPool implementation: | 558 // HigherLayeredPool implementation: |
| 565 bool CloseOneIdleConnection() override; | 559 bool CloseOneIdleConnection() override; |
| 566 | 560 |
| 567 // Dumps memory allocation stats. |parent_dump_absolute_name| is the name | 561 // Dumps memory allocation stats to |stats|. Sets |*is_session_active| to |
| 568 // used by the parent MemoryAllocatorDump in the memory dump hierarchy. | 562 // indicate whether session is active. |
| 569 void DumpMemoryStats(base::trace_event::ProcessMemoryDump* pmd, | 563 // |stats| can be assumed as being default initialized upon entry. |
| 570 const std::string& parent_dump_absolute_name) const; | 564 // Implementation overrides fields in |stats|. |
| 565 void DumpMemoryStats(StreamSocket::SocketMemoryStats* stats, |
| 566 bool* is_session_active) const; |
| 571 | 567 |
| 572 private: | 568 private: |
| 573 friend class test::SpdyStreamTest; | 569 friend class test::SpdyStreamTest; |
| 574 friend class base::RefCounted<SpdySession>; | 570 friend class base::RefCounted<SpdySession>; |
| 575 friend class HttpNetworkTransactionTest; | 571 friend class HttpNetworkTransactionTest; |
| 576 friend class HttpProxyClientSocketPoolTest; | 572 friend class HttpProxyClientSocketPoolTest; |
| 577 friend class SpdyHttpStreamTest; | 573 friend class SpdyHttpStreamTest; |
| 578 friend class SpdyNetworkTransactionTest; | 574 friend class SpdyNetworkTransactionTest; |
| 579 friend class SpdyProxyClientSocketTest; | 575 friend class SpdyProxyClientSocketTest; |
| 580 friend class SpdySessionTest; | 576 friend class SpdySessionTest; |
| (...skipping 631 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1212 // Used for posting asynchronous IO tasks. We use this even though | 1208 // Used for posting asynchronous IO tasks. We use this even though |
| 1213 // SpdySession is refcounted because we don't need to keep the SpdySession | 1209 // SpdySession is refcounted because we don't need to keep the SpdySession |
| 1214 // alive if the last reference is within a RunnableMethod. Just revoke the | 1210 // alive if the last reference is within a RunnableMethod. Just revoke the |
| 1215 // method. | 1211 // method. |
| 1216 base::WeakPtrFactory<SpdySession> weak_factory_; | 1212 base::WeakPtrFactory<SpdySession> weak_factory_; |
| 1217 }; | 1213 }; |
| 1218 | 1214 |
| 1219 } // namespace net | 1215 } // namespace net |
| 1220 | 1216 |
| 1221 #endif // NET_SPDY_SPDY_SESSION_H_ | 1217 #endif // NET_SPDY_SPDY_SESSION_H_ |
| OLD | NEW |