diff options
Diffstat (limited to 'net/http/http_network_layer.cc')
-rw-r--r-- | net/http/http_network_layer.cc | 158 |
1 files changed, 81 insertions, 77 deletions
diff --git a/net/http/http_network_layer.cc b/net/http/http_network_layer.cc index 9a11034..975e75c 100644 --- a/net/http/http_network_layer.cc +++ b/net/http/http_network_layer.cc @@ -19,38 +19,6 @@ namespace net { //----------------------------------------------------------------------------- -// 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); - - return new HttpNetworkLayer(session); -} - -//----------------------------------------------------------------------------- HttpNetworkLayer::HttpNetworkLayer( ClientSocketFactory* socket_factory, HostResolver* host_resolver, @@ -132,56 +100,37 @@ HttpNetworkLayer::HttpNetworkLayer(HttpNetworkSession* session) HttpNetworkLayer::~HttpNetworkLayer() { } -int HttpNetworkLayer::CreateTransaction(scoped_ptr<HttpTransaction>* trans) { - if (suspended_) - return ERR_NETWORK_IO_SUSPENDED; +//----------------------------------------------------------------------------- - trans->reset(new HttpNetworkTransaction(GetSession())); - return OK; -} +// 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); -HttpCache* HttpNetworkLayer::GetCache() { - return NULL; + 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); } -void HttpNetworkLayer::Suspend(bool suspend) { - suspended_ = suspend; - - if (suspend && session_) - session_->tcp_socket_pool()->CloseIdleSockets(); -} +// static +HttpTransactionFactory* HttpNetworkLayer::CreateFactory( + HttpNetworkSession* session) { + DCHECK(session); -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_; + return new HttpNetworkLayer(session); } // static @@ -277,4 +226,59 @@ void HttpNetworkLayer::EnableSpdy(const std::string& mode) { } } } + +//----------------------------------------------------------------------------- + +int HttpNetworkLayer::CreateTransaction(scoped_ptr<HttpTransaction>* trans) { + if (suspended_) + return ERR_NETWORK_IO_SUSPENDED; + + trans->reset(new HttpNetworkTransaction(GetSession())); + return OK; +} + +HttpCache* HttpNetworkLayer::GetCache() { + return NULL; +} + +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_; +} + +void HttpNetworkLayer::Suspend(bool suspend) { + suspended_ = suspend; + + if (suspend && session_) + session_->tcp_socket_pool()->CloseIdleSockets(); +} + } // namespace net |