Commit c6bf815d authored by rch@chromium.org's avatar rch@chromium.org

Clean up SpdySessionDependencies to remove code duplication.

Use SpdySessionDependencies in HttpNetworkTransaction and
HttpProxyClientSocketPool tests, instead of hand-rolled alternatives.BUG=


Review URL: https://chromiumcodereview.appspot.com/11348333

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@170687 0039d316-1c4b-4281-b951-d872f2087c98
parent f7b4b9ee
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -8,17 +8,11 @@ ...@@ -8,17 +8,11 @@
#include "base/compiler_specific.h" #include "base/compiler_specific.h"
#include "base/string_util.h" #include "base/string_util.h"
#include "base/utf_string_conversions.h" #include "base/utf_string_conversions.h"
#include "net/base/mock_cert_verifier.h"
#include "net/base/mock_host_resolver.h"
#include "net/base/net_errors.h" #include "net/base/net_errors.h"
#include "net/base/ssl_config_service_defaults.h"
#include "net/base/test_completion_callback.h" #include "net/base/test_completion_callback.h"
#include "net/http/http_auth_handler_factory.h"
#include "net/http/http_network_session.h" #include "net/http/http_network_session.h"
#include "net/http/http_proxy_client_socket.h" #include "net/http/http_proxy_client_socket.h"
#include "net/http/http_response_headers.h" #include "net/http/http_response_headers.h"
#include "net/http/http_server_properties_impl.h"
#include "net/proxy/proxy_service.h"
#include "net/socket/client_socket_handle.h" #include "net/socket/client_socket_handle.h"
#include "net/socket/client_socket_pool_histograms.h" #include "net/socket/client_socket_pool_histograms.h"
#include "net/socket/socket_test_util.h" #include "net/socket/socket_test_util.h"
...@@ -64,26 +58,21 @@ class HttpProxyClientSocketPoolSpdy2Test : public TestWithHttpParam { ...@@ -64,26 +58,21 @@ class HttpProxyClientSocketPoolSpdy2Test : public TestWithHttpParam {
transport_socket_pool_( transport_socket_pool_(
kMaxSockets, kMaxSocketsPerGroup, kMaxSockets, kMaxSocketsPerGroup,
&tcp_histograms_, &tcp_histograms_,
&socket_factory_), session_deps_.deterministic_socket_factory.get()),
ssl_histograms_("MockSSL"), ssl_histograms_("MockSSL"),
cert_verifier_(new MockCertVerifier),
proxy_service_(ProxyService::CreateDirect()),
ssl_config_service_(new SSLConfigServiceDefaults),
ssl_socket_pool_(kMaxSockets, kMaxSocketsPerGroup, ssl_socket_pool_(kMaxSockets, kMaxSocketsPerGroup,
&ssl_histograms_, &ssl_histograms_,
&host_resolver_, session_deps_.host_resolver.get(),
cert_verifier_.get(), session_deps_.cert_verifier.get(),
NULL /* server_bound_cert_store */, NULL /* server_bound_cert_store */,
NULL /* transport_security_state */, NULL /* transport_security_state */,
"" /* ssl_session_cache_shard */, "" /* ssl_session_cache_shard */,
&socket_factory_, session_deps_.deterministic_socket_factory.get(),
&transport_socket_pool_, &transport_socket_pool_,
NULL, NULL,
NULL, NULL,
ssl_config_service_.get(), session_deps_.ssl_config_service.get(),
BoundNetLog().net_log()), BoundNetLog().net_log()),
http_auth_handler_factory_(
HttpAuthHandlerFactory::CreateDefault(&host_resolver_)),
session_(CreateNetworkSession()), session_(CreateNetworkSession()),
http_proxy_histograms_("HttpProxyUnitTest"), http_proxy_histograms_("HttpProxyUnitTest"),
ssl_data_(NULL), ssl_data_(NULL),
...@@ -148,7 +137,7 @@ class HttpProxyClientSocketPoolSpdy2Test : public TestWithHttpParam { ...@@ -148,7 +137,7 @@ class HttpProxyClientSocketPoolSpdy2Test : public TestWithHttpParam {
} }
DeterministicMockClientSocketFactory& socket_factory() { DeterministicMockClientSocketFactory& socket_factory() {
return socket_factory_; return *session_deps_.deterministic_socket_factory.get();
} }
void Initialize(MockRead* reads, size_t reads_count, void Initialize(MockRead* reads, size_t reads_count,
...@@ -166,14 +155,14 @@ class HttpProxyClientSocketPoolSpdy2Test : public TestWithHttpParam { ...@@ -166,14 +155,14 @@ class HttpProxyClientSocketPoolSpdy2Test : public TestWithHttpParam {
data_->set_connect_data(MockConnect(SYNCHRONOUS, OK)); data_->set_connect_data(MockConnect(SYNCHRONOUS, OK));
data_->StopAfter(2); // Request / Response data_->StopAfter(2); // Request / Response
socket_factory_.AddSocketDataProvider(data_.get()); socket_factory().AddSocketDataProvider(data_.get());
if (GetParam() != HTTP) { if (GetParam() != HTTP) {
ssl_data_.reset(new SSLSocketDataProvider(SYNCHRONOUS, OK)); ssl_data_.reset(new SSLSocketDataProvider(SYNCHRONOUS, OK));
if (GetParam() == SPDY) { if (GetParam() == SPDY) {
InitializeSpdySsl(); InitializeSpdySsl();
} }
socket_factory_.AddSSLSocketDataProvider(ssl_data_.get()); socket_factory().AddSSLSocketDataProvider(ssl_data_.get());
} }
} }
...@@ -182,37 +171,23 @@ class HttpProxyClientSocketPoolSpdy2Test : public TestWithHttpParam { ...@@ -182,37 +171,23 @@ class HttpProxyClientSocketPoolSpdy2Test : public TestWithHttpParam {
} }
HttpNetworkSession* CreateNetworkSession() { HttpNetworkSession* CreateNetworkSession() {
HttpNetworkSession::Params params; return SpdySessionDependencies::SpdyCreateSessionDeterministic(
params.host_resolver = &host_resolver_; &session_deps_);
params.cert_verifier = cert_verifier_.get();
params.proxy_service = proxy_service_.get();
params.client_socket_factory = &socket_factory_;
params.ssl_config_service = ssl_config_service_;
params.http_auth_handler_factory = http_auth_handler_factory_.get();
params.http_server_properties = &http_server_properties_;
HttpNetworkSession* session = new HttpNetworkSession(params);
SpdySessionPoolPeer pool_peer(session->spdy_session_pool());
pool_peer.EnableSendingInitialSettings(false);
return session;
} }
private: private:
SpdySessionDependencies session_deps_;
SSLConfig ssl_config_; SSLConfig ssl_config_;
scoped_refptr<TransportSocketParams> ignored_transport_socket_params_; scoped_refptr<TransportSocketParams> ignored_transport_socket_params_;
scoped_refptr<SSLSocketParams> ignored_ssl_socket_params_; scoped_refptr<SSLSocketParams> ignored_ssl_socket_params_;
ClientSocketPoolHistograms tcp_histograms_; ClientSocketPoolHistograms tcp_histograms_;
DeterministicMockClientSocketFactory socket_factory_;
MockTransportClientSocketPool transport_socket_pool_; MockTransportClientSocketPool transport_socket_pool_;
ClientSocketPoolHistograms ssl_histograms_; ClientSocketPoolHistograms ssl_histograms_;
MockHostResolver host_resolver_; MockHostResolver host_resolver_;
scoped_ptr<CertVerifier> cert_verifier_; scoped_ptr<CertVerifier> cert_verifier_;
const scoped_ptr<ProxyService> proxy_service_;
const scoped_refptr<SSLConfigService> ssl_config_service_;
SSLClientSocketPool ssl_socket_pool_; SSLClientSocketPool ssl_socket_pool_;
const scoped_ptr<HttpAuthHandlerFactory> http_auth_handler_factory_;
HttpServerPropertiesImpl http_server_properties_;
const scoped_refptr<HttpNetworkSession> session_; const scoped_refptr<HttpNetworkSession> session_;
ClientSocketPoolHistograms http_proxy_histograms_; ClientSocketPoolHistograms http_proxy_histograms_;
SpdyTestStateHelper spdy_state_; SpdyTestStateHelper spdy_state_;
......
...@@ -8,17 +8,11 @@ ...@@ -8,17 +8,11 @@
#include "base/compiler_specific.h" #include "base/compiler_specific.h"
#include "base/string_util.h" #include "base/string_util.h"
#include "base/utf_string_conversions.h" #include "base/utf_string_conversions.h"
#include "net/base/mock_cert_verifier.h"
#include "net/base/mock_host_resolver.h"
#include "net/base/net_errors.h" #include "net/base/net_errors.h"
#include "net/base/ssl_config_service_defaults.h"
#include "net/base/test_completion_callback.h" #include "net/base/test_completion_callback.h"
#include "net/http/http_auth_handler_factory.h"
#include "net/http/http_network_session.h" #include "net/http/http_network_session.h"
#include "net/http/http_proxy_client_socket.h" #include "net/http/http_proxy_client_socket.h"
#include "net/http/http_response_headers.h" #include "net/http/http_response_headers.h"
#include "net/http/http_server_properties_impl.h"
#include "net/proxy/proxy_service.h"
#include "net/socket/client_socket_handle.h" #include "net/socket/client_socket_handle.h"
#include "net/socket/client_socket_pool_histograms.h" #include "net/socket/client_socket_pool_histograms.h"
#include "net/socket/socket_test_util.h" #include "net/socket/socket_test_util.h"
...@@ -64,26 +58,21 @@ class HttpProxyClientSocketPoolSpdy3Test : public TestWithHttpParam { ...@@ -64,26 +58,21 @@ class HttpProxyClientSocketPoolSpdy3Test : public TestWithHttpParam {
transport_socket_pool_( transport_socket_pool_(
kMaxSockets, kMaxSocketsPerGroup, kMaxSockets, kMaxSocketsPerGroup,
&tcp_histograms_, &tcp_histograms_,
&socket_factory_), session_deps_.deterministic_socket_factory.get()),
ssl_histograms_("MockSSL"), ssl_histograms_("MockSSL"),
cert_verifier_(new MockCertVerifier),
proxy_service_(ProxyService::CreateDirect()),
ssl_config_service_(new SSLConfigServiceDefaults),
ssl_socket_pool_(kMaxSockets, kMaxSocketsPerGroup, ssl_socket_pool_(kMaxSockets, kMaxSocketsPerGroup,
&ssl_histograms_, &ssl_histograms_,
&host_resolver_, session_deps_.host_resolver.get(),
cert_verifier_.get(), session_deps_.cert_verifier.get(),
NULL /* server_bound_cert_store */, NULL /* server_bound_cert_store */,
NULL /* transport_security_state */, NULL /* transport_security_state */,
"" /* ssl_session_cache_shard */, "" /* ssl_session_cache_shard */,
&socket_factory_, session_deps_.deterministic_socket_factory.get(),
&transport_socket_pool_, &transport_socket_pool_,
NULL, NULL,
NULL, NULL,
ssl_config_service_.get(), session_deps_.ssl_config_service.get(),
BoundNetLog().net_log()), BoundNetLog().net_log()),
http_auth_handler_factory_(
HttpAuthHandlerFactory::CreateDefault(&host_resolver_)),
session_(CreateNetworkSession()), session_(CreateNetworkSession()),
http_proxy_histograms_("HttpProxyUnitTest"), http_proxy_histograms_("HttpProxyUnitTest"),
ssl_data_(NULL), ssl_data_(NULL),
...@@ -148,7 +137,7 @@ class HttpProxyClientSocketPoolSpdy3Test : public TestWithHttpParam { ...@@ -148,7 +137,7 @@ class HttpProxyClientSocketPoolSpdy3Test : public TestWithHttpParam {
} }
DeterministicMockClientSocketFactory& socket_factory() { DeterministicMockClientSocketFactory& socket_factory() {
return socket_factory_; return *session_deps_.deterministic_socket_factory.get();
} }
void Initialize(MockRead* reads, size_t reads_count, void Initialize(MockRead* reads, size_t reads_count,
...@@ -166,14 +155,14 @@ class HttpProxyClientSocketPoolSpdy3Test : public TestWithHttpParam { ...@@ -166,14 +155,14 @@ class HttpProxyClientSocketPoolSpdy3Test : public TestWithHttpParam {
data_->set_connect_data(MockConnect(SYNCHRONOUS, OK)); data_->set_connect_data(MockConnect(SYNCHRONOUS, OK));
data_->StopAfter(2); // Request / Response data_->StopAfter(2); // Request / Response
socket_factory_.AddSocketDataProvider(data_.get()); socket_factory().AddSocketDataProvider(data_.get());
if (GetParam() != HTTP) { if (GetParam() != HTTP) {
ssl_data_.reset(new SSLSocketDataProvider(SYNCHRONOUS, OK)); ssl_data_.reset(new SSLSocketDataProvider(SYNCHRONOUS, OK));
if (GetParam() == SPDY) { if (GetParam() == SPDY) {
InitializeSpdySsl(); InitializeSpdySsl();
} }
socket_factory_.AddSSLSocketDataProvider(ssl_data_.get()); socket_factory().AddSSLSocketDataProvider(ssl_data_.get());
} }
} }
...@@ -182,37 +171,23 @@ class HttpProxyClientSocketPoolSpdy3Test : public TestWithHttpParam { ...@@ -182,37 +171,23 @@ class HttpProxyClientSocketPoolSpdy3Test : public TestWithHttpParam {
} }
HttpNetworkSession* CreateNetworkSession() { HttpNetworkSession* CreateNetworkSession() {
HttpNetworkSession::Params params; return SpdySessionDependencies::SpdyCreateSessionDeterministic(
params.host_resolver = &host_resolver_; &session_deps_);
params.cert_verifier = cert_verifier_.get();
params.proxy_service = proxy_service_.get();
params.client_socket_factory = &socket_factory_;
params.ssl_config_service = ssl_config_service_;
params.http_auth_handler_factory = http_auth_handler_factory_.get();
params.http_server_properties = &http_server_properties_;
HttpNetworkSession* session = new HttpNetworkSession(params);
SpdySessionPoolPeer pool_peer(session->spdy_session_pool());
pool_peer.EnableSendingInitialSettings(false);
return session;
} }
private: private:
SpdySessionDependencies session_deps_;
SSLConfig ssl_config_; SSLConfig ssl_config_;
scoped_refptr<TransportSocketParams> ignored_transport_socket_params_; scoped_refptr<TransportSocketParams> ignored_transport_socket_params_;
scoped_refptr<SSLSocketParams> ignored_ssl_socket_params_; scoped_refptr<SSLSocketParams> ignored_ssl_socket_params_;
ClientSocketPoolHistograms tcp_histograms_; ClientSocketPoolHistograms tcp_histograms_;
DeterministicMockClientSocketFactory socket_factory_;
MockTransportClientSocketPool transport_socket_pool_; MockTransportClientSocketPool transport_socket_pool_;
ClientSocketPoolHistograms ssl_histograms_; ClientSocketPoolHistograms ssl_histograms_;
MockHostResolver host_resolver_; MockHostResolver host_resolver_;
scoped_ptr<CertVerifier> cert_verifier_; scoped_ptr<CertVerifier> cert_verifier_;
const scoped_ptr<ProxyService> proxy_service_;
const scoped_refptr<SSLConfigService> ssl_config_service_;
SSLClientSocketPool ssl_socket_pool_; SSLClientSocketPool ssl_socket_pool_;
const scoped_ptr<HttpAuthHandlerFactory> http_auth_handler_factory_;
HttpServerPropertiesImpl http_server_properties_;
const scoped_refptr<HttpNetworkSession> session_; const scoped_refptr<HttpNetworkSession> session_;
ClientSocketPoolHistograms http_proxy_histograms_; ClientSocketPoolHistograms http_proxy_histograms_;
SpdyTestStateHelper spdy_state_; SpdyTestStateHelper spdy_state_;
......
...@@ -905,7 +905,8 @@ SpdySessionDependencies::SpdySessionDependencies() ...@@ -905,7 +905,8 @@ SpdySessionDependencies::SpdySessionDependencies()
socket_factory(new MockClientSocketFactory), socket_factory(new MockClientSocketFactory),
deterministic_socket_factory(new DeterministicMockClientSocketFactory), deterministic_socket_factory(new DeterministicMockClientSocketFactory),
http_auth_handler_factory( http_auth_handler_factory(
HttpAuthHandlerFactory::CreateDefault(host_resolver.get())) { HttpAuthHandlerFactory::CreateDefault(host_resolver.get())),
net_log(NULL) {
// Note: The CancelledTransaction test does cleanup by running all // Note: The CancelledTransaction test does cleanup by running all
// tasks in the message loop (RunAllPending). Unfortunately, that // tasks in the message loop (RunAllPending). Unfortunately, that
// doesn't clean up tasks on the host resolver thread; and // doesn't clean up tasks on the host resolver thread; and
...@@ -923,24 +924,16 @@ SpdySessionDependencies::SpdySessionDependencies(ProxyService* proxy_service) ...@@ -923,24 +924,16 @@ SpdySessionDependencies::SpdySessionDependencies(ProxyService* proxy_service)
socket_factory(new MockClientSocketFactory), socket_factory(new MockClientSocketFactory),
deterministic_socket_factory(new DeterministicMockClientSocketFactory), deterministic_socket_factory(new DeterministicMockClientSocketFactory),
http_auth_handler_factory( http_auth_handler_factory(
HttpAuthHandlerFactory::CreateDefault(host_resolver.get())) {} HttpAuthHandlerFactory::CreateDefault(host_resolver.get())),
net_log(NULL) {}
SpdySessionDependencies::~SpdySessionDependencies() {} SpdySessionDependencies::~SpdySessionDependencies() {}
// static // static
HttpNetworkSession* SpdySessionDependencies::SpdyCreateSession( HttpNetworkSession* SpdySessionDependencies::SpdyCreateSession(
SpdySessionDependencies* session_deps) { SpdySessionDependencies* session_deps) {
net::HttpNetworkSession::Params params; net::HttpNetworkSession::Params params = CreateSessionParams(session_deps);
params.client_socket_factory = session_deps->socket_factory.get(); params.client_socket_factory = session_deps->socket_factory.get();
params.host_resolver = session_deps->host_resolver.get();
params.cert_verifier = session_deps->cert_verifier.get();
params.proxy_service = session_deps->proxy_service.get();
params.ssl_config_service = session_deps->ssl_config_service;
params.http_auth_handler_factory =
session_deps->http_auth_handler_factory.get();
params.http_server_properties = &session_deps->http_server_properties;
params.trusted_spdy_proxy =
session_deps->trusted_spdy_proxy;
HttpNetworkSession* http_session = new HttpNetworkSession(params); HttpNetworkSession* http_session = new HttpNetworkSession(params);
SpdySessionPoolPeer pool_peer(http_session->spdy_session_pool()); SpdySessionPoolPeer pool_peer(http_session->spdy_session_pool());
pool_peer.EnableSendingInitialSettings(false); pool_peer.EnableSendingInitialSettings(false);
...@@ -950,9 +943,19 @@ HttpNetworkSession* SpdySessionDependencies::SpdyCreateSession( ...@@ -950,9 +943,19 @@ HttpNetworkSession* SpdySessionDependencies::SpdyCreateSession(
// static // static
HttpNetworkSession* SpdySessionDependencies::SpdyCreateSessionDeterministic( HttpNetworkSession* SpdySessionDependencies::SpdyCreateSessionDeterministic(
SpdySessionDependencies* session_deps) { SpdySessionDependencies* session_deps) {
net::HttpNetworkSession::Params params; net::HttpNetworkSession::Params params = CreateSessionParams(session_deps);
params.client_socket_factory = params.client_socket_factory =
session_deps->deterministic_socket_factory.get(); session_deps->deterministic_socket_factory.get();
HttpNetworkSession* http_session = new HttpNetworkSession(params);
SpdySessionPoolPeer pool_peer(http_session->spdy_session_pool());
pool_peer.EnableSendingInitialSettings(false);
return http_session;
}
// static
net::HttpNetworkSession::Params SpdySessionDependencies::CreateSessionParams(
SpdySessionDependencies* session_deps) {
net::HttpNetworkSession::Params params;
params.host_resolver = session_deps->host_resolver.get(); params.host_resolver = session_deps->host_resolver.get();
params.cert_verifier = session_deps->cert_verifier.get(); params.cert_verifier = session_deps->cert_verifier.get();
params.proxy_service = session_deps->proxy_service.get(); params.proxy_service = session_deps->proxy_service.get();
...@@ -960,10 +963,9 @@ HttpNetworkSession* SpdySessionDependencies::SpdyCreateSessionDeterministic( ...@@ -960,10 +963,9 @@ HttpNetworkSession* SpdySessionDependencies::SpdyCreateSessionDeterministic(
params.http_auth_handler_factory = params.http_auth_handler_factory =
session_deps->http_auth_handler_factory.get(); session_deps->http_auth_handler_factory.get();
params.http_server_properties = &session_deps->http_server_properties; params.http_server_properties = &session_deps->http_server_properties;
HttpNetworkSession* http_session = new HttpNetworkSession(params); params.trusted_spdy_proxy = session_deps->trusted_spdy_proxy;
SpdySessionPoolPeer pool_peer(http_session->spdy_session_pool()); params.net_log = session_deps->net_log;
pool_peer.EnableSendingInitialSettings(false); return params;
return http_session;
} }
SpdyURLRequestContext::SpdyURLRequestContext() SpdyURLRequestContext::SpdyURLRequestContext()
......
...@@ -339,8 +339,7 @@ int CombineFrames(const SpdyFrame** frames, int num_frames, ...@@ -339,8 +339,7 @@ int CombineFrames(const SpdyFrame** frames, int num_frames,
// Helper to manage the lifetimes of the dependencies for a // Helper to manage the lifetimes of the dependencies for a
// HttpNetworkTransaction. // HttpNetworkTransaction.
class SpdySessionDependencies { struct SpdySessionDependencies {
public:
// Default set of dependencies -- "null" proxy service. // Default set of dependencies -- "null" proxy service.
SpdySessionDependencies(); SpdySessionDependencies();
...@@ -353,6 +352,8 @@ class SpdySessionDependencies { ...@@ -353,6 +352,8 @@ class SpdySessionDependencies {
SpdySessionDependencies* session_deps); SpdySessionDependencies* session_deps);
static HttpNetworkSession* SpdyCreateSessionDeterministic( static HttpNetworkSession* SpdyCreateSessionDeterministic(
SpdySessionDependencies* session_deps); SpdySessionDependencies* session_deps);
static HttpNetworkSession::Params CreateSessionParams(
SpdySessionDependencies* session_deps);
// NOTE: host_resolver must be ordered before http_auth_handler_factory. // NOTE: host_resolver must be ordered before http_auth_handler_factory.
scoped_ptr<MockHostResolverBase> host_resolver; scoped_ptr<MockHostResolverBase> host_resolver;
...@@ -364,6 +365,7 @@ class SpdySessionDependencies { ...@@ -364,6 +365,7 @@ class SpdySessionDependencies {
scoped_ptr<HttpAuthHandlerFactory> http_auth_handler_factory; scoped_ptr<HttpAuthHandlerFactory> http_auth_handler_factory;
HttpServerPropertiesImpl http_server_properties; HttpServerPropertiesImpl http_server_properties;
std::string trusted_spdy_proxy; std::string trusted_spdy_proxy;
NetLog* net_log;
}; };
class SpdyURLRequestContext : public URLRequestContext { class SpdyURLRequestContext : public URLRequestContext {
......
...@@ -940,7 +940,8 @@ SpdySessionDependencies::SpdySessionDependencies() ...@@ -940,7 +940,8 @@ SpdySessionDependencies::SpdySessionDependencies()
socket_factory(new MockClientSocketFactory), socket_factory(new MockClientSocketFactory),
deterministic_socket_factory(new DeterministicMockClientSocketFactory), deterministic_socket_factory(new DeterministicMockClientSocketFactory),
http_auth_handler_factory( http_auth_handler_factory(
HttpAuthHandlerFactory::CreateDefault(host_resolver.get())) { HttpAuthHandlerFactory::CreateDefault(host_resolver.get())),
net_log(NULL) {
// Note: The CancelledTransaction test does cleanup by running all // Note: The CancelledTransaction test does cleanup by running all
// tasks in the message loop (RunAllPending). Unfortunately, that // tasks in the message loop (RunAllPending). Unfortunately, that
// doesn't clean up tasks on the host resolver thread; and // doesn't clean up tasks on the host resolver thread; and
...@@ -958,24 +959,16 @@ SpdySessionDependencies::SpdySessionDependencies(ProxyService* proxy_service) ...@@ -958,24 +959,16 @@ SpdySessionDependencies::SpdySessionDependencies(ProxyService* proxy_service)
socket_factory(new MockClientSocketFactory), socket_factory(new MockClientSocketFactory),
deterministic_socket_factory(new DeterministicMockClientSocketFactory), deterministic_socket_factory(new DeterministicMockClientSocketFactory),
http_auth_handler_factory( http_auth_handler_factory(
HttpAuthHandlerFactory::CreateDefault(host_resolver.get())) {} HttpAuthHandlerFactory::CreateDefault(host_resolver.get())),
net_log(NULL) {}
SpdySessionDependencies::~SpdySessionDependencies() {} SpdySessionDependencies::~SpdySessionDependencies() {}
// static // static
HttpNetworkSession* SpdySessionDependencies::SpdyCreateSession( HttpNetworkSession* SpdySessionDependencies::SpdyCreateSession(
SpdySessionDependencies* session_deps) { SpdySessionDependencies* session_deps) {
net::HttpNetworkSession::Params params; net::HttpNetworkSession::Params params = CreateSessionParams(session_deps);
params.client_socket_factory = session_deps->socket_factory.get(); params.client_socket_factory = session_deps->socket_factory.get();
params.host_resolver = session_deps->host_resolver.get();
params.cert_verifier = session_deps->cert_verifier.get();
params.proxy_service = session_deps->proxy_service.get();
params.ssl_config_service = session_deps->ssl_config_service;
params.http_auth_handler_factory =
session_deps->http_auth_handler_factory.get();
params.http_server_properties = &session_deps->http_server_properties;
params.trusted_spdy_proxy =
session_deps->trusted_spdy_proxy;
HttpNetworkSession* http_session = new HttpNetworkSession(params); HttpNetworkSession* http_session = new HttpNetworkSession(params);
SpdySessionPoolPeer pool_peer(http_session->spdy_session_pool()); SpdySessionPoolPeer pool_peer(http_session->spdy_session_pool());
pool_peer.EnableSendingInitialSettings(false); pool_peer.EnableSendingInitialSettings(false);
...@@ -985,9 +978,19 @@ HttpNetworkSession* SpdySessionDependencies::SpdyCreateSession( ...@@ -985,9 +978,19 @@ HttpNetworkSession* SpdySessionDependencies::SpdyCreateSession(
// static // static
HttpNetworkSession* SpdySessionDependencies::SpdyCreateSessionDeterministic( HttpNetworkSession* SpdySessionDependencies::SpdyCreateSessionDeterministic(
SpdySessionDependencies* session_deps) { SpdySessionDependencies* session_deps) {
net::HttpNetworkSession::Params params; net::HttpNetworkSession::Params params = CreateSessionParams(session_deps);
params.client_socket_factory = params.client_socket_factory =
session_deps->deterministic_socket_factory.get(); session_deps->deterministic_socket_factory.get();
HttpNetworkSession* http_session = new HttpNetworkSession(params);
SpdySessionPoolPeer pool_peer(http_session->spdy_session_pool());
pool_peer.EnableSendingInitialSettings(false);
return http_session;
}
// static
net::HttpNetworkSession::Params SpdySessionDependencies::CreateSessionParams(
SpdySessionDependencies* session_deps) {
net::HttpNetworkSession::Params params;
params.host_resolver = session_deps->host_resolver.get(); params.host_resolver = session_deps->host_resolver.get();
params.cert_verifier = session_deps->cert_verifier.get(); params.cert_verifier = session_deps->cert_verifier.get();
params.proxy_service = session_deps->proxy_service.get(); params.proxy_service = session_deps->proxy_service.get();
...@@ -995,10 +998,9 @@ HttpNetworkSession* SpdySessionDependencies::SpdyCreateSessionDeterministic( ...@@ -995,10 +998,9 @@ HttpNetworkSession* SpdySessionDependencies::SpdyCreateSessionDeterministic(
params.http_auth_handler_factory = params.http_auth_handler_factory =
session_deps->http_auth_handler_factory.get(); session_deps->http_auth_handler_factory.get();
params.http_server_properties = &session_deps->http_server_properties; params.http_server_properties = &session_deps->http_server_properties;
HttpNetworkSession* http_session = new HttpNetworkSession(params); params.trusted_spdy_proxy = session_deps->trusted_spdy_proxy;
SpdySessionPoolPeer pool_peer(http_session->spdy_session_pool()); params.net_log = session_deps->net_log;
pool_peer.EnableSendingInitialSettings(false); return params;
return http_session;
} }
SpdyURLRequestContext::SpdyURLRequestContext() SpdyURLRequestContext::SpdyURLRequestContext()
......
...@@ -345,8 +345,7 @@ int CombineFrames(const SpdyFrame** frames, int num_frames, ...@@ -345,8 +345,7 @@ int CombineFrames(const SpdyFrame** frames, int num_frames,
// Helper to manage the lifetimes of the dependencies for a // Helper to manage the lifetimes of the dependencies for a
// HttpNetworkTransaction. // HttpNetworkTransaction.
class SpdySessionDependencies { struct SpdySessionDependencies {
public:
// Default set of dependencies -- "null" proxy service. // Default set of dependencies -- "null" proxy service.
SpdySessionDependencies(); SpdySessionDependencies();
...@@ -359,6 +358,8 @@ class SpdySessionDependencies { ...@@ -359,6 +358,8 @@ class SpdySessionDependencies {
SpdySessionDependencies* session_deps); SpdySessionDependencies* session_deps);
static HttpNetworkSession* SpdyCreateSessionDeterministic( static HttpNetworkSession* SpdyCreateSessionDeterministic(
SpdySessionDependencies* session_deps); SpdySessionDependencies* session_deps);
static HttpNetworkSession::Params CreateSessionParams(
SpdySessionDependencies* session_deps);
// NOTE: host_resolver must be ordered before http_auth_handler_factory. // NOTE: host_resolver must be ordered before http_auth_handler_factory.
scoped_ptr<MockHostResolverBase> host_resolver; scoped_ptr<MockHostResolverBase> host_resolver;
...@@ -370,6 +371,7 @@ class SpdySessionDependencies { ...@@ -370,6 +371,7 @@ class SpdySessionDependencies {
scoped_ptr<HttpAuthHandlerFactory> http_auth_handler_factory; scoped_ptr<HttpAuthHandlerFactory> http_auth_handler_factory;
HttpServerPropertiesImpl http_server_properties; HttpServerPropertiesImpl http_server_properties;
std::string trusted_spdy_proxy; std::string trusted_spdy_proxy;
NetLog* net_log;
}; };
class SpdyURLRequestContext : public URLRequestContext { class SpdyURLRequestContext : public URLRequestContext {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment