From 86c40a14b48c8eff0dd7af048f30747af2c61016 Mon Sep 17 00:00:00 2001 From: deadbeef Date: Wed, 28 Jun 2017 09:37:23 -0700 Subject: [PATCH] Fixing RTCIceCandidatePairStats.nominated for ICE controlling agent. Was only working when the nonstandard "renomination" extension to ICE is enabled, which chromium doesn't use. BUG=chromium:734094 Review-Url: https://codereview.webrtc.org/2957303002 Cr-Commit-Position: refs/heads/master@{#18814} --- webrtc/p2p/base/port.cc | 9 ++++++++- webrtc/pc/rtcstats_integrationtest.cc | 2 ++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/webrtc/p2p/base/port.cc b/webrtc/p2p/base/port.cc index e657125869..3a3d9ead8b 100644 --- a/webrtc/p2p/base/port.cc +++ b/webrtc/p2p/base/port.cc @@ -1251,7 +1251,14 @@ void Connection::UpdateState(int64_t now) { void Connection::Ping(int64_t now) { last_ping_sent_ = now; ConnectionRequest *req = new ConnectionRequest(this); - pings_since_last_response_.push_back(SentPing(req->id(), now, nomination_)); + // If not using renomination, we use "1" to mean "nominated" and "0" to mean + // "not nominated". If using renomination, values greater than 1 are used for + // re-nominated pairs. + int nomination = use_candidate_attr_ ? 1 : 0; + if (nomination_ > 0) { + nomination = nomination_; + } + pings_since_last_response_.push_back(SentPing(req->id(), now, nomination)); packet_loss_estimator_.ExpectResponse(req->id(), now); LOG_J(LS_VERBOSE, this) << "Sending STUN ping " << ", id=" << rtc::hex_encode(req->id()) diff --git a/webrtc/pc/rtcstats_integrationtest.cc b/webrtc/pc/rtcstats_integrationtest.cc index 03fb96c0e3..3337c4ee8b 100644 --- a/webrtc/pc/rtcstats_integrationtest.cc +++ b/webrtc/pc/rtcstats_integrationtest.cc @@ -379,6 +379,8 @@ class RTCStatsReportVerifier { if (is_selected_pair) { verifier.TestMemberIsNonNegative( candidate_pair.available_outgoing_bitrate); + // A pair should be nominated in order to be selected. + EXPECT_TRUE(*candidate_pair.nominated); } else { verifier.TestMemberIsUndefined(candidate_pair.available_outgoing_bitrate); }