summaryrefslogtreecommitdiffstats
path: root/net/http/http_network_session.h
diff options
context:
space:
mode:
authorericroman@google.com <ericroman@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-06-12 00:49:38 +0000
committerericroman@google.com <ericroman@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-06-12 00:49:38 +0000
commit8a00f00ab5d68ffcc998fd04d2ca343af7cdf190 (patch)
treefd464ba49db4271c76c1cf8f769a22120ad631af /net/http/http_network_session.h
parent77ae132c1bfdd986228b6f1c0d8c63baa441afdf (diff)
downloadchromium_src-8a00f00ab5d68ffcc998fd04d2ca343af7cdf190.zip
chromium_src-8a00f00ab5d68ffcc998fd04d2ca343af7cdf190.tar.gz
chromium_src-8a00f00ab5d68ffcc998fd04d2ca343af7cdf190.tar.bz2
* Avoid doing concurrent DNS resolves of the same hostname in HostResolver.
* Add a 1 minute cache for host resolves. * Refactor HostResolver to handle multiple requests. * Make HostResolver a dependency of URLRequestContext. operate the HostResolver in async mode for proxy resolver (bridging to IO thread). TEST=unittests BUG=13163 Review URL: http://codereview.chromium.org/118100 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18236 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/http/http_network_session.h')
-rw-r--r--net/http/http_network_session.h8
1 files changed, 6 insertions, 2 deletions
diff --git a/net/http/http_network_session.h b/net/http/http_network_session.h
index cb023a0..c7ebb3c 100644
--- a/net/http/http_network_session.h
+++ b/net/http/http_network_session.h
@@ -13,21 +13,24 @@
namespace net {
class ClientSocketFactory;
+class HostResolver;
class ProxyService;
// This class holds session objects used by HttpNetworkTransaction objects.
class HttpNetworkSession : public base::RefCounted<HttpNetworkSession> {
public:
- HttpNetworkSession(ProxyService* proxy_service,
+ HttpNetworkSession(HostResolver* host_resolver, ProxyService* proxy_service,
ClientSocketFactory* client_socket_factory)
: connection_pool_(new TCPClientSocketPool(
- max_sockets_per_group_, client_socket_factory)),
+ max_sockets_per_group_, host_resolver, client_socket_factory)),
+ host_resolver_(host_resolver),
proxy_service_(proxy_service) {
DCHECK(proxy_service);
}
HttpAuthCache* auth_cache() { return &auth_cache_; }
ClientSocketPool* connection_pool() { return connection_pool_; }
+ HostResolver* host_resolver() { return host_resolver_; }
ProxyService* proxy_service() { return proxy_service_; }
#if defined(OS_WIN)
SSLConfigService* ssl_config_service() { return &ssl_config_service_; }
@@ -43,6 +46,7 @@ class HttpNetworkSession : public base::RefCounted<HttpNetworkSession> {
HttpAuthCache auth_cache_;
scoped_refptr<ClientSocketPool> connection_pool_;
+ HostResolver* host_resolver_;
ProxyService* proxy_service_;
#if defined(OS_WIN)
// TODO(port): Port the SSLConfigService class to Linux and Mac OS X.