measure ice candidate poolsize setting for different bundle policys

The ICE candidate pool size defined in
   https://w3c.github.io/webrtc-pc/#dom-rtcconfiguration-icecandidatepoolsize
is an optimization and it may be desirable to restrict the maximum amount of
the pre-gathered components or limit the usage to the max-bundle policy.

BUG=webrtc:12383

Change-Id: I24a6434fb55b4d7f4471078785712996182f394a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/209701
Reviewed-by: Justin Uberti <juberti@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Philipp Hancke <philipp.hancke@googlemail.com>
Cr-Commit-Position: refs/heads/master@{#33442}
diff --git a/pc/peer_connection.cc b/pc/peer_connection.cc
index 1766bf5..e3a4b27 100644
--- a/pc/peer_connection.cc
+++ b/pc/peer_connection.cc
@@ -1817,6 +1817,29 @@
     }
     RTC_HISTOGRAM_ENUMERATION("WebRTC.PeerConnection.BundlePolicy", policy,
                               kBundlePolicyUsageMax);
+
+    // Record configured ice candidate pool size depending on the
+    // BUNDLE policy. See
+    // https://w3c.github.io/webrtc-pc/#dom-rtcconfiguration-icecandidatepoolsize
+    // The ICE candidate pool size is an optimization and it may be desirable
+    // to restrict the maximum size of the pre-gathered candidates.
+    switch (configuration_.bundle_policy) {
+      case kBundlePolicyBalanced:
+        RTC_HISTOGRAM_COUNTS_LINEAR(
+            "WebRTC.PeerConnection.CandidatePoolUsage.Balanced",
+            configuration_.ice_candidate_pool_size, 0, 255, 256);
+        break;
+      case kBundlePolicyMaxBundle:
+        RTC_HISTOGRAM_COUNTS_LINEAR(
+            "WebRTC.PeerConnection.CandidatePoolUsage.MaxBundle",
+            configuration_.ice_candidate_pool_size, 0, 255, 256);
+        break;
+      case kBundlePolicyMaxCompat:
+        RTC_HISTOGRAM_COUNTS_LINEAR(
+            "WebRTC.PeerConnection.CandidatePoolUsage.MaxCompat",
+            configuration_.ice_candidate_pool_size, 0, 255, 256);
+        break;
+    }
   }
 }