| 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:
|
|
|