Chromium Code Reviews| Index: net/proxy/mock_proxy_resolver.h |
| diff --git a/net/proxy/mock_proxy_resolver.h b/net/proxy/mock_proxy_resolver.h |
| index 9ed3348b3fae072f04a04a101e3d3c0bcfeee85f..49ded59bdf2d84babd847876789c84de22201399 100644 |
| --- a/net/proxy/mock_proxy_resolver.h |
| +++ b/net/proxy/mock_proxy_resolver.h |
| @@ -21,26 +21,26 @@ class MessageLoop; |
| namespace net { |
| // Asynchronous mock proxy resolver. All requests complete asynchronously, |
| -// user must call Request::CompleteNow() on a pending request to signal it. |
| +// user must call Job::CompleteNow() on a pending request to signal it. |
| class MockAsyncProxyResolver : public ProxyResolver { |
| public: |
| - class Request : public base::RefCounted<Request> { |
| + class Job : public base::RefCounted<Job> { |
|
eroman
2016/02/25 17:53:44
Based on our understanding of the failure, this ca
|
| public: |
| - Request(MockAsyncProxyResolver* resolver, |
| - const GURL& url, |
| - ProxyInfo* results, |
| - const CompletionCallback& callback); |
| + Job(MockAsyncProxyResolver* resolver, |
| + const GURL& url, |
| + ProxyInfo* results, |
| + const CompletionCallback& callback); |
| const GURL& url() const { return url_; } |
| ProxyInfo* results() const { return results_; } |
| const CompletionCallback& callback() const { return callback_; } |
| + MockAsyncProxyResolver* Resolver() const { return resolver_; }; |
| void CompleteNow(int rv); |
| private: |
| - friend class base::RefCounted<Request>; |
| - |
| - virtual ~Request(); |
| + virtual ~Job(); |
|
eroman
2016/02/25 17:53:44
No need for this to be virtual.
|
| + friend class base::RefCounted<Job>; |
| MockAsyncProxyResolver* resolver_; |
| const GURL url_; |
| @@ -49,7 +49,20 @@ class MockAsyncProxyResolver : public ProxyResolver { |
| base::MessageLoop* origin_loop_; |
| }; |
| - typedef std::vector<scoped_refptr<Request> > RequestsList; |
| + class RequestImpl : public ProxyResolver::Request { |
| + public: |
| + explicit RequestImpl(scoped_refptr<Job> job); |
| + |
| + ~RequestImpl() override; |
| + |
| + LoadState GetLoadState() override; |
| + |
| + private: |
| + // TODO This should be scoped_ptr but windows compiler have some bug. |
|
eroman
2016/02/25 17:53:44
Remove this comment.
The problem as described in
|
| + // Probably this: https://support.microsoft.com/en-us/kb/121216 |
| + // Error was `scalar deleting destructor' |
| + scoped_refptr<Job> job_; |
| + }; |
| MockAsyncProxyResolver(); |
| ~MockAsyncProxyResolver() override; |
| @@ -58,23 +71,20 @@ class MockAsyncProxyResolver : public ProxyResolver { |
| int GetProxyForURL(const GURL& url, |
| ProxyInfo* results, |
| const CompletionCallback& callback, |
| - RequestHandle* request_handle, |
| + scoped_ptr<Request>* request, |
| const BoundNetLog& /*net_log*/) override; |
| - void CancelRequest(RequestHandle request_handle) override; |
| - LoadState GetLoadState(RequestHandle request_handle) const override; |
| - const RequestsList& pending_requests() const { |
| - return pending_requests_; |
| - } |
| + const std::vector<Job*>& pending_jobs() const { return pending_jobs_; } |
| - const RequestsList& cancelled_requests() const { |
| - return cancelled_requests_; |
| + const std::vector<scoped_refptr<Job>>& cancelled_jobs() const { |
| + return cancelled_jobs_; |
| } |
| - void RemovePendingRequest(Request* request); |
| + void AddCancelledJob(scoped_refptr<Job> job); |
| + void RemovePendingJob(Job* job); |
| private: |
| - RequestsList pending_requests_; |
| - RequestsList cancelled_requests_; |
| + std::vector<Job*> pending_jobs_; |
| + std::vector<scoped_refptr<Job>> cancelled_jobs_; |
| }; |
| // Asynchronous mock proxy resolver factory . All requests complete |
| @@ -151,10 +161,8 @@ class ForwardingProxyResolver : public ProxyResolver { |
| int GetProxyForURL(const GURL& query_url, |
| ProxyInfo* results, |
| const CompletionCallback& callback, |
| - RequestHandle* request, |
| + scoped_ptr<Request>* request, |
| const BoundNetLog& net_log) override; |
| - void CancelRequest(RequestHandle request) override; |
| - LoadState GetLoadState(RequestHandle request) const override; |
| private: |
| ProxyResolver* impl_; |