summaryrefslogtreecommitdiffstats
path: root/net/proxy/mojo_proxy_resolver_impl.cc
diff options
context:
space:
mode:
Diffstat (limited to 'net/proxy/mojo_proxy_resolver_impl.cc')
-rw-r--r--net/proxy/mojo_proxy_resolver_impl.cc10
1 files changed, 7 insertions, 3 deletions
diff --git a/net/proxy/mojo_proxy_resolver_impl.cc b/net/proxy/mojo_proxy_resolver_impl.cc
index 46b91a4..bbac2e72 100644
--- a/net/proxy/mojo_proxy_resolver_impl.cc
+++ b/net/proxy/mojo_proxy_resolver_impl.cc
@@ -40,7 +40,7 @@ class MojoProxyResolverImpl::Job {
interfaces::ProxyResolverRequestClientPtr client_;
ProxyInfo result_;
GURL url_;
- scoped_ptr<net::ProxyResolver::Request> request_;
+ net::ProxyResolver::RequestHandle request_handle_;
bool done_;
DISALLOW_COPY_AND_ASSIGN(Job);
@@ -77,14 +77,18 @@ MojoProxyResolverImpl::Job::Job(
: resolver_(resolver),
client_(std::move(client)),
url_(url),
+ request_handle_(nullptr),
done_(false) {}
-MojoProxyResolverImpl::Job::~Job() {}
+MojoProxyResolverImpl::Job::~Job() {
+ if (request_handle_ && !done_)
+ resolver_->resolver_->CancelRequest(request_handle_);
+}
void MojoProxyResolverImpl::Job::Start() {
resolver_->resolver_->GetProxyForURL(
url_, &result_, base::Bind(&Job::GetProxyDone, base::Unretained(this)),
- &request_,
+ &request_handle_,
make_scoped_ptr(new MojoProxyResolverV8TracingBindings<
interfaces::ProxyResolverRequestClient>(client_.get())));
client_.set_connection_error_handler(base::Bind(