diff options
author | willchan@chromium.org <willchan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-11-17 16:42:02 +0000 |
---|---|---|
committer | willchan@chromium.org <willchan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-11-17 16:42:02 +0000 |
commit | a42dbd14069319c4ead22992dc344bd91a2694ed (patch) | |
tree | e55680706b33026f6b9803e1e59d61896e6574ec /net/http | |
parent | e548a7852b2fe4ad6a740f778da5c3c4f2ce32a2 (diff) | |
download | chromium_src-a42dbd14069319c4ead22992dc344bd91a2694ed.zip chromium_src-a42dbd14069319c4ead22992dc344bd91a2694ed.tar.gz chromium_src-a42dbd14069319c4ead22992dc344bd91a2694ed.tar.bz2 |
Make ClientSocketPoolManager into an interface.
This allows for using a MockClientSocketPoolManager. The default implementation has been moved into ClientSocketPoolManagerImpl. This allows HttpNetworkSessionPeer to replace the whole ClientSocketPoolManager rather than individual socket pools, which is necessary because socket pools will become more integrated in the future.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/8572041
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@110510 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/http')
-rw-r--r-- | net/http/http_network_session.cc | 39 | ||||
-rw-r--r-- | net/http/http_network_session.h | 14 | ||||
-rw-r--r-- | net/http/http_network_session_peer.cc | 46 | ||||
-rw-r--r-- | net/http/http_network_session_peer.h | 22 | ||||
-rw-r--r-- | net/http/http_network_transaction_unittest.cc | 57 | ||||
-rw-r--r-- | net/http/http_stream_factory_impl_job.cc | 4 | ||||
-rw-r--r-- | net/http/http_stream_factory_impl_unittest.cc | 29 |
7 files changed, 95 insertions, 116 deletions
diff --git a/net/http/http_network_session.cc b/net/http/http_network_session.cc index a957436..ffdaee5 100644 --- a/net/http/http_network_session.cc +++ b/net/http/http_network_session.cc @@ -17,6 +17,7 @@ #include "net/http/url_security_manager.h" #include "net/proxy/proxy_service.h" #include "net/socket/client_socket_factory.h" +#include "net/socket/client_socket_pool_manager_impl.h" #include "net/spdy/spdy_session_pool.h" namespace net { @@ -30,18 +31,20 @@ HttpNetworkSession::HttpNetworkSession(const Params& params) http_auth_handler_factory_(params.http_auth_handler_factory), proxy_service_(params.proxy_service), ssl_config_service_(params.ssl_config_service), - socket_pool_manager_(params.net_log, - params.client_socket_factory ? - params.client_socket_factory : - ClientSocketFactory::GetDefaultFactory(), - params.host_resolver, - params.cert_verifier, - params.origin_bound_cert_service, - params.dnsrr_resolver, - params.dns_cert_checker, - params.ssl_host_info_factory, - params.proxy_service, - params.ssl_config_service), + socket_pool_manager_( + new ClientSocketPoolManagerImpl( + params.net_log, + params.client_socket_factory ? + params.client_socket_factory : + ClientSocketFactory::GetDefaultFactory(), + params.host_resolver, + params.cert_verifier, + params.origin_bound_cert_service, + params.dnsrr_resolver, + params.dns_cert_checker, + params.ssl_host_info_factory, + params.proxy_service, + params.ssl_config_service)), spdy_session_pool_(params.host_resolver, params.ssl_config_service, params.http_server_properties), @@ -70,21 +73,21 @@ void HttpNetworkSession::RemoveResponseDrainer( SOCKSClientSocketPool* HttpNetworkSession::GetSocketPoolForSOCKSProxy( const HostPortPair& socks_proxy) { - return socket_pool_manager_.GetSocketPoolForSOCKSProxy(socks_proxy); + return socket_pool_manager_->GetSocketPoolForSOCKSProxy(socks_proxy); } HttpProxyClientSocketPool* HttpNetworkSession::GetSocketPoolForHTTPProxy( const HostPortPair& http_proxy) { - return socket_pool_manager_.GetSocketPoolForHTTPProxy(http_proxy); + return socket_pool_manager_->GetSocketPoolForHTTPProxy(http_proxy); } SSLClientSocketPool* HttpNetworkSession::GetSocketPoolForSSLWithProxy( const HostPortPair& proxy_server) { - return socket_pool_manager_.GetSocketPoolForSSLWithProxy(proxy_server); + return socket_pool_manager_->GetSocketPoolForSSLWithProxy(proxy_server); } Value* HttpNetworkSession::SocketPoolInfoToValue() const { - return socket_pool_manager_.SocketPoolInfoToValue(); + return socket_pool_manager_->SocketPoolInfoToValue(); } Value* HttpNetworkSession::SpdySessionPoolInfoToValue() const { @@ -92,12 +95,12 @@ Value* HttpNetworkSession::SpdySessionPoolInfoToValue() const { } void HttpNetworkSession::CloseAllConnections() { - socket_pool_manager_.FlushSocketPools(); + socket_pool_manager_->FlushSocketPools(); spdy_session_pool_.CloseCurrentSessions(); } void HttpNetworkSession::CloseIdleConnections() { - socket_pool_manager_.CloseIdleSockets(); + socket_pool_manager_->CloseIdleSockets(); spdy_session_pool_.CloseIdleSessions(); } diff --git a/net/http/http_network_session.h b/net/http/http_network_session.h index c65b480..a6c6912 100644 --- a/net/http/http_network_session.h +++ b/net/http/http_network_session.h @@ -37,9 +37,13 @@ class HttpResponseBodyDrainer; class HttpServerProperties; class NetLog; class NetworkDelegate; +class OriginBoundCertService; class ProxyService; +class SOCKSClientSocketPool; +class SSLClientSocketPool; class SSLConfigService; class SSLHostInfoFactory; +class TransportClientSocketPool; // This class holds session objects used by HttpNetworkTransaction objects. class NET_EXPORT HttpNetworkSession @@ -88,12 +92,12 @@ class NET_EXPORT HttpNetworkSession void RemoveResponseDrainer(HttpResponseBodyDrainer* drainer); - TransportClientSocketPool* transport_socket_pool() { - return socket_pool_manager_.transport_socket_pool(); + TransportClientSocketPool* GetTransportSocketPool() { + return socket_pool_manager_->GetTransportSocketPool(); } - SSLClientSocketPool* ssl_socket_pool() { - return socket_pool_manager_.ssl_socket_pool(); + SSLClientSocketPool* GetSSLSocketPool() { + return socket_pool_manager_->GetSSLSocketPool(); } SOCKSClientSocketPool* GetSocketPoolForSOCKSProxy( @@ -154,7 +158,7 @@ class NET_EXPORT HttpNetworkSession HttpAuthCache http_auth_cache_; SSLClientAuthCache ssl_client_auth_cache_; - ClientSocketPoolManager socket_pool_manager_; + scoped_ptr<ClientSocketPoolManager> socket_pool_manager_; SpdySessionPool spdy_session_pool_; scoped_ptr<HttpStreamFactory> http_stream_factory_; std::set<HttpResponseBodyDrainer*> response_drainers_; diff --git a/net/http/http_network_session_peer.cc b/net/http/http_network_session_peer.cc index 921322a..caed612 100644 --- a/net/http/http_network_session_peer.cc +++ b/net/http/http_network_session_peer.cc @@ -19,49 +19,9 @@ HttpNetworkSessionPeer::HttpNetworkSessionPeer( HttpNetworkSessionPeer::~HttpNetworkSessionPeer() {} -void HttpNetworkSessionPeer::SetTransportSocketPool( - TransportClientSocketPool* pool) { - session_->socket_pool_manager_.transport_socket_pool_.reset(pool); -} - -void HttpNetworkSessionPeer::SetSocketPoolForSOCKSProxy( - const HostPortPair& socks_proxy, - SOCKSClientSocketPool* pool) { - ClientSocketPoolManager* socket_pool_manager = - &session_->socket_pool_manager_; - - // Call through the public interface to force initialization of the - // wrapped socket pools. - delete socket_pool_manager->GetSocketPoolForSOCKSProxy(socks_proxy); - socket_pool_manager->socks_socket_pools_[socks_proxy] = pool; -} - -void HttpNetworkSessionPeer::SetSocketPoolForHTTPProxy( - const HostPortPair& http_proxy, - HttpProxyClientSocketPool* pool) { - ClientSocketPoolManager* socket_pool_manager = - &session_->socket_pool_manager_; - - // Call through the public interface to force initialization of the - // wrapped socket pools. - delete socket_pool_manager->GetSocketPoolForHTTPProxy(http_proxy); - socket_pool_manager->http_proxy_socket_pools_[http_proxy] = pool; -} - -void HttpNetworkSessionPeer::SetSSLSocketPool(SSLClientSocketPool* pool) { - session_->socket_pool_manager_.ssl_socket_pool_.reset(pool); -} - -void HttpNetworkSessionPeer::SetSocketPoolForSSLWithProxy( - const HostPortPair& proxy_host, - SSLClientSocketPool* pool) { - ClientSocketPoolManager* socket_pool_manager = - &session_->socket_pool_manager_; - - // Call through the public interface to force initialization of the - // wrapped socket pools. - delete socket_pool_manager->GetSocketPoolForSSLWithProxy(proxy_host); - socket_pool_manager->ssl_socket_pools_for_proxies_[proxy_host] = pool; +void HttpNetworkSessionPeer::SetClientSocketPoolManager( + ClientSocketPoolManager* socket_pool_manager) { + session_->socket_pool_manager_.reset(socket_pool_manager); } void HttpNetworkSessionPeer::SetProxyService(ProxyService* proxy_service) { diff --git a/net/http/http_network_session_peer.h b/net/http/http_network_session_peer.h index d58d560..94234b6 100644 --- a/net/http/http_network_session_peer.h +++ b/net/http/http_network_session_peer.h @@ -11,14 +11,11 @@ namespace net { +class ClientSocketPoolManager; class HostPortPair; class HttpNetworkSession; -class HttpProxyClientSocketPool; class HttpStreamFactory; class ProxyService; -class SOCKSClientSocketPool; -class SSLClientSocketPool; -class TransportClientSocketPool; class NET_EXPORT_PRIVATE HttpNetworkSessionPeer { public: @@ -26,21 +23,8 @@ class NET_EXPORT_PRIVATE HttpNetworkSessionPeer { const scoped_refptr<HttpNetworkSession>& session); ~HttpNetworkSessionPeer(); - void SetTransportSocketPool(TransportClientSocketPool* pool); - - void SetSocketPoolForSOCKSProxy( - const HostPortPair& socks_proxy, - SOCKSClientSocketPool* pool); - - void SetSocketPoolForHTTPProxy( - const HostPortPair& http_proxy, - HttpProxyClientSocketPool* pool); - - void SetSSLSocketPool(SSLClientSocketPool* pool); - - void SetSocketPoolForSSLWithProxy( - const HostPortPair& proxy_host, - SSLClientSocketPool* pool); + void SetClientSocketPoolManager( + ClientSocketPoolManager* socket_pool_manager); void SetProxyService(ProxyService* proxy_service); diff --git a/net/http/http_network_transaction_unittest.cc b/net/http/http_network_transaction_unittest.cc index 1106b1a..bcc83bb 100644 --- a/net/http/http_network_transaction_unittest.cc +++ b/net/http/http_network_transaction_unittest.cc @@ -45,6 +45,7 @@ #include "net/proxy/proxy_resolver.h" #include "net/proxy/proxy_service.h" #include "net/socket/client_socket_factory.h" +#include "net/socket/mock_client_socket_pool_manager.h" #include "net/socket/socket_test_util.h" #include "net/socket/ssl_client_socket.h" #include "net/spdy/spdy_framer.h" @@ -3306,11 +3307,11 @@ TEST_F(HttpNetworkTransactionTest, DontRecycleTransportSocketForSSLTunnel) { // We now check to make sure the TCPClientSocket was not added back to // the pool. - EXPECT_EQ(0, session->transport_socket_pool()->IdleSocketCount()); + EXPECT_EQ(0, session->GetTransportSocketPool()->IdleSocketCount()); trans.reset(); MessageLoop::current()->RunAllPending(); // Make sure that the socket didn't get recycled after calling the destructor. - EXPECT_EQ(0, session->transport_socket_pool()->IdleSocketCount()); + EXPECT_EQ(0, session->GetTransportSocketPool()->IdleSocketCount()); } // Make sure that we recycle a socket after reading all of the response body. @@ -3353,7 +3354,7 @@ TEST_F(HttpNetworkTransactionTest, RecycleSocket) { std::string status_line = response->headers->GetStatusLine(); EXPECT_EQ("HTTP/1.1 200 OK", status_line); - EXPECT_EQ(0, session->transport_socket_pool()->IdleSocketCount()); + EXPECT_EQ(0, session->GetTransportSocketPool()->IdleSocketCount()); std::string response_data; rv = ReadTransaction(trans.get(), &response_data); @@ -3365,7 +3366,7 @@ TEST_F(HttpNetworkTransactionTest, RecycleSocket) { MessageLoop::current()->RunAllPending(); // We now check to make sure the socket was added back to the pool. - EXPECT_EQ(1, session->transport_socket_pool()->IdleSocketCount()); + EXPECT_EQ(1, session->GetTransportSocketPool()->IdleSocketCount()); } // Make sure that we recycle a SSL socket after reading all of the response @@ -3412,7 +3413,7 @@ TEST_F(HttpNetworkTransactionTest, RecycleSSLSocket) { ASSERT_TRUE(response->headers != NULL); EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); - EXPECT_EQ(0, session->transport_socket_pool()->IdleSocketCount()); + EXPECT_EQ(0, session->GetTransportSocketPool()->IdleSocketCount()); std::string response_data; rv = ReadTransaction(trans.get(), &response_data); @@ -3424,7 +3425,7 @@ TEST_F(HttpNetworkTransactionTest, RecycleSSLSocket) { MessageLoop::current()->RunAllPending(); // We now check to make sure the socket was added back to the pool. - EXPECT_EQ(1, session->ssl_socket_pool()->IdleSocketCount()); + EXPECT_EQ(1, session->GetSSLSocketPool()->IdleSocketCount()); } // Grab a SSL socket, use it, and put it back into the pool. Then, reuse it @@ -3480,7 +3481,7 @@ TEST_F(HttpNetworkTransactionTest, RecycleDeadSSLSocket) { ASSERT_TRUE(response->headers != NULL); EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); - EXPECT_EQ(0, session->transport_socket_pool()->IdleSocketCount()); + EXPECT_EQ(0, session->GetTransportSocketPool()->IdleSocketCount()); std::string response_data; rv = ReadTransaction(trans.get(), &response_data); @@ -3492,7 +3493,7 @@ TEST_F(HttpNetworkTransactionTest, RecycleDeadSSLSocket) { MessageLoop::current()->RunAllPending(); // We now check to make sure the socket was added back to the pool. - EXPECT_EQ(1, session->ssl_socket_pool()->IdleSocketCount()); + EXPECT_EQ(1, session->GetSSLSocketPool()->IdleSocketCount()); // Now start the second transaction, which should reuse the previous socket. @@ -3508,7 +3509,7 @@ TEST_F(HttpNetworkTransactionTest, RecycleDeadSSLSocket) { ASSERT_TRUE(response->headers != NULL); EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); - EXPECT_EQ(0, session->transport_socket_pool()->IdleSocketCount()); + EXPECT_EQ(0, session->GetTransportSocketPool()->IdleSocketCount()); rv = ReadTransaction(trans.get(), &response_data); EXPECT_EQ(OK, rv); @@ -3519,7 +3520,7 @@ TEST_F(HttpNetworkTransactionTest, RecycleDeadSSLSocket) { MessageLoop::current()->RunAllPending(); // We now check to make sure the socket was added back to the pool. - EXPECT_EQ(1, session->ssl_socket_pool()->IdleSocketCount()); + EXPECT_EQ(1, session->GetSSLSocketPool()->IdleSocketCount()); } // Make sure that we recycle a socket after a zero-length response. @@ -3564,7 +3565,7 @@ TEST_F(HttpNetworkTransactionTest, RecycleSocketAfterZeroContentLength) { std::string status_line = response->headers->GetStatusLine(); EXPECT_EQ("HTTP/1.1 204 No Content", status_line); - EXPECT_EQ(0, session->transport_socket_pool()->IdleSocketCount()); + EXPECT_EQ(0, session->GetTransportSocketPool()->IdleSocketCount()); std::string response_data; rv = ReadTransaction(trans.get(), &response_data); @@ -3576,7 +3577,7 @@ TEST_F(HttpNetworkTransactionTest, RecycleSocketAfterZeroContentLength) { MessageLoop::current()->RunAllPending(); // We now check to make sure the socket was added back to the pool. - EXPECT_EQ(1, session->transport_socket_pool()->IdleSocketCount()); + EXPECT_EQ(1, session->GetTransportSocketPool()->IdleSocketCount()); } TEST_F(HttpNetworkTransactionTest, ResendRequestOnWriteBodyError) { @@ -5626,10 +5627,13 @@ TEST_F(HttpNetworkTransactionTest, GroupNameForDirectConnections) { HttpNetworkSessionPeer peer(session); CaptureGroupNameTransportSocketPool* transport_conn_pool = new CaptureGroupNameTransportSocketPool(NULL, NULL); - peer.SetTransportSocketPool(transport_conn_pool); CaptureGroupNameSSLSocketPool* ssl_conn_pool = new CaptureGroupNameSSLSocketPool(NULL, NULL); - peer.SetSSLSocketPool(ssl_conn_pool); + MockClientSocketPoolManager* mock_pool_manager = + new MockClientSocketPoolManager; + mock_pool_manager->SetTransportSocketPool(transport_conn_pool); + mock_pool_manager->SetSSLSocketPool(ssl_conn_pool); + peer.SetClientSocketPoolManager(mock_pool_manager); EXPECT_EQ(ERR_IO_PENDING, GroupNameTransactionHelper(tests[i].url, session)); @@ -5682,10 +5686,14 @@ TEST_F(HttpNetworkTransactionTest, GroupNameForHTTPProxyConnections) { HostPortPair proxy_host("http_proxy", 80); CaptureGroupNameHttpProxySocketPool* http_proxy_pool = new CaptureGroupNameHttpProxySocketPool(NULL, NULL); - peer.SetSocketPoolForHTTPProxy(proxy_host, http_proxy_pool); CaptureGroupNameSSLSocketPool* ssl_conn_pool = new CaptureGroupNameSSLSocketPool(NULL, NULL); - peer.SetSocketPoolForSSLWithProxy(proxy_host, ssl_conn_pool); + + MockClientSocketPoolManager* mock_pool_manager = + new MockClientSocketPoolManager; + mock_pool_manager->SetSocketPoolForHTTPProxy(proxy_host, http_proxy_pool); + mock_pool_manager->SetSocketPoolForSSLWithProxy(proxy_host, ssl_conn_pool); + peer.SetClientSocketPoolManager(mock_pool_manager); EXPECT_EQ(ERR_IO_PENDING, GroupNameTransactionHelper(tests[i].url, session)); @@ -5750,10 +5758,14 @@ TEST_F(HttpNetworkTransactionTest, GroupNameForSOCKSConnections) { HostPortPair proxy_host("socks_proxy", 1080); CaptureGroupNameSOCKSSocketPool* socks_conn_pool = new CaptureGroupNameSOCKSSocketPool(NULL, NULL); - peer.SetSocketPoolForSOCKSProxy(proxy_host, socks_conn_pool); CaptureGroupNameSSLSocketPool* ssl_conn_pool = new CaptureGroupNameSSLSocketPool(NULL, NULL); - peer.SetSocketPoolForSSLWithProxy(proxy_host, ssl_conn_pool); + + MockClientSocketPoolManager* mock_pool_manager = + new MockClientSocketPoolManager; + mock_pool_manager->SetSocketPoolForSOCKSProxy(proxy_host, socks_conn_pool); + mock_pool_manager->SetSocketPoolForSSLWithProxy(proxy_host, ssl_conn_pool); + peer.SetClientSocketPoolManager(mock_pool_manager); scoped_ptr<HttpTransaction> trans(new HttpNetworkTransaction(session)); @@ -7270,7 +7282,7 @@ TEST_F(HttpNetworkTransactionTest, transport_params, LOWEST, &callback, - session->transport_socket_pool(), + session->GetTransportSocketPool(), BoundNetLog())); EXPECT_EQ(OK, callback.WaitForResult()); @@ -7762,7 +7774,10 @@ TEST_F(HttpNetworkTransactionTest, MultiRoundAuth) { session_deps.host_resolver.get(), &session_deps.socket_factory, session_deps.net_log); - session_peer.SetTransportSocketPool(transport_pool); + MockClientSocketPoolManager* mock_pool_manager = + new MockClientSocketPoolManager; + mock_pool_manager->SetTransportSocketPool(transport_pool); + session_peer.SetClientSocketPoolManager(mock_pool_manager); scoped_ptr<HttpTransaction> trans(new HttpNetworkTransaction(session)); TestOldCompletionCallback callback; @@ -8525,7 +8540,7 @@ TEST_F(HttpNetworkTransactionTest, PreconnectWithExistingSpdySession) { EXPECT_EQ(ERR_IO_PENDING, connection->Init(host_port_pair.ToString(), transport_params, LOWEST, &callback, - session->transport_socket_pool(), BoundNetLog())); + session->GetTransportSocketPool(), BoundNetLog())); EXPECT_EQ(OK, callback.WaitForResult()); spdy_session->InitializeWithSocket(connection.release(), false, OK); diff --git a/net/http/http_stream_factory_impl_job.cc b/net/http/http_stream_factory_impl_job.cc index 46bc3f4..6fb88dc 100644 --- a/net/http/http_stream_factory_impl_job.cc +++ b/net/http/http_stream_factory_impl_job.cc @@ -651,7 +651,7 @@ int HttpStreamFactoryImpl::Job::DoInitConnection() { } if (IsPreconnecting()) { - return ClientSocketPoolManager::PreconnectSocketsForHttpRequest( + return PreconnectSocketsForHttpRequest( origin_url_, request_info_.extra_headers, request_info_.load_flags, @@ -665,7 +665,7 @@ int HttpStreamFactoryImpl::Job::DoInitConnection() { net_log_, num_streams_); } else { - return ClientSocketPoolManager::InitSocketHandleForHttpRequest( + return InitSocketHandleForHttpRequest( origin_url_, request_info_.extra_headers, request_info_.load_flags, diff --git a/net/http/http_stream_factory_impl_unittest.cc b/net/http/http_stream_factory_impl_unittest.cc index 818049f..3b47b1d 100644 --- a/net/http/http_stream_factory_impl_unittest.cc +++ b/net/http/http_stream_factory_impl_unittest.cc @@ -21,6 +21,7 @@ #include "net/http/http_stream.h" #include "net/proxy/proxy_info.h" #include "net/proxy/proxy_service.h" +#include "net/socket/mock_client_socket_pool_manager.h" #include "net/socket/socket_test_util.h" #include "net/spdy/spdy_session.h" #include "net/spdy/spdy_session_pool.h" @@ -281,12 +282,15 @@ TEST(HttpStreamFactoryTest, PreconnectDirect) { new CapturePreconnectsTransportSocketPool( session_deps.host_resolver.get(), session_deps.cert_verifier.get()); - peer.SetTransportSocketPool(transport_conn_pool); CapturePreconnectsSSLSocketPool* ssl_conn_pool = new CapturePreconnectsSSLSocketPool( session_deps.host_resolver.get(), session_deps.cert_verifier.get()); - peer.SetSSLSocketPool(ssl_conn_pool); + MockClientSocketPoolManager* mock_pool_manager = + new MockClientSocketPoolManager; + mock_pool_manager->SetTransportSocketPool(transport_conn_pool); + mock_pool_manager->SetSSLSocketPool(ssl_conn_pool); + peer.SetClientSocketPoolManager(mock_pool_manager); PreconnectHelper(kTests[i], session); if (kTests[i].ssl) EXPECT_EQ(kTests[i].num_streams, ssl_conn_pool->last_num_streams()); @@ -305,12 +309,15 @@ TEST(HttpStreamFactoryTest, PreconnectHttpProxy) { new CapturePreconnectsHttpProxySocketPool( session_deps.host_resolver.get(), session_deps.cert_verifier.get()); - peer.SetSocketPoolForHTTPProxy(proxy_host, http_proxy_pool); CapturePreconnectsSSLSocketPool* ssl_conn_pool = new CapturePreconnectsSSLSocketPool( session_deps.host_resolver.get(), session_deps.cert_verifier.get()); - peer.SetSocketPoolForSSLWithProxy(proxy_host, ssl_conn_pool); + MockClientSocketPoolManager* mock_pool_manager = + new MockClientSocketPoolManager; + mock_pool_manager->SetSocketPoolForHTTPProxy(proxy_host, http_proxy_pool); + mock_pool_manager->SetSocketPoolForSSLWithProxy(proxy_host, ssl_conn_pool); + peer.SetClientSocketPoolManager(mock_pool_manager); PreconnectHelper(kTests[i], session); if (kTests[i].ssl) EXPECT_EQ(kTests[i].num_streams, ssl_conn_pool->last_num_streams()); @@ -330,12 +337,15 @@ TEST(HttpStreamFactoryTest, PreconnectSocksProxy) { new CapturePreconnectsSOCKSSocketPool( session_deps.host_resolver.get(), session_deps.cert_verifier.get()); - peer.SetSocketPoolForSOCKSProxy(proxy_host, socks_proxy_pool); CapturePreconnectsSSLSocketPool* ssl_conn_pool = new CapturePreconnectsSSLSocketPool( session_deps.host_resolver.get(), session_deps.cert_verifier.get()); - peer.SetSocketPoolForSSLWithProxy(proxy_host, ssl_conn_pool); + MockClientSocketPoolManager* mock_pool_manager = + new MockClientSocketPoolManager; + mock_pool_manager->SetSocketPoolForSOCKSProxy(proxy_host, socks_proxy_pool); + mock_pool_manager->SetSocketPoolForSSLWithProxy(proxy_host, ssl_conn_pool); + peer.SetClientSocketPoolManager(mock_pool_manager); PreconnectHelper(kTests[i], session); if (kTests[i].ssl) EXPECT_EQ(kTests[i].num_streams, ssl_conn_pool->last_num_streams()); @@ -360,12 +370,15 @@ TEST(HttpStreamFactoryTest, PreconnectDirectWithExistingSpdySession) { new CapturePreconnectsTransportSocketPool( session_deps.host_resolver.get(), session_deps.cert_verifier.get()); - peer.SetTransportSocketPool(transport_conn_pool); CapturePreconnectsSSLSocketPool* ssl_conn_pool = new CapturePreconnectsSSLSocketPool( session_deps.host_resolver.get(), session_deps.cert_verifier.get()); - peer.SetSSLSocketPool(ssl_conn_pool); + MockClientSocketPoolManager* mock_pool_manager = + new MockClientSocketPoolManager; + mock_pool_manager->SetTransportSocketPool(transport_conn_pool); + mock_pool_manager->SetSSLSocketPool(ssl_conn_pool); + peer.SetClientSocketPoolManager(mock_pool_manager); PreconnectHelper(kTests[i], session); // We shouldn't be preconnecting if we have an existing session, which is // the case for https://www.google.com. |