Chromium Code Reviews| Index: net/quic/quic_chromium_client_session.cc |
| diff --git a/net/quic/quic_chromium_client_session.cc b/net/quic/quic_chromium_client_session.cc |
| index 15ec708d5f4c8df66dd85ad4db6eea3e37c19fc4..f5abd206dc7eb1227b9e6a686304179e9063e9a7 100644 |
| --- a/net/quic/quic_chromium_client_session.cc |
| +++ b/net/quic/quic_chromium_client_session.cc |
| @@ -759,7 +759,8 @@ void QuicChromiumClientSession::OnCryptoHandshakeMessageReceived( |
| void QuicChromiumClientSession::OnGoAway(const QuicGoAwayFrame& frame) { |
| QuicSession::OnGoAway(frame); |
| - NotifyFactoryOfSessionGoingAway(); |
| + NotifyFactoryOfSessionGoingAway(frame.reason_phrase == |
| + "peer connection migration"); |
| } |
| void QuicChromiumClientSession::OnRstStream(const QuicRstStreamFrame& frame) { |
| @@ -849,7 +850,7 @@ void QuicChromiumClientSession::OnConnectionClosed( |
| UMA_HISTOGRAM_SPARSE_SLOWLY("Net.QuicSession.QuicVersion", |
| connection()->version()); |
| - NotifyFactoryOfSessionGoingAway(); |
| + NotifyFactoryOfSessionGoingAway(false); |
| QuicSession::OnConnectionClosed(error, source); |
| if (!callback_.is_null()) { |
| @@ -1015,7 +1016,7 @@ void QuicChromiumClientSession::OnReadError( |
| } |
| DVLOG(1) << "Closing session on read error: " << result; |
| UMA_HISTOGRAM_SPARSE_SLOWLY("Net.QuicSession.ReadError", -result); |
| - NotifyFactoryOfSessionGoingAway(); |
| + NotifyFactoryOfSessionGoingAway(false); |
| CloseSessionOnErrorInner(result, QUIC_PACKET_READ_ERROR); |
| NotifyFactoryOfSessionClosedLater(); |
| } |
| @@ -1031,10 +1032,14 @@ bool QuicChromiumClientSession::OnPacket(const QuicEncryptedPacket& packet, |
| return true; |
| } |
| -void QuicChromiumClientSession::NotifyFactoryOfSessionGoingAway() { |
| +void QuicChromiumClientSession::NotifyFactoryOfSessionGoingAway( |
| + bool is_connection_migrated) { |
| going_away_ = true; |
| - if (stream_factory_) |
| + if (stream_factory_) { |
| stream_factory_->OnSessionGoingAway(this); |
| + if (is_connection_migrated) |
| + stream_factory_->OnSessionGoingAwayForConnectionMigration(); |
|
Ryan Hamilton
2016/03/09 19:53:03
Instead of doing this, can we have the session sto
|
| + } |
| } |
| void QuicChromiumClientSession::NotifyFactoryOfSessionClosedLater() { |