OLD | NEW |
1 // Copyright (c) 2008 The Chromium Authors. All rights reserved. Use of this | 1 // Copyright (c) 2008 The Chromium Authors. All rights reserved. Use of this |
2 // source code is governed by a BSD-style license that can be found in the | 2 // source code is governed by a BSD-style license that can be found in the |
3 // LICENSE file. | 3 // LICENSE file. |
4 | 4 |
5 #include "net/proxy/proxy_script_fetcher.h" | 5 #include "net/proxy/proxy_script_fetcher.h" |
6 | 6 |
7 #include "base/compiler_specific.h" | 7 #include "base/compiler_specific.h" |
8 #include "base/logging.h" | 8 #include "base/logging.h" |
9 #include "base/message_loop.h" | 9 #include "base/message_loop.h" |
10 #include "base/ref_counted.h" | 10 #include "base/ref_counted.h" |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
50 public: | 50 public: |
51 // Creates a ProxyScriptFetcher that issues requests through | 51 // Creates a ProxyScriptFetcher that issues requests through |
52 // |url_request_context|. |url_request_context| must remain valid for the | 52 // |url_request_context|. |url_request_context| must remain valid for the |
53 // lifetime of ProxyScriptFetcherImpl. | 53 // lifetime of ProxyScriptFetcherImpl. |
54 explicit ProxyScriptFetcherImpl(URLRequestContext* url_request_context); | 54 explicit ProxyScriptFetcherImpl(URLRequestContext* url_request_context); |
55 | 55 |
56 virtual ~ProxyScriptFetcherImpl(); | 56 virtual ~ProxyScriptFetcherImpl(); |
57 | 57 |
58 // ProxyScriptFetcher methods: | 58 // ProxyScriptFetcher methods: |
59 | 59 |
60 virtual void Fetch(const GURL& url, std::string* bytes, | 60 virtual int Fetch(const GURL& url, std::string* bytes, |
61 CompletionCallback* callback); | 61 CompletionCallback* callback); |
62 virtual void Cancel(); | 62 virtual void Cancel(); |
63 | 63 |
64 // URLRequest::Delegate methods: | 64 // URLRequest::Delegate methods: |
65 | 65 |
66 virtual void OnAuthRequired(URLRequest* request, | 66 virtual void OnAuthRequired(URLRequest* request, |
67 AuthChallengeInfo* auth_info); | 67 AuthChallengeInfo* auth_info); |
68 virtual void OnSSLCertificateError(URLRequest* request, int cert_error, | 68 virtual void OnSSLCertificateError(URLRequest* request, int cert_error, |
69 X509Certificate* cert); | 69 X509Certificate* cert); |
70 virtual void OnResponseStarted(URLRequest* request); | 70 virtual void OnResponseStarted(URLRequest* request); |
71 virtual void OnReadCompleted(URLRequest* request, int num_bytes); | 71 virtual void OnReadCompleted(URLRequest* request, int num_bytes); |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
130 result_code_(OK), | 130 result_code_(OK), |
131 result_bytes_(NULL) { | 131 result_bytes_(NULL) { |
132 DCHECK(url_request_context); | 132 DCHECK(url_request_context); |
133 } | 133 } |
134 | 134 |
135 ProxyScriptFetcherImpl::~ProxyScriptFetcherImpl() { | 135 ProxyScriptFetcherImpl::~ProxyScriptFetcherImpl() { |
136 // The URLRequest's destructor will cancel the outstanding request, and | 136 // The URLRequest's destructor will cancel the outstanding request, and |
137 // ensure that the delegate (this) is not called again. | 137 // ensure that the delegate (this) is not called again. |
138 } | 138 } |
139 | 139 |
140 void ProxyScriptFetcherImpl::Fetch(const GURL& url, | 140 int ProxyScriptFetcherImpl::Fetch(const GURL& url, |
141 std::string* bytes, | 141 std::string* bytes, |
142 CompletionCallback* callback) { | 142 CompletionCallback* callback) { |
143 // It is invalid to call Fetch() while a request is already in progress. | 143 // It is invalid to call Fetch() while a request is already in progress. |
144 DCHECK(!cur_request_.get()); | 144 DCHECK(!cur_request_.get()); |
145 | 145 |
146 DCHECK(callback); | 146 DCHECK(callback); |
147 DCHECK(bytes); | 147 DCHECK(bytes); |
148 | 148 |
149 cur_request_.reset(new URLRequest(url, this)); | 149 cur_request_.reset(new URLRequest(url, this)); |
150 cur_request_->set_context(url_request_context_); | 150 cur_request_->set_context(url_request_context_); |
151 cur_request_->set_method("GET"); | 151 cur_request_->set_method("GET"); |
152 | 152 |
(...skipping 11 matching lines...) Expand all Loading... |
164 | 164 |
165 // Post a task to timeout this request if it takes too long. | 165 // Post a task to timeout this request if it takes too long. |
166 cur_request_id_ = ++next_id_; | 166 cur_request_id_ = ++next_id_; |
167 MessageLoop::current()->PostDelayedTask(FROM_HERE, | 167 MessageLoop::current()->PostDelayedTask(FROM_HERE, |
168 task_factory_.NewRunnableMethod(&ProxyScriptFetcherImpl::OnTimeout, | 168 task_factory_.NewRunnableMethod(&ProxyScriptFetcherImpl::OnTimeout, |
169 cur_request_id_), | 169 cur_request_id_), |
170 static_cast<int>(max_duration_ms)); | 170 static_cast<int>(max_duration_ms)); |
171 | 171 |
172 // Start the request. | 172 // Start the request. |
173 cur_request_->Start(); | 173 cur_request_->Start(); |
| 174 return ERR_IO_PENDING; |
174 } | 175 } |
175 | 176 |
176 void ProxyScriptFetcherImpl::Cancel() { | 177 void ProxyScriptFetcherImpl::Cancel() { |
177 // ResetCurRequestState will free the URLRequest, which will cause | 178 // ResetCurRequestState will free the URLRequest, which will cause |
178 // cancellation. | 179 // cancellation. |
179 ResetCurRequestState(); | 180 ResetCurRequestState(); |
180 } | 181 } |
181 | 182 |
182 void ProxyScriptFetcherImpl::OnAuthRequired(URLRequest* request, | 183 void ProxyScriptFetcherImpl::OnAuthRequired(URLRequest* request, |
183 AuthChallengeInfo* auth_info) { | 184 AuthChallengeInfo* auth_info) { |
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
318 } | 319 } |
319 | 320 |
320 // static | 321 // static |
321 size_t ProxyScriptFetcher::SetSizeConstraintForUnittest(size_t size_bytes) { | 322 size_t ProxyScriptFetcher::SetSizeConstraintForUnittest(size_t size_bytes) { |
322 size_t prev = max_response_bytes; | 323 size_t prev = max_response_bytes; |
323 max_response_bytes = size_bytes; | 324 max_response_bytes = size_bytes; |
324 return prev; | 325 return prev; |
325 } | 326 } |
326 | 327 |
327 } // namespace net | 328 } // namespace net |
OLD | NEW |