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 #ifndef NET_HTTP_HTTP_STREAM_FACTORY_IMPL_JOB_CONTROLLER_H_ | 5 #ifndef NET_HTTP_HTTP_STREAM_FACTORY_IMPL_JOB_CONTROLLER_H_ |
6 #define NET_HTTP_HTTP_STREAM_FACTORY_IMPL_JOB_CONTROLLER_H_ | 6 #define NET_HTTP_HTTP_STREAM_FACTORY_IMPL_JOB_CONTROLLER_H_ |
7 | 7 |
8 #include <memory> | 8 #include <memory> |
9 | 9 |
10 #include "net/base/host_port_pair.h" | 10 #include "net/base/host_port_pair.h" |
11 #include "net/base/privacy_mode.h" | 11 #include "net/base/privacy_mode.h" |
12 #include "net/http/http_stream_factory_impl_job.h" | 12 #include "net/http/http_stream_factory_impl_job.h" |
13 #include "net/http/http_stream_factory_impl_request.h" | 13 #include "net/http/http_stream_factory_impl_request.h" |
| 14 #include "net/socket/next_proto.h" |
14 | 15 |
15 namespace net { | 16 namespace net { |
16 | 17 |
17 class NetLogWithSource; | 18 class NetLogWithSource; |
18 | 19 |
19 // HttpStreamFactoryImpl::JobController manages Request and Job(s). | 20 // HttpStreamFactoryImpl::JobController manages Request and Job(s). |
20 class HttpStreamFactoryImpl::JobController | 21 class HttpStreamFactoryImpl::JobController |
21 : public HttpStreamFactoryImpl::Job::Delegate, | 22 : public HttpStreamFactoryImpl::Job::Delegate, |
22 public HttpStreamFactoryImpl::Request::Helper { | 23 public HttpStreamFactoryImpl::Request::Helper { |
23 public: | 24 public: |
(...skipping 281 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
305 const bool enable_ip_based_pooling_; | 306 const bool enable_ip_based_pooling_; |
306 | 307 |
307 // Enable using alternative services for the request. | 308 // Enable using alternative services for the request. |
308 const bool enable_alternative_services_; | 309 const bool enable_alternative_services_; |
309 | 310 |
310 // |main_job_| is a job waiting to see if |alternative_job_| can reuse a | 311 // |main_job_| is a job waiting to see if |alternative_job_| can reuse a |
311 // connection. If |alternative_job_| is unable to do so, |this| will notify | 312 // connection. If |alternative_job_| is unable to do so, |this| will notify |
312 // |main_job_| to proceed and then race the two jobs. | 313 // |main_job_| to proceed and then race the two jobs. |
313 std::unique_ptr<Job> main_job_; | 314 std::unique_ptr<Job> main_job_; |
314 std::unique_ptr<Job> alternative_job_; | 315 std::unique_ptr<Job> alternative_job_; |
| 316 // The alternative service used by |alternative_job_| |
| 317 // (or by |main_job_| if |is_preconnect_|.) |
| 318 AlternativeService alternative_service_; |
315 | 319 |
316 // Net error code of the failed alternative job. Set to OK by default. | 320 // Net error code of the failed alternative job. Set to OK by default. |
317 int alternative_job_net_error_; | 321 int alternative_job_net_error_; |
318 // The alternative service server that |alternative_job_| uses failed. | |
319 AlternativeService failed_alternative_service_; | |
320 | 322 |
321 // True if a Job has ever been bound to the |request_|. | 323 // True if a Job has ever been bound to the |request_|. |
322 bool job_bound_; | 324 bool job_bound_; |
323 | 325 |
324 // True if the main job has to wait for the alternative job: i.e., the main | 326 // True if the main job has to wait for the alternative job: i.e., the main |
325 // job must not create a connection until it is resumed. | 327 // job must not create a connection until it is resumed. |
326 bool main_job_is_blocked_; | 328 bool main_job_is_blocked_; |
327 | 329 |
328 // True if the main job was blocked and has been resumed in ResumeMainJob(). | 330 // True if the main job was blocked and has been resumed in ResumeMainJob(). |
329 bool main_job_is_resumed_; | 331 bool main_job_is_resumed_; |
(...skipping 19 matching lines...) Expand all Loading... |
349 HttpStreamRequest::StreamType stream_type_; | 351 HttpStreamRequest::StreamType stream_type_; |
350 RequestPriority priority_; | 352 RequestPriority priority_; |
351 const NetLogWithSource net_log_; | 353 const NetLogWithSource net_log_; |
352 | 354 |
353 base::WeakPtrFactory<JobController> ptr_factory_; | 355 base::WeakPtrFactory<JobController> ptr_factory_; |
354 }; | 356 }; |
355 | 357 |
356 } // namespace net | 358 } // namespace net |
357 | 359 |
358 #endif // NET_HTTP_HTTP_STREAM_FACTORY_IMPL_JOB_CONTROLLER_H_ | 360 #endif // NET_HTTP_HTTP_STREAM_FACTORY_IMPL_JOB_CONTROLLER_H_ |
OLD | NEW |