stats: implement transport iceState

https://w3c.github.io/webrtc-stats/#dom-rtctransportstats-selectedcandidatepairid

BUG=webrtc:14022

Change-Id: I206bff7048d2df3e3aff0af55072097f49d54e8f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/261720
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Philipp Hancke <philipp.hancke@googlemail.com>
Cr-Commit-Position: refs/heads/main@{#36840}
diff --git a/api/stats/rtcstats_objects.h b/api/stats/rtcstats_objects.h
index 373a2cd..14c5f24 100644
--- a/api/stats/rtcstats_objects.h
+++ b/api/stats/rtcstats_objects.h
@@ -104,6 +104,17 @@
   static const char* const kControlling;
 };
 
+// https://www.w3.org/TR/webrtc/#dom-rtcicetransportstate
+struct RTCIceTransportState {
+  static const char* const kNew;
+  static const char* const kChecking;
+  static const char* const kConnected;
+  static const char* const kCompleted;
+  static const char* const kDisconnected;
+  static const char* const kFailed;
+  static const char* const kClosed;
+};
+
 // https://w3c.github.io/webrtc-stats/#certificatestats-dict*
 class RTC_EXPORT RTCCertificateStats final : public RTCStats {
  public:
@@ -710,6 +721,7 @@
   RTCStatsMember<uint32_t> selected_candidate_pair_changes;
   RTCStatsMember<std::string> ice_role;
   RTCStatsMember<std::string> ice_local_username_fragment;
+  RTCStatsMember<std::string> ice_state;
 };
 
 }  // namespace webrtc