From 46f76c3847ce89843d90b6c163a9db43ac2a01e2 Mon Sep 17 00:00:00 2001 From: klzgrad Date: Sat, 8 Dec 2018 00:52:08 -0500 Subject: [PATCH] socket: Add RawConnect method --- src/net/socket/client_socket_pool_manager.cc | 23 ++++++++++++++++++++ src/net/socket/client_socket_pool_manager.h | 14 ++++++++++++ 2 files changed, 37 insertions(+) diff --git a/src/net/socket/client_socket_pool_manager.cc b/src/net/socket/client_socket_pool_manager.cc index b41e79eb1b..1aa7f7fcf5 100644 --- a/src/net/socket/client_socket_pool_manager.cc +++ b/src/net/socket/client_socket_pool_manager.cc @@ -278,6 +278,29 @@ int InitSocketHandleForWebSocketRequest( std::move(callback), proxy_auth_callback); } +int InitSocketHandleForRawConnect2(const HostPortPair& endpoint, + HttpNetworkSession* session, + int request_load_flags, + RequestPriority request_priority, + const ProxyInfo& proxy_info, + const SSLConfig& ssl_config_for_origin, + const SSLConfig& ssl_config_for_proxy, + PrivacyMode privacy_mode, + NetworkIsolationKey network_isolation_key, + const NetLogWithSource& net_log, + ClientSocketHandle* socket_handle, + CompletionOnceCallback callback) { + DCHECK(socket_handle); + return InitSocketPoolHelper( + {"http", endpoint.HostForURL(), endpoint.port()}, request_load_flags, + request_priority, session, proxy_info, ssl_config_for_origin, + ssl_config_for_proxy, + /*is_for_websockets=*/true, privacy_mode, + std::move(network_isolation_key), SecureDnsPolicy::kDisable, SocketTag(), + net_log, 0, socket_handle, HttpNetworkSession::NORMAL_SOCKET_POOL, + std::move(callback), ClientSocketPool::ProxyAuthCallback()); +} + int PreconnectSocketsForHttpRequest(url::SchemeHostPort endpoint, int request_load_flags, RequestPriority request_priority, diff --git a/src/net/socket/client_socket_pool_manager.h b/src/net/socket/client_socket_pool_manager.h index 8e4652d7f0..ba8772ac9d 100644 --- a/src/net/socket/client_socket_pool_manager.h +++ b/src/net/socket/client_socket_pool_manager.h @@ -125,6 +125,20 @@ int InitSocketHandleForWebSocketRequest( CompletionOnceCallback callback, const ClientSocketPool::ProxyAuthCallback& proxy_auth_callback); +NET_EXPORT int InitSocketHandleForRawConnect2( + const HostPortPair& endpoint, + HttpNetworkSession* session, + int request_load_flags, + RequestPriority request_priority, + const ProxyInfo& proxy_info, + const SSLConfig& ssl_config_for_origin, + const SSLConfig& ssl_config_for_proxy, + PrivacyMode privacy_mode, + NetworkIsolationKey network_isolation_key, + const NetLogWithSource& net_log, + ClientSocketHandle* socket_handle, + CompletionOnceCallback callback); + // Similar to InitSocketHandleForHttpRequest except that it initiates the // desired number of preconnect streams from the relevant socket pool. int PreconnectSocketsForHttpRequest(url::SchemeHostPort endpoint,