diff --git a/webrtc/api/rtcstatscollector.cc b/webrtc/api/rtcstatscollector.cc index 9052de4485..1c87dacbb1 100644 --- a/webrtc/api/rtcstatscollector.cc +++ b/webrtc/api/rtcstatscollector.cc @@ -291,12 +291,6 @@ void RTCStatsCollector::ProduceIceCandidateAndPairStats_s( RTCIceCandidatePairStatsIDFromConnectionInfo(info), timestamp_us)); - // TODO(hbos): Set all of the |RTCIceCandidatePairStats|'s members, - // crbug.com/633550. - - // TODO(hbos): Set candidate_pair_stats->transport_id. Should be ID to - // RTCTransportStats which does not exist yet: crbug.com/653873. - // TODO(hbos): There could be other candidates that are not paired with // anything. We don't have a complete list. Local candidates come from // Port objects, and prflx candidates (both local and remote) are only @@ -306,39 +300,25 @@ void RTCStatsCollector::ProduceIceCandidateAndPairStats_s( candidate_pair_stats->remote_candidate_id = ProduceIceCandidateStats_s( timestamp_us, info.remote_candidate, false, report); - // TODO(hbos): Set candidate_pair_stats->state. - // TODO(hbos): Set candidate_pair_stats->priority. - // TODO(hbos): Set candidate_pair_stats->nominated. // TODO(hbos): This writable is different than the spec. It goes to // false after a certain amount of time without a response passes. // crbug.com/633550 candidate_pair_stats->writable = info.writable; - // TODO(hbos): Set candidate_pair_stats->readable. candidate_pair_stats->bytes_sent = static_cast(info.sent_total_bytes); candidate_pair_stats->bytes_received = static_cast(info.recv_total_bytes); - // TODO(hbos): Set candidate_pair_stats->total_rtt. // TODO(hbos): The |info.rtt| measurement is smoothed. It shouldn't be // smoothed according to the spec. crbug.com/633550. See // https://w3c.github.io/webrtc-stats/#dom-rtcicecandidatepairstats-currentrtt candidate_pair_stats->current_rtt = static_cast(info.rtt) / 1000.0; - // TODO(hbos): Set candidate_pair_stats->available_outgoing_bitrate. - // TODO(hbos): Set candidate_pair_stats->available_incoming_bitrate. - // TODO(hbos): Set candidate_pair_stats->requests_received. candidate_pair_stats->requests_sent = static_cast(info.sent_ping_requests_total); candidate_pair_stats->responses_received = static_cast(info.recv_ping_responses); candidate_pair_stats->responses_sent = static_cast(info.sent_ping_responses); - // TODO(hbos): Set candidate_pair_stats->retransmissions_received. - // TODO(hbos): Set candidate_pair_stats->retransmissions_sent. - // TODO(hbos): Set candidate_pair_stats->consent_requests_received. - // TODO(hbos): Set candidate_pair_stats->consent_requests_sent. - // TODO(hbos): Set candidate_pair_stats->consent_responses_received. - // TODO(hbos): Set candidate_pair_stats->consent_responses_sent. report->AddStats(std::move(candidate_pair_stats)); } @@ -364,7 +344,6 @@ const std::string& RTCStatsCollector::ProduceIceCandidateStats_s( candidate_stats->candidate_type = CandidateTypeToRTCIceCandidateType( candidate.type()); candidate_stats->priority = static_cast(candidate.priority()); - // TODO(hbos): Define candidate_stats->url. crbug.com/632723 stats = candidate_stats.get(); report->AddStats(std::move(candidate_stats)); diff --git a/webrtc/api/rtcstatscollector_unittest.cc b/webrtc/api/rtcstatscollector_unittest.cc index 0e7860a940..8686056629 100644 --- a/webrtc/api/rtcstatscollector_unittest.cc +++ b/webrtc/api/rtcstatscollector_unittest.cc @@ -375,7 +375,7 @@ class RTCStatsCollectorTest : public testing::Test { // TODO(hbos): Define all the undefined |candidate_pair_stats| stats. // The EXPECT_FALSE are for the undefined stats, see also todos listed - // in rtcstatscollector.cc. crbug.com/633550 + // in rtcstats_objects.h. crbug.com/633550 EXPECT_FALSE(candidate_pair_stats.transport_id.is_defined()); const RTCIceCandidateStats* local_candidate = ExpectReportContainsCandidate(report, info.local_candidate, true); diff --git a/webrtc/api/stats/rtcstats_objects.h b/webrtc/api/stats/rtcstats_objects.h index 4e8a3ee154..3684e278c3 100644 --- a/webrtc/api/stats/rtcstats_objects.h +++ b/webrtc/api/stats/rtcstats_objects.h @@ -91,36 +91,57 @@ class RTCIceCandidatePairStats : public RTCStats { RTCIceCandidatePairStats(const RTCIceCandidatePairStats& other); ~RTCIceCandidatePairStats() override; + // TODO(hbos): Not collected by |RTCStatsCollector|. crbug.com/633550, 653873 RTCStatsMember transport_id; RTCStatsMember local_candidate_id; RTCStatsMember remote_candidate_id; // TODO(hbos): Support enum types? // "RTCStatsMember"? + // TODO(hbos): Not collected by |RTCStatsCollector|. crbug.com/633550 RTCStatsMember state; + // TODO(hbos): Not collected by |RTCStatsCollector|. crbug.com/633550 RTCStatsMember priority; + // TODO(hbos): Not collected by |RTCStatsCollector|. crbug.com/633550 RTCStatsMember nominated; + // TODO(hbos): Collected by |RTCStatsCollector| but different than the spec. + // crbug.com/633550 RTCStatsMember writable; + // TODO(hbos): Not collected by |RTCStatsCollector|. crbug.com/633550 RTCStatsMember readable; RTCStatsMember bytes_sent; RTCStatsMember bytes_received; + // TODO(hbos): Not collected by |RTCStatsCollector|. crbug.com/633550 RTCStatsMember total_rtt; + // TODO(hbos): Collected by |RTCStatsCollector| but different than the spec. + // crbug.com/633550 RTCStatsMember current_rtt; + // TODO(hbos): Not collected by |RTCStatsCollector|. crbug.com/633550 RTCStatsMember available_outgoing_bitrate; + // TODO(hbos): Not collected by |RTCStatsCollector|. crbug.com/633550 RTCStatsMember available_incoming_bitrate; + // TODO(hbos): Not collected by |RTCStatsCollector|. crbug.com/633550 RTCStatsMember requests_received; RTCStatsMember requests_sent; RTCStatsMember responses_received; RTCStatsMember responses_sent; + // TODO(hbos): Not collected by |RTCStatsCollector|. crbug.com/633550 RTCStatsMember retransmissions_received; + // TODO(hbos): Not collected by |RTCStatsCollector|. crbug.com/633550 RTCStatsMember retransmissions_sent; + // TODO(hbos): Not collected by |RTCStatsCollector|. crbug.com/633550 RTCStatsMember consent_requests_received; + // TODO(hbos): Not collected by |RTCStatsCollector|. crbug.com/633550 RTCStatsMember consent_requests_sent; + // TODO(hbos): Not collected by |RTCStatsCollector|. crbug.com/633550 RTCStatsMember consent_responses_received; + // TODO(hbos): Not collected by |RTCStatsCollector|. crbug.com/633550 RTCStatsMember consent_responses_sent; }; // https://w3c.github.io/webrtc-stats/#icecandidate-dict* -// TODO(hbos): Finish implementation. Tracking bug crbug.com/632723 +// TODO(hbos): |RTCStatsCollector| only collects candidates that are part of +// ice candidate pairs, but there could be candidates not paired with anything. +// crbug.com/632723 class RTCIceCandidateStats : public RTCStats { public: WEBRTC_RTCSTATS_DECL(); @@ -134,6 +155,7 @@ class RTCIceCandidateStats : public RTCStats { // TODO(hbos): Support enum types? "RTCStatsMember"? RTCStatsMember candidate_type; RTCStatsMember priority; + // TODO(hbos): Not collected by |RTCStatsCollector|. crbug.com/632723 RTCStatsMember url; protected: @@ -172,7 +194,11 @@ class RTCPeerConnectionStats final : public RTCStats { RTCPeerConnectionStats(const RTCPeerConnectionStats& other); ~RTCPeerConnectionStats() override; + // TODO(hbos): Collected by |RTCStatsCollector| but different than the spec. + // crbug.com/636818 RTCStatsMember data_channels_opened; + // TODO(hbos): Collected by |RTCStatsCollector| but different than the spec. + // crbug.com/636818 RTCStatsMember data_channels_closed; };