quic: Rename kMaxValue histogram sentinels in QUIC enums QUIC_CLIENT_HISTOGRAM_ENUM expects an exclusive enum count for its enum_size parameter. PathValidationReason and MultiPortStatusOnMigration defined an extra enumerator named kMaxValue without an explicit value, making it act as an exclusive count rather than an inclusive maximum value. In Chromium, 3-argument UMA_HISTOGRAM_ENUMERATION() is changing to disallow logging enums that define kMaxValue to prevent conflating a count with a max value. Rename these boundary sentinels to kNumReasons and kNumStatuses to reflect their semantics and prevent compile errors when consumed by Chromium histogram macros. PiperOrigin-RevId: 978548455
diff --git a/quiche/quic/core/quic_connection.cc b/quiche/quic/core/quic_connection.cc index fe84062..0ee35f4 100644 --- a/quiche/quic/core/quic_connection.cc +++ b/quiche/quic/core/quic_connection.cc
@@ -4285,7 +4285,7 @@ if (path_validator_.HasPendingPathValidation()) { QUIC_CLIENT_HISTOGRAM_ENUM("QuicConnection.MultiPortPathCreationCancelled", path_validator_.GetPathValidationReason(), - PathValidationReason::kMaxValue, + PathValidationReason::kNumReasons, "Reason for cancelled multi port path creation"); return; } @@ -6509,7 +6509,7 @@ QUIC_CLIENT_HISTOGRAM_ENUM( "QuicConnection.MultiPortPathStatusWhenMigrating", MultiPortStatusOnMigration::kNotValidated, - MultiPortStatusOnMigration::kMaxValue, + MultiPortStatusOnMigration::kNumStatuses, "Status of the multi port path upon migration"); return; } @@ -6524,7 +6524,7 @@ QUIC_CLIENT_HISTOGRAM_ENUM( "QuicConnection.MultiPortPathStatusWhenMigrating", MultiPortStatusOnMigration::kWaitingForRefreshValidation, - MultiPortStatusOnMigration::kMaxValue, + MultiPortStatusOnMigration::kNumStatuses, "Status of the multi port path upon migration"); } else { // The multi-port path is currently under probing. @@ -6532,7 +6532,7 @@ QUIC_CLIENT_HISTOGRAM_ENUM( "QuicConnection.MultiPortPathStatusWhenMigrating", MultiPortStatusOnMigration::kPendingRefreshValidation, - MultiPortStatusOnMigration::kMaxValue, + MultiPortStatusOnMigration::kNumStatuses, "Status of the multi port path upon migration"); } if (context == nullptr) {
diff --git a/quiche/quic/core/quic_connection.h b/quiche/quic/core/quic_connection.h index 1b1cc1a..0a19bbb 100644 --- a/quiche/quic/core/quic_connection.h +++ b/quiche/quic/core/quic_connection.h
@@ -1612,7 +1612,7 @@ kNotValidated, kPendingRefreshValidation, kWaitingForRefreshValidation, - kMaxValue, + kNumStatuses, }; struct QUICHE_EXPORT PathState {
diff --git a/quiche/quic/core/quic_path_validator.h b/quiche/quic/core/quic_path_validator.h index edd98ce..6f0a3d6 100644 --- a/quiche/quic/core/quic_path_validator.h +++ b/quiche/quic/core/quic_path_validator.h
@@ -40,7 +40,7 @@ kServerPreferredAddressMigration, kPortMigration, kConnectionMigration, - kMaxValue, + kNumReasons, }; struct QUICHE_EXPORT PathValidationFailure {