Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(623)

Side by Side Diff: net/spdy/spdy_session.h

Issue 2521573006: Server push cancellation: change the ownership of ServerPushDelegate to HttpNetworkSession. (Closed)
Patch Set: rebase Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « net/quic/chromium/quic_stream_factory.cc ('k') | net/spdy/spdy_session.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 291 matching lines...) Expand 10 before | Expand all | Expand 10 after
302 // |session| is the HttpNetworkSession. |net_log| is the NetLog that we log 302 // |session| is the HttpNetworkSession. |net_log| is the NetLog that we log
303 // network events to. 303 // network events to.
304 SpdySession(const SpdySessionKey& spdy_session_key, 304 SpdySession(const SpdySessionKey& spdy_session_key,
305 HttpServerProperties* http_server_properties, 305 HttpServerProperties* http_server_properties,
306 TransportSecurityState* transport_security_state, 306 TransportSecurityState* transport_security_state,
307 bool enable_sending_initial_data, 307 bool enable_sending_initial_data,
308 bool enable_ping_based_connection_checking, 308 bool enable_ping_based_connection_checking,
309 size_t session_max_recv_window_size, 309 size_t session_max_recv_window_size,
310 size_t stream_max_recv_window_size, 310 size_t stream_max_recv_window_size,
311 TimeFunc time_func, 311 TimeFunc time_func,
312 ServerPushDelegate* push_delegate,
312 ProxyDelegate* proxy_delegate, 313 ProxyDelegate* proxy_delegate,
313 NetLog* net_log); 314 NetLog* net_log);
314 315
315 ~SpdySession() override; 316 ~SpdySession() override;
316 317
317 const HostPortPair& host_port_pair() const { 318 const HostPortPair& host_port_pair() const {
318 return spdy_session_key_.host_port_proxy_pair().first; 319 return spdy_session_key_.host_port_proxy_pair().first;
319 } 320 }
320 const HostPortProxyPair& host_port_proxy_pair() const { 321 const HostPortProxyPair& host_port_proxy_pair() const {
321 return spdy_session_key_.host_port_proxy_pair(); 322 return spdy_session_key_.host_port_proxy_pair();
322 } 323 }
323 const SpdySessionKey& spdy_session_key() const { 324 const SpdySessionKey& spdy_session_key() const {
324 return spdy_session_key_; 325 return spdy_session_key_;
325 } 326 }
326 // Get a pushed stream for a given |url|. If the server initiates a 327 // Get a pushed stream for a given |url|. If the server initiates a
327 // stream, it might already exist for a given path. The server 328 // stream, it might already exist for a given path. The server
328 // might also not have initiated the stream yet, but indicated it 329 // might also not have initiated the stream yet, but indicated it
329 // will via X-Associated-Content. Returns OK if a stream was found 330 // will via X-Associated-Content. Returns OK if a stream was found
330 // and put into |spdy_stream|, or if one was not found but it is 331 // and put into |spdy_stream|, or if one was not found but it is
331 // okay to create a new stream (in which case |spdy_stream| is 332 // okay to create a new stream (in which case |spdy_stream| is
332 // reset). Returns an error (not ERR_IO_PENDING) otherwise, and 333 // reset). Returns an error (not ERR_IO_PENDING) otherwise, and
333 // resets |spdy_stream|. 334 // resets |spdy_stream|.
334 int GetPushStream(const GURL& url, 335 int GetPushStream(const GURL& url,
335 base::WeakPtr<SpdyStream>* spdy_stream, 336 base::WeakPtr<SpdyStream>* spdy_stream,
336 const NetLogWithSource& stream_net_log); 337 const NetLogWithSource& stream_net_log);
337 338
338 void set_push_delegate(ServerPushDelegate* push_delegate) {
339 push_delegate_ = push_delegate;
340 }
341
342 // Called when the pushed stream should be cancelled. If the pushed stream is 339 // Called when the pushed stream should be cancelled. If the pushed stream is
343 // not claimed and active, sends RST to the server to cancel the stream. 340 // not claimed and active, sends RST to the server to cancel the stream.
344 void CancelPush(const GURL& url); 341 void CancelPush(const GURL& url);
345 342
346 // Initialize the session with the given connection. |is_secure| 343 // Initialize the session with the given connection. |is_secure|
347 // must indicate whether |connection| uses an SSL socket or not; it 344 // must indicate whether |connection| uses an SSL socket or not; it
348 // is usually true, but it can be false for testing or when SPDY is 345 // is usually true, but it can be false for testing or when SPDY is
349 // configured to work with non-secure sockets. 346 // configured to work with non-secure sockets.
350 // 347 //
351 // |pool| is the SpdySessionPool that owns us. Its lifetime must 348 // |pool| is the SpdySessionPool that owns us. Its lifetime must
(...skipping 854 matching lines...) Expand 10 before | Expand all | Expand 10 after
1206 // Used for posting asynchronous IO tasks. We use this even though 1203 // Used for posting asynchronous IO tasks. We use this even though
1207 // SpdySession is refcounted because we don't need to keep the SpdySession 1204 // SpdySession is refcounted because we don't need to keep the SpdySession
1208 // alive if the last reference is within a RunnableMethod. Just revoke the 1205 // alive if the last reference is within a RunnableMethod. Just revoke the
1209 // method. 1206 // method.
1210 base::WeakPtrFactory<SpdySession> weak_factory_; 1207 base::WeakPtrFactory<SpdySession> weak_factory_;
1211 }; 1208 };
1212 1209
1213 } // namespace net 1210 } // namespace net
1214 1211
1215 #endif // NET_SPDY_SPDY_SESSION_H_ 1212 #endif // NET_SPDY_SPDY_SESSION_H_
OLDNEW
« no previous file with comments | « net/quic/chromium/quic_stream_factory.cc ('k') | net/spdy/spdy_session.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698