summaryrefslogtreecommitdiffstats
path: root/net/proxy/proxy_resolver_js_bindings.cc
diff options
context:
space:
mode:
authoreroman@chromium.org <eroman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-06-15 12:16:48 +0000
committereroman@chromium.org <eroman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-06-15 12:16:48 +0000
commit9ef6e9e2b54707a686e22ad7ea328e8745d82ce3 (patch)
tree272ade56d9ba5dbfbe55e6be9ddf286ba9c26cab /net/proxy/proxy_resolver_js_bindings.cc
parentc42bef0b1e7ec7e3d4aca4f0b27074a8c88c1c9d (diff)
downloadchromium_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.cc13
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);