Index: net/http/http_stream_factory.h |
diff --git a/net/http/http_stream_factory.h b/net/http/http_stream_factory.h |
index c131897a5a5a44a52df1c26fd31e9c52f7d1cf99..0fff39909da377fcf62f356e079d7f025289c2ee 100644 |
--- a/net/http/http_stream_factory.h |
+++ b/net/http/http_stream_factory.h |
@@ -29,6 +29,7 @@ namespace net { |
class AuthCredentials; |
class BoundNetLog; |
+class ClientSocketHandle; |
class HostMappingRules; |
class HostPortPair; |
class HttpAuthController; |
@@ -38,6 +39,7 @@ class HttpStreamBase; |
class ProxyInfo; |
class SSLCertRequestInfo; |
class SSLInfo; |
+class SpdySession; |
struct HttpRequestInfo; |
struct SSLConfig; |
@@ -55,7 +57,7 @@ class NET_EXPORT_PRIVATE HttpStreamRequest { |
public: |
virtual ~Delegate() {} |
- // This is the success case. |
+ // This is the success case for RequestStream. |
// |stream| is now owned by the delegate. |
// |used_ssl_config| indicates the actual SSL configuration used for this |
// stream, since the HttpStreamRequest may have modified the configuration |
@@ -67,6 +69,31 @@ class NET_EXPORT_PRIVATE HttpStreamRequest { |
const ProxyInfo& used_proxy_info, |
HttpStreamBase* stream) = 0; |
+ // This is a success case for RequestStreamForWebSocket. |
+ // |connection| is now owned by the delegate. |
+ // |used_ssl_config| indicates the actual SSL configuration used for this |
+ // stream, since the HttpStreamRequest may have modified the configuration |
+ // during stream processing. |
+ // |used_proxy_info| indicates the actual ProxyInfo used for this stream, |
+ // since the HttpStreamRequest performs the proxy resolution. |
+ virtual void OnSocketReady( |
+ const SSLConfig& used_ssl_config, |
+ const ProxyInfo& used_proxy_info, |
+ ClientSocketHandle* connection) = 0; |
+ |
+ // This is a success case for RequestStreamForWebSocket. |
+ // |session| is referenced by the caller. |
+ // You should create and hold a scoped_refptr to retain it. |
+ // |used_ssl_config| indicates the actual SSL configuration used for this |
+ // stream, since the HttpStreamRequest may have modified the configuration |
+ // during stream processing. |
+ // |used_proxy_info| indicates the actual ProxyInfo used for this stream, |
+ // since the HttpStreamRequest performs the proxy resolution. |
+ virtual void OnSpdySessionReady( |
+ const SSLConfig& used_ssl_config, |
+ const ProxyInfo& used_proxy_info, |
+ SpdySession* session) = 0; |
+ |
// This is the failure to create a stream case. |
// |used_ssl_config| indicates the actual SSL configuration used for this |
// stream, since the HttpStreamRequest may have modified the configuration |
@@ -169,7 +196,7 @@ class NET_EXPORT HttpStreamFactory { |
// Virtual interface methods. |
// Request a stream. |
- // Will callback to the HttpStreamRequestDelegate upon completion. |
+ // Will call delegate->OnStreamReady upon completion. |
virtual HttpStreamRequest* RequestStream( |
const HttpRequestInfo& info, |
RequestPriority priority, |
@@ -178,6 +205,17 @@ class NET_EXPORT HttpStreamFactory { |
HttpStreamRequest::Delegate* delegate, |
const BoundNetLog& net_log) = 0; |
+ // Request a stream for a websocket connection. |
+ // Will call delegate->OnSocketReady or delegate->OnSpdySessionReady |
+ // upon completion. |
+ virtual HttpStreamRequest* RequestStreamForWebSocket( |
+ const HttpRequestInfo& info, |
+ RequestPriority priority, |
+ const SSLConfig& server_ssl_config, |
+ const SSLConfig& proxy_ssl_config, |
+ HttpStreamRequest::Delegate* delegate, |
+ const BoundNetLog& net_log) = 0; |
+ |
// Requests that enough connections for |num_streams| be opened. |
virtual void PreconnectStreams(int num_streams, |
const HttpRequestInfo& info, |