Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(109)

Unified Diff: net/proxy/mock_proxy_resolver.h

Issue 1439053002: Change ProxyResolver::GetProxyForURL() to take a scoped_ptr<Request>* rather than a RequestHandle* (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Last fixes Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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_;

Powered by Google App Engine
This is Rietveld 408576698