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 #ifndef NET_QUIC_CHROMIUM_QUIC_STREAM_FACTORY_H_ | 5 #ifndef NET_QUIC_CHROMIUM_QUIC_STREAM_FACTORY_H_ |
6 #define NET_QUIC_CHROMIUM_QUIC_STREAM_FACTORY_H_ | 6 #define NET_QUIC_CHROMIUM_QUIC_STREAM_FACTORY_H_ |
7 | 7 |
8 #include <stddef.h> | 8 #include <stddef.h> |
9 #include <stdint.h> | 9 #include <stdint.h> |
10 | 10 |
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
108 class NET_EXPORT_PRIVATE QuicStreamRequest { | 108 class NET_EXPORT_PRIVATE QuicStreamRequest { |
109 public: | 109 public: |
110 explicit QuicStreamRequest(QuicStreamFactory* factory); | 110 explicit QuicStreamRequest(QuicStreamFactory* factory); |
111 ~QuicStreamRequest(); | 111 ~QuicStreamRequest(); |
112 | 112 |
113 // |cert_verify_flags| is bitwise OR'd of CertVerifier::VerifyFlags and it is | 113 // |cert_verify_flags| is bitwise OR'd of CertVerifier::VerifyFlags and it is |
114 // passed to CertVerifier::Verify. | 114 // passed to CertVerifier::Verify. |
115 // |destination| will be resolved and resulting IPEndPoint used to open a | 115 // |destination| will be resolved and resulting IPEndPoint used to open a |
116 // QuicConnection. This can be different than HostPortPair::FromURL(url). | 116 // QuicConnection. This can be different than HostPortPair::FromURL(url). |
117 int Request(const HostPortPair& destination, | 117 int Request(const HostPortPair& destination, |
| 118 QuicVersion quic_version, |
118 PrivacyMode privacy_mode, | 119 PrivacyMode privacy_mode, |
119 int cert_verify_flags, | 120 int cert_verify_flags, |
120 const GURL& url, | 121 const GURL& url, |
121 QuicStringPiece method, | 122 QuicStringPiece method, |
122 const NetLogWithSource& net_log, | 123 const NetLogWithSource& net_log, |
123 const CompletionCallback& callback); | 124 const CompletionCallback& callback); |
124 | 125 |
125 void OnRequestComplete(int rv); | 126 void OnRequestComplete(int rv); |
126 | 127 |
127 // Helper method that calls |factory_|'s GetTimeDelayForWaitingJob(). It | 128 // Helper method that calls |factory_|'s GetTimeDelayForWaitingJob(). It |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
195 CTPolicyEnforcer* ct_policy_enforcer, | 196 CTPolicyEnforcer* ct_policy_enforcer, |
196 ChannelIDService* channel_id_service, | 197 ChannelIDService* channel_id_service, |
197 TransportSecurityState* transport_security_state, | 198 TransportSecurityState* transport_security_state, |
198 CTVerifier* cert_transparency_verifier, | 199 CTVerifier* cert_transparency_verifier, |
199 SocketPerformanceWatcherFactory* socket_performance_watcher_factory, | 200 SocketPerformanceWatcherFactory* socket_performance_watcher_factory, |
200 QuicCryptoClientStreamFactory* quic_crypto_client_stream_factory, | 201 QuicCryptoClientStreamFactory* quic_crypto_client_stream_factory, |
201 QuicRandom* random_generator, | 202 QuicRandom* random_generator, |
202 QuicClock* clock, | 203 QuicClock* clock, |
203 size_t max_packet_length, | 204 size_t max_packet_length, |
204 const std::string& user_agent_id, | 205 const std::string& user_agent_id, |
205 const QuicVersionVector& supported_versions, | |
206 bool store_server_configs_in_properties, | 206 bool store_server_configs_in_properties, |
207 bool close_sessions_on_ip_change, | 207 bool close_sessions_on_ip_change, |
208 bool mark_quic_broken_when_network_blackholes, | 208 bool mark_quic_broken_when_network_blackholes, |
209 int idle_connection_timeout_seconds, | 209 int idle_connection_timeout_seconds, |
210 int reduced_ping_timeout_seconds, | 210 int reduced_ping_timeout_seconds, |
211 int packet_reader_yield_after_duration_milliseconds, | 211 int packet_reader_yield_after_duration_milliseconds, |
212 bool migrate_sessions_on_network_change, | 212 bool migrate_sessions_on_network_change, |
213 bool migrate_sessions_early, | 213 bool migrate_sessions_early, |
214 bool allow_server_migration, | 214 bool allow_server_migration, |
215 bool force_hol_blocking, | 215 bool force_hol_blocking, |
(...skipping 10 matching lines...) Expand all Loading... |
226 bool CanUseExistingSession(const QuicServerId& server_id, | 226 bool CanUseExistingSession(const QuicServerId& server_id, |
227 const HostPortPair& destination); | 227 const HostPortPair& destination); |
228 | 228 |
229 // Creates a new QuicHttpStream to |host_port_pair| which will be | 229 // Creates a new QuicHttpStream to |host_port_pair| which will be |
230 // owned by |request|. | 230 // owned by |request|. |
231 // If a matching session already exists, this method will return OK. If no | 231 // If a matching session already exists, this method will return OK. If no |
232 // matching session exists, this will return ERR_IO_PENDING and will invoke | 232 // matching session exists, this will return ERR_IO_PENDING and will invoke |
233 // OnRequestComplete asynchronously. | 233 // OnRequestComplete asynchronously. |
234 int Create(const QuicServerId& server_id, | 234 int Create(const QuicServerId& server_id, |
235 const HostPortPair& destination, | 235 const HostPortPair& destination, |
| 236 QuicVersion quic_version, |
236 int cert_verify_flags, | 237 int cert_verify_flags, |
237 const GURL& url, | 238 const GURL& url, |
238 QuicStringPiece method, | 239 QuicStringPiece method, |
239 const NetLogWithSource& net_log, | 240 const NetLogWithSource& net_log, |
240 QuicStreamRequest* request); | 241 QuicStreamRequest* request); |
241 | 242 |
242 // Called when the handshake for |session| is confirmed. If QUIC is disabled | 243 // Called when the handshake for |session| is confirmed. If QUIC is disabled |
243 // currently disabled, then it closes the connection and returns true. | 244 // currently disabled, then it closes the connection and returns true. |
244 bool OnHandshakeConfirmed(QuicChromiumClientSession* session); | 245 bool OnHandshakeConfirmed(QuicChromiumClientSession* session); |
245 | 246 |
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
397 typedef std::map<QuicServerId, std::unique_ptr<CertVerifierJob>> | 398 typedef std::map<QuicServerId, std::unique_ptr<CertVerifierJob>> |
398 CertVerifierJobMap; | 399 CertVerifierJobMap; |
399 | 400 |
400 bool OnResolution(const QuicSessionKey& key, const AddressList& address_list); | 401 bool OnResolution(const QuicSessionKey& key, const AddressList& address_list); |
401 void OnJobComplete(Job* job, int rv); | 402 void OnJobComplete(Job* job, int rv); |
402 void OnCertVerifyJobComplete(CertVerifierJob* job, int rv); | 403 void OnCertVerifyJobComplete(CertVerifierJob* job, int rv); |
403 bool HasActiveSession(const QuicServerId& server_id) const; | 404 bool HasActiveSession(const QuicServerId& server_id) const; |
404 bool HasActiveJob(const QuicServerId& server_id) const; | 405 bool HasActiveJob(const QuicServerId& server_id) const; |
405 bool HasActiveCertVerifierJob(const QuicServerId& server_id) const; | 406 bool HasActiveCertVerifierJob(const QuicServerId& server_id) const; |
406 int CreateSession(const QuicSessionKey& key, | 407 int CreateSession(const QuicSessionKey& key, |
| 408 const QuicVersion& quic_version, |
407 int cert_verify_flags, | 409 int cert_verify_flags, |
408 bool require_confirmation, | 410 bool require_confirmation, |
409 const AddressList& address_list, | 411 const AddressList& address_list, |
410 base::TimeTicks dns_resolution_start_time, | 412 base::TimeTicks dns_resolution_start_time, |
411 base::TimeTicks dns_resolution_end_time, | 413 base::TimeTicks dns_resolution_end_time, |
412 const NetLogWithSource& net_log, | 414 const NetLogWithSource& net_log, |
413 QuicChromiumClientSession** session); | 415 QuicChromiumClientSession** session); |
414 void ActivateSession(const QuicSessionKey& key, | 416 void ActivateSession(const QuicSessionKey& key, |
415 QuicChromiumClientSession* session); | 417 QuicChromiumClientSession* session); |
416 | 418 |
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
508 const QuicConfig config_; | 510 const QuicConfig config_; |
509 QuicCryptoClientConfig crypto_config_; | 511 QuicCryptoClientConfig crypto_config_; |
510 | 512 |
511 JobMap active_jobs_; | 513 JobMap active_jobs_; |
512 // Map from QuicServerId to a set of non-owning QuicStreamRequest pointers. | 514 // Map from QuicServerId to a set of non-owning QuicStreamRequest pointers. |
513 ServerIDRequestsMap job_requests_map_; | 515 ServerIDRequestsMap job_requests_map_; |
514 | 516 |
515 // Map of QuicServerId to owning CertVerifierJob. | 517 // Map of QuicServerId to owning CertVerifierJob. |
516 CertVerifierJobMap active_cert_verifier_jobs_; | 518 CertVerifierJobMap active_cert_verifier_jobs_; |
517 | 519 |
518 const QuicVersionVector supported_versions_; | |
519 | |
520 // True if QUIC should be marked as broken when a connection blackholes after | 520 // True if QUIC should be marked as broken when a connection blackholes after |
521 // the handshake is confirmed. | 521 // the handshake is confirmed. |
522 bool mark_quic_broken_when_network_blackholes_; | 522 bool mark_quic_broken_when_network_blackholes_; |
523 | 523 |
524 // Set if QUIC server configs should be stored in HttpServerProperties. | 524 // Set if QUIC server configs should be stored in HttpServerProperties. |
525 bool store_server_configs_in_properties_; | 525 bool store_server_configs_in_properties_; |
526 | 526 |
527 // PING timeout for connections. | 527 // PING timeout for connections. |
528 QuicTime::Delta ping_timeout_; | 528 QuicTime::Delta ping_timeout_; |
529 QuicTime::Delta reduced_ping_timeout_; | 529 QuicTime::Delta reduced_ping_timeout_; |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
576 const scoped_refptr<SSLConfigService> ssl_config_service_; | 576 const scoped_refptr<SSLConfigService> ssl_config_service_; |
577 | 577 |
578 base::WeakPtrFactory<QuicStreamFactory> weak_factory_; | 578 base::WeakPtrFactory<QuicStreamFactory> weak_factory_; |
579 | 579 |
580 DISALLOW_COPY_AND_ASSIGN(QuicStreamFactory); | 580 DISALLOW_COPY_AND_ASSIGN(QuicStreamFactory); |
581 }; | 581 }; |
582 | 582 |
583 } // namespace net | 583 } // namespace net |
584 | 584 |
585 #endif // NET_QUIC_CHROMIUM_QUIC_STREAM_FACTORY_H_ | 585 #endif // NET_QUIC_CHROMIUM_QUIC_STREAM_FACTORY_H_ |
OLD | NEW |