OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 #include "components/domain_reliability/quic_error_mapping.h" | 5 #include "components/domain_reliability/quic_error_mapping.h" |
6 | 6 |
7 namespace domain_reliability { | 7 namespace domain_reliability { |
8 | 8 |
9 namespace { | 9 namespace { |
10 | 10 |
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
119 // The connection has too many outstanding received packets. | 119 // The connection has too many outstanding received packets. |
120 {net::QUIC_TOO_MANY_OUTSTANDING_RECEIVED_PACKETS, | 120 {net::QUIC_TOO_MANY_OUTSTANDING_RECEIVED_PACKETS, |
121 "quic.too_many_outstanding_received_packets"}, | 121 "quic.too_many_outstanding_received_packets"}, |
122 // The quic connection job to load server config is cancelled. | 122 // The quic connection job to load server config is cancelled. |
123 {net::QUIC_CONNECTION_CANCELLED, "quic.connection.cancelled"}, | 123 {net::QUIC_CONNECTION_CANCELLED, "quic.connection.cancelled"}, |
124 // Disabled QUIC because of high packet loss rate. | 124 // Disabled QUIC because of high packet loss rate. |
125 {net::QUIC_BAD_PACKET_LOSS_RATE, "quic.bad_packet_loss_rate"}, | 125 {net::QUIC_BAD_PACKET_LOSS_RATE, "quic.bad_packet_loss_rate"}, |
126 // Disabled QUIC because of too many PUBLIC_RESETs post handshake. | 126 // Disabled QUIC because of too many PUBLIC_RESETs post handshake. |
127 {net::QUIC_PUBLIC_RESETS_POST_HANDSHAKE, | 127 {net::QUIC_PUBLIC_RESETS_POST_HANDSHAKE, |
128 "quic.public_resets_post_handshake"}, | 128 "quic.public_resets_post_handshake"}, |
129 // Disabled QUIC because of too many timeouts with streams open. | |
130 {net::QUIC_TIMEOUTS_WITH_OPEN_STREAMS, "quic.timeouts_with_open_streams"}, | |
131 // Closed because we failed to serialize a packet. | 129 // Closed because we failed to serialize a packet. |
132 {net::QUIC_FAILED_TO_SERIALIZE_PACKET, "quic.failed_to_serialize_packet"}, | 130 {net::QUIC_FAILED_TO_SERIALIZE_PACKET, "quic.failed_to_serialize_packet"}, |
133 // QUIC timed out after too many RTOs. | 131 // QUIC timed out after too many RTOs. |
134 {net::QUIC_TOO_MANY_RTOS, "quic.too_many_rtos"}, | 132 {net::QUIC_TOO_MANY_RTOS, "quic.too_many_rtos"}, |
135 // Crypto errors. | 133 // Crypto errors. |
136 | 134 |
137 // Hanshake failed. | 135 // Hanshake failed. |
138 {net::QUIC_HANDSHAKE_FAILED, "quic.handshake_failed"}, | 136 {net::QUIC_HANDSHAKE_FAILED, "quic.handshake_failed"}, |
139 // Handshake message contained out of order tags. | 137 // Handshake message contained out of order tags. |
140 {net::QUIC_CRYPTO_TAGS_OUT_OF_ORDER, "quic.crypto.tags_out_of_order"}, | 138 {net::QUIC_CRYPTO_TAGS_OUT_OF_ORDER, "quic.crypto.tags_out_of_order"}, |
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
246 // Connection closed because of server hits max number of sessions allowed. | 244 // Connection closed because of server hits max number of sessions allowed. |
247 {net::QUIC_TOO_MANY_SESSIONS_ON_SERVER, "quic.too_many_sessions_on_server"}, | 245 {net::QUIC_TOO_MANY_SESSIONS_ON_SERVER, "quic.too_many_sessions_on_server"}, |
248 // There was an error decompressing data. | 246 // There was an error decompressing data. |
249 {net::QUIC_DECOMPRESSION_FAILURE, "quic.decompression_failure"}, | 247 {net::QUIC_DECOMPRESSION_FAILURE, "quic.decompression_failure"}, |
250 | 248 |
251 // No error. Used as bound while iterating. | 249 // No error. Used as bound while iterating. |
252 {net::QUIC_LAST_ERROR, "quic.last_error"}}; | 250 {net::QUIC_LAST_ERROR, "quic.last_error"}}; |
253 | 251 |
254 // Must be updated any time a net::QuicErrorCode is deprecated in | 252 // Must be updated any time a net::QuicErrorCode is deprecated in |
255 // net/quic/core/quic_packets.h. | 253 // net/quic/core/quic_packets.h. |
256 const int kDeprecatedQuicErrorCount = 4; | 254 const int kDeprecatedQuicErrorCount = 5; |
257 const int kActiveQuicErrorCount = | 255 const int kActiveQuicErrorCount = |
258 net::QUIC_LAST_ERROR - kDeprecatedQuicErrorCount; | 256 net::QUIC_LAST_ERROR - kDeprecatedQuicErrorCount; |
259 | 257 |
260 static_assert(arraysize(kQuicErrorMap) == kActiveQuicErrorCount, | 258 static_assert(arraysize(kQuicErrorMap) == kActiveQuicErrorCount, |
261 "quic_error_map is not in sync with quic protocol!"); | 259 "quic_error_map is not in sync with quic protocol!"); |
262 | 260 |
263 } // namespace | 261 } // namespace |
264 | 262 |
265 // static | 263 // static |
266 bool GetDomainReliabilityBeaconQuicError(net::QuicErrorCode quic_error, | 264 bool GetDomainReliabilityBeaconQuicError(net::QuicErrorCode quic_error, |
267 std::string* beacon_quic_error_out) { | 265 std::string* beacon_quic_error_out) { |
268 if (quic_error != net::QUIC_NO_ERROR) { | 266 if (quic_error != net::QUIC_NO_ERROR) { |
269 // Convert a QUIC error. | 267 // Convert a QUIC error. |
270 // TODO(juliatuttle): Consider sorting and using binary search? | 268 // TODO(juliatuttle): Consider sorting and using binary search? |
271 for (size_t i = 0; i < arraysize(kQuicErrorMap); i++) { | 269 for (size_t i = 0; i < arraysize(kQuicErrorMap); i++) { |
272 if (kQuicErrorMap[i].quic_error == quic_error) { | 270 if (kQuicErrorMap[i].quic_error == quic_error) { |
273 *beacon_quic_error_out = kQuicErrorMap[i].beacon_quic_error; | 271 *beacon_quic_error_out = kQuicErrorMap[i].beacon_quic_error; |
274 return true; | 272 return true; |
275 } | 273 } |
276 } | 274 } |
277 } | 275 } |
278 beacon_quic_error_out->clear(); | 276 beacon_quic_error_out->clear(); |
279 return false; | 277 return false; |
280 } | 278 } |
281 | 279 |
282 } // namespace domain_reliability | 280 } // namespace domain_reliability |
OLD | NEW |