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_; |