From bb5ea1aa72b6057d601549ca1526f00a74df4564 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 | 32 +++++++++++++++++--- src/net/socket/client_socket_pool_manager.h | 14 +++++++++ 2 files changed, 42 insertions(+), 4 deletions(-) diff --git a/src/net/socket/client_socket_pool_manager.cc b/src/net/socket/client_socket_pool_manager.cc index 521ebc8f50..6bc9dff14e 100644 --- a/src/net/socket/client_socket_pool_manager.cc +++ b/src/net/socket/client_socket_pool_manager.cc @@ -31,8 +31,8 @@ namespace { // Limit of sockets of each socket pool. int g_max_sockets_per_pool[] = { - 256, // NORMAL_SOCKET_POOL - 256 // WEBSOCKET_SOCKET_POOL + 256, // NORMAL_SOCKET_POOL + 256 // WEBSOCKET_SOCKET_POOL }; static_assert(std::size(g_max_sockets_per_pool) == @@ -60,8 +60,8 @@ static_assert(std::size(g_max_sockets_per_group) == // http and SOCKS proxies. See http://crbug.com/12066 and // http://crbug.com/44501 for details about proxy server connection limits. int g_max_sockets_per_proxy_server[] = { - kDefaultMaxSocketsPerProxyServer, // NORMAL_SOCKET_POOL - kDefaultMaxSocketsPerProxyServer // WEBSOCKET_SOCKET_POOL + kDefaultMaxSocketsPerProxyServer, // NORMAL_SOCKET_POOL + kDefaultMaxSocketsPerProxyServer // WEBSOCKET_SOCKET_POOL }; static_assert(std::size(g_max_sockets_per_proxy_server) == @@ -279,6 +279,30 @@ int InitSocketHandleForWebSocketRequest( proxy_auth_callback); } +int InitSocketHandleForRawConnect2( + url::SchemeHostPort endpoint, + int request_load_flags, + RequestPriority request_priority, + HttpNetworkSession* session, + const ProxyInfo& proxy_info, + const SSLConfig& ssl_config_for_origin, + const SSLConfig& ssl_config_for_proxy, + PrivacyMode privacy_mode, + NetworkAnonymizationKey network_anonymization_key, + const NetLogWithSource& net_log, + ClientSocketHandle* socket_handle, + CompletionOnceCallback callback) { + DCHECK(socket_handle); + return InitSocketPoolHelper( + std::move(endpoint), 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_anonymization_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, diff --git a/src/net/socket/client_socket_pool_manager.h b/src/net/socket/client_socket_pool_manager.h index cb0f0e9eaf..3d3b0c116c 100644 --- a/src/net/socket/client_socket_pool_manager.h +++ b/src/net/socket/client_socket_pool_manager.h @@ -120,6 +120,20 @@ int InitSocketHandleForWebSocketRequest( CompletionOnceCallback callback, const ClientSocketPool::ProxyAuthCallback& proxy_auth_callback); +NET_EXPORT int InitSocketHandleForRawConnect2( + url::SchemeHostPort endpoint, + int request_load_flags, + RequestPriority request_priority, + HttpNetworkSession* session, + const ProxyInfo& proxy_info, + const SSLConfig& ssl_config_for_origin, + const SSLConfig& ssl_config_for_proxy, + PrivacyMode privacy_mode, + NetworkAnonymizationKey network_anonymization_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(