Index: net/quic/chromium/quic_chromium_client_session.h |
diff --git a/net/quic/chromium/quic_chromium_client_session.h b/net/quic/chromium/quic_chromium_client_session.h |
index dcf436381f69a1cfa4bfa0f3b8435e178f1ecb7f..5a2ac65315aceb3458f0c6dcb478cbb808526410 100644 |
--- a/net/quic/chromium/quic_chromium_client_session.h |
+++ b/net/quic/chromium/quic_chromium_client_session.h |
@@ -58,6 +58,18 @@ |
public QuicChromiumPacketReader::Visitor, |
public QuicChromiumPacketWriter::WriteErrorObserver { |
public: |
+ // Reasons to disable QUIC, that is under certain pathological |
+ // connection errors. Note: these values must be kept in sync with |
+ // the corresponding values of QuicDisabledReason in: |
+ // tools/metrics/histograms/histograms.xml |
+ enum QuicDisabledReason { |
+ QUIC_DISABLED_NOT = 0, // default, not disabled |
+ QUIC_DISABLED_PUBLIC_RESET_POST_HANDSHAKE = 1, |
+ QUIC_DISABLED_TIMEOUT_WITH_OPEN_STREAMS = 2, |
+ QUIC_DISABLED_BAD_PACKET_LOSS_RATE = 3, |
+ QUIC_DISABLED_MAX = 4, |
+ }; |
+ |
// An interface for observing events on a session. |
class NET_EXPORT_PRIVATE Observer { |
public: |
@@ -236,6 +248,8 @@ |
bool CanPool(const std::string& hostname, PrivacyMode privacy_mode) const; |
const QuicServerId& server_id() const { return server_id_; } |
+ |
+ QuicDisabledReason disabled_reason() const { return disabled_reason_; } |
// Migrates session onto new socket, i.e., starts reading from |
// |socket| in addition to any previous sockets, and sets |writer| |
@@ -344,6 +358,7 @@ |
bool going_away_; |
// True when the session receives a go away from server due to port migration. |
bool port_migration_detected_; |
+ QuicDisabledReason disabled_reason_; |
TokenBindingSignatureMap token_binding_signatures_; |
// UMA histogram counters for streams pushed to this session. |
int streams_pushed_count_; |