| 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/loader/resource_scheduler.h" | 5 #include "content/browser/loader/resource_scheduler.h" |
| 6 | 6 |
| 7 #include "base/memory/scoped_vector.h" | 7 #include "base/memory/scoped_vector.h" |
| 8 #include "base/message_loop/message_loop.h" | 8 #include "base/message_loop/message_loop.h" |
| 9 #include "base/run_loop.h" | 9 #include "base/run_loop.h" |
| 10 #include "base/strings/string_number_conversions.h" | 10 #include "base/strings/string_number_conversions.h" |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 49 | 49 |
| 50 class TestRequest : public ResourceController { | 50 class TestRequest : public ResourceController { |
| 51 public: | 51 public: |
| 52 TestRequest(scoped_ptr<ResourceThrottle> throttle, | 52 TestRequest(scoped_ptr<ResourceThrottle> throttle, |
| 53 scoped_ptr<net::URLRequest> url_request) | 53 scoped_ptr<net::URLRequest> url_request) |
| 54 : started_(false), | 54 : started_(false), |
| 55 throttle_(throttle.Pass()), | 55 throttle_(throttle.Pass()), |
| 56 url_request_(url_request.Pass()) { | 56 url_request_(url_request.Pass()) { |
| 57 throttle_->set_controller_for_testing(this); | 57 throttle_->set_controller_for_testing(this); |
| 58 } | 58 } |
| 59 virtual ~TestRequest() {} | 59 ~TestRequest() override {} |
| 60 | 60 |
| 61 bool started() const { return started_; } | 61 bool started() const { return started_; } |
| 62 | 62 |
| 63 void Start() { | 63 void Start() { |
| 64 bool deferred = false; | 64 bool deferred = false; |
| 65 throttle_->WillStartRequest(&deferred); | 65 throttle_->WillStartRequest(&deferred); |
| 66 started_ = !deferred; | 66 started_ = !deferred; |
| 67 } | 67 } |
| 68 | 68 |
| 69 virtual void Cancel() override { | 69 void Cancel() override { |
| 70 // Alert the scheduler that the request can be deleted. | 70 // Alert the scheduler that the request can be deleted. |
| 71 throttle_.reset(0); | 71 throttle_.reset(0); |
| 72 } | 72 } |
| 73 | 73 |
| 74 const net::URLRequest* url_request() const { return url_request_.get(); } | 74 const net::URLRequest* url_request() const { return url_request_.get(); } |
| 75 | 75 |
| 76 protected: | 76 protected: |
| 77 // ResourceController interface: | 77 // ResourceController interface: |
| 78 virtual void CancelAndIgnore() override {} | 78 void CancelAndIgnore() override {} |
| 79 virtual void CancelWithError(int error_code) override {} | 79 void CancelWithError(int error_code) override {} |
| 80 virtual void Resume() override { started_ = true; } | 80 void Resume() override { started_ = true; } |
| 81 | 81 |
| 82 private: | 82 private: |
| 83 bool started_; | 83 bool started_; |
| 84 scoped_ptr<ResourceThrottle> throttle_; | 84 scoped_ptr<ResourceThrottle> throttle_; |
| 85 scoped_ptr<net::URLRequest> url_request_; | 85 scoped_ptr<net::URLRequest> url_request_; |
| 86 }; | 86 }; |
| 87 | 87 |
| 88 class CancelingTestRequest : public TestRequest { | 88 class CancelingTestRequest : public TestRequest { |
| 89 public: | 89 public: |
| 90 CancelingTestRequest(scoped_ptr<ResourceThrottle> throttle, | 90 CancelingTestRequest(scoped_ptr<ResourceThrottle> throttle, |
| 91 scoped_ptr<net::URLRequest> url_request) | 91 scoped_ptr<net::URLRequest> url_request) |
| 92 : TestRequest(throttle.Pass(), url_request.Pass()) {} | 92 : TestRequest(throttle.Pass(), url_request.Pass()) {} |
| 93 | 93 |
| 94 void set_request_to_cancel(scoped_ptr<TestRequest> request_to_cancel) { | 94 void set_request_to_cancel(scoped_ptr<TestRequest> request_to_cancel) { |
| 95 request_to_cancel_ = request_to_cancel.Pass(); | 95 request_to_cancel_ = request_to_cancel.Pass(); |
| 96 } | 96 } |
| 97 | 97 |
| 98 private: | 98 private: |
| 99 virtual void Resume() override { | 99 void Resume() override { |
| 100 TestRequest::Resume(); | 100 TestRequest::Resume(); |
| 101 request_to_cancel_.reset(); | 101 request_to_cancel_.reset(); |
| 102 } | 102 } |
| 103 | 103 |
| 104 scoped_ptr<TestRequest> request_to_cancel_; | 104 scoped_ptr<TestRequest> request_to_cancel_; |
| 105 }; | 105 }; |
| 106 | 106 |
| 107 class FakeResourceContext : public ResourceContext { | 107 class FakeResourceContext : public ResourceContext { |
| 108 private: | 108 private: |
| 109 virtual net::HostResolver* GetHostResolver() override { return NULL; } | 109 net::HostResolver* GetHostResolver() override { return NULL; } |
| 110 virtual net::URLRequestContext* GetRequestContext() override { return NULL; } | 110 net::URLRequestContext* GetRequestContext() override { return NULL; } |
| 111 }; | 111 }; |
| 112 | 112 |
| 113 class FakeResourceMessageFilter : public ResourceMessageFilter { | 113 class FakeResourceMessageFilter : public ResourceMessageFilter { |
| 114 public: | 114 public: |
| 115 FakeResourceMessageFilter(int child_id) | 115 FakeResourceMessageFilter(int child_id) |
| 116 : ResourceMessageFilter( | 116 : ResourceMessageFilter( |
| 117 child_id, | 117 child_id, |
| 118 PROCESS_TYPE_RENDERER, | 118 PROCESS_TYPE_RENDERER, |
| 119 NULL /* appcache_service */, | 119 NULL /* appcache_service */, |
| 120 NULL /* blob_storage_context */, | 120 NULL /* blob_storage_context */, |
| 121 NULL /* file_system_context */, | 121 NULL /* file_system_context */, |
| 122 NULL /* service_worker_context */, | 122 NULL /* service_worker_context */, |
| 123 base::Bind(&FakeResourceMessageFilter::GetContexts, | 123 base::Bind(&FakeResourceMessageFilter::GetContexts, |
| 124 base::Unretained(this))) { | 124 base::Unretained(this))) { |
| 125 } | 125 } |
| 126 | 126 |
| 127 private: | 127 private: |
| 128 virtual ~FakeResourceMessageFilter() {} | 128 ~FakeResourceMessageFilter() override {} |
| 129 | 129 |
| 130 void GetContexts(const ResourceHostMsg_Request& request, | 130 void GetContexts(const ResourceHostMsg_Request& request, |
| 131 ResourceContext** resource_context, | 131 ResourceContext** resource_context, |
| 132 net::URLRequestContext** request_context) { | 132 net::URLRequestContext** request_context) { |
| 133 *resource_context = &context_; | 133 *resource_context = &context_; |
| 134 *request_context = NULL; | 134 *request_context = NULL; |
| 135 } | 135 } |
| 136 | 136 |
| 137 FakeResourceContext context_; | 137 FakeResourceContext context_; |
| 138 }; | 138 }; |
| (...skipping 2064 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2203 web_contents_2.reset(); | 2203 web_contents_2.reset(); |
| 2204 base::RunLoop().RunUntilIdle(); | 2204 base::RunLoop().RunUntilIdle(); |
| 2205 | 2205 |
| 2206 browser_context.reset(); | 2206 browser_context.reset(); |
| 2207 render_process_host_factory.reset(); | 2207 render_process_host_factory.reset(); |
| 2208 } | 2208 } |
| 2209 | 2209 |
| 2210 } // unnamed namespace | 2210 } // unnamed namespace |
| 2211 | 2211 |
| 2212 } // namespace content | 2212 } // namespace content |
| OLD | NEW |