Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(234)

Side by Side Diff: net/quic/chromium/quic_stream_factory.h

Issue 2351513002: net: rename BoundNetLog to NetLogWithSource (Closed)
Patch Set: one more fix, content bound_net_log_ Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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_QUIC_STREAM_FACTORY_H_ 5 #ifndef NET_QUIC_QUIC_STREAM_FACTORY_H_
6 #define NET_QUIC_QUIC_STREAM_FACTORY_H_ 6 #define NET_QUIC_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 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
102 102
103 // |cert_verify_flags| is bitwise OR'd of CertVerifier::VerifyFlags and it is 103 // |cert_verify_flags| is bitwise OR'd of CertVerifier::VerifyFlags and it is
104 // passed to CertVerifier::Verify. 104 // passed to CertVerifier::Verify.
105 // |destination| will be resolved and resulting IPEndPoint used to open a 105 // |destination| will be resolved and resulting IPEndPoint used to open a
106 // QuicConnection. This can be different than HostPortPair::FromURL(url). 106 // QuicConnection. This can be different than HostPortPair::FromURL(url).
107 int Request(const HostPortPair& destination, 107 int Request(const HostPortPair& destination,
108 PrivacyMode privacy_mode, 108 PrivacyMode privacy_mode,
109 int cert_verify_flags, 109 int cert_verify_flags,
110 const GURL& url, 110 const GURL& url,
111 base::StringPiece method, 111 base::StringPiece method,
112 const BoundNetLog& net_log, 112 const NetLogWithSource& net_log,
113 const CompletionCallback& callback); 113 const CompletionCallback& callback);
114 114
115 void OnRequestComplete(int rv); 115 void OnRequestComplete(int rv);
116 116
117 // Helper method that calls |factory_|'s GetTimeDelayForWaitingJob(). It 117 // Helper method that calls |factory_|'s GetTimeDelayForWaitingJob(). It
118 // returns the amount of time waiting job should be delayed. 118 // returns the amount of time waiting job should be delayed.
119 base::TimeDelta GetTimeDelayForWaitingJob() const; 119 base::TimeDelta GetTimeDelayForWaitingJob() const;
120 120
121 std::unique_ptr<QuicHttpStream> CreateStream(); 121 std::unique_ptr<QuicHttpStream> CreateStream();
122 122
123 std::unique_ptr<BidirectionalStreamImpl> CreateBidirectionalStreamImpl(); 123 std::unique_ptr<BidirectionalStreamImpl> CreateBidirectionalStreamImpl();
124 124
125 // Sets |session_|. 125 // Sets |session_|.
126 void SetSession(QuicChromiumClientSession* session); 126 void SetSession(QuicChromiumClientSession* session);
127 127
128 const QuicServerId& server_id() const { return server_id_; } 128 const QuicServerId& server_id() const { return server_id_; }
129 129
130 const BoundNetLog& net_log() const { return net_log_; } 130 const NetLogWithSource& net_log() const { return net_log_; }
131 131
132 private: 132 private:
133 QuicStreamFactory* factory_; 133 QuicStreamFactory* factory_;
134 QuicServerId server_id_; 134 QuicServerId server_id_;
135 BoundNetLog net_log_; 135 NetLogWithSource net_log_;
136 CompletionCallback callback_; 136 CompletionCallback callback_;
137 base::WeakPtr<QuicChromiumClientSession> session_; 137 base::WeakPtr<QuicChromiumClientSession> session_;
138 138
139 DISALLOW_COPY_AND_ASSIGN(QuicStreamRequest); 139 DISALLOW_COPY_AND_ASSIGN(QuicStreamRequest);
140 }; 140 };
141 141
142 // A factory for creating new QuicHttpStreams on top of a pool of 142 // A factory for creating new QuicHttpStreams on top of a pool of
143 // QuicChromiumClientSessions. 143 // QuicChromiumClientSessions.
144 class NET_EXPORT_PRIVATE QuicStreamFactory 144 class NET_EXPORT_PRIVATE QuicStreamFactory
145 : public NetworkChangeNotifier::IPAddressObserver, 145 : public NetworkChangeNotifier::IPAddressObserver,
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
225 // Creates a new QuicHttpStream to |host_port_pair| which will be 225 // Creates a new QuicHttpStream to |host_port_pair| which will be
226 // owned by |request|. 226 // owned by |request|.
227 // If a matching session already exists, this method will return OK. If no 227 // If a matching session already exists, this method will return OK. If no
228 // matching session exists, this will return ERR_IO_PENDING and will invoke 228 // matching session exists, this will return ERR_IO_PENDING and will invoke
229 // OnRequestComplete asynchronously. 229 // OnRequestComplete asynchronously.
230 int Create(const QuicServerId& server_id, 230 int Create(const QuicServerId& server_id,
231 const HostPortPair& destination, 231 const HostPortPair& destination,
232 int cert_verify_flags, 232 int cert_verify_flags,
233 const GURL& url, 233 const GURL& url,
234 base::StringPiece method, 234 base::StringPiece method,
235 const BoundNetLog& net_log, 235 const NetLogWithSource& net_log,
236 QuicStreamRequest* request); 236 QuicStreamRequest* request);
237 237
238 // Called when the handshake for |session| is confirmed. If QUIC is disabled 238 // Called when the handshake for |session| is confirmed. If QUIC is disabled
239 // currently disabled, then it closes the connection and returns true. 239 // currently disabled, then it closes the connection and returns true.
240 bool OnHandshakeConfirmed(QuicChromiumClientSession* session); 240 bool OnHandshakeConfirmed(QuicChromiumClientSession* session);
241 241
242 // Called when a TCP job completes for an origin that QUIC potentially 242 // Called when a TCP job completes for an origin that QUIC potentially
243 // could be used for. 243 // could be used for.
244 void OnTcpJobCompleted(bool succeeded); 244 void OnTcpJobCompleted(bool succeeded);
245 245
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
292 // are left unchanged. Sessions with non-migratable streams are closed 292 // are left unchanged. Sessions with non-migratable streams are closed
293 // if |close_if_cannot_migrate| is true, and continue using their current 293 // if |close_if_cannot_migrate| is true, and continue using their current
294 // network otherwise. 294 // network otherwise.
295 // 295 //
296 // If |new_network| is NetworkChangeNotifier::kInvalidNetworkHandle, 296 // If |new_network| is NetworkChangeNotifier::kInvalidNetworkHandle,
297 // there is no new network to migrate sessions onto, and all sessions are 297 // there is no new network to migrate sessions onto, and all sessions are
298 // closed. 298 // closed.
299 void MaybeMigrateOrCloseSessions( 299 void MaybeMigrateOrCloseSessions(
300 NetworkChangeNotifier::NetworkHandle new_network, 300 NetworkChangeNotifier::NetworkHandle new_network,
301 bool close_if_cannot_migrate, 301 bool close_if_cannot_migrate,
302 const BoundNetLog& bound_net_log); 302 const NetLogWithSource& net_log);
303 303
304 // Method that initiates migration of |session| if |session| is 304 // Method that initiates migration of |session| if |session| is
305 // active and if there is an alternate network than the one to which 305 // active and if there is an alternate network than the one to which
306 // |session| is currently bound. 306 // |session| is currently bound.
307 MigrationResult MaybeMigrateSingleSession(QuicChromiumClientSession* session, 307 MigrationResult MaybeMigrateSingleSession(QuicChromiumClientSession* session,
308 MigrationCause migration_cause); 308 MigrationCause migration_cause);
309 309
310 // Migrates |session| over to using |network|. If |network| is 310 // Migrates |session| over to using |network|. If |network| is
311 // kInvalidNetworkHandle, default network is used. 311 // kInvalidNetworkHandle, default network is used.
312 MigrationResult MigrateSessionToNewNetwork( 312 MigrationResult MigrateSessionToNewNetwork(
313 QuicChromiumClientSession* session, 313 QuicChromiumClientSession* session,
314 NetworkChangeNotifier::NetworkHandle network, 314 NetworkChangeNotifier::NetworkHandle network,
315 bool close_session_on_error, 315 bool close_session_on_error,
316 const BoundNetLog& bound_net_log); 316 const NetLogWithSource& net_log);
317 317
318 // Migrates |session| over to using |peer_address|. Causes a PING frame 318 // Migrates |session| over to using |peer_address|. Causes a PING frame
319 // to be sent to the new peer address. 319 // to be sent to the new peer address.
320 void MigrateSessionToNewPeerAddress(QuicChromiumClientSession* session, 320 void MigrateSessionToNewPeerAddress(QuicChromiumClientSession* session,
321 IPEndPoint peer_address, 321 IPEndPoint peer_address,
322 const BoundNetLog& bound_net_log); 322 const NetLogWithSource& net_log);
323 323
324 // NetworkChangeNotifier::IPAddressObserver methods: 324 // NetworkChangeNotifier::IPAddressObserver methods:
325 325
326 // Until the servers support roaming, close all connections when the local 326 // Until the servers support roaming, close all connections when the local
327 // IP address changes. 327 // IP address changes.
328 void OnIPAddressChanged() override; 328 void OnIPAddressChanged() override;
329 329
330 // NetworkChangeNotifier::NetworkObserver methods: 330 // NetworkChangeNotifier::NetworkObserver methods:
331 void OnNetworkConnected( 331 void OnNetworkConnected(
332 NetworkChangeNotifier::NetworkHandle network) override; 332 NetworkChangeNotifier::NetworkHandle network) override;
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
406 enum FactoryStatus { 406 enum FactoryStatus {
407 OPEN, // New streams may be created. 407 OPEN, // New streams may be created.
408 CLOSED, // No new streams may be created temporarily. 408 CLOSED, // No new streams may be created temporarily.
409 DISABLED // No more streams may be created until the network changes. 409 DISABLED // No more streams may be created until the network changes.
410 }; 410 };
411 411
412 // Creates a job which doesn't wait for server config to be loaded from the 412 // Creates a job which doesn't wait for server config to be loaded from the
413 // disk cache. This job is started via a PostTask. 413 // disk cache. This job is started via a PostTask.
414 void CreateAuxilaryJob(const QuicSessionKey& key, 414 void CreateAuxilaryJob(const QuicSessionKey& key,
415 int cert_verify_flags, 415 int cert_verify_flags,
416 const BoundNetLog& net_log); 416 const NetLogWithSource& net_log);
417 417
418 // Returns a newly created QuicHttpStream owned by the caller. 418 // Returns a newly created QuicHttpStream owned by the caller.
419 std::unique_ptr<QuicHttpStream> CreateFromSession( 419 std::unique_ptr<QuicHttpStream> CreateFromSession(
420 QuicChromiumClientSession* session); 420 QuicChromiumClientSession* session);
421 421
422 bool OnResolution(const QuicSessionKey& key, const AddressList& address_list); 422 bool OnResolution(const QuicSessionKey& key, const AddressList& address_list);
423 void OnJobComplete(Job* job, int rv); 423 void OnJobComplete(Job* job, int rv);
424 void OnCertVerifyJobComplete(CertVerifierJob* job, int rv); 424 void OnCertVerifyJobComplete(CertVerifierJob* job, int rv);
425 bool HasActiveSession(const QuicServerId& server_id) const; 425 bool HasActiveSession(const QuicServerId& server_id) const;
426 bool HasActiveJob(const QuicServerId& server_id) const; 426 bool HasActiveJob(const QuicServerId& server_id) const;
427 bool HasActiveCertVerifierJob(const QuicServerId& server_id) const; 427 bool HasActiveCertVerifierJob(const QuicServerId& server_id) const;
428 int CreateSession(const QuicSessionKey& key, 428 int CreateSession(const QuicSessionKey& key,
429 int cert_verify_flags, 429 int cert_verify_flags,
430 std::unique_ptr<QuicServerInfo> quic_server_info, 430 std::unique_ptr<QuicServerInfo> quic_server_info,
431 const AddressList& address_list, 431 const AddressList& address_list,
432 base::TimeTicks dns_resolution_start_time, 432 base::TimeTicks dns_resolution_start_time,
433 base::TimeTicks dns_resolution_end_time, 433 base::TimeTicks dns_resolution_end_time,
434 const BoundNetLog& net_log, 434 const NetLogWithSource& net_log,
435 QuicChromiumClientSession** session); 435 QuicChromiumClientSession** session);
436 void ActivateSession(const QuicSessionKey& key, 436 void ActivateSession(const QuicSessionKey& key,
437 QuicChromiumClientSession* session); 437 QuicChromiumClientSession* session);
438 438
439 // Returns |srtt| in micro seconds from ServerNetworkStats. Returns 0 if there 439 // Returns |srtt| in micro seconds from ServerNetworkStats. Returns 0 if there
440 // is no |http_server_properties_| or if |http_server_properties_| doesn't 440 // is no |http_server_properties_| or if |http_server_properties_| doesn't
441 // have ServerNetworkStats for the given |server_id|. 441 // have ServerNetworkStats for the given |server_id|.
442 int64_t GetServerNetworkStatsSmoothedRttInMicroseconds( 442 int64_t GetServerNetworkStatsSmoothedRttInMicroseconds(
443 const QuicServerId& server_id) const; 443 const QuicServerId& server_id) const;
444 444
445 // Helper methods. 445 // Helper methods.
446 bool WasQuicRecentlyBroken(const QuicServerId& server_id) const; 446 bool WasQuicRecentlyBroken(const QuicServerId& server_id) const;
447 447
448 bool CryptoConfigCacheIsEmpty(const QuicServerId& server_id); 448 bool CryptoConfigCacheIsEmpty(const QuicServerId& server_id);
449 449
450 // Starts an asynchronous job for cert verification if 450 // Starts an asynchronous job for cert verification if
451 // |race_cert_verification_| is enabled and if there are cached certs for the 451 // |race_cert_verification_| is enabled and if there are cached certs for the
452 // given |server_id|. 452 // given |server_id|.
453 QuicAsyncStatus StartCertVerifyJob(const QuicServerId& server_id, 453 QuicAsyncStatus StartCertVerifyJob(const QuicServerId& server_id,
454 int cert_verify_flags, 454 int cert_verify_flags,
455 const BoundNetLog& net_log); 455 const NetLogWithSource& net_log);
456 456
457 // Initializes the cached state associated with |server_id| in 457 // Initializes the cached state associated with |server_id| in
458 // |crypto_config_| with the information in |server_info|. Populates 458 // |crypto_config_| with the information in |server_info|. Populates
459 // |connection_id| with the next server designated connection id, 459 // |connection_id| with the next server designated connection id,
460 // if any, and otherwise leaves it unchanged. 460 // if any, and otherwise leaves it unchanged.
461 void InitializeCachedStateInCryptoConfig( 461 void InitializeCachedStateInCryptoConfig(
462 const QuicServerId& server_id, 462 const QuicServerId& server_id,
463 const std::unique_ptr<QuicServerInfo>& server_info, 463 const std::unique_ptr<QuicServerInfo>& server_info,
464 QuicConnectionId* connection_id); 464 QuicConnectionId* connection_id);
465 465
466 // Initialize |quic_supported_servers_at_startup_| with the list of servers 466 // Initialize |quic_supported_servers_at_startup_| with the list of servers
467 // that supported QUIC at start up and also initialize in-memory cache of 467 // that supported QUIC at start up and also initialize in-memory cache of
468 // QuicServerInfo objects from HttpServerProperties. 468 // QuicServerInfo objects from HttpServerProperties.
469 void MaybeInitialize(); 469 void MaybeInitialize();
470 470
471 void ProcessGoingAwaySession(QuicChromiumClientSession* session, 471 void ProcessGoingAwaySession(QuicChromiumClientSession* session,
472 const QuicServerId& server_id, 472 const QuicServerId& server_id,
473 bool was_session_active); 473 bool was_session_active);
474 474
475 // Internal method that migrates |session| over to using 475 // Internal method that migrates |session| over to using
476 // |peer_address| and |network|. If |network| is 476 // |peer_address| and |network|. If |network| is
477 // kInvalidNetworkHandle, default network is used. If the migration 477 // kInvalidNetworkHandle, default network is used. If the migration
478 // fails and |close_session_on_error| is true, connection is closed. 478 // fails and |close_session_on_error| is true, connection is closed.
479 MigrationResult MigrateSessionInner( 479 MigrationResult MigrateSessionInner(
480 QuicChromiumClientSession* session, 480 QuicChromiumClientSession* session,
481 IPEndPoint peer_address, 481 IPEndPoint peer_address,
482 NetworkChangeNotifier::NetworkHandle network, 482 NetworkChangeNotifier::NetworkHandle network,
483 bool close_session_on_error, 483 bool close_session_on_error,
484 const BoundNetLog& bound_net_log); 484 const NetLogWithSource& net_log);
485 485
486 // Called to re-enable QUIC when QUIC has been disabled. 486 // Called to re-enable QUIC when QUIC has been disabled.
487 void OpenFactory(); 487 void OpenFactory();
488 // If QUIC has been working well after having been recently 488 // If QUIC has been working well after having been recently
489 // disabled, clear the |consecutive_disabled_count_|. 489 // disabled, clear the |consecutive_disabled_count_|.
490 void MaybeClearConsecutiveDisabledCount(); 490 void MaybeClearConsecutiveDisabledCount();
491 491
492 bool require_confirmation_; 492 bool require_confirmation_;
493 NetLog* net_log_; 493 NetLog* net_log_;
494 HostResolver* host_resolver_; 494 HostResolver* host_resolver_;
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
647 const scoped_refptr<SSLConfigService> ssl_config_service_; 647 const scoped_refptr<SSLConfigService> ssl_config_service_;
648 648
649 base::WeakPtrFactory<QuicStreamFactory> weak_factory_; 649 base::WeakPtrFactory<QuicStreamFactory> weak_factory_;
650 650
651 DISALLOW_COPY_AND_ASSIGN(QuicStreamFactory); 651 DISALLOW_COPY_AND_ASSIGN(QuicStreamFactory);
652 }; 652 };
653 653
654 } // namespace net 654 } // namespace net
655 655
656 #endif // NET_QUIC_QUIC_STREAM_FACTORY_H_ 656 #endif // NET_QUIC_QUIC_STREAM_FACTORY_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698