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

Unified Diff: net/quic/quic_client_session.cc

Issue 1025573002: QUIC - disable QUIC if packet loss rate is bad for a connection. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 9 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 side-by-side diff with in-line comments
Download patch
Index: net/quic/quic_client_session.cc
diff --git a/net/quic/quic_client_session.cc b/net/quic/quic_client_session.cc
index e5fdba734e838e5c9b84f7925176f96a31eca2df..22caaf701c16730b537b23c806f7bdc1e8c48362 100644
--- a/net/quic/quic_client_session.cc
+++ b/net/quic/quic_client_session.cc
@@ -171,6 +171,7 @@ QuicClientSession::QuicClientSession(
server_info_(server_info.Pass()),
read_pending_(false),
num_total_streams_(0),
+ number_of_handshakes_(0),
task_runner_(task_runner),
net_log_(BoundNetLog::Make(net_log, NetLog::SOURCE_QUIC_SESSION)),
dns_resolution_end_time_(dns_resolution_end_time),
@@ -536,6 +537,10 @@ int QuicClientSession::GetNumSentClientHellos() const {
return crypto_stream_->num_sent_client_hellos();
}
+int QuicClientSession::PacketLossRate() const {
+ return logger_->PacketLossRate();
+}
+
bool QuicClientSession::CanPool(const std::string& hostname,
PrivacyMode privacy_mode) const {
DCHECK(connection()->connected());
@@ -620,7 +625,13 @@ void QuicClientSession::OnCryptoHandshakeEvent(CryptoHandshakeEvent event) {
"Net.QuicServerInfo.WaitForDataReady.HandshakeConfirmedTime",
base::TimeTicks::Now() - wait_for_data_start_time);
}
+
+ // TODO(rtenneti): Handle ERROR condition from OnCryptoHandshakeCompleted.
+ ++number_of_handshakes_;
+ stream_factory_->OnCryptoHandshakeCompleted(this, server_id_,
+ number_of_handshakes_);
}
+
// Track how long it has taken to finish handshake after we have finished
// DNS host resolution.
if (!dns_resolution_end_time_.is_null()) {
@@ -946,6 +957,9 @@ void QuicClientSession::OnConnectTimeout() {
if (IsCryptoHandshakeConfirmed())
return;
+ ++number_of_handshakes_;
+ stream_factory_->OnCryptoHandshakeCompleted(this, server_id_,
+ number_of_handshakes_);
// TODO(rch): re-enable this code once beta is cut.
// if (stream_factory_)
// stream_factory_->OnSessionConnectTimeout(this);

Powered by Google App Engine
This is Rietveld 408576698