| OLD | NEW |
| 1 // Copyright (c) 2016 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2016 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 "net/http/http_stream_factory_impl_job_controller.h" | 5 #include "net/http/http_stream_factory_impl_job_controller.h" |
| 6 | 6 |
| 7 #include <memory> | 7 #include <memory> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/memory/ptr_util.h" | 10 #include "base/memory/ptr_util.h" |
| (...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 155 if (use_alternative_proxy_) { | 155 if (use_alternative_proxy_) { |
| 156 std::unique_ptr<ProxyService> proxy_service = | 156 std::unique_ptr<ProxyService> proxy_service = |
| 157 ProxyService::CreateFixedFromPacResult("HTTPS myproxy.org:443"); | 157 ProxyService::CreateFixedFromPacResult("HTTPS myproxy.org:443"); |
| 158 session_deps_.proxy_service = std::move(proxy_service); | 158 session_deps_.proxy_service = std::move(proxy_service); |
| 159 } | 159 } |
| 160 session_ = SpdySessionDependencies::SpdyCreateSession(&session_deps_); | 160 session_ = SpdySessionDependencies::SpdyCreateSession(&session_deps_); |
| 161 factory_ = | 161 factory_ = |
| 162 static_cast<HttpStreamFactoryImpl*>(session_->http_stream_factory()); | 162 static_cast<HttpStreamFactoryImpl*>(session_->http_stream_factory()); |
| 163 job_controller_ = new HttpStreamFactoryImpl::JobController( | 163 job_controller_ = new HttpStreamFactoryImpl::JobController( |
| 164 factory_, &request_delegate_, session_.get(), &job_factory_, | 164 factory_, &request_delegate_, session_.get(), &job_factory_, |
| 165 request_info, is_preconnect_); | 165 request_info, is_preconnect_, /* enable_ip_based_pooling = */ true); |
| 166 HttpStreamFactoryImplPeer::AddJobController(factory_, job_controller_); | 166 HttpStreamFactoryImplPeer::AddJobController(factory_, job_controller_); |
| 167 } | 167 } |
| 168 | 168 |
| 169 TestProxyDelegate* test_proxy_delegate() const { | 169 TestProxyDelegate* test_proxy_delegate() const { |
| 170 return test_proxy_delegate_; | 170 return test_proxy_delegate_; |
| 171 } | 171 } |
| 172 | 172 |
| 173 ~HttpStreamFactoryImplJobControllerTest() override {} | 173 ~HttpStreamFactoryImplJobControllerTest() override {} |
| 174 | 174 |
| 175 void SetAlternativeService(const HttpRequestInfo& request_info, | 175 void SetAlternativeService(const HttpRequestInfo& request_info, |
| (...skipping 20 matching lines...) Expand all Loading... |
| 196 MockHttpStreamRequestDelegate request_delegate_; | 196 MockHttpStreamRequestDelegate request_delegate_; |
| 197 SpdySessionDependencies session_deps_; | 197 SpdySessionDependencies session_deps_; |
| 198 std::unique_ptr<HttpNetworkSession> session_; | 198 std::unique_ptr<HttpNetworkSession> session_; |
| 199 HttpStreamFactoryImpl* factory_; | 199 HttpStreamFactoryImpl* factory_; |
| 200 HttpStreamFactoryImpl::JobController* job_controller_; | 200 HttpStreamFactoryImpl::JobController* job_controller_; |
| 201 std::unique_ptr<HttpStreamFactoryImpl::Request> request_; | 201 std::unique_ptr<HttpStreamFactoryImpl::Request> request_; |
| 202 | 202 |
| 203 private: | 203 private: |
| 204 bool use_alternative_proxy_; | 204 bool use_alternative_proxy_; |
| 205 bool is_preconnect_; | 205 bool is_preconnect_; |
| 206 |
| 206 // Not owned by |this|. | 207 // Not owned by |this|. |
| 207 TestProxyDelegate* test_proxy_delegate_; | 208 TestProxyDelegate* test_proxy_delegate_; |
| 208 | 209 |
| 209 DISALLOW_COPY_AND_ASSIGN(HttpStreamFactoryImplJobControllerTest); | 210 DISALLOW_COPY_AND_ASSIGN(HttpStreamFactoryImplJobControllerTest); |
| 210 }; | 211 }; |
| 211 | 212 |
| 212 TEST_F(HttpStreamFactoryImplJobControllerTest, | 213 TEST_F(HttpStreamFactoryImplJobControllerTest, |
| 213 OnStreamFailedWithNoAlternativeJob) { | 214 OnStreamFailedWithNoAlternativeJob) { |
| 214 ProxyConfig proxy_config; | 215 ProxyConfig proxy_config; |
| 215 proxy_config.set_auto_detect(true); | 216 proxy_config.set_auto_detect(true); |
| (...skipping 1113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1329 void Initialize() { | 1330 void Initialize() { |
| 1330 session_deps_.http_server_properties = | 1331 session_deps_.http_server_properties = |
| 1331 base::MakeUnique<MockHttpServerProperties>(); | 1332 base::MakeUnique<MockHttpServerProperties>(); |
| 1332 session_ = SpdySessionDependencies::SpdyCreateSession(&session_deps_); | 1333 session_ = SpdySessionDependencies::SpdyCreateSession(&session_deps_); |
| 1333 factory_ = | 1334 factory_ = |
| 1334 static_cast<HttpStreamFactoryImpl*>(session_->http_stream_factory()); | 1335 static_cast<HttpStreamFactoryImpl*>(session_->http_stream_factory()); |
| 1335 request_info_.method = "GET"; | 1336 request_info_.method = "GET"; |
| 1336 request_info_.url = GURL("https://www.example.com"); | 1337 request_info_.url = GURL("https://www.example.com"); |
| 1337 job_controller_ = new HttpStreamFactoryImpl::JobController( | 1338 job_controller_ = new HttpStreamFactoryImpl::JobController( |
| 1338 factory_, &request_delegate_, session_.get(), &job_factory_, | 1339 factory_, &request_delegate_, session_.get(), &job_factory_, |
| 1339 request_info_, true); | 1340 request_info_, /* is_preconnect = */ true, |
| 1341 /* enable_ip_based_pooling = */ true); |
| 1340 HttpStreamFactoryImplPeer::AddJobController(factory_, job_controller_); | 1342 HttpStreamFactoryImplPeer::AddJobController(factory_, job_controller_); |
| 1341 } | 1343 } |
| 1342 | 1344 |
| 1343 protected: | 1345 protected: |
| 1344 void Preconnect(int num_streams) { | 1346 void Preconnect(int num_streams) { |
| 1345 job_controller_->Preconnect(num_streams, request_info_, SSLConfig(), | 1347 job_controller_->Preconnect(num_streams, request_info_, SSLConfig(), |
| 1346 SSLConfig()); | 1348 SSLConfig()); |
| 1347 // Only one job is started. | 1349 // Only one job is started. |
| 1348 EXPECT_TRUE(job_controller_->main_job()); | 1350 EXPECT_TRUE(job_controller_->main_job()); |
| 1349 EXPECT_FALSE(job_controller_->alternative_job()); | 1351 EXPECT_FALSE(job_controller_->alternative_job()); |
| (...skipping 30 matching lines...) Expand all Loading... |
| 1380 Preconnect(kNumPreconects); | 1382 Preconnect(kNumPreconects); |
| 1381 // If experiment is enabled, only 1 stream is requested. | 1383 // If experiment is enabled, only 1 stream is requested. |
| 1382 EXPECT_EQ( | 1384 EXPECT_EQ( |
| 1383 (int)actual_num_connects, | 1385 (int)actual_num_connects, |
| 1384 HttpStreamFactoryImplJobPeer::GetNumStreams(job_controller_->main_job())); | 1386 HttpStreamFactoryImplJobPeer::GetNumStreams(job_controller_->main_job())); |
| 1385 base::RunLoop().RunUntilIdle(); | 1387 base::RunLoop().RunUntilIdle(); |
| 1386 EXPECT_TRUE(HttpStreamFactoryImplPeer::IsJobControllerDeleted(factory_)); | 1388 EXPECT_TRUE(HttpStreamFactoryImplPeer::IsJobControllerDeleted(factory_)); |
| 1387 } | 1389 } |
| 1388 | 1390 |
| 1389 } // namespace net | 1391 } // namespace net |
| OLD | NEW |