Remove the HostResolverImpl::Shutdown() method.
This was originally needed to avoid crashing when the HostResolverImpl was being leaked, by forcing things to a "shutdown" state.
However since HostResolverImpl is no longer reference counted, this work-around is no longer necessary.
The other place that HostResolver::Shutdown() was used, was in SyncHostResolverBridge. It overrode it to unblock synchronous host resolves and avoid deadlock during shutdown. To accomodate this user, I added a separate interface (SyncHostResolver) to expose the shutdown method.
Lastly, fixed a leak of SyncHostResolverBridge by moving ownership of the dependency into ProxyResolverJSBindings.
BUG=74572,76427,18373
Review URL: http://codereview.chromium.org/7046097
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@89167 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/net/proxy/proxy_resolver_js_bindings.h b/net/proxy/proxy_resolver_js_bindings.h
index d2a53d1..8d7e916 100644
--- a/net/proxy/proxy_resolver_js_bindings.h
+++ b/net/proxy/proxy_resolver_js_bindings.h
@@ -17,6 +17,7 @@
class NetLog;
class ProxyResolverErrorObserver;
struct ProxyResolverRequestContext;
+class SyncHostResolver;
// Interface for the javascript bindings.
class NET_TEST ProxyResolverJSBindings {
@@ -65,10 +66,10 @@
// - Send script alert()s to both VLOG(1) and the NetLog.
// - Use the provided host resolver to service dnsResolve().
//
- // Note that |host_resolver| will be used in sync mode mode.
- // Takes ownership of |error_observer| which might be NULL.
+ // Takes ownership of |host_resolver| and |error_observer| (the latter can
+ // be NULL).
static ProxyResolverJSBindings* CreateDefault(
- HostResolver* host_resolver,
+ SyncHostResolver* host_resolver,
NetLog* net_log,
ProxyResolverErrorObserver* error_observer);