summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwillchan@chromium.org <willchan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-01-28 06:33:58 +0000
committerwillchan@chromium.org <willchan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-01-28 06:33:58 +0000
commit57cb0f76bceab5f05f3d14a23e764795b476f3d3 (patch)
treea8c549a7c8e18f1e581cfba2ee78bca33699abf9
parentd8397a8c9673136fe1deae24367b989e97f54bfb (diff)
downloadchromium_src-57cb0f76bceab5f05f3d14a23e764795b476f3d3.zip
chromium_src-57cb0f76bceab5f05f3d14a23e764795b476f3d3.tar.gz
chromium_src-57cb0f76bceab5f05f3d14a23e764795b476f3d3.tar.bz2
Simplify HttpCache/HttpNetworkLayer/HttpNetworkSession interaction.
Eliminate lazy initialization of HttpNetworkSession in HttpNetworkLayer. * This eliminates the need to update parameters for HttpNetworkLayer, it just takes a HttpNetworkSession. * It is OK to eliminate lazy initialization since these variables are cheap. BUG=none TEST=none Review URL: http://codereview.chromium.org/6402002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72931 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/browser/io_thread.cc9
-rw-r--r--chrome/browser/net/chrome_url_request_context.cc53
-rw-r--r--chrome/browser/net/connection_tester.cc24
-rw-r--r--chrome/browser/net/connection_tester_unittest.cc15
-rw-r--r--chrome/browser/policy/device_management_service.cc5
-rw-r--r--chrome/browser/sync/glue/http_bridge.cc2
-rw-r--r--chrome/service/net/service_url_request_context.cc30
-rw-r--r--chrome/test/plugin/plugin_test.cpp30
-rw-r--r--chrome_frame/metrics_service.cc31
-rw-r--r--chrome_frame/test/test_server_test.cc8
-rw-r--r--net/http/http_cache.cc27
-rw-r--r--net/http/http_cache.h2
-rw-r--r--net/http/http_network_layer.cc127
-rw-r--r--net/http/http_network_layer.h67
-rw-r--r--net/http/http_network_layer_unittest.cc142
-rw-r--r--net/proxy/proxy_script_fetcher_impl_unittest.cc49
-rw-r--r--net/spdy/spdy_test_util.cc29
-rw-r--r--net/tools/fetch/fetch_client.cc35
-rw-r--r--net/url_request/url_request_test_util.cc27
19 files changed, 297 insertions, 415 deletions
diff --git a/chrome/browser/io_thread.cc b/chrome/browser/io_thread.cc
index 8141719..d5af8f0 100644
--- a/chrome/browser/io_thread.cc
+++ b/chrome/browser/io_thread.cc
@@ -38,6 +38,7 @@
#include "net/http/http_auth_filter.h"
#include "net/http/http_auth_handler_factory.h"
#include "net/http/http_network_layer.h"
+#include "net/http/http_network_session.h"
#if defined(USE_NSS)
#include "net/ocsp/nss_ocsp.h"
#endif // defined(USE_NSS)
@@ -333,20 +334,22 @@ void IOThread::Init() {
// For the ProxyScriptFetcher, we use a direct ProxyService.
globals_->proxy_script_fetcher_proxy_service =
net::ProxyService::CreateDirectWithNetLog(net_log_);
- globals_->proxy_script_fetcher_http_transaction_factory.reset(
- new net::HttpNetworkLayer(
- globals_->client_socket_factory,
+ scoped_refptr<net::HttpNetworkSession> network_session(
+ new net::HttpNetworkSession(
globals_->host_resolver.get(),
globals_->cert_verifier.get(),
globals_->dnsrr_resolver.get(),
NULL /* dns_cert_checker */,
NULL /* ssl_host_info_factory */,
globals_->proxy_script_fetcher_proxy_service.get(),
+ globals_->client_socket_factory,
globals_->ssl_config_service.get(),
new net::SpdySessionPool(globals_->ssl_config_service.get()),
globals_->http_auth_handler_factory.get(),
&globals_->network_delegate,
net_log_));
+ globals_->proxy_script_fetcher_http_transaction_factory.reset(
+ new net::HttpNetworkLayer(network_session));
scoped_refptr<net::URLRequestContext> proxy_script_fetcher_context =
ConstructProxyScriptFetcherContext(globals_, net_log_);
diff --git a/chrome/browser/net/chrome_url_request_context.cc b/chrome/browser/net/chrome_url_request_context.cc
index d3850df..dc6853a 100644
--- a/chrome/browser/net/chrome_url_request_context.cc
+++ b/chrome/browser/net/chrome_url_request_context.cc
@@ -281,17 +281,17 @@ ChromeURLRequestContext* FactoryForOriginal::Create() {
net::HttpCache::DefaultBackend* backend = new net::HttpCache::DefaultBackend(
net::DISK_CACHE, disk_cache_path_, cache_size_,
BrowserThread::GetMessageLoopProxyForThread(BrowserThread::CACHE));
- net::HttpCache* cache =
- new net::HttpCache(context->host_resolver(),
- context->cert_verifier(),
- context->dnsrr_resolver(),
- context->dns_cert_checker(),
- context->proxy_service(),
- context->ssl_config_service(),
- context->http_auth_handler_factory(),
- &io_thread_globals->network_delegate,
- io_thread()->net_log(),
- backend);
+ net::HttpCache* cache = new net::HttpCache(
+ context->host_resolver(),
+ context->cert_verifier(),
+ context->dnsrr_resolver(),
+ context->dns_cert_checker(),
+ context->proxy_service(),
+ context->ssl_config_service(),
+ context->http_auth_handler_factory(),
+ &io_thread_globals->network_delegate,
+ io_thread()->net_log(),
+ backend);
bool record_mode = chrome::kRecordModeEnabled &&
command_line.HasSwitch(switches::kRecordMode);
@@ -491,35 +491,8 @@ ChromeURLRequestContext* FactoryForMedia::Create() {
net::HttpCache* main_cache =
main_context->http_transaction_factory()->GetCache();
- net::HttpCache* cache;
- if (main_cache) {
- // Try to reuse HttpNetworkSession in the main context, assuming that
- // HttpTransactionFactory (network_layer()) of HttpCache is implemented
- // by HttpNetworkLayer so we can reuse HttpNetworkSession within it. This
- // assumption will be invalid if the original HttpCache is constructed with
- // HttpCache(HttpTransactionFactory*, BackendFactory*) constructor.
- net::HttpNetworkLayer* main_network_layer =
- static_cast<net::HttpNetworkLayer*>(main_cache->network_layer());
- cache = new net::HttpCache(main_network_layer->GetSession(), backend);
- // TODO(eroman): Since this is poaching the session from the main
- // context, it should hold a reference to that context preventing the
- // session from getting deleted.
- } else {
- // If original HttpCache doesn't exist, simply construct one with a whole
- // new set of network stack.
- cache = new net::HttpCache(
- io_thread_globals->host_resolver.get(),
- io_thread_globals->cert_verifier.get(),
- io_thread_globals->dnsrr_resolver.get(),
- NULL /* dns_cert_checker */,
- main_context->proxy_service(),
- main_context->ssl_config_service(),
- io_thread_globals->http_auth_handler_factory.get(),
- &io_thread_globals->network_delegate,
- io_thread()->net_log(),
- backend);
- }
-
+ net::HttpNetworkSession* network_session = main_cache->GetSession();
+ net::HttpCache* cache = new net::HttpCache(network_session, backend);
context->set_http_transaction_factory(cache);
context->set_net_log(io_thread()->net_log());
diff --git a/chrome/browser/net/connection_tester.cc b/chrome/browser/net/connection_tester.cc
index d68a169..f0f7efe 100644
--- a/chrome/browser/net/connection_tester.cc
+++ b/chrome/browser/net/connection_tester.cc
@@ -25,9 +25,11 @@
#include "net/ftp/ftp_network_layer.h"
#include "net/http/http_auth_handler_factory.h"
#include "net/http/http_cache.h"
-#include "net/http/http_network_layer.h"
+#include "net/http/http_network_session.h"
#include "net/proxy/proxy_config_service_fixed.h"
#include "net/proxy/proxy_script_fetcher_impl.h"
+#include "net/socket/client_socket_factory.h"
+#include "net/spdy/spdy_session_pool.h"
#include "net/url_request/url_request.h"
#include "net/url_request/url_request_context.h"
@@ -67,12 +69,22 @@ class ExperimentURLRequestContext : public net::URLRequestContext {
ssl_config_service_ = new net::SSLConfigServiceDefaults;
http_auth_handler_factory_ = net::HttpAuthHandlerFactory::CreateDefault(
host_resolver_);
+ scoped_refptr<net::HttpNetworkSession> network_session(
+ new net::HttpNetworkSession(
+ host_resolver_,
+ cert_verifier_,
+ dnsrr_resolver_,
+ NULL /* dns_cert_checker */,
+ NULL /* ssl_host_info_factory */,
+ proxy_service_,
+ net::ClientSocketFactory::GetDefaultFactory(),
+ ssl_config_service_,
+ new net::SpdySessionPool(NULL),
+ http_auth_handler_factory_,
+ NULL /* network_delegate */,
+ NULL /* net_log */));
http_transaction_factory_ = new net::HttpCache(
- net::HttpNetworkLayer::CreateFactory(host_resolver_, cert_verifier_,
- dnsrr_resolver_, NULL /* dns_cert_checker */,
- NULL /* ssl_host_info_factory */, proxy_service_,
- ssl_config_service_, http_auth_handler_factory_, NULL, NULL),
- NULL /* net_log */,
+ network_session,
net::HttpCache::DefaultBackend::InMemory(0));
// In-memory cookie store.
cookie_store_ = new net::CookieMonster(NULL, NULL);
diff --git a/chrome/browser/net/connection_tester_unittest.cc b/chrome/browser/net/connection_tester_unittest.cc
index 8eecd81..f08daf4 100644
--- a/chrome/browser/net/connection_tester_unittest.cc
+++ b/chrome/browser/net/connection_tester_unittest.cc
@@ -14,6 +14,7 @@
#include "net/ftp/ftp_network_layer.h"
#include "net/http/http_auth_handler_factory.h"
#include "net/http/http_network_layer.h"
+#include "net/http/http_network_session.h"
#include "net/proxy/proxy_config_service_fixed.h"
#include "net/socket/client_socket_factory.h"
#include "net/spdy/spdy_session_pool.h"
@@ -117,20 +118,22 @@ class ConnectionTesterTest : public PlatformTest {
proxy_service_ = net::ProxyService::CreateDirect();
proxy_script_fetcher_context_->set_proxy_service(proxy_service_);
ssl_config_service_ = net::SSLConfigService::CreateSystemSSLConfigService();
- http_transaction_factory_.reset(
- new net::HttpNetworkLayer(
- client_socket_factory_,
+ scoped_refptr<net::HttpNetworkSession> network_session(
+ new net::HttpNetworkSession(
&host_resolver_,
&cert_verifier_,
&dnsrr_resolver_,
- NULL /* DNS cert provenance checker */,
+ NULL /* dns_cert_checker */,
NULL /* ssl_host_info_factory */,
proxy_service_.get(),
+ client_socket_factory_,
ssl_config_service_,
new net::SpdySessionPool(ssl_config_service_),
&http_auth_handler_factory_,
- NULL /* NetworkDelegate */,
- NULL /* NetLog */));
+ NULL /* network_delegate */,
+ NULL /* net_log */));
+ http_transaction_factory_.reset(
+ new net::HttpNetworkLayer(network_session));
proxy_script_fetcher_context_->set_http_transaction_factory(
http_transaction_factory_.get());
// In-memory cookie store.
diff --git a/chrome/browser/policy/device_management_service.cc b/chrome/browser/policy/device_management_service.cc
index e29d21a..a2f6bc7 100644
--- a/chrome/browser/policy/device_management_service.cc
+++ b/chrome/browser/policy/device_management_service.cc
@@ -48,8 +48,9 @@ DeviceManagementRequestContext::DeviceManagementRequestContext(
ssl_config_service_ = base_context->ssl_config_service();
// Share the http session.
- http_transaction_factory_ = net::HttpNetworkLayer::CreateFactory(
- base_context->http_transaction_factory()->GetSession());
+ http_transaction_factory_ =
+ new net::HttpNetworkLayer(
+ base_context->http_transaction_factory()->GetSession());
// No cookies, please.
cookie_store_ = new net::CookieMonster(NULL, NULL);
diff --git a/chrome/browser/sync/glue/http_bridge.cc b/chrome/browser/sync/glue/http_bridge.cc
index 265a044..b51975c 100644
--- a/chrome/browser/sync/glue/http_bridge.cc
+++ b/chrome/browser/sync/glue/http_bridge.cc
@@ -87,7 +87,7 @@ HttpBridge::RequestContext::RequestContext(
net::HttpNetworkSession* session =
baseline_context->http_transaction_factory()->GetSession();
DCHECK(session);
- http_transaction_factory_ = net::HttpNetworkLayer::CreateFactory(session);
+ http_transaction_factory_ = new net::HttpNetworkLayer(session);
// TODO(timsteele): We don't currently listen for pref changes of these
// fields or CookiePolicy; I'm not sure we want to strictly follow the
diff --git a/chrome/service/net/service_url_request_context.cc b/chrome/service/net/service_url_request_context.cc
index e655489..41a9f35 100644
--- a/chrome/service/net/service_url_request_context.cc
+++ b/chrome/service/net/service_url_request_context.cc
@@ -22,7 +22,9 @@
#include "net/ftp/ftp_network_layer.h"
#include "net/http/http_auth_handler_factory.h"
#include "net/http/http_cache.h"
-#include "net/http/http_network_layer.h"
+#include "net/http/http_network_session.h"
+#include "net/socket/client_socket_factory.h"
+#include "net/spdy/spdy_session_pool.h"
#include "net/proxy/proxy_service.h"
namespace {
@@ -124,18 +126,22 @@ ServiceURLRequestContext::ServiceURLRequestContext(
ssl_config_service_ = new net::SSLConfigServiceDefaults;
http_auth_handler_factory_ = net::HttpAuthHandlerFactory::CreateDefault(
host_resolver_);
+ scoped_refptr<net::HttpNetworkSession> network_session(
+ new net::HttpNetworkSession(
+ host_resolver_,
+ cert_verifier_,
+ dnsrr_resolver_,
+ NULL /* dns_cert_checker */,
+ NULL /* ssl_host_info_factory */,
+ proxy_service_,
+ net::ClientSocketFactory::GetDefaultFactory(),
+ ssl_config_service_,
+ new net::SpdySessionPool(NULL),
+ http_auth_handler_factory_,
+ NULL /* network_delegate */,
+ NULL /* net_log */));
http_transaction_factory_ = new net::HttpCache(
- net::HttpNetworkLayer::CreateFactory(host_resolver_,
- cert_verifier_,
- dnsrr_resolver_,
- NULL /* dns_cert_checker */,
- NULL /* ssl_host_info_factory */,
- proxy_service_,
- ssl_config_service_,
- http_auth_handler_factory_,
- NULL /* network_delegate */,
- NULL /* net_log */),
- NULL /* net_log */,
+ network_session,
net::HttpCache::DefaultBackend::InMemory(0));
// In-memory cookie store.
cookie_store_ = new net::CookieMonster(NULL, NULL);
diff --git a/chrome/test/plugin/plugin_test.cpp b/chrome/test/plugin/plugin_test.cpp
index ace16bc..34a9de3a 100644
--- a/chrome/test/plugin/plugin_test.cpp
+++ b/chrome/test/plugin/plugin_test.cpp
@@ -45,7 +45,9 @@
#include "net/base/ssl_config_service_defaults.h"
#include "net/http/http_auth_handler_factory.h"
#include "net/http/http_cache.h"
-#include "net/http/http_network_layer.h"
+#include "net/http/http_network_session.h"
+#include "net/socket/client_socket_factory.h"
+#include "net/spdy/spdy_session_pool.h"
#include "net/url_request/url_request_context.h"
#include "net/url_request/url_request_status.h"
#include "third_party/npapi/bindings/npapi.h"
@@ -284,18 +286,22 @@ class PluginInstallerDownloadTest
ssl_config_service_ = new net::SSLConfigServiceDefaults;
http_auth_handler_factory_ = net::HttpAuthHandlerFactory::CreateDefault(
host_resolver_);
+ scoped_refptr<net::HttpNetworkSession> network_session(
+ new net::HttpNetworkSession(
+ host_resolver_,
+ cert_verifier_,
+ NULL /* dnsrr_resolver */,
+ NULL /* dns_cert_checker */,
+ NULL /* ssl_host_info_factory */,
+ proxy_service_,
+ net::ClientSocketFactory::GetDefaultFactory(),
+ ssl_config_service_,
+ new net::SpdySessionPool(NULL),
+ http_auth_handler_factory_,
+ network_delegate_,
+ NULL /* net_log */));
http_transaction_factory_ = new net::HttpCache(
- net::HttpNetworkLayer::CreateFactory(host_resolver_,
- cert_verifier_,
- NULL /* dnsrr_resolver */,
- NULL /* dns_cert_checker */,
- NULL /* ssl_host_info_factory */,
- proxy_service_,
- ssl_config_service_,
- http_auth_handler_factory_,
- network_delegate_,
- NULL),
- NULL /* net_log */,
+ network_session,
net::HttpCache::DefaultBackend::InMemory(0));
}
diff --git a/chrome_frame/metrics_service.cc b/chrome_frame/metrics_service.cc
index 3f22ae5..deb5f20 100644
--- a/chrome_frame/metrics_service.cc
+++ b/chrome_frame/metrics_service.cc
@@ -79,7 +79,9 @@
#include "net/base/upload_data.h"
#include "net/http/http_auth_handler_factory.h"
#include "net/http/http_cache.h"
-#include "net/http/http_network_layer.h"
+#include "net/http/http_network_session.h"
+#include "net/socket/client_socket_factory.h"
+#include "net/spdy/spdy_session_pool.h"
#include "net/url_request/url_request_context.h"
#include "net/url_request/url_request_status.h"
@@ -178,18 +180,23 @@ class ChromeFrameUploadRequestContext : public net::URLRequestContext {
supported_schemes, url_security_manager_.get(), host_resolver_,
std::string(), false, false);
+ scoped_refptr<net::HttpNetworkSession> network_session =
+ new net::HttpNetworkSession(
+ host_resolver_,
+ cert_verifier_,
+ NULL /* dnsrr_resolver */,
+ NULL /* dns_cert_checker*/,
+ NULL /* ssl_host_info_factory */,
+ proxy_service_,
+ net::ClientSocketFactory::GetDefaultFactory(),
+ ssl_config_service_,
+ new net::SpdySessionPool(ssl_config_service_),
+ http_auth_handler_factory_,
+ network_delegate_,
+ NULL);
+
http_transaction_factory_ = new net::HttpCache(
- net::HttpNetworkLayer::CreateFactory(host_resolver_,
- cert_verifier_,
- NULL /* dnsrr_resovler */,
- NULL /* dns_cert_checker*/,
- NULL /* ssl_host_info */,
- proxy_service_,
- ssl_config_service_,
- http_auth_handler_factory_,
- network_delegate_,
- NULL),
- NULL /* net_log */,
+ network_session,
net::HttpCache::DefaultBackend::InMemory(0));
}
diff --git a/chrome_frame/test/test_server_test.cc b/chrome_frame/test/test_server_test.cc
index 1355471..d45222d 100644
--- a/chrome_frame/test/test_server_test.cc
+++ b/chrome_frame/test/test_server_test.cc
@@ -14,7 +14,10 @@
#include "net/disk_cache/disk_cache.h"
#include "net/http/http_auth_handler_factory.h"
#include "net/http/http_cache.h"
+#include "net/http/http_network_session.h"
#include "net/proxy/proxy_service.h"
+#include "net/socket/client_socket_factory.h"
+#include "net/spdy/spdy_session_pool.h"
#include "net/url_request/url_request.h"
#include "net/url_request/url_request_test_util.h"
#include "testing/gtest/include/gtest/gtest.h"
@@ -70,18 +73,19 @@ class URLRequestTestContext : public net::URLRequestContext {
http_auth_handler_factory_ = net::HttpAuthHandlerFactory::CreateDefault(
host_resolver_);
http_transaction_factory_ = new net::HttpCache(
- net::HttpNetworkLayer::CreateFactory(
+ new net::HttpNetworkSession(
host_resolver_,
cert_verifier_,
NULL /* dnsrr_resolver */,
NULL /* dns_cert_checker */,
NULL /* ssl_host_info_factory */,
proxy_service_,
+ net::ClientSocketFactory::GetDefaultFactory(),
ssl_config_service_,
+ new net::SpdySessionPool(ssl_config_service_),
http_auth_handler_factory_,
NULL /* network_delegate */,
NULL /* net_log */),
- NULL /* net_log */,
net::HttpCache::DefaultBackend::InMemory(0));
// In-memory cookie store.
cookie_store_ = new net::CookieMonster(NULL, NULL);
diff --git a/net/http/http_cache.cc b/net/http/http_cache.cc
index 3ef5a7b7..1690e55 100644
--- a/net/http/http_cache.cc
+++ b/net/http/http_cache.cc
@@ -33,6 +33,7 @@
#include "net/http/http_response_headers.h"
#include "net/http/http_response_info.h"
#include "net/http/http_util.h"
+#include "net/socket/client_socket_factory.h"
#include "net/socket/ssl_host_info.h"
#include "net/spdy/spdy_session_pool.h"
@@ -278,7 +279,6 @@ class HttpCache::SSLHostInfoFactoryAdaptor : public SSLHostInfoFactory {
};
//-----------------------------------------------------------------------------
-
HttpCache::HttpCache(HostResolver* host_resolver,
CertVerifier* cert_verifier,
DnsRRResolver* dnsrr_resolver,
@@ -295,21 +295,34 @@ HttpCache::HttpCache(HostResolver* host_resolver,
mode_(NORMAL),
ssl_host_info_factory_(new SSLHostInfoFactoryAdaptor(
ALLOW_THIS_IN_INITIALIZER_LIST(this))),
- network_layer_(HttpNetworkLayer::CreateFactory(host_resolver,
- cert_verifier, dnsrr_resolver, dns_cert_checker_,
- ssl_host_info_factory_.get(),
- proxy_service, ssl_config_service,
- http_auth_handler_factory, network_delegate, net_log)),
+ network_layer_(
+ new HttpNetworkLayer(
+ new HttpNetworkSession(
+ host_resolver,
+ cert_verifier,
+ dnsrr_resolver,
+ dns_cert_checker_,
+ ssl_host_info_factory_.get(),
+ proxy_service,
+ ClientSocketFactory::GetDefaultFactory(),
+ ssl_config_service,
+ new SpdySessionPool(ssl_config_service),
+ http_auth_handler_factory,
+ network_delegate,
+ net_log))),
ALLOW_THIS_IN_INITIALIZER_LIST(task_factory_(this)) {
}
+
HttpCache::HttpCache(HttpNetworkSession* session,
BackendFactory* backend_factory)
: net_log_(session->net_log()),
backend_factory_(backend_factory),
building_backend_(false),
mode_(NORMAL),
- network_layer_(HttpNetworkLayer::CreateFactory(session)),
+ ssl_host_info_factory_(new SSLHostInfoFactoryAdaptor(
+ ALLOW_THIS_IN_INITIALIZER_LIST(this))),
+ network_layer_(new HttpNetworkLayer(session)),
ALLOW_THIS_IN_INITIALIZER_LIST(task_factory_(this)) {
}
diff --git a/net/http/http_cache.h b/net/http/http_cache.h
index b431ee6..563ed17 100644
--- a/net/http/http_cache.h
+++ b/net/http/http_cache.h
@@ -131,7 +131,7 @@ class HttpCache : public HttpTransactionFactory,
// The disk cache is initialized lazily (by CreateTransaction) in this case.
// Provide an existing HttpNetworkSession, the cache can construct a
// network layer with a shared HttpNetworkSession in order for multiple
- // network layers to share information (e.g. authenication data). The
+ // network layers to share information (e.g. authentication data). The
// HttpCache takes ownership of the |backend_factory|.
HttpCache(HttpNetworkSession* session, BackendFactory* backend_factory);
diff --git a/net/http/http_network_layer.cc b/net/http/http_network_layer.cc
index 975e75c..293f8ec 100644
--- a/net/http/http_network_layer.cc
+++ b/net/http/http_network_layer.cc
@@ -18,81 +18,8 @@
namespace net {
//-----------------------------------------------------------------------------
-
-HttpNetworkLayer::HttpNetworkLayer(
- ClientSocketFactory* socket_factory,
- HostResolver* host_resolver,
- CertVerifier* cert_verifier,
- DnsRRResolver* dnsrr_resolver,
- DnsCertProvenanceChecker* dns_cert_checker,
- SSLHostInfoFactory* ssl_host_info_factory,
- ProxyService* proxy_service,
- SSLConfigService* ssl_config_service,
- HttpAuthHandlerFactory* http_auth_handler_factory,
- HttpNetworkDelegate* network_delegate,
- NetLog* net_log)
- : socket_factory_(socket_factory),
- host_resolver_(host_resolver),
- cert_verifier_(cert_verifier),
- dnsrr_resolver_(dnsrr_resolver),
- dns_cert_checker_(dns_cert_checker),
- ssl_host_info_factory_(ssl_host_info_factory),
- proxy_service_(proxy_service),
- ssl_config_service_(ssl_config_service),
- session_(NULL),
- spdy_session_pool_(NULL),
- http_auth_handler_factory_(http_auth_handler_factory),
- network_delegate_(network_delegate),
- net_log_(net_log),
- suspended_(false) {
- DCHECK(proxy_service_);
- DCHECK(ssl_config_service_.get());
-}
-
-HttpNetworkLayer::HttpNetworkLayer(
- ClientSocketFactory* socket_factory,
- HostResolver* host_resolver,
- CertVerifier* cert_verifier,
- DnsRRResolver* dnsrr_resolver,
- DnsCertProvenanceChecker* dns_cert_checker,
- SSLHostInfoFactory* ssl_host_info_factory,
- ProxyService* proxy_service,
- SSLConfigService* ssl_config_service,
- SpdySessionPool* spdy_session_pool,
- HttpAuthHandlerFactory* http_auth_handler_factory,
- HttpNetworkDelegate* network_delegate,
- NetLog* net_log)
- : socket_factory_(socket_factory),
- host_resolver_(host_resolver),
- cert_verifier_(cert_verifier),
- dnsrr_resolver_(dnsrr_resolver),
- dns_cert_checker_(dns_cert_checker),
- ssl_host_info_factory_(ssl_host_info_factory),
- proxy_service_(proxy_service),
- ssl_config_service_(ssl_config_service),
- session_(NULL),
- spdy_session_pool_(spdy_session_pool),
- http_auth_handler_factory_(http_auth_handler_factory),
- network_delegate_(network_delegate),
- net_log_(net_log),
- suspended_(false) {
- DCHECK(proxy_service_);
- DCHECK(ssl_config_service_.get());
-}
-
HttpNetworkLayer::HttpNetworkLayer(HttpNetworkSession* session)
- : socket_factory_(ClientSocketFactory::GetDefaultFactory()),
- host_resolver_(NULL),
- cert_verifier_(NULL),
- dnsrr_resolver_(NULL),
- dns_cert_checker_(NULL),
- ssl_host_info_factory_(NULL),
- ssl_config_service_(NULL),
- session_(session),
- spdy_session_pool_(NULL),
- http_auth_handler_factory_(NULL),
- network_delegate_(NULL),
- net_log_(NULL),
+ : session_(session),
suspended_(false) {
DCHECK(session_.get());
}
@@ -104,29 +31,6 @@ HttpNetworkLayer::~HttpNetworkLayer() {
// static
HttpTransactionFactory* HttpNetworkLayer::CreateFactory(
- HostResolver* host_resolver,
- CertVerifier* cert_verifier,
- DnsRRResolver* dnsrr_resolver,
- DnsCertProvenanceChecker* dns_cert_checker,
- SSLHostInfoFactory* ssl_host_info_factory,
- ProxyService* proxy_service,
- SSLConfigService* ssl_config_service,
- HttpAuthHandlerFactory* http_auth_handler_factory,
- HttpNetworkDelegate* network_delegate,
- NetLog* net_log) {
- DCHECK(proxy_service);
-
- return new HttpNetworkLayer(ClientSocketFactory::GetDefaultFactory(),
- host_resolver, cert_verifier, dnsrr_resolver,
- dns_cert_checker,
- ssl_host_info_factory, proxy_service,
- ssl_config_service, http_auth_handler_factory,
- network_delegate,
- net_log);
-}
-
-// static
-HttpTransactionFactory* HttpNetworkLayer::CreateFactory(
HttpNetworkSession* session) {
DCHECK(session);
@@ -242,35 +146,6 @@ HttpCache* HttpNetworkLayer::GetCache() {
}
HttpNetworkSession* HttpNetworkLayer::GetSession() {
- if (!session_) {
- DCHECK(proxy_service_);
- if (!spdy_session_pool_.get())
- spdy_session_pool_.reset(new SpdySessionPool(ssl_config_service_));
- session_ = new HttpNetworkSession(
- host_resolver_,
- cert_verifier_,
- dnsrr_resolver_,
- dns_cert_checker_,
- ssl_host_info_factory_,
- proxy_service_,
- socket_factory_,
- ssl_config_service_,
- spdy_session_pool_.release(),
- http_auth_handler_factory_,
- network_delegate_,
- net_log_);
- // These were just temps for lazy-initializing HttpNetworkSession.
- host_resolver_ = NULL;
- cert_verifier_ = NULL;
- dnsrr_resolver_ = NULL;
- dns_cert_checker_ = NULL;
- ssl_host_info_factory_ = NULL;
- proxy_service_ = NULL;
- socket_factory_ = NULL;
- http_auth_handler_factory_ = NULL;
- net_log_ = NULL;
- network_delegate_ = NULL;
- }
return session_;
}
diff --git a/net/http/http_network_layer.h b/net/http/http_network_layer.h
index 963ebee..da92761 100644
--- a/net/http/http_network_layer.h
+++ b/net/http/http_network_layer.h
@@ -32,52 +32,10 @@ class SSLHostInfoFactory;
class HttpNetworkLayer : public HttpTransactionFactory,
public base::NonThreadSafe {
public:
- // |socket_factory|, |proxy_service|, |host_resolver|, etc. must remain
- // valid for the lifetime of HttpNetworkLayer.
- // TODO(wtc): we only need the next constructor.
- HttpNetworkLayer(ClientSocketFactory* socket_factory,
- HostResolver* host_resolver,
- CertVerifier* cert_verifier,
- DnsRRResolver* dnsrr_resolver,
- DnsCertProvenanceChecker* dns_cert_checker,
- SSLHostInfoFactory* ssl_host_info_factory,
- ProxyService* proxy_service,
- SSLConfigService* ssl_config_service,
- HttpAuthHandlerFactory* http_auth_handler_factory,
- HttpNetworkDelegate* network_delegate,
- NetLog* net_log);
- HttpNetworkLayer(
- ClientSocketFactory* socket_factory,
- HostResolver* host_resolver,
- CertVerifier* cert_verifier,
- DnsRRResolver* dnsrr_resolver,
- DnsCertProvenanceChecker* dns_cert_checker,
- SSLHostInfoFactory* ssl_host_info_factory,
- ProxyService* proxy_service,
- SSLConfigService* ssl_config_service,
- SpdySessionPool* spdy_session_pool,
- HttpAuthHandlerFactory* http_auth_handler_factory,
- HttpNetworkDelegate* network_delegate,
- NetLog* net_log);
-
// Construct a HttpNetworkLayer with an existing HttpNetworkSession which
// contains a valid ProxyService.
explicit HttpNetworkLayer(HttpNetworkSession* session);
- ~HttpNetworkLayer();
-
- // This function hides the details of how a network layer gets instantiated
- // and allows other implementations to be substituted.
- static HttpTransactionFactory* CreateFactory(
- HostResolver* host_resolver,
- CertVerifier* cert_verifier,
- DnsRRResolver* dnsrr_resolver,
- DnsCertProvenanceChecker* dns_cert_checker,
- SSLHostInfoFactory* ssl_host_info_factory,
- ProxyService* proxy_service,
- SSLConfigService* ssl_config_service,
- HttpAuthHandlerFactory* http_auth_handler_factory,
- HttpNetworkDelegate* network_delegate,
- NetLog* net_log);
+ virtual ~HttpNetworkLayer();
// Create a transaction factory that instantiate a network layer over an
// existing network session. Network session contains some valuable
@@ -104,28 +62,7 @@ class HttpNetworkLayer : public HttpTransactionFactory,
virtual void Suspend(bool suspend);
private:
- // The factory we will use to create network sockets.
- ClientSocketFactory* socket_factory_;
-
- // The host resolver, proxy service, etc. that will be used when lazily
- // creating |session_|.
- HostResolver* host_resolver_;
- CertVerifier* cert_verifier_;
- DnsRRResolver* dnsrr_resolver_;
- DnsCertProvenanceChecker* dns_cert_checker_;
- SSLHostInfoFactory* ssl_host_info_factory_;
- scoped_refptr<ProxyService> proxy_service_;
-
- // The SSL config service being used for the session.
- scoped_refptr<SSLConfigService> ssl_config_service_;
-
- scoped_refptr<HttpNetworkSession> session_;
- scoped_ptr<SpdySessionPool> spdy_session_pool_;
-
- HttpAuthHandlerFactory* http_auth_handler_factory_;
- HttpNetworkDelegate* network_delegate_;
- NetLog* net_log_;
-
+ const scoped_refptr<HttpNetworkSession> session_;
bool suspended_;
};
diff --git a/net/http/http_network_layer_unittest.cc b/net/http/http_network_layer_unittest.cc
index 2720c10..f76ffbb 100644
--- a/net/http/http_network_layer_unittest.cc
+++ b/net/http/http_network_layer_unittest.cc
@@ -7,9 +7,11 @@
#include "net/base/net_log.h"
#include "net/base/ssl_config_service_defaults.h"
#include "net/http/http_network_layer.h"
+#include "net/http/http_network_session.h"
#include "net/http/http_transaction_unittest.h"
#include "net/proxy/proxy_service.h"
#include "net/socket/socket_test_util.h"
+#include "net/spdy/spdy_session_pool.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "testing/platform_test.h"
@@ -21,115 +23,127 @@ class HttpNetworkLayerTest : public PlatformTest {
};
TEST_F(HttpNetworkLayerTest, CreateAndDestroy) {
+ MockClientSocketFactory mock_socket_factory;
MockHostResolver host_resolver;
- net::CertVerifier cert_verifier;
- net::HttpNetworkLayer factory(
- NULL,
- &host_resolver,
- &cert_verifier,
- NULL /* dnsrr_resolver */,
- NULL /* dns_cert_checker */,
- NULL /* ssl_host_info_factory */,
- net::ProxyService::CreateDirect(),
- new net::SSLConfigServiceDefaults,
- NULL,
- NULL,
- NULL);
-
- scoped_ptr<net::HttpTransaction> trans;
+ CertVerifier cert_verifier;
+ scoped_refptr<HttpNetworkSession> network_session(
+ new HttpNetworkSession(
+ &host_resolver,
+ &cert_verifier,
+ NULL /* dnsrr_resolver */,
+ NULL /* dns_cert_checker */,
+ NULL /* ssl_host_info_factory */,
+ ProxyService::CreateDirect(),
+ &mock_socket_factory,
+ new SSLConfigServiceDefaults,
+ new SpdySessionPool(NULL),
+ NULL,
+ NULL,
+ NULL));
+
+ HttpNetworkLayer factory(network_session);
+
+ scoped_ptr<HttpTransaction> trans;
int rv = factory.CreateTransaction(&trans);
- EXPECT_EQ(net::OK, rv);
+ EXPECT_EQ(OK, rv);
EXPECT_TRUE(trans.get() != NULL);
}
TEST_F(HttpNetworkLayerTest, Suspend) {
+ MockClientSocketFactory mock_socket_factory;
MockHostResolver host_resolver;
- net::CertVerifier cert_verifier;
- net::HttpNetworkLayer factory(
- NULL,
- &host_resolver,
- &cert_verifier,
- NULL /* dnsrr_resolver */,
- NULL /* dns_cert_checker */,
- NULL /* ssl_host_info_factory */,
- net::ProxyService::CreateDirect(),
- new net::SSLConfigServiceDefaults,
- NULL,
- NULL,
- NULL);
-
- scoped_ptr<net::HttpTransaction> trans;
+ CertVerifier cert_verifier;
+ scoped_refptr<HttpNetworkSession> network_session(
+ new HttpNetworkSession(
+ &host_resolver,
+ &cert_verifier,
+ NULL /* dnsrr_resolver */,
+ NULL /* dns_cert_checker */,
+ NULL /* ssl_host_info_factory */,
+ ProxyService::CreateDirect(),
+ &mock_socket_factory,
+ new SSLConfigServiceDefaults,
+ new SpdySessionPool(NULL),
+ NULL,
+ NULL,
+ NULL));
+ HttpNetworkLayer factory(network_session);
+
+ scoped_ptr<HttpTransaction> trans;
int rv = factory.CreateTransaction(&trans);
- EXPECT_EQ(net::OK, rv);
+ EXPECT_EQ(OK, rv);
trans.reset();
factory.Suspend(true);
rv = factory.CreateTransaction(&trans);
- EXPECT_EQ(net::ERR_NETWORK_IO_SUSPENDED, rv);
+ EXPECT_EQ(ERR_NETWORK_IO_SUSPENDED, rv);
ASSERT_TRUE(trans == NULL);
factory.Suspend(false);
rv = factory.CreateTransaction(&trans);
- EXPECT_EQ(net::OK, rv);
+ EXPECT_EQ(OK, rv);
}
TEST_F(HttpNetworkLayerTest, GET) {
- net::MockClientSocketFactory mock_socket_factory;
- net::MockRead data_reads[] = {
- net::MockRead("HTTP/1.0 200 OK\r\n\r\n"),
- net::MockRead("hello world"),
- net::MockRead(false, net::OK),
+ MockClientSocketFactory mock_socket_factory;
+ MockRead data_reads[] = {
+ MockRead("HTTP/1.0 200 OK\r\n\r\n"),
+ MockRead("hello world"),
+ MockRead(false, OK),
};
- net::MockWrite data_writes[] = {
- net::MockWrite("GET / HTTP/1.1\r\n"
+ MockWrite data_writes[] = {
+ MockWrite("GET / HTTP/1.1\r\n"
"Host: www.google.com\r\n"
"Connection: keep-alive\r\n"
"User-Agent: Foo/1.0\r\n\r\n"),
};
- net::StaticSocketDataProvider data(data_reads, arraysize(data_reads),
+ StaticSocketDataProvider data(data_reads, arraysize(data_reads),
data_writes, arraysize(data_writes));
mock_socket_factory.AddSocketDataProvider(&data);
MockHostResolver host_resolver;
- net::CertVerifier cert_verifier;
- net::HttpNetworkLayer factory(
- &mock_socket_factory,
- &host_resolver,
- &cert_verifier,
- NULL /* dnsrr_resolver */,
- NULL /* dns_cert_checker */,
- NULL /* ssl_host_info_factory */,
- net::ProxyService::CreateDirect(),
- new net::SSLConfigServiceDefaults,
- NULL,
- NULL,
- NULL);
+ CertVerifier cert_verifier;
+ scoped_refptr<HttpNetworkSession> network_session(
+ new HttpNetworkSession(
+ &host_resolver,
+ &cert_verifier,
+ NULL /* dnsrr_resolver */,
+ NULL /* dns_cert_checker */,
+ NULL /* ssl_host_info_factory */,
+ ProxyService::CreateDirect(),
+ &mock_socket_factory,
+ new SSLConfigServiceDefaults,
+ new SpdySessionPool(NULL),
+ NULL,
+ NULL,
+ NULL));
+ HttpNetworkLayer factory(network_session);
TestCompletionCallback callback;
- scoped_ptr<net::HttpTransaction> trans;
+ scoped_ptr<HttpTransaction> trans;
int rv = factory.CreateTransaction(&trans);
- EXPECT_EQ(net::OK, rv);
+ EXPECT_EQ(OK, rv);
- net::HttpRequestInfo request_info;
+ HttpRequestInfo request_info;
request_info.url = GURL("http://www.google.com/");
request_info.method = "GET";
- request_info.extra_headers.SetHeader(net::HttpRequestHeaders::kUserAgent,
+ request_info.extra_headers.SetHeader(HttpRequestHeaders::kUserAgent,
"Foo/1.0");
- request_info.load_flags = net::LOAD_NORMAL;
+ request_info.load_flags = LOAD_NORMAL;
- rv = trans->Start(&request_info, &callback, net::BoundNetLog());
- if (rv == net::ERR_IO_PENDING)
+ rv = trans->Start(&request_info, &callback, BoundNetLog());
+ if (rv == ERR_IO_PENDING)
rv = callback.WaitForResult();
- ASSERT_EQ(net::OK, rv);
+ ASSERT_EQ(OK, rv);
std::string contents;
rv = ReadTransaction(trans.get(), &contents);
- EXPECT_EQ(net::OK, rv);
+ EXPECT_EQ(OK, rv);
EXPECT_EQ("hello world", contents);
}
diff --git a/net/proxy/proxy_script_fetcher_impl_unittest.cc b/net/proxy/proxy_script_fetcher_impl_unittest.cc
index 4a96071..ae751eb 100644
--- a/net/proxy/proxy_script_fetcher_impl_unittest.cc
+++ b/net/proxy/proxy_script_fetcher_impl_unittest.cc
@@ -15,14 +15,21 @@
#include "net/base/test_completion_callback.h"
#include "net/disk_cache/disk_cache.h"
#include "net/http/http_cache.h"
+#include "net/http/http_network_session.h"
+#include "net/socket/client_socket_factory.h"
+#include "net/spdy/spdy_session_pool.h"
#include "net/url_request/url_request_test_util.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "testing/platform_test.h"
+namespace net {
+
// TODO(eroman):
// - Test canceling an outstanding request.
// - Test deleting ProxyScriptFetcher while a request is in progress.
+namespace {
+
const FilePath::CharType kDocRoot[] =
FILE_PATH_LITERAL("net/data/proxy_script_fetcher_unittest");
@@ -32,23 +39,34 @@ struct FetchResult {
};
// A non-mock URL request which can access http:// and file:// urls.
-class RequestContext : public net::URLRequestContext {
+class RequestContext : public URLRequestContext {
public:
RequestContext() {
- net::ProxyConfig no_proxy;
+ ProxyConfig no_proxy;
host_resolver_ =
- net::CreateSystemHostResolver(net::HostResolver::kDefaultParallelism,
+ CreateSystemHostResolver(HostResolver::kDefaultParallelism,
NULL, NULL);
- cert_verifier_ = new net::CertVerifier;
- proxy_service_ = net::ProxyService::CreateFixed(no_proxy);
- ssl_config_service_ = new net::SSLConfigServiceDefaults;
-
- http_transaction_factory_ = new net::HttpCache(
- net::HttpNetworkLayer::CreateFactory(host_resolver_, cert_verifier_,
- NULL, NULL, NULL, proxy_service_, ssl_config_service_, NULL, NULL,
- NULL),
- NULL,
- net::HttpCache::DefaultBackend::InMemory(0));
+ cert_verifier_ = new CertVerifier;
+ proxy_service_ = ProxyService::CreateFixed(no_proxy);
+ ssl_config_service_ = new SSLConfigServiceDefaults;
+
+ scoped_refptr<HttpNetworkSession> network_session(
+ new HttpNetworkSession(
+ host_resolver_,
+ cert_verifier_,
+ NULL /* dnsrr_resolver */,
+ NULL /* dns_cert_checker */,
+ NULL /* ssl_host_info_factory */,
+ proxy_service_,
+ ClientSocketFactory::GetDefaultFactory(),
+ ssl_config_service_,
+ new SpdySessionPool(NULL),
+ NULL,
+ NULL,
+ NULL));
+ http_transaction_factory_ = new HttpCache(
+ network_session,
+ HttpCache::DefaultBackend::InMemory(0));
}
private:
@@ -59,9 +77,6 @@ class RequestContext : public net::URLRequestContext {
}
};
-// Required to be in net namespace by FRIEND_TEST.
-namespace net {
-
// Get a file:// url relative to net/data/proxy/proxy_script_fetcher_unittest.
GURL GetTestFileUrl(const std::string& relpath) {
FilePath path;
@@ -73,6 +88,8 @@ GURL GetTestFileUrl(const std::string& relpath) {
return GURL(base_url.spec() + "/" + relpath);
}
+} // namespace
+
class ProxyScriptFetcherImplTest : public PlatformTest {
public:
ProxyScriptFetcherImplTest()
diff --git a/net/spdy/spdy_test_util.cc b/net/spdy/spdy_test_util.cc
index 07a5980..e7bde0a 100644
--- a/net/spdy/spdy_test_util.cc
+++ b/net/spdy/spdy_test_util.cc
@@ -9,6 +9,7 @@
#include "base/basictypes.h"
#include "base/string_number_conversions.h"
#include "base/string_util.h"
+#include "net/http/http_network_session.h"
#include "net/http/http_network_transaction.h"
#include "net/spdy/spdy_framer.h"
@@ -924,20 +925,22 @@ SpdyURLRequestContext::SpdyURLRequestContext() {
ssl_config_service_ = new SSLConfigServiceDefaults;
http_auth_handler_factory_ = HttpAuthHandlerFactory::CreateDefault(
host_resolver_);
+ scoped_refptr<HttpNetworkSession> network_session(
+ new HttpNetworkSession(
+ host_resolver_,
+ cert_verifier_,
+ NULL /* dnsrr_resolver */,
+ NULL /* dns_cert_checker */,
+ NULL /* ssl_host_info_factory */,
+ proxy_service_,
+ &socket_factory_,
+ ssl_config_service_,
+ new SpdySessionPool(NULL),
+ http_auth_handler_factory_,
+ network_delegate_,
+ NULL /* net_log */));
http_transaction_factory_ = new HttpCache(
- new HttpNetworkLayer(&socket_factory_,
- host_resolver_,
- cert_verifier_,
- NULL /* dnsrr_resolver */,
- NULL /* dns_cert_checker */,
- NULL /* ssl_host_info_factory */,
- proxy_service_,
- ssl_config_service_,
- new SpdySessionPool(NULL),
- http_auth_handler_factory_,
- network_delegate_,
- NULL),
- NULL /* net_log */,
+ network_session,
HttpCache::DefaultBackend::InMemory(0));
}
diff --git a/net/tools/fetch/fetch_client.cc b/net/tools/fetch/fetch_client.cc
index 0d9682f..8ba7534 100644
--- a/net/tools/fetch/fetch_client.cc
+++ b/net/tools/fetch/fetch_client.cc
@@ -20,10 +20,12 @@
#include "net/http/http_auth_handler_factory.h"
#include "net/http/http_cache.h"
#include "net/http/http_network_layer.h"
+#include "net/http/http_network_session.h"
#include "net/http/http_request_info.h"
#include "net/http/http_transaction.h"
#include "net/proxy/proxy_service.h"
#include "net/socket/client_socket_factory.h"
+#include "net/spdy/spdy_session_pool.h"
void usage(const char* program_name) {
printf("usage: %s --url=<url> [--n=<clients>] [--stats] [--use_cache]\n",
@@ -149,24 +151,25 @@ int main(int argc, char**argv) {
net::HttpTransactionFactory* factory = NULL;
scoped_ptr<net::HttpAuthHandlerFactory> http_auth_handler_factory(
net::HttpAuthHandlerFactory::CreateDefault(host_resolver.get()));
+ scoped_refptr<net::HttpNetworkSession> network_session(
+ new net::HttpNetworkSession(
+ host_resolver.get(),
+ cert_verifier.get(),
+ NULL /* dnsrr_resolver */,
+ NULL /* dns_cert_checker */,
+ NULL /* ssl_host_info_factory */,
+ proxy_service,
+ net::ClientSocketFactory::GetDefaultFactory(),
+ ssl_config_service,
+ new net::SpdySessionPool(NULL),
+ http_auth_handler_factory.get(),
+ NULL,
+ NULL));
if (use_cache) {
- factory = new net::HttpCache(host_resolver.get(), cert_verifier.get(),
- NULL, NULL, proxy_service, ssl_config_service,
- http_auth_handler_factory.get(), NULL, NULL,
- net::HttpCache::DefaultBackend::InMemory(0));
+ factory = new net::HttpCache(network_session,
+ net::HttpCache::DefaultBackend::InMemory(0));
} else {
- factory = new net::HttpNetworkLayer(
- net::ClientSocketFactory::GetDefaultFactory(),
- host_resolver.get(),
- cert_verifier.get(),
- NULL /* dnsrr_resolver */,
- NULL /* dns_cert_checker */,
- NULL /* ssl_host_info_factory */,
- proxy_service,
- ssl_config_service,
- http_auth_handler_factory.get(),
- NULL,
- NULL);
+ factory = new net::HttpNetworkLayer(network_session);
}
{
diff --git a/net/url_request/url_request_test_util.cc b/net/url_request/url_request_test_util.cc
index 099810a..5053f35 100644
--- a/net/url_request/url_request_test_util.cc
+++ b/net/url_request/url_request_test_util.cc
@@ -7,6 +7,9 @@
#include "base/logging.h"
#include "base/message_loop.h"
#include "base/threading/thread.h"
+#include "net/http/http_network_session.h"
+#include "net/socket/client_socket_factory.h"
+#include "net/spdy/spdy_session_pool.h"
TestCookiePolicy::TestCookiePolicy(int options_bit_mask)
: ALLOW_THIS_IN_INITIALIZER_LIST(method_factory_(this)),
@@ -110,17 +113,19 @@ void TestURLRequestContext::Init() {
http_auth_handler_factory_ = net::HttpAuthHandlerFactory::CreateDefault(
host_resolver_);
http_transaction_factory_ = new net::HttpCache(
- net::HttpNetworkLayer::CreateFactory(host_resolver_,
- cert_verifier_,
- NULL /* dnsrr_resolver */,
- NULL /* dns_cert_checker */,
- NULL /* ssl_host_info_factory */,
- proxy_service_,
- ssl_config_service_,
- http_auth_handler_factory_,
- network_delegate_,
- NULL),
- NULL /* net_log */,
+ new net::HttpNetworkSession(
+ host_resolver_,
+ cert_verifier_,
+ NULL /* dnsrr_resolver */,
+ NULL /* dns_cert_checker */,
+ NULL /* ssl_host_info_factory */,
+ proxy_service_,
+ net::ClientSocketFactory::GetDefaultFactory(),
+ ssl_config_service_,
+ new net::SpdySessionPool(ssl_config_service_),
+ http_auth_handler_factory_,
+ network_delegate_,
+ NULL),
net::HttpCache::DefaultBackend::InMemory(0));
// In-memory cookie store.
cookie_store_ = new net::CookieMonster(NULL, NULL);