Index: net/proxy/proxy_resolver_v8_tracing.cc |
diff --git a/net/proxy/proxy_resolver_v8_tracing.cc b/net/proxy/proxy_resolver_v8_tracing.cc |
index 27cf5f7b78807242209c143d50ea2f00c99eb17b..8de26b1213bcd6a25cabd1a89d5c2096197b2c7d 100644 |
--- a/net/proxy/proxy_resolver_v8_tracing.cc |
+++ b/net/proxy/proxy_resolver_v8_tracing.cc |
@@ -309,10 +309,18 @@ class ProxyResolverV8TracingImpl : public ProxyResolverV8Tracing, |
void GetProxyForURL(const GURL& url, |
ProxyInfo* results, |
const CompletionCallback& callback, |
- ProxyResolver::RequestHandle* request, |
+ scoped_ptr<ProxyResolver::Request>* request, |
scoped_ptr<Bindings> bindings) override; |
- void CancelRequest(ProxyResolver::RequestHandle request) override; |
- LoadState GetLoadState(ProxyResolver::RequestHandle request) const override; |
+ |
+ class RequestImpl : public ProxyResolverV8Tracing::Request { |
+ public: |
+ RequestImpl(Job* job); |
+ ~RequestImpl() override; |
+ LoadState GetLoadState() override; |
+ |
+ private: |
+ Job* job_; |
+ }; |
private: |
// The worker thread on which the ProxyResolverV8 will be run. |
@@ -932,11 +940,21 @@ ProxyResolverV8TracingImpl::~ProxyResolverV8TracingImpl() { |
thread_.reset(); |
} |
+ProxyResolverV8TracingImpl::RequestImpl::RequestImpl(Job* job) : job_(job) {} |
+ |
+ProxyResolverV8TracingImpl::RequestImpl::~RequestImpl() { |
+ job_->Cancel(); |
+} |
+ |
+LoadState ProxyResolverV8TracingImpl::RequestImpl::GetLoadState() { |
+ return job_->GetLoadState(); |
+} |
+ |
void ProxyResolverV8TracingImpl::GetProxyForURL( |
const GURL& url, |
ProxyInfo* results, |
const CompletionCallback& callback, |
- ProxyResolver::RequestHandle* request, |
+ scoped_ptr<ProxyResolver::Request>* request, |
scoped_ptr<Bindings> bindings) { |
DCHECK(CalledOnValidThread()); |
DCHECK(!callback.is_null()); |
@@ -944,22 +962,11 @@ void ProxyResolverV8TracingImpl::GetProxyForURL( |
scoped_refptr<Job> job = new Job(job_params_.get(), bindings.Pass()); |
if (request) |
- *request = job.get(); |
+ request->reset(new RequestImpl(job.get())); |
job->StartGetProxyForURL(url, results, callback); |
} |
-void ProxyResolverV8TracingImpl::CancelRequest( |
- ProxyResolver::RequestHandle request) { |
- Job* job = reinterpret_cast<Job*>(request); |
- job->Cancel(); |
-} |
- |
-LoadState ProxyResolverV8TracingImpl::GetLoadState( |
- ProxyResolver::RequestHandle request) const { |
- Job* job = reinterpret_cast<Job*>(request); |
- return job->GetLoadState(); |
-} |
class ProxyResolverV8TracingFactoryImpl : public ProxyResolverV8TracingFactory { |
public: |