OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "content/browser/renderer_host/resource_dispatcher_host_impl.h" | 5 #include "content/browser/renderer_host/resource_dispatcher_host_impl.h" |
6 | 6 |
7 #include <vector> | 7 #include <vector> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/file_path.h" | 10 #include "base/file_path.h" |
(...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
202 private: | 202 private: |
203 IPC::Sender* dest_; | 203 IPC::Sender* dest_; |
204 | 204 |
205 DISALLOW_COPY_AND_ASSIGN(ForwardingFilter); | 205 DISALLOW_COPY_AND_ASSIGN(ForwardingFilter); |
206 }; | 206 }; |
207 | 207 |
208 // This class is a variation on URLRequestTestJob in that it does | 208 // This class is a variation on URLRequestTestJob in that it does |
209 // not complete start upon entry, only when specifically told to. | 209 // not complete start upon entry, only when specifically told to. |
210 class URLRequestTestDelayedStartJob : public net::URLRequestTestJob { | 210 class URLRequestTestDelayedStartJob : public net::URLRequestTestJob { |
211 public: | 211 public: |
212 URLRequestTestDelayedStartJob(net::URLRequest* request) | 212 URLRequestTestDelayedStartJob(net::URLRequest* request, |
213 : net::URLRequestTestJob(request) { | 213 net::NetworkDelegate* network_delegate) |
214 Init(); | 214 : net::URLRequestTestJob(request, network_delegate) { |
215 } | |
216 URLRequestTestDelayedStartJob(net::URLRequest* request, bool auto_advance) | |
217 : net::URLRequestTestJob(request, auto_advance) { | |
218 Init(); | 215 Init(); |
219 } | 216 } |
220 URLRequestTestDelayedStartJob(net::URLRequest* request, | 217 URLRequestTestDelayedStartJob(net::URLRequest* request, |
| 218 net::NetworkDelegate* network_delegate, |
| 219 bool auto_advance) |
| 220 : net::URLRequestTestJob(request, network_delegate, auto_advance) { |
| 221 Init(); |
| 222 } |
| 223 URLRequestTestDelayedStartJob(net::URLRequest* request, |
| 224 net::NetworkDelegate* network_delegate, |
221 const std::string& response_headers, | 225 const std::string& response_headers, |
222 const std::string& response_data, | 226 const std::string& response_data, |
223 bool auto_advance) | 227 bool auto_advance) |
224 : net::URLRequestTestJob( | 228 : net::URLRequestTestJob(request, |
225 request, response_headers, response_data, auto_advance) { | 229 network_delegate, |
| 230 response_headers, |
| 231 response_data, |
| 232 auto_advance) { |
226 Init(); | 233 Init(); |
227 } | 234 } |
228 | 235 |
229 // Do nothing until you're told to. | 236 // Do nothing until you're told to. |
230 virtual void Start() {} | 237 virtual void Start() {} |
231 | 238 |
232 // Finish starting a URL request whose job is an instance of | 239 // Finish starting a URL request whose job is an instance of |
233 // URLRequestTestDelayedStartJob. It is illegal to call this routine | 240 // URLRequestTestDelayedStartJob. It is illegal to call this routine |
234 // with a URLRequest that does not use URLRequestTestDelayedStartJob. | 241 // with a URLRequest that does not use URLRequestTestDelayedStartJob. |
235 static void CompleteStart(net::URLRequest* request) { | 242 static void CompleteStart(net::URLRequest* request) { |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
279 URLRequestTestDelayedStartJob* next_; | 286 URLRequestTestDelayedStartJob* next_; |
280 }; | 287 }; |
281 | 288 |
282 URLRequestTestDelayedStartJob* | 289 URLRequestTestDelayedStartJob* |
283 URLRequestTestDelayedStartJob::list_head_ = NULL; | 290 URLRequestTestDelayedStartJob::list_head_ = NULL; |
284 | 291 |
285 // This class is a variation on URLRequestTestJob in that it | 292 // This class is a variation on URLRequestTestJob in that it |
286 // returns IO_pending errors before every read, not just the first one. | 293 // returns IO_pending errors before every read, not just the first one. |
287 class URLRequestTestDelayedCompletionJob : public net::URLRequestTestJob { | 294 class URLRequestTestDelayedCompletionJob : public net::URLRequestTestJob { |
288 public: | 295 public: |
289 explicit URLRequestTestDelayedCompletionJob(net::URLRequest* request) | |
290 : net::URLRequestTestJob(request) {} | |
291 URLRequestTestDelayedCompletionJob(net::URLRequest* request, | 296 URLRequestTestDelayedCompletionJob(net::URLRequest* request, |
| 297 net::NetworkDelegate* network_delegate) |
| 298 : net::URLRequestTestJob(request, network_delegate) {} |
| 299 URLRequestTestDelayedCompletionJob(net::URLRequest* request, |
| 300 net::NetworkDelegate* network_delegate, |
292 bool auto_advance) | 301 bool auto_advance) |
293 : net::URLRequestTestJob(request, auto_advance) {} | 302 : net::URLRequestTestJob(request, network_delegate, auto_advance) {} |
294 URLRequestTestDelayedCompletionJob(net::URLRequest* request, | 303 URLRequestTestDelayedCompletionJob(net::URLRequest* request, |
| 304 net::NetworkDelegate* network_delegate, |
295 const std::string& response_headers, | 305 const std::string& response_headers, |
296 const std::string& response_data, | 306 const std::string& response_data, |
297 bool auto_advance) | 307 bool auto_advance) |
298 : net::URLRequestTestJob(request, response_headers, | 308 : net::URLRequestTestJob(request, |
299 response_data, auto_advance) {} | 309 network_delegate, |
| 310 response_headers, |
| 311 response_data, |
| 312 auto_advance) {} |
300 | 313 |
301 protected: | 314 protected: |
302 ~URLRequestTestDelayedCompletionJob() {} | 315 ~URLRequestTestDelayedCompletionJob() {} |
303 | 316 |
304 private: | 317 private: |
305 virtual bool NextReadAsync() OVERRIDE { return true; } | 318 virtual bool NextReadAsync() OVERRIDE { return true; } |
306 }; | 319 }; |
307 | 320 |
308 class URLRequestBigJob : public net::URLRequestSimpleJob { | 321 class URLRequestBigJob : public net::URLRequestSimpleJob { |
309 public: | 322 public: |
310 URLRequestBigJob(net::URLRequest* request) | 323 URLRequestBigJob(net::URLRequest* request, |
311 : net::URLRequestSimpleJob(request) { | 324 net::NetworkDelegate* network_delegate) |
| 325 : net::URLRequestSimpleJob(request, network_delegate) { |
312 } | 326 } |
313 | 327 |
314 virtual int GetData(std::string* mime_type, | 328 virtual int GetData(std::string* mime_type, |
315 std::string* charset, | 329 std::string* charset, |
316 std::string* data, | 330 std::string* data, |
317 const net::CompletionCallback& callback) const OVERRIDE { | 331 const net::CompletionCallback& callback) const OVERRIDE { |
318 *mime_type = "text/plain"; | 332 *mime_type = "text/plain"; |
319 *charset = "UTF-8"; | 333 *charset = "UTF-8"; |
320 | 334 |
321 std::string text; | 335 std::string text; |
(...skipping 235 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
557 DCHECK(scheme_.empty()); | 571 DCHECK(scheme_.empty()); |
558 DCHECK(!old_factory_); | 572 DCHECK(!old_factory_); |
559 scheme_ = scheme; | 573 scheme_ = scheme; |
560 old_factory_ = net::URLRequest::Deprecated::RegisterProtocolFactory( | 574 old_factory_ = net::URLRequest::Deprecated::RegisterProtocolFactory( |
561 scheme_, &ResourceDispatcherHostTest::Factory); | 575 scheme_, &ResourceDispatcherHostTest::Factory); |
562 EnsureSchemeIsAllowed(scheme); | 576 EnsureSchemeIsAllowed(scheme); |
563 } | 577 } |
564 | 578 |
565 // Our own net::URLRequestJob factory. | 579 // Our own net::URLRequestJob factory. |
566 static net::URLRequestJob* Factory(net::URLRequest* request, | 580 static net::URLRequestJob* Factory(net::URLRequest* request, |
| 581 net::NetworkDelegate* network_delegate, |
567 const std::string& scheme) { | 582 const std::string& scheme) { |
568 if (test_fixture_->response_headers_.empty()) { | 583 if (test_fixture_->response_headers_.empty()) { |
569 if (delay_start_) { | 584 if (delay_start_) { |
570 return new URLRequestTestDelayedStartJob(request); | 585 return new URLRequestTestDelayedStartJob(request, network_delegate); |
571 } else if (delay_complete_) { | 586 } else if (delay_complete_) { |
572 return new URLRequestTestDelayedCompletionJob(request); | 587 return new URLRequestTestDelayedCompletionJob(request, |
| 588 network_delegate); |
573 } else if (scheme == "big-job") { | 589 } else if (scheme == "big-job") { |
574 return new URLRequestBigJob(request); | 590 return new URLRequestBigJob(request, network_delegate); |
575 } else { | 591 } else { |
576 return new net::URLRequestTestJob(request); | 592 return new net::URLRequestTestJob(request, network_delegate); |
577 } | 593 } |
578 } else { | 594 } else { |
579 if (delay_start_) { | 595 if (delay_start_) { |
580 return new URLRequestTestDelayedStartJob( | 596 return new URLRequestTestDelayedStartJob( |
581 request, test_fixture_->response_headers_, | 597 request, network_delegate, |
582 test_fixture_->response_data_, false); | 598 test_fixture_->response_headers_, test_fixture_->response_data_, |
| 599 false); |
583 } else if (delay_complete_) { | 600 } else if (delay_complete_) { |
584 return new URLRequestTestDelayedCompletionJob( | 601 return new URLRequestTestDelayedCompletionJob( |
585 request, test_fixture_->response_headers_, | 602 request, network_delegate, |
586 test_fixture_->response_data_, false); | 603 test_fixture_->response_headers_, test_fixture_->response_data_, |
| 604 false); |
587 } else { | 605 } else { |
588 return new net::URLRequestTestJob(request, | 606 return new net::URLRequestTestJob( |
589 test_fixture_->response_headers_, | 607 request, network_delegate, |
590 test_fixture_->response_data_, | 608 test_fixture_->response_headers_, test_fixture_->response_data_, |
591 false); | 609 false); |
592 } | 610 } |
593 } | 611 } |
594 } | 612 } |
595 | 613 |
596 void SetDelayedStartJobGeneration(bool delay_job_start) { | 614 void SetDelayedStartJobGeneration(bool delay_job_start) { |
597 delay_start_ = delay_job_start; | 615 delay_start_ = delay_job_start; |
598 } | 616 } |
599 | 617 |
600 void SetDelayedCompleteJobGeneration(bool delay_job_complete) { | 618 void SetDelayedCompleteJobGeneration(bool delay_job_complete) { |
601 delay_complete_ = delay_job_complete; | 619 delay_complete_ = delay_job_complete; |
(...skipping 1145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1747 } | 1765 } |
1748 | 1766 |
1749 MessageLoop::current()->RunAllPending(); | 1767 MessageLoop::current()->RunAllPending(); |
1750 | 1768 |
1751 msgs.clear(); | 1769 msgs.clear(); |
1752 accum_.GetClassifiedMessages(&msgs); | 1770 accum_.GetClassifiedMessages(&msgs); |
1753 } | 1771 } |
1754 } | 1772 } |
1755 | 1773 |
1756 } // namespace content | 1774 } // namespace content |
OLD | NEW |