| 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 937596999da09dcd7685971db53ac81aa158de67..dd2fe401d5a4b5539aeab912abd10d9cee79bca4 100644
|
| --- a/net/proxy/proxy_resolver_v8_tracing.cc
|
| +++ b/net/proxy/proxy_resolver_v8_tracing.cc
|
| @@ -311,18 +311,10 @@
|
| void GetProxyForURL(const GURL& url,
|
| ProxyInfo* results,
|
| const CompletionCallback& callback,
|
| - scoped_ptr<ProxyResolver::Request>* request,
|
| + ProxyResolver::RequestHandle* request,
|
| scoped_ptr<Bindings> bindings) override;
|
| -
|
| - class RequestImpl : public ProxyResolver::Request {
|
| - public:
|
| - explicit RequestImpl(scoped_refptr<Job> job);
|
| - ~RequestImpl() override;
|
| - LoadState GetLoadState() override;
|
| -
|
| - private:
|
| - scoped_refptr<Job> job_;
|
| - };
|
| + void CancelRequest(ProxyResolver::RequestHandle request) override;
|
| + LoadState GetLoadState(ProxyResolver::RequestHandle request) const override;
|
|
|
| private:
|
| // The worker thread on which the ProxyResolverV8 will be run.
|
| @@ -391,16 +383,10 @@
|
| // posted after the DNS dependency was resolved and saved to local cache.
|
| // (f) The script execution completed entirely, and posted a task to the
|
| // origin thread to notify the caller.
|
| - // (g) The job is already completed.
|
| //
|
| // |cancelled_| is read on both the origin thread and worker thread. The
|
| // code that runs on the worker thread is littered with checks on
|
| // |cancelled_| to break out early.
|
| -
|
| - // If the job already completed, there is nothing to be cancelled.
|
| - if (callback_.is_null())
|
| - return;
|
| -
|
| cancelled_.Set();
|
|
|
| ReleaseCallback();
|
| @@ -948,33 +934,34 @@
|
| thread_.reset();
|
| }
|
|
|
| -ProxyResolverV8TracingImpl::RequestImpl::RequestImpl(scoped_refptr<Job> job)
|
| - : job_(std::move(job)) {}
|
| -
|
| -ProxyResolverV8TracingImpl::RequestImpl::~RequestImpl() {
|
| - job_->Cancel();
|
| -}
|
| -
|
| -LoadState ProxyResolverV8TracingImpl::RequestImpl::GetLoadState() {
|
| - return job_->GetLoadState();
|
| -}
|
| -
|
| void ProxyResolverV8TracingImpl::GetProxyForURL(
|
| const GURL& url,
|
| ProxyInfo* results,
|
| const CompletionCallback& callback,
|
| - scoped_ptr<ProxyResolver::Request>* request,
|
| + ProxyResolver::RequestHandle* request,
|
| scoped_ptr<Bindings> bindings) {
|
| DCHECK(CalledOnValidThread());
|
| DCHECK(!callback.is_null());
|
|
|
| scoped_refptr<Job> job = new Job(job_params_.get(), std::move(bindings));
|
|
|
| - request->reset(new RequestImpl(job));
|
| + if (request)
|
| + *request = 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:
|
|
|