RTCTransportStats[1] added, supporting all members.
Address TODO in rtcstatscollector_unittest.cc before closing 653873.
[1] https://w3c.github.io/webrtc-stats/#transportstats-dict*
BUG=chromium:653873, chromium:633550, chromium:627816
Review-Url: https://codereview.webrtc.org/2408363002
Cr-Commit-Position: refs/heads/master@{#14740}
diff --git a/webrtc/api/rtcstatscollector.h b/webrtc/api/rtcstatscollector.h
index ae04e61..de374fc 100644
--- a/webrtc/api/rtcstatscollector.h
+++ b/webrtc/api/rtcstatscollector.h
@@ -11,6 +11,7 @@
#ifndef WEBRTC_API_RTCSTATSCOLLECTOR_H_
#define WEBRTC_API_RTCSTATSCOLLECTOR_H_
+#include <map>
#include <memory>
#include <vector>
@@ -20,6 +21,7 @@
#include "webrtc/base/asyncinvoker.h"
#include "webrtc/base/refcount.h"
#include "webrtc/base/scoped_ref_ptr.h"
+#include "webrtc/base/sslidentity.h"
#include "webrtc/base/timeutils.h"
namespace cricket {
@@ -76,15 +78,21 @@
const rtc::scoped_refptr<RTCStatsReport>& partial_report);
private:
+ struct CertificateStatsPair {
+ std::unique_ptr<rtc::SSLCertificateStats> local;
+ std::unique_ptr<rtc::SSLCertificateStats> remote;
+ };
+
void AddPartialResults_s(rtc::scoped_refptr<RTCStatsReport> partial_report);
void DeliverCachedReport();
// Produces |RTCCertificateStats|.
void ProduceCertificateStats_s(
- int64_t timestamp_us, const SessionStats& session_stats,
+ int64_t timestamp_us,
+ const std::map<std::string, CertificateStatsPair>& transport_cert_stats,
RTCStatsReport* report) const;
- void ProduceCertificateStatsFromSSLCertificateAndChain_s(
- int64_t timestamp_us, const rtc::SSLCertificate& certificate,
+ void ProduceCertificateStatsFromSSLCertificateStats_s(
+ int64_t timestamp_us, const rtc::SSLCertificateStats& certificate_stats,
RTCStatsReport* report) const;
// Produces |RTCDataChannelStats|.
void ProduceDataChannelStats_s(
@@ -99,6 +107,15 @@
// Produces |RTCPeerConnectionStats|.
void ProducePeerConnectionStats_s(
int64_t timestamp_us, RTCStatsReport* report) const;
+ // Produces |RTCTransportStats|.
+ void ProduceTransportStats_s(
+ int64_t timestamp_us, const SessionStats& session_stats,
+ const std::map<std::string, CertificateStatsPair>& transport_cert_stats,
+ RTCStatsReport* report) const;
+
+ // Helper function to stats-producing functions.
+ std::map<std::string, CertificateStatsPair>
+ PrepareTransportCertificateStats_s(const SessionStats& session_stats) const;
PeerConnection* const pc_;
rtc::Thread* const signaling_thread_;