diff options
author | eroman@chromium.org <eroman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-06-15 12:16:48 +0000 |
---|---|---|
committer | eroman@chromium.org <eroman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-06-15 12:16:48 +0000 |
commit | 9ef6e9e2b54707a686e22ad7ea328e8745d82ce3 (patch) | |
tree | 272ade56d9ba5dbfbe55e6be9ddf286ba9c26cab /net/proxy/proxy_resolver_js_bindings.cc | |
parent | c42bef0b1e7ec7e3d4aca4f0b27074a8c88c1c9d (diff) | |
download | chromium_src-9ef6e9e2b54707a686e22ad7ea328e8745d82ce3.zip chromium_src-9ef6e9e2b54707a686e22ad7ea328e8745d82ce3.tar.gz chromium_src-9ef6e9e2b54707a686e22ad7ea328e8745d82ce3.tar.bz2 |
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
Diffstat (limited to 'net/proxy/proxy_resolver_js_bindings.cc')
-rw-r--r-- | net/proxy/proxy_resolver_js_bindings.cc | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/net/proxy/proxy_resolver_js_bindings.cc b/net/proxy/proxy_resolver_js_bindings.cc index 18d4e9e..8eed9be 100644 --- a/net/proxy/proxy_resolver_js_bindings.cc +++ b/net/proxy/proxy_resolver_js_bindings.cc @@ -16,6 +16,7 @@ #include "net/base/sys_addrinfo.h" #include "net/proxy/proxy_resolver_error_observer.h" #include "net/proxy/proxy_resolver_request_context.h" +#include "net/proxy/sync_host_resolver.h" namespace net { @@ -65,7 +66,7 @@ class AlertNetlogParams : public NetLog::EventParameters { // ProxyResolverJSBindings implementation. class DefaultJSBindings : public ProxyResolverJSBindings { public: - DefaultJSBindings(HostResolver* host_resolver, + DefaultJSBindings(SyncHostResolver* host_resolver, NetLog* net_log, ProxyResolverErrorObserver* error_observer) : host_resolver_(host_resolver), @@ -255,9 +256,8 @@ class DefaultJSBindings : public ProxyResolverJSBindings { } } - // Otherwise ask the resolver. - int result = host_resolver_->Resolve(info, address_list, NULL, NULL, - BoundNetLog()); + // Otherwise ask the host resolver. + int result = host_resolver_->Resolve(info, address_list); // Save the result back to the per-request DNS cache. if (host_cache) { @@ -292,16 +292,17 @@ class DefaultJSBindings : public ProxyResolverJSBindings { } } - HostResolver* const host_resolver_; + scoped_ptr<SyncHostResolver> host_resolver_; NetLog* net_log_; scoped_ptr<ProxyResolverErrorObserver> error_observer_; + DISALLOW_COPY_AND_ASSIGN(DefaultJSBindings); }; } // namespace // static ProxyResolverJSBindings* ProxyResolverJSBindings::CreateDefault( - HostResolver* host_resolver, + SyncHostResolver* host_resolver, NetLog* net_log, ProxyResolverErrorObserver* error_observer) { return new DefaultJSBindings(host_resolver, net_log, error_observer); |