Return false if PeerConnection::GetStats() is called on invalid tracks
Before calling StatsCollctor::GetStats() in PeerConnection::GetStats(), check if the track is valid. If not, return false.
A track is invalid if it is not a nullptr and there is no report data for it.
BUG=webrtc:6652
Review-Url: https://codereview.webrtc.org/2470023004
Cr-Commit-Position: refs/heads/master@{#14934}
diff --git a/webrtc/api/statscollector.cc b/webrtc/api/statscollector.cc
index a40835c..7dc17da 100644
--- a/webrtc/api/statscollector.cc
+++ b/webrtc/api/statscollector.cc
@@ -549,6 +549,11 @@
return report;
}
+bool StatsCollector::IsValidTrack(const std::string& track_id) {
+ return reports_.Find(StatsReport::NewTypedId(
+ StatsReport::kStatsReportTypeTrack, track_id)) != nullptr;
+}
+
StatsReport* StatsCollector::AddCertificateReports(
const rtc::SSLCertificate* cert) {
RTC_DCHECK(pc_->session()->signaling_thread()->IsCurrent());