Move RTCStatsCollector helper functions to anonymous namespace.

Simple refactoring.
Moved ProduceCertificateStatsFromSSLCertificateStats_s and
ProduceIceCandidateStats_s from member section of RTCStatsCollector
to the anonymous namespace of rtcstatscollector.cc.
The thread check is removed as a result, which makes sense because
the helper function does not know about which thread its input
parameter lives on, that is up to the calling place (which has a thread
check already).

This makes rtcstatscollector.h cleaner, and all ProduceBlahStats
functions are starting points of collecting various stats. (Call all
of them and you get a complete set of stats.)

(Not moving PrepareTransportCertificateStats_s because it is using a
private struct of RTCStatsCollector.)

BUG=627816

Review-Url: https://codereview.webrtc.org/2462573002
Cr-Commit-Position: refs/heads/master@{#14818}
diff --git a/webrtc/api/rtcstatscollector.cc b/webrtc/api/rtcstatscollector.cc
index 1c87dac..dc2b189 100644
--- a/webrtc/api/rtcstatscollector.cc
+++ b/webrtc/api/rtcstatscollector.cc
@@ -71,6 +71,50 @@
   }
 }
 
+void ProduceCertificateStatsFromSSLCertificateStats(
+    int64_t timestamp_us, const rtc::SSLCertificateStats& certificate_stats,
+    RTCStatsReport* report) {
+  RTCCertificateStats* prev_certificate_stats = nullptr;
+  for (const rtc::SSLCertificateStats* s = &certificate_stats; s;
+       s = s->issuer.get()) {
+    RTCCertificateStats* certificate_stats = new RTCCertificateStats(
+        RTCCertificateIDFromFingerprint(s->fingerprint), timestamp_us);
+    certificate_stats->fingerprint = s->fingerprint;
+    certificate_stats->fingerprint_algorithm = s->fingerprint_algorithm;
+    certificate_stats->base64_certificate = s->base64_certificate;
+    if (prev_certificate_stats)
+      prev_certificate_stats->issuer_certificate_id = certificate_stats->id();
+    report->AddStats(std::unique_ptr<RTCCertificateStats>(certificate_stats));
+    prev_certificate_stats = certificate_stats;
+  }
+}
+
+const std::string& ProduceIceCandidateStats(
+    int64_t timestamp_us, const cricket::Candidate& candidate, bool is_local,
+    RTCStatsReport* report) {
+  const std::string& id = "RTCIceCandidate_" + candidate.id();
+  const RTCStats* stats = report->Get(id);
+  if (!stats) {
+    std::unique_ptr<RTCIceCandidateStats> candidate_stats;
+    if (is_local)
+      candidate_stats.reset(new RTCLocalIceCandidateStats(id, timestamp_us));
+    else
+      candidate_stats.reset(new RTCRemoteIceCandidateStats(id, timestamp_us));
+    candidate_stats->ip = candidate.address().ipaddr().ToString();
+    candidate_stats->port = static_cast<int32_t>(candidate.address().port());
+    candidate_stats->protocol = candidate.protocol();
+    candidate_stats->candidate_type = CandidateTypeToRTCIceCandidateType(
+        candidate.type());
+    candidate_stats->priority = static_cast<int32_t>(candidate.priority());
+
+    stats = candidate_stats.get();
+    report->AddStats(std::move(candidate_stats));
+  }
+  RTC_DCHECK_EQ(stats->type(), is_local ? RTCLocalIceCandidateStats::kType
+                                        : RTCRemoteIceCandidateStats::kType);
+  return stats->id();
+}
+
 }  // namespace
 
 rtc::scoped_refptr<RTCStatsCollector> RTCStatsCollector::Create(
@@ -225,37 +269,18 @@
     const std::map<std::string, CertificateStatsPair>& transport_cert_stats,
     RTCStatsReport* report) const {
   RTC_DCHECK(signaling_thread_->IsCurrent());
-  for (const auto& kvp : transport_cert_stats) {
-    if (kvp.second.local) {
-      ProduceCertificateStatsFromSSLCertificateStats_s(
-          timestamp_us, *kvp.second.local.get(), report);
+  for (const auto& transport_cert_stats_pair : transport_cert_stats) {
+    if (transport_cert_stats_pair.second.local) {
+      ProduceCertificateStatsFromSSLCertificateStats(
+          timestamp_us, *transport_cert_stats_pair.second.local.get(), report);
     }
-    if (kvp.second.remote) {
-      ProduceCertificateStatsFromSSLCertificateStats_s(
-          timestamp_us, *kvp.second.remote.get(), report);
+    if (transport_cert_stats_pair.second.remote) {
+      ProduceCertificateStatsFromSSLCertificateStats(
+          timestamp_us, *transport_cert_stats_pair.second.remote.get(), report);
     }
   }
 }
 
-void RTCStatsCollector::ProduceCertificateStatsFromSSLCertificateStats_s(
-    int64_t timestamp_us, const rtc::SSLCertificateStats& certificate_stats,
-    RTCStatsReport* report) const {
-  RTC_DCHECK(signaling_thread_->IsCurrent());
-  RTCCertificateStats* prev_certificate_stats = nullptr;
-  for (const rtc::SSLCertificateStats* s = &certificate_stats; s;
-       s = s->issuer.get()) {
-    RTCCertificateStats* certificate_stats = new RTCCertificateStats(
-        RTCCertificateIDFromFingerprint(s->fingerprint), timestamp_us);
-    certificate_stats->fingerprint = s->fingerprint;
-    certificate_stats->fingerprint_algorithm = s->fingerprint_algorithm;
-    certificate_stats->base64_certificate = s->base64_certificate;
-    if (prev_certificate_stats)
-      prev_certificate_stats->issuer_certificate_id = certificate_stats->id();
-    report->AddStats(std::unique_ptr<RTCCertificateStats>(certificate_stats));
-    prev_certificate_stats = certificate_stats;
-  }
-}
-
 void RTCStatsCollector::ProduceDataChannelStats_s(
     int64_t timestamp_us, RTCStatsReport* report) const {
   RTC_DCHECK(signaling_thread_->IsCurrent());
@@ -295,9 +320,9 @@
         // anything. We don't have a complete list. Local candidates come from
         // Port objects, and prflx candidates (both local and remote) are only
         // stored in candidate pairs. crbug.com/632723
-        candidate_pair_stats->local_candidate_id = ProduceIceCandidateStats_s(
+        candidate_pair_stats->local_candidate_id = ProduceIceCandidateStats(
             timestamp_us, info.local_candidate, true, report);
-        candidate_pair_stats->remote_candidate_id = ProduceIceCandidateStats_s(
+        candidate_pair_stats->remote_candidate_id = ProduceIceCandidateStats(
             timestamp_us, info.remote_candidate, false, report);
 
         // TODO(hbos): This writable is different than the spec. It goes to
@@ -326,33 +351,6 @@
   }
 }
 
-const std::string& RTCStatsCollector::ProduceIceCandidateStats_s(
-    int64_t timestamp_us, const cricket::Candidate& candidate, bool is_local,
-    RTCStatsReport* report) const {
-  RTC_DCHECK(signaling_thread_->IsCurrent());
-  const std::string& id = "RTCIceCandidate_" + candidate.id();
-  const RTCStats* stats = report->Get(id);
-  if (!stats) {
-    std::unique_ptr<RTCIceCandidateStats> candidate_stats;
-    if (is_local)
-      candidate_stats.reset(new RTCLocalIceCandidateStats(id, timestamp_us));
-    else
-      candidate_stats.reset(new RTCRemoteIceCandidateStats(id, timestamp_us));
-    candidate_stats->ip = candidate.address().ipaddr().ToString();
-    candidate_stats->port = static_cast<int32_t>(candidate.address().port());
-    candidate_stats->protocol = candidate.protocol();
-    candidate_stats->candidate_type = CandidateTypeToRTCIceCandidateType(
-        candidate.type());
-    candidate_stats->priority = static_cast<int32_t>(candidate.priority());
-
-    stats = candidate_stats.get();
-    report->AddStats(std::move(candidate_stats));
-  }
-  RTC_DCHECK_EQ(stats->type(), is_local ? RTCLocalIceCandidateStats::kType
-                                        : RTCRemoteIceCandidateStats::kType);
-  return stats->id();
-}
-
 void RTCStatsCollector::ProducePeerConnectionStats_s(
     int64_t timestamp_us, RTCStatsReport* report) const {
   RTC_DCHECK(signaling_thread_->IsCurrent());