diff options
author | ericroman@google.com <ericroman@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-06-12 00:49:38 +0000 |
---|---|---|
committer | ericroman@google.com <ericroman@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-06-12 00:49:38 +0000 |
commit | 8a00f00ab5d68ffcc998fd04d2ca343af7cdf190 (patch) | |
tree | fd464ba49db4271c76c1cf8f769a22120ad631af /net/http/http_network_session.h | |
parent | 77ae132c1bfdd986228b6f1c0d8c63baa441afdf (diff) | |
download | chromium_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.h | 8 |
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. |