From 94a0d3d91b7200e66a4d23bb49b38cae7e74f7db Mon Sep 17 00:00:00 2001 From: "ericroman@google.com" Date: Sat, 27 Jun 2009 01:50:14 +0000 Subject: Make net::HostResolver refcounted. This way it can be properly shared between the url request contexts, and the dns prefetcher, and dns observer. BUG=http://crbug.com/14664 TEST=existing unit tests. Review URL: http://codereview.chromium.org/149053 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@19451 0039d316-1c4b-4281-b951-d872f2087c98 --- net/proxy/proxy_resolver_perftest.cc | 4 +--- net/proxy/proxy_resolver_v8.cc | 2 +- net/proxy/proxy_resolver_v8_unittest.cc | 6 ++---- net/proxy/proxy_script_fetcher_unittest.cc | 1 - 4 files changed, 4 insertions(+), 9 deletions(-) (limited to 'net/proxy') diff --git a/net/proxy/proxy_resolver_perftest.cc b/net/proxy/proxy_resolver_perftest.cc index 85ad554..22f2350 100644 --- a/net/proxy/proxy_resolver_perftest.cc +++ b/net/proxy/proxy_resolver_perftest.cc @@ -185,10 +185,8 @@ TEST(ProxyResolverPerfTest, ProxyResolverMac) { #endif TEST(ProxyResolverPerfTest, ProxyResolverV8) { - net::HostResolver host_resolver; - net::ProxyResolverV8::JSBindings* js_bindings = - net::ProxyResolverV8::CreateDefaultBindings(&host_resolver, NULL); + net::ProxyResolverV8::CreateDefaultBindings(new net::HostResolver, NULL); net::ProxyResolverV8 resolver(js_bindings); PacPerfSuiteRunner runner(&resolver, "ProxyResolverV8"); diff --git a/net/proxy/proxy_resolver_v8.cc b/net/proxy/proxy_resolver_v8.cc index ad4f1eb6..6bbffec 100644 --- a/net/proxy/proxy_resolver_v8.cc +++ b/net/proxy/proxy_resolver_v8.cc @@ -103,7 +103,7 @@ class SyncHostResolverBridge event_.Signal(); } - HostResolver* host_resolver_; + scoped_refptr host_resolver_; MessageLoop* host_resolver_loop_; // Event to notify completion of resolve request. diff --git a/net/proxy/proxy_resolver_v8_unittest.cc b/net/proxy/proxy_resolver_v8_unittest.cc index 0e8ba47..7fab7d7 100644 --- a/net/proxy/proxy_resolver_v8_unittest.cc +++ b/net/proxy/proxy_resolver_v8_unittest.cc @@ -378,9 +378,8 @@ TEST(ProxyResolverV8Test, V8Bindings) { TEST(ProxyResolverV8DefaultBindingsTest, DnsResolve) { // Get a hold of a DefaultJSBindings* (it is a hidden impl class). - net::HostResolver host_resolver; scoped_ptr bindings( - net::ProxyResolverV8::CreateDefaultBindings(&host_resolver, NULL)); + net::ProxyResolverV8::CreateDefaultBindings(new net::HostResolver, NULL)); // Considered an error. EXPECT_EQ("", bindings->DnsResolve("")); @@ -430,9 +429,8 @@ TEST(ProxyResolverV8DefaultBindingsTest, DnsResolve) { TEST(ProxyResolverV8DefaultBindingsTest, MyIpAddress) { // Get a hold of a DefaultJSBindings* (it is a hidden impl class). - net::HostResolver host_resolver; scoped_ptr bindings( - net::ProxyResolverV8::CreateDefaultBindings(&host_resolver, NULL)); + net::ProxyResolverV8::CreateDefaultBindings(new net::HostResolver, NULL)); // Our ip address is always going to be 127.0.0.1, since we are using a // mock host mapper when running in unit-test mode. diff --git a/net/proxy/proxy_script_fetcher_unittest.cc b/net/proxy/proxy_script_fetcher_unittest.cc index 5b16738b..8a7cfb5 100644 --- a/net/proxy/proxy_script_fetcher_unittest.cc +++ b/net/proxy/proxy_script_fetcher_unittest.cc @@ -41,7 +41,6 @@ class RequestContext : public URLRequestContext { ~RequestContext() { delete http_transaction_factory_; delete proxy_service_; - delete host_resolver_; } }; -- cgit v1.1