summaryrefslogtreecommitdiffstats
path: root/net/proxy/proxy_resolver_v8_tracing.cc
diff options
context:
space:
mode:
Diffstat (limited to 'net/proxy/proxy_resolver_v8_tracing.cc')
-rw-r--r--net/proxy/proxy_resolver_v8_tracing.cc47
1 files changed, 17 insertions, 30 deletions
diff --git a/net/proxy/proxy_resolver_v8_tracing.cc b/net/proxy/proxy_resolver_v8_tracing.cc
index 9375969..dd2fe40 100644
--- a/net/proxy/proxy_resolver_v8_tracing.cc
+++ b/net/proxy/proxy_resolver_v8_tracing.cc
@@ -311,18 +311,10 @@ class ProxyResolverV8TracingImpl : public ProxyResolverV8Tracing,
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 @@ void Job::Cancel() {
// 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 @@ ProxyResolverV8TracingImpl::~ProxyResolverV8TracingImpl() {
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: