From f2edf8f974375e665cacfe3629d0247680368edf Mon Sep 17 00:00:00 2001 From: dietrich ayala Date: Thu, 14 Nov 2024 17:13:35 +0700 Subject: [PATCH 01/14] first batch, for existing features --- features/webrtc-encoded-transform.yml | 23 + features/webrtc-encoded-transform.yml.dist | 15 +- features/webrtc.yml | 237 ++++ features/webrtc.yml.dist | 1347 +++++++++++++++++++- 4 files changed, 1604 insertions(+), 18 deletions(-) diff --git a/features/webrtc-encoded-transform.yml b/features/webrtc-encoded-transform.yml index 516fc65e6d9..eeb6704f0b5 100644 --- a/features/webrtc-encoded-transform.yml +++ b/features/webrtc-encoded-transform.yml @@ -2,3 +2,26 @@ name: WebRTC encoded transform description: The WebRTC encoded transform API allows you to modify audio and video streams in WebRTC connections. For example, it can be used for visual effects or custom codecs. spec: https://w3c.github.io/webrtc-encoded-transform/ group: webrtc +compat_features: + - api.DedicatedWorkerGlobalScope.rtctransform_event + - api.RTCEncodedAudioFrame + - api.RTCEncodedAudioFrame.RTCEncodedAudioFrame + - api.RTCEncodedAudioFrame.data + - api.RTCEncodedAudioFrame.getMetadata + - api.RTCEncodedVideoFrame + - api.RTCEncodedVideoFrame.RTCEncodedVideoFrame + - api.RTCEncodedVideoFrame.data + - api.RTCEncodedVideoFrame.getMetadata + - api.RTCEncodedVideoFrame.type + - api.RTCRtpReceiver.transform + - api.RTCRtpScriptTransform + - api.RTCRtpScriptTransform.RTCRtpScriptTransform + - api.RTCRtpScriptTransformer + - api.RTCRtpScriptTransformer.generateKeyFrame + - api.RTCRtpScriptTransformer.options + - api.RTCRtpScriptTransformer.readable + - api.RTCRtpScriptTransformer.sendKeyFrameRequest + - api.RTCRtpScriptTransformer.writable + - api.RTCRtpSender.transform + - api.RTCTransformEvent + - api.RTCTransformEvent.transformer diff --git a/features/webrtc-encoded-transform.yml.dist b/features/webrtc-encoded-transform.yml.dist index a7bed345c26..2f821792752 100644 --- a/features/webrtc-encoded-transform.yml.dist +++ b/features/webrtc-encoded-transform.yml.dist @@ -3,11 +3,7 @@ status: baseline: false - support: - firefox: "117" - firefox_android: "117" - safari: "15.4" - safari_ios: "15.4" + support: {} compat_features: # baseline: low # baseline_low_date: 2023-08-29 @@ -27,7 +23,6 @@ compat_features: - api.RTCEncodedVideoFrame.getMetadata - api.RTCEncodedVideoFrame.type - # ⬇️ Same status as overall feature ⬇️ # baseline: false # support: # firefox: "117" @@ -47,3 +42,11 @@ compat_features: - api.RTCRtpSender.transform - api.RTCTransformEvent - api.RTCTransformEvent.transformer + + # baseline: false + # support: + # chrome: "127" + # chrome_android: "127" + # edge: "127" + - api.RTCEncodedAudioFrame.RTCEncodedAudioFrame + - api.RTCEncodedVideoFrame.RTCEncodedVideoFrame diff --git a/features/webrtc.yml b/features/webrtc.yml index e6f4a9a9bb1..68ecf17cc33 100644 --- a/features/webrtc.yml +++ b/features/webrtc.yml @@ -3,3 +3,240 @@ description: The WebRTC API establishes real-time communication channels directl spec: https://w3c.github.io/webrtc-pc/ group: webrtc caniuse: rtcpeerconnection +compat_features: + - api.RTCCertificate + - api.RTCCertificate.expires + - api.RTCCertificate.getFingerprints + - api.RTCDTMFSender + - api.RTCDTMFSender.canInsertDTMF + - api.RTCDTMFSender.insertDTMF + - api.RTCDTMFSender.toneBuffer + - api.RTCDTMFSender.tonechange_event + - api.RTCDTMFToneChangeEvent + - api.RTCDTMFToneChangeEvent.RTCDTMFToneChangeEvent + - api.RTCDTMFToneChangeEvent.tone + - api.RTCDataChannel + - api.RTCDataChannel.binaryType + - api.RTCDataChannel.binaryType.arraybuffer_value + - api.RTCDataChannel.binaryType.blob_value + - api.RTCDataChannel.bufferedAmount + - api.RTCDataChannel.bufferedAmountLowThreshold + - api.RTCDataChannel.bufferedamountlow_event + - api.RTCDataChannel.close + - api.RTCDataChannel.close_event + - api.RTCDataChannel.closing_event + - api.RTCDataChannel.error_event + - api.RTCDataChannel.id + - api.RTCDataChannel.label + - api.RTCDataChannel.maxPacketLifeTime + - api.RTCDataChannel.maxRetransmits + - api.RTCDataChannel.message_event + - api.RTCDataChannel.negotiated + - api.RTCDataChannel.open_event + - api.RTCDataChannel.ordered + - api.RTCDataChannel.protocol + - api.RTCDataChannel.readyState + - api.RTCDataChannel.sctp_sdp_21 + - api.RTCDataChannel.send + - api.RTCDataChannelEvent + - api.RTCDataChannelEvent.RTCDataChannelEvent + - api.RTCDataChannelEvent.channel + - api.RTCDtlsTransport + - api.RTCDtlsTransport.error_event + - api.RTCDtlsTransport.getRemoteCertificates + - api.RTCDtlsTransport.iceTransport + - api.RTCDtlsTransport.state + - api.RTCDtlsTransport.statechange_event + - api.RTCError + - api.RTCError.RTCError + - api.RTCError.errorDetail + - api.RTCError.receivedAlert + - api.RTCError.sctpCauseCode + - api.RTCError.sdpLineNumber + - api.RTCError.sentAlert + - api.RTCErrorEvent + - api.RTCErrorEvent.RTCErrorEvent + - api.RTCErrorEvent.error + - api.RTCIceCandidate + - api.RTCIceCandidate.RTCIceCandidate + - api.RTCIceCandidate.address + - api.RTCIceCandidate.candidate + - api.RTCIceCandidate.component + - api.RTCIceCandidate.foundation + - api.RTCIceCandidate.port + - api.RTCIceCandidate.priority + - api.RTCIceCandidate.protocol + - api.RTCIceCandidate.relatedAddress + - api.RTCIceCandidate.relatedPort + - api.RTCIceCandidate.relayProtocol + - api.RTCIceCandidate.sdpMLineIndex + - api.RTCIceCandidate.sdpMid + - api.RTCIceCandidate.tcpType + - api.RTCIceCandidate.toJSON + - api.RTCIceCandidate.type + - api.RTCIceCandidate.url + - api.RTCIceCandidate.usernameFragment + - api.RTCIceTransport + - api.RTCIceTransport.gatheringState + - api.RTCIceTransport.gatheringstatechange_event + - api.RTCIceTransport.getLocalCandidates + - api.RTCIceTransport.getLocalParameters + - api.RTCIceTransport.getRemoteCandidates + - api.RTCIceTransport.getRemoteParameters + - api.RTCIceTransport.getSelectedCandidatePair + - api.RTCIceTransport.role + - api.RTCIceTransport.selectedcandidatepairchange_event + - api.RTCIceTransport.state + - api.RTCIceTransport.statechange_event + - api.RTCPeerConnection + - api.RTCPeerConnection.RTCPeerConnection + - api.RTCPeerConnection.RTCPeerConnection.configuration_bundlePolicy_parameter + - api.RTCPeerConnection.RTCPeerConnection.configuration_certificates_parameter + - api.RTCPeerConnection.RTCPeerConnection.configuration_iceCandidatePoolSize_parameter + - api.RTCPeerConnection.RTCPeerConnection.configuration_iceServers_parameter + - api.RTCPeerConnection.RTCPeerConnection.configuration_iceServers_parameter.credential_parameter + - api.RTCPeerConnection.RTCPeerConnection.configuration_iceServers_parameter.urls_parameter + - api.RTCPeerConnection.RTCPeerConnection.configuration_iceServers_parameter.username_parameter + - api.RTCPeerConnection.RTCPeerConnection.configuration_iceTransportPolicy_parameter + - api.RTCPeerConnection.RTCPeerConnection.configuration_peerIdentity_parameter + - api.RTCPeerConnection.RTCPeerConnection.configuration_rtcpMuxPolicy_parameter + - api.RTCPeerConnection.addIceCandidate + - api.RTCPeerConnection.addIceCandidate.returns_promise + - api.RTCPeerConnection.addTrack + - api.RTCPeerConnection.addTransceiver + - api.RTCPeerConnection.addTransceiver.init_direction_parameter + - api.RTCPeerConnection.addTransceiver.init_sendEncodings_parameter + - api.RTCPeerConnection.addTransceiver.init_streams_parameter + - api.RTCPeerConnection.canTrickleIceCandidates + - api.RTCPeerConnection.close + - api.RTCPeerConnection.connectionState + - api.RTCPeerConnection.connectionstatechange_event + - api.RTCPeerConnection.createAnswer + - api.RTCPeerConnection.createAnswer.returns_promise + - api.RTCPeerConnection.createDataChannel + - api.RTCPeerConnection.createOffer + - api.RTCPeerConnection.createOffer.returns_promise + - api.RTCPeerConnection.currentLocalDescription + - api.RTCPeerConnection.currentRemoteDescription + - api.RTCPeerConnection.datachannel_event + - api.RTCPeerConnection.generateCertificate_static + - api.RTCPeerConnection.getConfiguration + - api.RTCPeerConnection.getReceivers + - api.RTCPeerConnection.getReceivers.stopped_transceivers_removed + - api.RTCPeerConnection.getSenders + - api.RTCPeerConnection.getSenders.stopped_transceivers_removed + - api.RTCPeerConnection.getStats + - api.RTCPeerConnection.getStats.returns_promise + - api.RTCPeerConnection.getStats.selector_parameter + - api.RTCPeerConnection.getTransceivers + - api.RTCPeerConnection.getTransceivers.stopped_transceivers_removed + - api.RTCPeerConnection.iceConnectionState + - api.RTCPeerConnection.iceGatheringState + - api.RTCPeerConnection.icecandidate_event + - api.RTCPeerConnection.icecandidateerror_event + - api.RTCPeerConnection.iceconnectionstatechange_event + - api.RTCPeerConnection.icegatheringstatechange_event + - api.RTCPeerConnection.localDescription + - api.RTCPeerConnection.negotiationneeded_event + - api.RTCPeerConnection.pendingLocalDescription + - api.RTCPeerConnection.pendingRemoteDescription + - api.RTCPeerConnection.remoteDescription + - api.RTCPeerConnection.removeTrack + - api.RTCPeerConnection.restartIce + - api.RTCPeerConnection.setConfiguration + - api.RTCPeerConnection.setLocalDescription + - api.RTCPeerConnection.setLocalDescription.description_parameter_optional + - api.RTCPeerConnection.setLocalDescription.returns_promise + - api.RTCPeerConnection.setRemoteDescription + - api.RTCPeerConnection.setRemoteDescription.implicit_rollback + - api.RTCPeerConnection.setRemoteDescription.returns_promise + - api.RTCPeerConnection.signalingState + - api.RTCPeerConnection.signalingstatechange_event + - api.RTCPeerConnection.track_event + - api.RTCPeerConnectionIceErrorEvent + - api.RTCPeerConnectionIceErrorEvent.RTCPeerConnectionIceErrorEvent + - api.RTCPeerConnectionIceErrorEvent.address + - api.RTCPeerConnectionIceErrorEvent.errorCode + - api.RTCPeerConnectionIceErrorEvent.errorText + - api.RTCPeerConnectionIceErrorEvent.port + - api.RTCPeerConnectionIceErrorEvent.url + - api.RTCPeerConnectionIceEvent + - api.RTCPeerConnectionIceEvent.RTCPeerConnectionIceEvent + - api.RTCPeerConnectionIceEvent.candidate + - api.RTCPeerConnectionIceEvent.url + - api.RTCRtpReceiver + - api.RTCRtpReceiver.createEncodedStreams + - api.RTCRtpReceiver.getCapabilities_static + - api.RTCRtpReceiver.getContributingSources + - api.RTCRtpReceiver.getContributingSources.audioLevel + - api.RTCRtpReceiver.getContributingSources.audio_tracks_supported + - api.RTCRtpReceiver.getContributingSources.rtpTimestamp + - api.RTCRtpReceiver.getContributingSources.source + - api.RTCRtpReceiver.getContributingSources.timestamp + - api.RTCRtpReceiver.getContributingSources.video_tracks_supported + - api.RTCRtpReceiver.getParameters + - api.RTCRtpReceiver.getParameters.return_object_property_codecs + - api.RTCRtpReceiver.getParameters.return_object_property_headerExtensions + - api.RTCRtpReceiver.getParameters.return_object_property_rtcp + - api.RTCRtpReceiver.getStats + - api.RTCRtpReceiver.getSynchronizationSources + - api.RTCRtpReceiver.getSynchronizationSources.audio_tracks_supported + - api.RTCRtpReceiver.getSynchronizationSources.video_tracks_supported + - api.RTCRtpReceiver.jitterBufferTarget + - api.RTCRtpReceiver.track + - api.RTCRtpReceiver.transport + - api.RTCRtpSender + - api.RTCRtpSender.createEncodedStreams + - api.RTCRtpSender.dtmf + - api.RTCRtpSender.getCapabilities_static + - api.RTCRtpSender.getParameters + - api.RTCRtpSender.getParameters.return_object_property_codecs + - api.RTCRtpSender.getParameters.return_object_property_encodings + - api.RTCRtpSender.getParameters.return_object_property_headerExtensions + - api.RTCRtpSender.getParameters.return_object_property_rtcp + - api.RTCRtpSender.getParameters.return_object_property_transactionId + - api.RTCRtpSender.getStats + - api.RTCRtpSender.replaceTrack + - api.RTCRtpSender.setParameters + - api.RTCRtpSender.setParameters.parameters_codecs_parameter + - api.RTCRtpSender.setParameters.parameters_encodings_parameter + - api.RTCRtpSender.setParameters.parameters_encodings_parameter.active + - api.RTCRtpSender.setParameters.parameters_encodings_parameter.maxBitrate + - api.RTCRtpSender.setParameters.parameters_encodings_parameter.maxFramerate + - api.RTCRtpSender.setParameters.parameters_encodings_parameter.rid + - api.RTCRtpSender.setParameters.parameters_encodings_parameter.scaleResolutionDownBy + - api.RTCRtpSender.setParameters.parameters_headerExtensions_parameter + - api.RTCRtpSender.setParameters.parameters_rtcp_parameter + - api.RTCRtpSender.setParameters.parameters_transactionId_parameter + - api.RTCRtpSender.setStreams + - api.RTCRtpSender.track + - api.RTCRtpSender.transport + - api.RTCRtpTransceiver + - api.RTCRtpTransceiver.currentDirection + - api.RTCRtpTransceiver.currentDirection.stopped_value + - api.RTCRtpTransceiver.direction + - api.RTCRtpTransceiver.direction.value_stopped + - api.RTCRtpTransceiver.mid + - api.RTCRtpTransceiver.receiver + - api.RTCRtpTransceiver.sender + - api.RTCRtpTransceiver.setCodecPreferences + - api.RTCRtpTransceiver.stop + - api.RTCSessionDescription + - api.RTCSessionDescription.sdp + - api.RTCSessionDescription.toJSON + - api.RTCSessionDescription.type + - api.RTCStatsReport + - api.RTCStatsReport.@@iterator + - api.RTCStatsReport.entries + - api.RTCStatsReport.forEach + - api.RTCStatsReport.get + - api.RTCStatsReport.has + - api.RTCStatsReport.keys + - api.RTCStatsReport.size + - api.RTCStatsReport.values + - api.RTCTrackEvent + - api.RTCTrackEvent.RTCTrackEvent + - api.RTCTrackEvent.receiver + - api.RTCTrackEvent.streams + - api.RTCTrackEvent.track + - api.RTCTrackEvent.transceiver diff --git a/features/webrtc.yml.dist b/features/webrtc.yml.dist index a5be74a4d80..e8e1b375d6b 100644 --- a/features/webrtc.yml.dist +++ b/features/webrtc.yml.dist @@ -2,30 +2,181 @@ # Do not edit this file by hand. Edit the source file instead! status: - baseline: high - baseline_low_date: 2020-01-15 - baseline_high_date: 2022-07-15 - support: - chrome: "56" - chrome_android: "56" - edge: "79" - firefox: "44" - firefox_android: "44" - safari: "11" - safari_ios: "11" + baseline: false + support: {} compat_features: # baseline: high # baseline_low_date: 2017-09-19 # baseline_high_date: 2020-03-19 # support: + # chrome: "23" + # chrome_android: "25" + # edge: "15" + # firefox: "44" + # firefox_android: "44" + # safari: "11" + # safari_ios: "11" + - api.RTCIceCandidate + - api.RTCIceCandidate.RTCIceCandidate + - api.RTCIceCandidate.candidate + - api.RTCIceCandidate.sdpMLineIndex + - api.RTCIceCandidate.sdpMid + - api.RTCSessionDescription + - api.RTCSessionDescription.sdp + - api.RTCSessionDescription.type + + # baseline: high + # baseline_low_date: 2017-09-19 + # baseline_high_date: 2020-03-19 + # support: + # chrome: "43" + # chrome_android: "43" + # edge: "15" + # firefox: "44" + # firefox_android: "44" + # safari: "11" + # safari_ios: "11" + - api.RTCIceCandidate.toJSON + - api.RTCSessionDescription.toJSON + + # baseline: high + # baseline_low_date: 2017-09-19 + # baseline_high_date: 2020-03-19 + # support: + # chrome: "56" + # chrome_android: "56" + # edge: "15" + # firefox: "44" + # firefox_android: "44" + # safari: "11" + # safari_ios: "11" + - api.RTCPeerConnection.RTCPeerConnection + - api.RTCPeerConnection.addIceCandidate + - api.RTCPeerConnection.close + - api.RTCPeerConnection.createAnswer + - api.RTCPeerConnection.createOffer + - api.RTCPeerConnection.getStats + - api.RTCPeerConnection.iceConnectionState + - api.RTCPeerConnection.iceGatheringState + - api.RTCPeerConnection.icecandidate_event + - api.RTCPeerConnection.iceconnectionstatechange_event + - api.RTCPeerConnection.localDescription + - api.RTCPeerConnection.negotiationneeded_event + - api.RTCPeerConnection.remoteDescription + - api.RTCPeerConnection.setLocalDescription + - api.RTCPeerConnection.setRemoteDescription + - api.RTCPeerConnection.signalingState + - api.RTCPeerConnection.signalingstatechange_event + + # baseline: high + # baseline_low_date: 2017-09-19 + # baseline_high_date: 2020-03-19 + # support: + # chrome: "59" + # chrome_android: "59" + # edge: "12" + # firefox: "34" + # firefox_android: "34" + # safari: "11" + # safari_ios: "11" + - api.RTCRtpReceiver + - api.RTCRtpReceiver.track + + # baseline: high + # baseline_low_date: 2017-09-19 + # baseline_high_date: 2020-03-19 + # support: + # chrome: "59" + # chrome_android: "59" + # edge: "15" + # firefox: "44" + # firefox_android: "44" + # safari: "11" + # safari_ios: "11" + - api.RTCPeerConnection.icegatheringstatechange_event + + # baseline: high + # baseline_low_date: 2018-01-23 + # baseline_high_date: 2020-07-23 + # support: + # chrome: "64" + # chrome_android: "64" + # edge: "13" + # firefox: "34" + # firefox_android: "34" + # safari: "11" + # safari_ios: "11" + - api.RTCRtpSender + - api.RTCRtpSender.track + + # baseline: high + # baseline_low_date: 2018-09-17 + # baseline_high_date: 2021-03-17 + # support: # chrome: "56" # chrome_android: "56" # edge: "15" + # firefox: "24" + # firefox_android: "24" + # safari: "12" + # safari_ios: "12" + - api.RTCPeerConnectionIceEvent + - api.RTCPeerConnectionIceEvent.RTCPeerConnectionIceEvent + - api.RTCPeerConnectionIceEvent.candidate + + # baseline: high + # baseline_low_date: ≤2018-10-02 + # baseline_high_date: ≤2021-04-02 + # support: + # chrome: "69" + # chrome_android: "69" + # edge: ≤18 + # firefox: "59" + # firefox_android: "59" + # safari: "11" + # safari_ios: "11" + - api.RTCRtpTransceiver + + # baseline: high + # baseline_low_date: 2018-10-17 + # baseline_high_date: 2021-04-17 + # support: + # chrome: "70" + # chrome_android: "70" + # edge: "15" # firefox: "44" # firefox_android: "44" # safari: "11" # safari_ios: "11" - - api.RTCPeerConnection + - api.RTCPeerConnection.getConfiguration + + # baseline: high + # baseline_low_date: 2019-03-25 + # baseline_high_date: 2021-09-25 + # support: + # chrome: "59" + # chrome_android: "59" + # edge: "12" + # firefox: "59" + # firefox_android: "59" + # safari: "12.1" + # safari_ios: "12.2" + - api.RTCRtpReceiver.getContributingSources + - api.RTCRtpReceiver.getContributingSources.audio_tracks_supported + + # baseline: high + # baseline_low_date: 2019-03-25 + # baseline_high_date: 2021-09-25 + # support: + # chrome: "67" + # chrome_android: "67" + # edge: "13" + # firefox: "55" + # firefox_android: "55" + # safari: "12.1" + # safari_ios: "12.2" + - api.RTCRtpReceiver.getStats + - api.RTCRtpSender.getStats # baseline: high # baseline_low_date: 2020-01-15 @@ -39,3 +190,1175 @@ compat_features: # safari: "11" # safari_ios: "11" - api.RTCDataChannel + - api.RTCDataChannel.binaryType + - api.RTCDataChannel.binaryType.arraybuffer_value + - api.RTCDataChannel.bufferedAmount + - api.RTCDataChannel.close + - api.RTCDataChannel.close_event + - api.RTCDataChannel.error_event + - api.RTCDataChannel.label + - api.RTCDataChannel.message_event + - api.RTCDataChannel.open_event + - api.RTCDataChannel.readyState + - api.RTCDataChannel.send + - api.RTCDataChannelEvent + - api.RTCDataChannelEvent.channel + + # baseline: high + # baseline_low_date: 2020-01-15 + # baseline_high_date: 2022-07-15 + # support: + # chrome: "30" + # chrome_android: "30" + # edge: "79" + # firefox: "22" + # firefox_android: "24" + # safari: "11" + # safari_ios: "11" + - api.RTCDataChannel.id + - api.RTCDataChannel.ordered + - api.RTCDataChannel.protocol + + # baseline: high + # baseline_low_date: 2020-01-15 + # baseline_high_date: 2022-07-15 + # support: + # chrome: "30" + # chrome_android: "30" + # edge: "79" + # firefox: "62" + # firefox_android: "62" + # safari: "11" + # safari_ios: "11" + - api.RTCDataChannel.maxRetransmits + + # baseline: high + # baseline_low_date: 2020-01-15 + # baseline_high_date: 2022-07-15 + # support: + # chrome: "30" + # chrome_android: "30" + # edge: "79" + # firefox: "68" + # firefox_android: "68" + # safari: "11" + # safari_ios: "11" + - api.RTCDataChannel.negotiated + + # baseline: high + # baseline_low_date: 2020-01-15 + # baseline_high_date: 2022-07-15 + # support: + # chrome: "46" + # chrome_android: "46" + # edge: "79" + # firefox: "44" + # firefox_android: "44" + # safari: "11" + # safari_ios: "11" + - api.RTCDataChannel.bufferedAmountLowThreshold + + # baseline: high + # baseline_low_date: 2020-01-15 + # baseline_high_date: 2022-07-15 + # support: + # chrome: "49" + # chrome_android: "49" + # edge: "79" + # firefox: "42" + # firefox_android: "42" + # safari: "12.1" + # safari_ios: "12.2" + - api.RTCCertificate + - api.RTCCertificate.expires + + # baseline: high + # baseline_low_date: 2020-01-15 + # baseline_high_date: 2022-07-15 + # support: + # chrome: "56" + # chrome_android: "56" + # edge: "79" + # firefox: "22" + # firefox_android: "24" + # safari: "11" + # safari_ios: "11" + - api.RTCDataChannelEvent.RTCDataChannelEvent + - api.RTCTrackEvent + - api.RTCTrackEvent.streams + - api.RTCTrackEvent.track + + # baseline: high + # baseline_low_date: 2020-01-15 + # baseline_high_date: 2022-07-15 + # support: + # chrome: "56" + # chrome_android: "56" + # edge: "79" + # firefox: "34" + # firefox_android: "34" + # safari: "11" + # safari_ios: "11" + - api.RTCTrackEvent.receiver + + # baseline: high + # baseline_low_date: 2020-01-15 + # baseline_high_date: 2022-07-15 + # support: + # chrome: "56" + # chrome_android: "56" + # edge: "79" + # firefox: "44" + # firefox_android: "44" + # safari: "11" + # safari_ios: "11" + - api.RTCPeerConnection.addIceCandidate.returns_promise + - api.RTCPeerConnection.createAnswer.returns_promise + - api.RTCPeerConnection.createDataChannel + - api.RTCPeerConnection.createOffer.returns_promise + - api.RTCPeerConnection.datachannel_event + - api.RTCPeerConnection.setLocalDescription.returns_promise + - api.RTCPeerConnection.setRemoteDescription.returns_promise + + # baseline: high + # baseline_low_date: 2020-01-15 + # baseline_high_date: 2022-07-15 + # support: + # chrome: "56" + # chrome_android: "56" + # edge: "79" + # firefox: "44" + # firefox_android: "44" + # safari: "12.1" + # safari_ios: "12.2" + - api.RTCPeerConnection.generateCertificate_static + + # baseline: high + # baseline_low_date: 2020-01-15 + # baseline_high_date: 2022-07-15 + # support: + # chrome: "56" + # chrome_android: "56" + # edge: "79" + # firefox: "62" + # firefox_android: "62" + # safari: "11" + # safari_ios: "11" + - api.RTCDataChannel.maxPacketLifeTime + + # baseline: high + # baseline_low_date: 2020-01-15 + # baseline_high_date: 2022-07-15 + # support: + # chrome: "57" + # chrome_android: "57" + # edge: "79" + # firefox: "44" + # firefox_android: "44" + # safari: "11" + # safari_ios: "11" + - api.RTCDataChannel.bufferedamountlow_event + + # baseline: high + # baseline_low_date: 2020-01-15 + # baseline_high_date: 2022-07-15 + # support: + # chrome: "58" + # chrome_android: "58" + # edge: "79" + # firefox: "27" + # firefox_android: "27" + # safari: "11" + # safari_ios: "11" + - api.RTCStatsReport + - api.RTCStatsReport.forEach + - api.RTCStatsReport.get + - api.RTCStatsReport.has + + # baseline: high + # baseline_low_date: 2020-01-15 + # baseline_high_date: 2022-07-15 + # support: + # chrome: "58" + # chrome_android: "58" + # edge: "79" + # firefox: "44" + # firefox_android: "44" + # safari: "11" + # safari_ios: "11" + - api.RTCPeerConnection.getStats.returns_promise + + # baseline: high + # baseline_low_date: 2020-01-15 + # baseline_high_date: 2022-07-15 + # support: + # chrome: "58" + # chrome_android: "58" + # edge: "79" + # firefox: "48" + # firefox_android: "48" + # safari: "11" + # safari_ios: "11" + - api.RTCStatsReport.@@iterator + - api.RTCStatsReport.entries + - api.RTCStatsReport.keys + - api.RTCStatsReport.values + + # baseline: high + # baseline_low_date: 2020-01-15 + # baseline_high_date: 2022-07-15 + # support: + # chrome: "59" + # chrome_android: "59" + # edge: "79" + # firefox: "44" + # firefox_android: "44" + # safari: "11" + # safari_ios: "11" + - api.RTCPeerConnection.getReceivers + + # baseline: high + # baseline_low_date: 2020-01-15 + # baseline_high_date: 2022-07-15 + # support: + # chrome: "59" + # chrome_android: "59" + # edge: "79" + # firefox: "48" + # firefox_android: "48" + # safari: "11" + # safari_ios: "11" + - api.RTCStatsReport.size + + # baseline: high + # baseline_low_date: 2020-01-15 + # baseline_high_date: 2022-07-15 + # support: + # chrome: "64" + # chrome_android: "64" + # edge: "79" + # firefox: "44" + # firefox_android: "44" + # safari: "11" + # safari_ios: "11" + - api.RTCPeerConnection.addTrack + - api.RTCPeerConnection.getSenders + - api.RTCPeerConnection.removeTrack + - api.RTCPeerConnection.track_event + + # baseline: high + # baseline_low_date: 2020-01-15 + # baseline_high_date: 2022-07-15 + # support: + # chrome: "64" + # chrome_android: "64" + # edge: "79" + # firefox: "46" + # firefox_android: "46" + # safari: "11" + # safari_ios: "11" + - api.RTCTrackEvent.RTCTrackEvent + + # baseline: high + # baseline_low_date: 2020-01-15 + # baseline_high_date: 2022-07-15 + # support: + # chrome: "65" + # chrome_android: "65" + # edge: "79" + # firefox: "34" + # firefox_android: "34" + # safari: "11" + # safari_ios: "11" + - api.RTCRtpSender.replaceTrack + + # baseline: high + # baseline_low_date: 2020-01-15 + # baseline_high_date: 2022-07-15 + # support: + # chrome: "69" + # chrome_android: "69" + # edge: "79" + # firefox: "59" + # firefox_android: "59" + # safari: "11" + # safari_ios: "11" + - api.RTCPeerConnection.addTransceiver + - api.RTCPeerConnection.addTransceiver.init_direction_parameter + - api.RTCPeerConnection.getTransceivers + - api.RTCRtpTransceiver.direction + - api.RTCRtpTransceiver.mid + - api.RTCRtpTransceiver.receiver + - api.RTCRtpTransceiver.sender + - api.RTCTrackEvent.transceiver + + # baseline: high + # baseline_low_date: 2020-01-15 + # baseline_high_date: 2022-07-15 + # support: + # chrome: "69" + # chrome_android: "69" + # edge: "79" + # firefox: "59" + # firefox_android: "59" + # safari: "12.1" + # safari_ios: "12.2" + - api.RTCPeerConnection.addTransceiver.init_streams_parameter + - api.RTCRtpTransceiver.currentDirection + + # baseline: high + # baseline_low_date: 2020-01-15 + # baseline_high_date: 2022-07-15 + # support: + # chrome: "70" + # chrome_android: "70" + # edge: "79" + # firefox: "44" + # firefox_android: "44" + # safari: "11" + # safari_ios: "11" + - api.RTCPeerConnection.currentLocalDescription + - api.RTCPeerConnection.pendingLocalDescription + - api.RTCPeerConnection.pendingRemoteDescription + + # baseline: high + # baseline_low_date: 2020-01-15 + # baseline_high_date: 2022-07-15 + # support: + # chrome: "70" + # chrome_android: "70" + # edge: "79" + # firefox: "57" + # firefox_android: "57" + # safari: "11" + # safari_ios: "11" + - api.RTCPeerConnection.currentRemoteDescription + + # baseline: high + # baseline_low_date: 2020-01-15 + # baseline_high_date: 2022-07-15 + # support: + # chrome: "73" + # chrome_android: "73" + # edge: "79" + # firefox: "59" + # firefox_android: "59" + # safari: "12.1" + # safari_ios: "12.2" + - api.RTCRtpReceiver.getContributingSources.audioLevel + - api.RTCRtpReceiver.getSynchronizationSources + - api.RTCRtpReceiver.getSynchronizationSources.audio_tracks_supported + + # baseline: high + # baseline_low_date: 2020-01-15 + # baseline_high_date: 2022-07-15 + # support: + # chrome: "73" + # chrome_android: "73" + # edge: "79" + # firefox: "68" + # firefox_android: "68" + # safari: "12.1" + # safari_ios: "12.2" + - api.RTCRtpReceiver.getSynchronizationSources.video_tracks_supported + + # baseline: high + # baseline_low_date: ≤2020-01-15 + # baseline_high_date: ≤2022-07-15 + # support: + # chrome: "56" + # chrome_android: "56" + # edge: ≤79 + # firefox: "44" + # firefox_android: "44" + # safari: "11" + # safari_ios: "11" + - api.RTCPeerConnection.RTCPeerConnection.configuration_bundlePolicy_parameter + + # baseline: high + # baseline_low_date: ≤2020-01-15 + # baseline_high_date: ≤2022-07-15 + # support: + # chrome: "56" + # chrome_android: "56" + # edge: ≤79 + # firefox: "44" + # firefox_android: "44" + # safari: "12.1" + # safari_ios: "12.2" + - api.RTCPeerConnection.RTCPeerConnection.configuration_certificates_parameter + + # baseline: high + # baseline_low_date: ≤2020-01-15 + # baseline_high_date: ≤2022-07-15 + # support: + # chrome: "56" + # chrome_android: "57" + # edge: ≤79 + # firefox: "44" + # firefox_android: "44" + # safari: "11" + # safari_ios: "11" + - api.RTCPeerConnection.RTCPeerConnection.configuration_iceServers_parameter + - api.RTCPeerConnection.RTCPeerConnection.configuration_iceServers_parameter.credential_parameter + - api.RTCPeerConnection.RTCPeerConnection.configuration_iceServers_parameter.urls_parameter + - api.RTCPeerConnection.RTCPeerConnection.configuration_iceServers_parameter.username_parameter + - api.RTCPeerConnection.RTCPeerConnection.configuration_iceTransportPolicy_parameter + + # baseline: high + # baseline_low_date: ≤2020-01-15 + # baseline_high_date: ≤2022-07-15 + # support: + # chrome: "59" + # chrome_android: "59" + # edge: ≤79 + # firefox: "59" + # firefox_android: "59" + # safari: "12.1" + # safari_ios: "12.2" + - api.RTCRtpReceiver.getContributingSources.source + - api.RTCRtpReceiver.getContributingSources.timestamp + + # baseline: high + # baseline_low_date: ≤2020-01-15 + # baseline_high_date: ≤2022-07-15 + # support: + # chrome: "67" + # chrome_android: "67" + # edge: ≤79 + # firefox: "44" + # firefox_android: "44" + # safari: "11" + # safari_ios: "11" + - api.RTCPeerConnection.getStats.selector_parameter + + # baseline: high + # baseline_low_date: ≤2020-01-15 + # baseline_high_date: ≤2022-07-15 + # support: + # chrome: "68" + # chrome_android: "68" + # edge: ≤79 + # firefox: "46" + # firefox_android: "46" + # safari: "11" + # safari_ios: "11" + - api.RTCRtpSender.getParameters + + # baseline: high + # baseline_low_date: ≤2020-01-15 + # baseline_high_date: ≤2022-07-15 + # support: + # chrome: "68" + # chrome_android: "68" + # edge: ≤79 + # firefox: "64" + # firefox_android: "64" + # safari: "11" + # safari_ios: "11" + - api.RTCRtpSender.setParameters + + # baseline: high + # baseline_low_date: ≤2020-01-15 + # baseline_high_date: ≤2022-07-15 + # support: + # chrome: "69" + # chrome_android: "69" + # edge: ≤79 + # firefox: "46" + # firefox_android: "46" + # safari: "12.1" + # safari_ios: "12.2" + - api.RTCRtpSender.getParameters.return_object_property_encodings + + # baseline: high + # baseline_low_date: ≤2020-01-15 + # baseline_high_date: ≤2022-07-15 + # support: + # chrome: "69" + # chrome_android: "69" + # edge: ≤79 + # firefox: "64" + # firefox_android: "64" + # safari: "11" + # safari_ios: "11" + - api.RTCRtpSender.setParameters.parameters_encodings_parameter + - api.RTCRtpSender.setParameters.parameters_encodings_parameter.maxBitrate + + # baseline: high + # baseline_low_date: ≤2020-01-15 + # baseline_high_date: ≤2022-07-15 + # support: + # chrome: "73" + # chrome_android: "73" + # edge: ≤79 + # firefox: "68" + # firefox_android: "68" + # safari: "12.1" + # safari_ios: "12.2" + - api.RTCRtpReceiver.getContributingSources.video_tracks_supported + + # baseline: high + # baseline_low_date: 2020-03-24 + # baseline_high_date: 2022-09-24 + # support: + # chrome: "27" + # chrome_android: "27" + # edge: "12" + # firefox: "52" + # firefox_android: "52" + # safari: "13.1" + # safari_ios: "13.4" + - api.RTCDTMFToneChangeEvent + - api.RTCDTMFToneChangeEvent.tone + + # baseline: high + # baseline_low_date: 2020-03-24 + # baseline_high_date: 2022-09-24 + # support: + # chrome: "27" + # chrome_android: "27" + # edge: "13" + # firefox: "52" + # firefox_android: "52" + # safari: "13.1" + # safari_ios: "13.4" + - api.RTCDTMFToneChangeEvent.RTCDTMFToneChangeEvent + + # baseline: high + # baseline_low_date: 2020-03-24 + # baseline_high_date: 2022-09-24 + # support: + # chrome: "27" + # chrome_android: "27" + # edge: "79" + # firefox: "52" + # firefox_android: "52" + # safari: "13.1" + # safari_ios: "13.4" + - api.RTCDTMFSender + - api.RTCDTMFSender.insertDTMF + - api.RTCDTMFSender.toneBuffer + - api.RTCDTMFSender.tonechange_event + + # baseline: high + # baseline_low_date: 2020-03-24 + # baseline_high_date: 2022-09-24 + # support: + # chrome: "66" + # chrome_android: "66" + # edge: "79" + # firefox: "52" + # firefox_android: "52" + # safari: "13.1" + # safari_ios: "13.4" + - api.RTCRtpSender.dtmf + + # baseline: high + # baseline_low_date: 2021-01-21 + # baseline_high_date: 2023-07-21 + # support: + # chrome: "88" + # chrome_android: "88" + # edge: "88" + # firefox: "59" + # firefox_android: "59" + # safari: "11" + # safari_ios: "11" + - api.RTCRtpTransceiver.stop + + # baseline: high + # baseline_low_date: 2021-04-26 + # baseline_high_date: 2023-10-26 + # support: + # chrome: "74" + # chrome_android: "74" + # edge: "79" + # firefox: "67" + # firefox_android: "67" + # safari: "14.1" + # safari_ios: "14.5" + - api.RTCIceCandidate.usernameFragment + + # baseline: high + # baseline_low_date: 2021-04-26 + # baseline_high_date: 2023-10-26 + # support: + # chrome: "77" + # chrome_android: "77" + # edge: "79" + # firefox: "70" + # firefox_android: "79" + # safari: "14.1" + # safari_ios: "14.5" + - api.RTCPeerConnection.restartIce + + # baseline: high + # baseline_low_date: 2021-04-26 + # baseline_high_date: 2023-10-26 + # support: + # chrome: "80" + # chrome_android: "80" + # edge: "80" + # firefox: "75" + # firefox_android: "79" + # safari: "14.1" + # safari_ios: "14.5" + - api.RTCPeerConnection.setLocalDescription.description_parameter_optional + + # baseline: high + # baseline_low_date: 2022-03-14 + # baseline_high_date: 2024-09-14 + # support: + # chrome: "59" + # chrome_android: "59" + # edge: "12" + # firefox: "82" + # firefox_android: "82" + # safari: "15.4" + # safari_ios: "15.4" + - api.RTCRtpReceiver.transport + + # baseline: high + # baseline_low_date: 2022-03-14 + # baseline_high_date: 2024-09-14 + # support: + # chrome: "72" + # chrome_android: "72" + # edge: "12" + # firefox: "82" + # firefox_android: "82" + # safari: "15.4" + # safari_ios: "15.4" + - api.RTCDtlsTransport + - api.RTCDtlsTransport.state + + # baseline: high + # baseline_low_date: 2022-03-14 + # baseline_high_date: 2024-09-14 + # support: + # chrome: "72" + # chrome_android: "72" + # edge: "79" + # firefox: "82" + # firefox_android: "82" + # safari: "15.4" + # safari_ios: "15.4" + - api.RTCDtlsTransport.statechange_event + + # baseline: high + # baseline_low_date: 2022-03-14 + # baseline_high_date: 2024-09-14 + # support: + # chrome: "75" + # chrome_android: "75" + # edge: "13" + # firefox: "82" + # firefox_android: "82" + # safari: "15.4" + # safari_ios: "15.4" + - api.RTCRtpSender.transport + + # baseline: high + # baseline_low_date: 2022-03-14 + # baseline_high_date: 2024-09-14 + # support: + # chrome: "80" + # chrome_android: "80" + # edge: "80" + # firefox: "70" + # firefox_android: "79" + # safari: "15.4" + # safari_ios: "15.4" + - api.RTCPeerConnection.setRemoteDescription.implicit_rollback + + # baseline: high + # baseline_low_date: 2022-03-14 + # baseline_high_date: 2024-09-14 + # support: + # chrome: "83" + # chrome_android: "83" + # edge: "83" + # firefox: "47" + # firefox_android: "47" + # safari: "15.4" + # safari_ios: "15.4" + - api.RTCPeerConnection.canTrickleIceCandidates + + # baseline: high + # baseline_low_date: 2022-04-05 + # baseline_high_date: 2024-10-05 + # support: + # chrome: "56" + # chrome_android: "56" + # edge: "79" + # firefox: "99" + # firefox_android: "99" + # safari: "11" + # safari_ios: "11" + - api.RTCPeerConnection.setConfiguration + + # baseline: low + # baseline_low_date: 2023-02-14 + # support: + # chrome: "69" + # chrome_android: "69" + # edge: "79" + # firefox: "110" + # firefox_android: "110" + # safari: "14.1" + # safari_ios: "14.5" + - api.RTCPeerConnection.addTransceiver.init_sendEncodings_parameter + + # baseline: low + # baseline_low_date: 2023-02-14 + # support: + # chrome: "69" + # chrome_android: "69" + # edge: ≤79 + # firefox: "110" + # firefox_android: "110" + # safari: "11.1" + # safari_ios: "11.3" + - api.RTCRtpSender.setParameters.parameters_encodings_parameter.active + + # baseline: low + # baseline_low_date: 2023-05-09 + # support: + # chrome: "59" + # chrome_android: "59" + # edge: "12" + # firefox: "113" + # firefox_android: "113" + # safari: "12.1" + # safari_ios: "12.2" + - api.RTCRtpReceiver.getCapabilities_static + + # baseline: low + # baseline_low_date: 2023-05-09 + # support: + # chrome: "69" + # chrome_android: "69" + # edge: "13" + # firefox: "113" + # firefox_android: "113" + # safari: "12.1" + # safari_ios: "12.2" + - api.RTCRtpSender.getCapabilities_static + + # baseline: low + # baseline_low_date: 2023-05-09 + # support: + # chrome: "72" + # chrome_android: "72" + # edge: "79" + # firefox: "113" + # firefox_android: "113" + # safari: "11" + # safari_ios: "11" + - api.RTCPeerConnection.connectionState + - api.RTCPeerConnection.connectionstatechange_event + + # baseline: low + # baseline_low_date: 2023-05-09 + # support: + # chrome: "76" + # chrome_android: "76" + # edge: "79" + # firefox: "113" + # firefox_android: "113" + # safari: "14.1" + # safari_ios: "14.5" + - api.RTCRtpSender.setStreams + + # baseline: low + # baseline_low_date: 2024-04-16 + # support: + # chrome: "72" + # chrome_android: "72" + # edge: "79" + # firefox: "125" + # firefox_android: "125" + # safari: "15.4" + # safari_ios: "15.4" + - api.RTCDtlsTransport.iceTransport + + # baseline: low + # baseline_low_date: 2024-04-16 + # support: + # chrome: "75" + # chrome_android: "75" + # edge: "13" + # firefox: "125" + # firefox_android: "125" + # safari: "11" + # safari_ios: "11" + - api.RTCIceTransport + - api.RTCIceTransport.state + + # baseline: low + # baseline_low_date: 2024-04-16 + # support: + # chrome: "75" + # chrome_android: "75" + # edge: "79" + # firefox: "125" + # firefox_android: "125" + # safari: "11" + # safari_ios: "11" + - api.RTCIceTransport.gatheringState + + # baseline: low + # baseline_low_date: 2024-04-16 + # support: + # chrome: "75" + # chrome_android: "75" + # edge: "79" + # firefox: "125" + # firefox_android: "125" + # safari: "15.4" + # safari_ios: "15.4" + - api.RTCIceTransport.gatheringstatechange_event + - api.RTCIceTransport.statechange_event + + # baseline: low + # baseline_low_date: 2024-05-14 + # support: + # chrome: "74" + # chrome_android: "74" + # edge: "79" + # firefox: "126" + # firefox_android: "126" + # safari: "14.1" + # safari_ios: "14.5" + - api.RTCIceCandidate.address + - api.RTCIceCandidate.component + - api.RTCIceCandidate.foundation + - api.RTCIceCandidate.port + - api.RTCIceCandidate.priority + - api.RTCIceCandidate.protocol + - api.RTCIceCandidate.relatedAddress + - api.RTCIceCandidate.relatedPort + - api.RTCIceCandidate.tcpType + - api.RTCIceCandidate.type + + # baseline: low + # baseline_low_date: 2024-07-09 + # support: + # chrome: "59" + # chrome_android: "59" + # edge: ≤79 + # firefox: "128" + # firefox_android: "128" + # safari: "11" + # safari_ios: "11" + - api.RTCRtpReceiver.getParameters + + # baseline: low + # baseline_low_date: 2024-07-09 + # support: + # chrome: "69" + # chrome_android: "69" + # edge: ≤79 + # firefox: "128" + # firefox_android: "128" + # safari: "11" + # safari_ios: "11" + - api.RTCRtpReceiver.getParameters.return_object_property_codecs + - api.RTCRtpSender.getParameters.return_object_property_codecs + + # baseline: low + # baseline_low_date: 2024-07-09 + # support: + # chrome: "69" + # chrome_android: "69" + # edge: ≤79 + # firefox: "128" + # firefox_android: "128" + # safari: "12.1" + # safari_ios: "12.2" + - api.RTCRtpSender.setParameters.parameters_codecs_parameter + + # baseline: low + # baseline_low_date: 2024-07-09 + # support: + # chrome: "76" + # chrome_android: "76" + # edge: "79" + # firefox: "128" + # firefox_android: "128" + # safari: "13.1" + # safari_ios: "13.4" + - api.RTCRtpTransceiver.setCodecPreferences + + # baseline: low + # baseline_low_date: 2024-08-06 + # support: + # chrome: "27" + # chrome_android: "27" + # edge: "79" + # firefox: "129" + # firefox_android: "129" + # safari: "13.1" + # safari_ios: "13.4" + - api.RTCDTMFSender.canInsertDTMF + + # baseline: low + # baseline_low_date: 2024-09-19 + # support: + # chrome: "129" + # chrome_android: "129" + # edge: "129" + # firefox: "22" + # firefox_android: "24" + # safari: "11" + # safari_ios: "11" + - api.RTCDataChannel.binaryType.blob_value + + # baseline: false + # support: + # chrome: "74" + # chrome_android: "74" + # firefox: "64" + # firefox_android: "64" + # safari: "11" + # safari_ios: "11" + - api.RTCRtpSender.setParameters.parameters_encodings_parameter.scaleResolutionDownBy + + # baseline: false + # support: + # chrome: "56" + # chrome_android: "57" + # edge: ≤79 + # safari: "11" + # safari_ios: "11" + - api.RTCPeerConnection.RTCPeerConnection.configuration_iceCandidatePoolSize_parameter + + # baseline: false + # support: + # chrome: "57" + # chrome_android: "57" + # edge: ≤79 + # safari: "12.1" + # safari_ios: "12.2" + - api.RTCPeerConnection.RTCPeerConnection.configuration_rtcpMuxPolicy_parameter + + # baseline: false + # support: + # chrome: "58" + # chrome_android: "58" + # edge: "79" + # firefox: "63" + # firefox_android: "63" + - api.RTCDataChannel.sctp_sdp_21 + + # baseline: false + # support: + # chrome: "61" + # chrome_android: "61" + # edge: "79" + # safari: "12.1" + # safari_ios: "12.2" + - api.RTCCertificate.getFingerprints + + # baseline: false + # support: + # chrome: "69" + # chrome_android: "69" + # edge: ≤79 + # safari: "11" + # safari_ios: "11" + - api.RTCRtpReceiver.getParameters.return_object_property_headerExtensions + - api.RTCRtpSender.getParameters.return_object_property_headerExtensions + + # baseline: false + # support: + # chrome: "69" + # chrome_android: "69" + # edge: ≤79 + # safari: "12.1" + # safari_ios: "12.2" + - api.RTCRtpSender.getParameters.return_object_property_transactionId + - api.RTCRtpSender.setParameters.parameters_headerExtensions_parameter + - api.RTCRtpSender.setParameters.parameters_transactionId_parameter + + # baseline: false + # support: + # chrome: "69" + # chrome_android: "69" + # edge: ≤79 + # safari: "15" + # safari_ios: "15" + - api.RTCRtpReceiver.getParameters.return_object_property_rtcp + - api.RTCRtpSender.getParameters.return_object_property_rtcp + - api.RTCRtpSender.setParameters.parameters_rtcp_parameter + + # baseline: false + # support: + # chrome: "72" + # chrome_android: "72" + # edge: "12" + # safari: "15.4" + # safari_ios: "15.4" + - api.RTCDtlsTransport.error_event + - api.RTCDtlsTransport.getRemoteCertificates + + # baseline: false + # support: + # chrome: "74" + # chrome_android: "74" + # edge: "79" + # safari: "15.4" + # safari_ios: "15.4" + - api.RTCError + - api.RTCError.RTCError + - api.RTCError.errorDetail + - api.RTCError.receivedAlert + - api.RTCError.sctpCauseCode + - api.RTCError.sdpLineNumber + - api.RTCError.sentAlert + - api.RTCErrorEvent + - api.RTCErrorEvent.RTCErrorEvent + - api.RTCErrorEvent.error + + # baseline: false + # support: + # chrome: "75" + # chrome_android: "75" + # edge: "79" + # safari: "16.4" + # safari_ios: "16.4" + - api.RTCIceTransport.getSelectedCandidatePair + - api.RTCIceTransport.selectedcandidatepairchange_event + + # baseline: false + # support: + # chrome: "76" + # chrome_android: "76" + # edge: "79" + # firefox: "72" + # firefox_android: "79" + - api.RTCRtpReceiver.getContributingSources.rtpTimestamp + + # baseline: false + # support: + # chrome: "77" + # chrome_android: "77" + # edge: "79" + # safari: "14.1" + # safari_ios: "14.5" + - api.RTCPeerConnection.icecandidateerror_event + - api.RTCPeerConnectionIceErrorEvent + - api.RTCPeerConnectionIceErrorEvent.RTCPeerConnectionIceErrorEvent + - api.RTCPeerConnectionIceErrorEvent.errorCode + - api.RTCPeerConnectionIceErrorEvent.errorText + - api.RTCPeerConnectionIceErrorEvent.url + + # baseline: false + # support: + # chrome: "81" + # chrome_android: "81" + # edge: "81" + # safari: "11" + # safari_ios: "11" + - api.RTCRtpSender.setParameters.parameters_encodings_parameter.maxFramerate + + # baseline: false + # support: + # chrome: "81" + # chrome_android: "81" + # edge: "81" + # safari: "14.1" + # safari_ios: "14.5" + - api.RTCPeerConnectionIceErrorEvent.address + - api.RTCPeerConnectionIceErrorEvent.port + + # baseline: false + # support: + # chrome: "81" + # chrome_android: "81" + # edge: "81" + # safari: "15.4" + # safari_ios: "15.4" + - api.RTCDataChannel.closing_event + + # baseline: false + # support: + # chrome: "88" + # chrome_android: "88" + # edge: "88" + # firefox: "118" + # firefox_android: "118" + - api.RTCPeerConnection.getReceivers.stopped_transceivers_removed + - api.RTCPeerConnection.getSenders.stopped_transceivers_removed + - api.RTCPeerConnection.getTransceivers.stopped_transceivers_removed + + # baseline: false + # support: + # chrome: "103" + # chrome_android: "103" + # edge: "103" + # firefox: "118" + # firefox_android: "118" + - api.RTCRtpTransceiver.currentDirection.stopped_value + - api.RTCRtpTransceiver.direction.value_stopped + + # baseline: false + # support: + # chrome: "124" + # chrome_android: "124" + # edge: "124" + # firefox: "115" + # firefox_android: "115" + - api.RTCRtpReceiver.jitterBufferTarget + + # baseline: false + # support: + # chrome: "75" + # chrome_android: "75" + # edge: "13" + - api.RTCIceTransport.getRemoteCandidates + - api.RTCIceTransport.getRemoteParameters + - api.RTCIceTransport.role + + # baseline: false + # support: + # chrome: "75" + # chrome_android: "75" + # edge: "79" + - api.RTCIceTransport.getLocalCandidates + - api.RTCIceTransport.getLocalParameters + + # baseline: false + # support: + # chrome: "86" + # chrome_android: "86" + # edge: "86" + - api.RTCRtpReceiver.createEncodedStreams + - api.RTCRtpSender.createEncodedStreams + + # baseline: false + # support: + # chrome: "124" + # chrome_android: "124" + # edge: "124" + - api.RTCIceCandidate.relayProtocol + - api.RTCIceCandidate.url + + # baseline: false + # support: + # safari: "12" + # safari_ios: "12" + - api.RTCPeerConnectionIceEvent.url + + # baseline: false + # support: + # firefox: "44" + # firefox_android: "44" + - api.RTCPeerConnection.RTCPeerConnection.configuration_peerIdentity_parameter + + # baseline: false + # support: + # firefox: "64" + # firefox_android: "64" + - api.RTCRtpSender.setParameters.parameters_encodings_parameter.rid From c722acf4a86deb83d8feb4867b74b090e66ccfeb Mon Sep 17 00:00:00 2001 From: dietrich ayala Date: Thu, 14 Nov 2024 17:29:57 +0700 Subject: [PATCH 02/14] add missing key --- features/webrtc.yml.dist | 1 + 1 file changed, 1 insertion(+) diff --git a/features/webrtc.yml.dist b/features/webrtc.yml.dist index e8e1b375d6b..edc579e788d 100644 --- a/features/webrtc.yml.dist +++ b/features/webrtc.yml.dist @@ -50,6 +50,7 @@ compat_features: # firefox_android: "44" # safari: "11" # safari_ios: "11" + - api.RTCPeerConnection - api.RTCPeerConnection.RTCPeerConnection - api.RTCPeerConnection.addIceCandidate - api.RTCPeerConnection.close From 1f1e79258637510c3c9ea88965079b2331fab14d Mon Sep 17 00:00:00 2001 From: dietrich ayala Date: Fri, 15 Nov 2024 16:01:46 +0700 Subject: [PATCH 03/14] add stats api as feature --- features/{draft/spec => }/webrtc-stats.yml | 14 ++++-- .../{draft/spec => }/webrtc-stats.yml.dist | 45 +++++++++++++++++++ features/webrtc.yml | 9 ---- features/webrtc.yml.dist | 45 ------------------- 4 files changed, 56 insertions(+), 57 deletions(-) rename features/{draft/spec => }/webrtc-stats.yml (96%) rename features/{draft/spec => }/webrtc-stats.yml.dist (96%) diff --git a/features/draft/spec/webrtc-stats.yml b/features/webrtc-stats.yml similarity index 96% rename from features/draft/spec/webrtc-stats.yml rename to features/webrtc-stats.yml index 1d84d0dc972..e3e7d8ad957 100644 --- a/features/draft/spec/webrtc-stats.yml +++ b/features/webrtc-stats.yml @@ -1,8 +1,15 @@ -draft_date: 2024-09-09 -name: Identifiers for WebRTC's Statistics API -description: TODO +name: WebRTC Statistics API +description: The WebRTC Statistics API gives applications access to detailed information about the status, performance, network and media for a given WebRTC connection. spec: https://w3c.github.io/webrtc-stats/ compat_features: + - api.RTCStatsReport + - api.RTCStatsReport.@@iterator + - api.RTCStatsReport.entries + - api.RTCStatsReport.forEach + - api.RTCStatsReport.get + - api.RTCStatsReport.has + - api.RTCStatsReport.keys + - api.RTCStatsReport.size - api.RTCStatsReport.type_candidate-pair - api.RTCStatsReport.type_candidate-pair.availableOutgoingBitrate - api.RTCStatsReport.type_candidate-pair.bytesDiscardedOnSend @@ -239,3 +246,4 @@ compat_features: - api.RTCStatsReport.type_transport.timestamp - api.RTCStatsReport.type_transport.tlsVersion - api.RTCStatsReport.type_transport.type + - api.RTCStatsReport.values diff --git a/features/draft/spec/webrtc-stats.yml.dist b/features/webrtc-stats.yml.dist similarity index 96% rename from features/draft/spec/webrtc-stats.yml.dist rename to features/webrtc-stats.yml.dist index bfbe736fe45..143dec35646 100644 --- a/features/draft/spec/webrtc-stats.yml.dist +++ b/features/webrtc-stats.yml.dist @@ -5,6 +5,22 @@ status: baseline: false support: {} compat_features: + # baseline: high + # baseline_low_date: 2020-01-15 + # baseline_high_date: 2022-07-15 + # support: + # chrome: "58" + # chrome_android: "58" + # edge: "79" + # firefox: "27" + # firefox_android: "27" + # safari: "11" + # safari_ios: "11" + - api.RTCStatsReport + - api.RTCStatsReport.forEach + - api.RTCStatsReport.get + - api.RTCStatsReport.has + # baseline: high # baseline_low_date: 2020-01-15 # baseline_high_date: 2022-07-15 @@ -21,6 +37,22 @@ compat_features: - api.RTCStatsReport.type_candidate-pair.remoteCandidateId - api.RTCStatsReport.type_candidate-pair.state + # baseline: high + # baseline_low_date: 2020-01-15 + # baseline_high_date: 2022-07-15 + # support: + # chrome: "58" + # chrome_android: "58" + # edge: "79" + # firefox: "48" + # firefox_android: "48" + # safari: "11" + # safari_ios: "11" + - api.RTCStatsReport.@@iterator + - api.RTCStatsReport.entries + - api.RTCStatsReport.keys + - api.RTCStatsReport.values + # baseline: high # baseline_low_date: 2020-01-15 # baseline_high_date: 2022-07-15 @@ -37,6 +69,19 @@ compat_features: - api.RTCStatsReport.type_candidate-pair.nominated - api.RTCStatsReport.type_candidate-pair.transportId + # baseline: high + # baseline_low_date: 2020-01-15 + # baseline_high_date: 2022-07-15 + # support: + # chrome: "59" + # chrome_android: "59" + # edge: "79" + # firefox: "48" + # firefox_android: "48" + # safari: "11" + # safari_ios: "11" + - api.RTCStatsReport.size + # baseline: high # baseline_low_date: 2020-01-15 # baseline_high_date: 2022-07-15 diff --git a/features/webrtc.yml b/features/webrtc.yml index 68ecf17cc33..52008f78e3a 100644 --- a/features/webrtc.yml +++ b/features/webrtc.yml @@ -225,15 +225,6 @@ compat_features: - api.RTCSessionDescription.sdp - api.RTCSessionDescription.toJSON - api.RTCSessionDescription.type - - api.RTCStatsReport - - api.RTCStatsReport.@@iterator - - api.RTCStatsReport.entries - - api.RTCStatsReport.forEach - - api.RTCStatsReport.get - - api.RTCStatsReport.has - - api.RTCStatsReport.keys - - api.RTCStatsReport.size - - api.RTCStatsReport.values - api.RTCTrackEvent - api.RTCTrackEvent.RTCTrackEvent - api.RTCTrackEvent.receiver diff --git a/features/webrtc.yml.dist b/features/webrtc.yml.dist index edc579e788d..3a579ac979f 100644 --- a/features/webrtc.yml.dist +++ b/features/webrtc.yml.dist @@ -360,22 +360,6 @@ compat_features: # safari_ios: "11" - api.RTCDataChannel.bufferedamountlow_event - # baseline: high - # baseline_low_date: 2020-01-15 - # baseline_high_date: 2022-07-15 - # support: - # chrome: "58" - # chrome_android: "58" - # edge: "79" - # firefox: "27" - # firefox_android: "27" - # safari: "11" - # safari_ios: "11" - - api.RTCStatsReport - - api.RTCStatsReport.forEach - - api.RTCStatsReport.get - - api.RTCStatsReport.has - # baseline: high # baseline_low_date: 2020-01-15 # baseline_high_date: 2022-07-15 @@ -389,22 +373,6 @@ compat_features: # safari_ios: "11" - api.RTCPeerConnection.getStats.returns_promise - # baseline: high - # baseline_low_date: 2020-01-15 - # baseline_high_date: 2022-07-15 - # support: - # chrome: "58" - # chrome_android: "58" - # edge: "79" - # firefox: "48" - # firefox_android: "48" - # safari: "11" - # safari_ios: "11" - - api.RTCStatsReport.@@iterator - - api.RTCStatsReport.entries - - api.RTCStatsReport.keys - - api.RTCStatsReport.values - # baseline: high # baseline_low_date: 2020-01-15 # baseline_high_date: 2022-07-15 @@ -418,19 +386,6 @@ compat_features: # safari_ios: "11" - api.RTCPeerConnection.getReceivers - # baseline: high - # baseline_low_date: 2020-01-15 - # baseline_high_date: 2022-07-15 - # support: - # chrome: "59" - # chrome_android: "59" - # edge: "79" - # firefox: "48" - # firefox_android: "48" - # safari: "11" - # safari_ios: "11" - - api.RTCStatsReport.size - # baseline: high # baseline_low_date: 2020-01-15 # baseline_high_date: 2022-07-15 From 56114cf3038861cd8f9db6ae5b942b25d5e3364b Mon Sep 17 00:00:00 2001 From: dietrich ayala Date: Fri, 15 Nov 2024 16:37:28 +0700 Subject: [PATCH 04/14] add stats to group --- features/webrtc-stats.yml | 2 ++ features/webrtc-stats.yml.dist | 1 + 2 files changed, 3 insertions(+) diff --git a/features/webrtc-stats.yml b/features/webrtc-stats.yml index e3e7d8ad957..18e5110b6fa 100644 --- a/features/webrtc-stats.yml +++ b/features/webrtc-stats.yml @@ -1,9 +1,11 @@ name: WebRTC Statistics API description: The WebRTC Statistics API gives applications access to detailed information about the status, performance, network and media for a given WebRTC connection. spec: https://w3c.github.io/webrtc-stats/ +group: webrtc compat_features: - api.RTCStatsReport - api.RTCStatsReport.@@iterator + - api.RTCStatsReport.@@iterator - api.RTCStatsReport.entries - api.RTCStatsReport.forEach - api.RTCStatsReport.get diff --git a/features/webrtc-stats.yml.dist b/features/webrtc-stats.yml.dist index 143dec35646..75592167cad 100644 --- a/features/webrtc-stats.yml.dist +++ b/features/webrtc-stats.yml.dist @@ -49,6 +49,7 @@ compat_features: # safari: "11" # safari_ios: "11" - api.RTCStatsReport.@@iterator + - api.RTCStatsReport.@@iterator - api.RTCStatsReport.entries - api.RTCStatsReport.keys - api.RTCStatsReport.values From 15156444fe647e5efd6be80f2b6609357364b9a2 Mon Sep 17 00:00:00 2001 From: dietrich ayala Date: Fri, 15 Nov 2024 17:12:14 +0700 Subject: [PATCH 05/14] add missing bcd keys --- features/webrtc-stats.yml | 1 - features/webrtc-stats.yml.dist | 1 - features/webrtc.yml | 6 ++++++ features/webrtc.yml.dist | 18 ++++++++++++++++++ 4 files changed, 24 insertions(+), 2 deletions(-) diff --git a/features/webrtc-stats.yml b/features/webrtc-stats.yml index 18e5110b6fa..96b83c63529 100644 --- a/features/webrtc-stats.yml +++ b/features/webrtc-stats.yml @@ -5,7 +5,6 @@ group: webrtc compat_features: - api.RTCStatsReport - api.RTCStatsReport.@@iterator - - api.RTCStatsReport.@@iterator - api.RTCStatsReport.entries - api.RTCStatsReport.forEach - api.RTCStatsReport.get diff --git a/features/webrtc-stats.yml.dist b/features/webrtc-stats.yml.dist index 75592167cad..143dec35646 100644 --- a/features/webrtc-stats.yml.dist +++ b/features/webrtc-stats.yml.dist @@ -49,7 +49,6 @@ compat_features: # safari: "11" # safari_ios: "11" - api.RTCStatsReport.@@iterator - - api.RTCStatsReport.@@iterator - api.RTCStatsReport.entries - api.RTCStatsReport.keys - api.RTCStatsReport.values diff --git a/features/webrtc.yml b/features/webrtc.yml index 52008f78e3a..c8ca665dade 100644 --- a/features/webrtc.yml +++ b/features/webrtc.yml @@ -38,6 +38,7 @@ compat_features: - api.RTCDataChannel.readyState - api.RTCDataChannel.sctp_sdp_21 - api.RTCDataChannel.send + - api.RTCDataChannel.transferable - api.RTCDataChannelEvent - api.RTCDataChannelEvent.RTCDataChannelEvent - api.RTCDataChannelEvent.channel @@ -50,6 +51,8 @@ compat_features: - api.RTCError - api.RTCError.RTCError - api.RTCError.errorDetail + # in the identity spec? + #- api.RTCError.httpRequestStatusCode - api.RTCError.receivedAlert - api.RTCError.sctpCauseCode - api.RTCError.sdpLineNumber @@ -216,10 +219,13 @@ compat_features: - api.RTCRtpTransceiver.currentDirection.stopped_value - api.RTCRtpTransceiver.direction - api.RTCRtpTransceiver.direction.value_stopped + - api.RTCRtpTransceiver.getHeaderExtensionsToNegotiate + - api.RTCRtpTransceiver.getNegotiatedHeaderExtensions - api.RTCRtpTransceiver.mid - api.RTCRtpTransceiver.receiver - api.RTCRtpTransceiver.sender - api.RTCRtpTransceiver.setCodecPreferences + - api.RTCRtpTransceiver.setHeaderExtensionsToNegotiate - api.RTCRtpTransceiver.stop - api.RTCSessionDescription - api.RTCSessionDescription.sdp diff --git a/features/webrtc.yml.dist b/features/webrtc.yml.dist index 3a579ac979f..63fab2a25c7 100644 --- a/features/webrtc.yml.dist +++ b/features/webrtc.yml.dist @@ -1268,6 +1268,15 @@ compat_features: # firefox_android: "115" - api.RTCRtpReceiver.jitterBufferTarget + # baseline: false + # support: + # chrome: "130" + # chrome_android: "130" + # edge: "130" + # safari: "15" + # safari_ios: "15" + - api.RTCDataChannel.transferable + # baseline: false # support: # chrome: "75" @@ -1293,6 +1302,15 @@ compat_features: - api.RTCRtpReceiver.createEncodedStreams - api.RTCRtpSender.createEncodedStreams + # baseline: false + # support: + # chrome: "117" + # chrome_android: "117" + # edge: "117" + - api.RTCRtpTransceiver.getHeaderExtensionsToNegotiate + - api.RTCRtpTransceiver.getNegotiatedHeaderExtensions + - api.RTCRtpTransceiver.setHeaderExtensionsToNegotiate + # baseline: false # support: # chrome: "124" From 21287feee35d7b526c45dfec6d6dd010b2851bc4 Mon Sep 17 00:00:00 2001 From: dietrich ayala Date: Fri, 15 Nov 2024 17:21:16 +0700 Subject: [PATCH 06/14] compute the status --- features/webrtc.yml | 4 ++-- features/webrtc.yml.dist | 14 ++++++++++++-- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/features/webrtc.yml b/features/webrtc.yml index c8ca665dade..db6d3d189c4 100644 --- a/features/webrtc.yml +++ b/features/webrtc.yml @@ -3,6 +3,8 @@ description: The WebRTC API establishes real-time communication channels directl spec: https://w3c.github.io/webrtc-pc/ group: webrtc caniuse: rtcpeerconnection +status: + compute_from: api.RTCPeerConnection compat_features: - api.RTCCertificate - api.RTCCertificate.expires @@ -51,8 +53,6 @@ compat_features: - api.RTCError - api.RTCError.RTCError - api.RTCError.errorDetail - # in the identity spec? - #- api.RTCError.httpRequestStatusCode - api.RTCError.receivedAlert - api.RTCError.sctpCauseCode - api.RTCError.sdpLineNumber diff --git a/features/webrtc.yml.dist b/features/webrtc.yml.dist index 63fab2a25c7..1afd4a5ac79 100644 --- a/features/webrtc.yml.dist +++ b/features/webrtc.yml.dist @@ -2,8 +2,17 @@ # Do not edit this file by hand. Edit the source file instead! status: - baseline: false - support: {} + baseline: high + baseline_low_date: 2017-09-19 + baseline_high_date: 2020-03-19 + support: + chrome: "56" + chrome_android: "56" + edge: "15" + firefox: "44" + firefox_android: "44" + safari: "11" + safari_ios: "11" compat_features: # baseline: high # baseline_low_date: 2017-09-19 @@ -39,6 +48,7 @@ compat_features: - api.RTCIceCandidate.toJSON - api.RTCSessionDescription.toJSON + # ⬇️ Same status as overall feature ⬇️ # baseline: high # baseline_low_date: 2017-09-19 # baseline_high_date: 2020-03-19 From f1f3c959178a96a23d0414cafe31bd7dbeefc7d1 Mon Sep 17 00:00:00 2001 From: dietrich ayala Date: Mon, 18 Nov 2024 18:29:07 +0100 Subject: [PATCH 07/14] review fixes --- features/webrtc-encoded-transform.yml | 4 ++++ features/webrtc-encoded-transform.yml.dist | 7 ++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/features/webrtc-encoded-transform.yml b/features/webrtc-encoded-transform.yml index eeb6704f0b5..63ed5550747 100644 --- a/features/webrtc-encoded-transform.yml +++ b/features/webrtc-encoded-transform.yml @@ -2,6 +2,10 @@ name: WebRTC encoded transform description: The WebRTC encoded transform API allows you to modify audio and video streams in WebRTC connections. For example, it can be used for visual effects or custom codecs. spec: https://w3c.github.io/webrtc-encoded-transform/ group: webrtc +status: + compute_from: + - api.RTCRtpReceiver.transform + - api.RTCRtpSender.transform compat_features: - api.DedicatedWorkerGlobalScope.rtctransform_event - api.RTCEncodedAudioFrame diff --git a/features/webrtc-encoded-transform.yml.dist b/features/webrtc-encoded-transform.yml.dist index 2f821792752..9647cd94ad9 100644 --- a/features/webrtc-encoded-transform.yml.dist +++ b/features/webrtc-encoded-transform.yml.dist @@ -3,7 +3,11 @@ status: baseline: false - support: {} + support: + firefox: "117" + firefox_android: "117" + safari: "15.4" + safari_ios: "15.4" compat_features: # baseline: low # baseline_low_date: 2023-08-29 @@ -23,6 +27,7 @@ compat_features: - api.RTCEncodedVideoFrame.getMetadata - api.RTCEncodedVideoFrame.type + # ⬇️ Same status as overall feature ⬇️ # baseline: false # support: # firefox: "117" From 3cfaf51b67496b172257124903ec23e6f4a6e8e7 Mon Sep 17 00:00:00 2001 From: Dietrich Ayala <50103+autonome@users.noreply.github.com> Date: Tue, 19 Nov 2024 00:29:19 +0700 Subject: [PATCH 08/14] Update features/webrtc.yml Co-authored-by: Daniel D. Beck --- features/webrtc.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/features/webrtc.yml b/features/webrtc.yml index db6d3d189c4..9e0517925d8 100644 --- a/features/webrtc.yml +++ b/features/webrtc.yml @@ -4,7 +4,7 @@ spec: https://w3c.github.io/webrtc-pc/ group: webrtc caniuse: rtcpeerconnection status: - compute_from: api.RTCPeerConnection + compute_from: api.RTCDataChannelEvent.RTCDataChannelEvent compat_features: - api.RTCCertificate - api.RTCCertificate.expires From 8b992ba7607ccff8e4985bb5c87b2c07258996da Mon Sep 17 00:00:00 2001 From: Dietrich Ayala <50103+autonome@users.noreply.github.com> Date: Tue, 19 Nov 2024 00:30:25 +0700 Subject: [PATCH 09/14] Update features/webrtc-stats.yml Co-authored-by: Daniel D. Beck --- features/webrtc-stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/features/webrtc-stats.yml b/features/webrtc-stats.yml index 96b83c63529..1244b360800 100644 --- a/features/webrtc-stats.yml +++ b/features/webrtc-stats.yml @@ -1,5 +1,5 @@ name: WebRTC Statistics API -description: The WebRTC Statistics API gives applications access to detailed information about the status, performance, network and media for a given WebRTC connection. +description: The `RTCPeerConnection.getStats()`, `RTCRtpSender.getStats()`, and `RTCRtpReceiver.getStats()` methods return detailed information about the status, performance, network and media for a given WebRTC connection. spec: https://w3c.github.io/webrtc-stats/ group: webrtc compat_features: From aeb39964da4cc715a9d1fcdda42ba00942f82abd Mon Sep 17 00:00:00 2001 From: Dietrich Ayala <50103+autonome@users.noreply.github.com> Date: Tue, 19 Nov 2024 00:30:42 +0700 Subject: [PATCH 10/14] Update features/webrtc-stats.yml Co-authored-by: Daniel D. Beck --- features/webrtc-stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/features/webrtc-stats.yml b/features/webrtc-stats.yml index 1244b360800..59538f19aac 100644 --- a/features/webrtc-stats.yml +++ b/features/webrtc-stats.yml @@ -1,4 +1,4 @@ -name: WebRTC Statistics API +name: WebRTC statistics description: The `RTCPeerConnection.getStats()`, `RTCRtpSender.getStats()`, and `RTCRtpReceiver.getStats()` methods return detailed information about the status, performance, network and media for a given WebRTC connection. spec: https://w3c.github.io/webrtc-stats/ group: webrtc From 090457f4413a8141bc25ad07ede67a5f6d3b6fe3 Mon Sep 17 00:00:00 2001 From: dietrich ayala Date: Mon, 18 Nov 2024 18:41:23 +0100 Subject: [PATCH 11/14] more review fixes --- features/webrtc-encoded-transform.yml | 4 +- features/webrtc-stats.yml | 5 +++ features/webrtc-stats.yml.dist | 53 +++++++++++++++++++++++++++ features/webrtc.yml | 5 --- features/webrtc.yml.dist | 41 --------------------- 5 files changed, 60 insertions(+), 48 deletions(-) diff --git a/features/webrtc-encoded-transform.yml b/features/webrtc-encoded-transform.yml index 63ed5550747..a8dcd2984b3 100644 --- a/features/webrtc-encoded-transform.yml +++ b/features/webrtc-encoded-transform.yml @@ -4,8 +4,8 @@ spec: https://w3c.github.io/webrtc-encoded-transform/ group: webrtc status: compute_from: - - api.RTCRtpReceiver.transform - - api.RTCRtpSender.transform + - api.RTCRtpReceiver.transform + - api.RTCRtpSender.transform compat_features: - api.DedicatedWorkerGlobalScope.rtctransform_event - api.RTCEncodedAudioFrame diff --git a/features/webrtc-stats.yml b/features/webrtc-stats.yml index 96b83c63529..8c825cb3a0b 100644 --- a/features/webrtc-stats.yml +++ b/features/webrtc-stats.yml @@ -3,6 +3,11 @@ description: The WebRTC Statistics API gives applications access to detailed inf spec: https://w3c.github.io/webrtc-stats/ group: webrtc compat_features: + - api.RTCPeerConnection.getStats + - api.RTCPeerConnection.getStats.returns_promise + - api.RTCPeerConnection.getStats.selector_parameter + - api.RTCRtpReceiver.getStats + - api.RTCRtpSender.getStats - api.RTCStatsReport - api.RTCStatsReport.@@iterator - api.RTCStatsReport.entries diff --git a/features/webrtc-stats.yml.dist b/features/webrtc-stats.yml.dist index 143dec35646..8f85ec456c6 100644 --- a/features/webrtc-stats.yml.dist +++ b/features/webrtc-stats.yml.dist @@ -5,6 +5,33 @@ status: baseline: false support: {} compat_features: + # baseline: high + # baseline_low_date: 2017-09-19 + # baseline_high_date: 2020-03-19 + # support: + # chrome: "56" + # chrome_android: "56" + # edge: "15" + # firefox: "44" + # firefox_android: "44" + # safari: "11" + # safari_ios: "11" + - api.RTCPeerConnection.getStats + + # baseline: high + # baseline_low_date: 2019-03-25 + # baseline_high_date: 2021-09-25 + # support: + # chrome: "67" + # chrome_android: "67" + # edge: "13" + # firefox: "55" + # firefox_android: "55" + # safari: "12.1" + # safari_ios: "12.2" + - api.RTCRtpReceiver.getStats + - api.RTCRtpSender.getStats + # baseline: high # baseline_low_date: 2020-01-15 # baseline_high_date: 2022-07-15 @@ -37,6 +64,19 @@ compat_features: - api.RTCStatsReport.type_candidate-pair.remoteCandidateId - api.RTCStatsReport.type_candidate-pair.state + # baseline: high + # baseline_low_date: 2020-01-15 + # baseline_high_date: 2022-07-15 + # support: + # chrome: "58" + # chrome_android: "58" + # edge: "79" + # firefox: "44" + # firefox_android: "44" + # safari: "11" + # safari_ios: "11" + - api.RTCPeerConnection.getStats.returns_promise + # baseline: high # baseline_low_date: 2020-01-15 # baseline_high_date: 2022-07-15 @@ -95,6 +135,19 @@ compat_features: # safari_ios: "11" - api.RTCStatsReport.type_inbound-rtp + # baseline: high + # baseline_low_date: ≤2020-01-15 + # baseline_high_date: ≤2022-07-15 + # support: + # chrome: "67" + # chrome_android: "67" + # edge: ≤79 + # firefox: "44" + # firefox_android: "44" + # safari: "11" + # safari_ios: "11" + - api.RTCPeerConnection.getStats.selector_parameter + # baseline: high # baseline_low_date: 2020-02-07 # baseline_high_date: 2022-08-07 diff --git a/features/webrtc.yml b/features/webrtc.yml index db6d3d189c4..68cdb9ffd17 100644 --- a/features/webrtc.yml +++ b/features/webrtc.yml @@ -128,9 +128,6 @@ compat_features: - api.RTCPeerConnection.getReceivers.stopped_transceivers_removed - api.RTCPeerConnection.getSenders - api.RTCPeerConnection.getSenders.stopped_transceivers_removed - - api.RTCPeerConnection.getStats - - api.RTCPeerConnection.getStats.returns_promise - - api.RTCPeerConnection.getStats.selector_parameter - api.RTCPeerConnection.getTransceivers - api.RTCPeerConnection.getTransceivers.stopped_transceivers_removed - api.RTCPeerConnection.iceConnectionState @@ -181,7 +178,6 @@ compat_features: - api.RTCRtpReceiver.getParameters.return_object_property_codecs - api.RTCRtpReceiver.getParameters.return_object_property_headerExtensions - api.RTCRtpReceiver.getParameters.return_object_property_rtcp - - api.RTCRtpReceiver.getStats - api.RTCRtpReceiver.getSynchronizationSources - api.RTCRtpReceiver.getSynchronizationSources.audio_tracks_supported - api.RTCRtpReceiver.getSynchronizationSources.video_tracks_supported @@ -198,7 +194,6 @@ compat_features: - api.RTCRtpSender.getParameters.return_object_property_headerExtensions - api.RTCRtpSender.getParameters.return_object_property_rtcp - api.RTCRtpSender.getParameters.return_object_property_transactionId - - api.RTCRtpSender.getStats - api.RTCRtpSender.replaceTrack - api.RTCRtpSender.setParameters - api.RTCRtpSender.setParameters.parameters_codecs_parameter diff --git a/features/webrtc.yml.dist b/features/webrtc.yml.dist index 1afd4a5ac79..980241cefed 100644 --- a/features/webrtc.yml.dist +++ b/features/webrtc.yml.dist @@ -66,7 +66,6 @@ compat_features: - api.RTCPeerConnection.close - api.RTCPeerConnection.createAnswer - api.RTCPeerConnection.createOffer - - api.RTCPeerConnection.getStats - api.RTCPeerConnection.iceConnectionState - api.RTCPeerConnection.iceGatheringState - api.RTCPeerConnection.icecandidate_event @@ -175,20 +174,6 @@ compat_features: - api.RTCRtpReceiver.getContributingSources - api.RTCRtpReceiver.getContributingSources.audio_tracks_supported - # baseline: high - # baseline_low_date: 2019-03-25 - # baseline_high_date: 2021-09-25 - # support: - # chrome: "67" - # chrome_android: "67" - # edge: "13" - # firefox: "55" - # firefox_android: "55" - # safari: "12.1" - # safari_ios: "12.2" - - api.RTCRtpReceiver.getStats - - api.RTCRtpSender.getStats - # baseline: high # baseline_low_date: 2020-01-15 # baseline_high_date: 2022-07-15 @@ -370,19 +355,6 @@ compat_features: # safari_ios: "11" - api.RTCDataChannel.bufferedamountlow_event - # baseline: high - # baseline_low_date: 2020-01-15 - # baseline_high_date: 2022-07-15 - # support: - # chrome: "58" - # chrome_android: "58" - # edge: "79" - # firefox: "44" - # firefox_android: "44" - # safari: "11" - # safari_ios: "11" - - api.RTCPeerConnection.getStats.returns_promise - # baseline: high # baseline_low_date: 2020-01-15 # baseline_high_date: 2022-07-15 @@ -585,19 +557,6 @@ compat_features: - api.RTCRtpReceiver.getContributingSources.source - api.RTCRtpReceiver.getContributingSources.timestamp - # baseline: high - # baseline_low_date: ≤2020-01-15 - # baseline_high_date: ≤2022-07-15 - # support: - # chrome: "67" - # chrome_android: "67" - # edge: ≤79 - # firefox: "44" - # firefox_android: "44" - # safari: "11" - # safari_ios: "11" - - api.RTCPeerConnection.getStats.selector_parameter - # baseline: high # baseline_low_date: ≤2020-01-15 # baseline_high_date: ≤2022-07-15 From be67c50ae3ca1de164484db3424cd6037fdecc36 Mon Sep 17 00:00:00 2001 From: dietrich ayala Date: Mon, 18 Nov 2024 20:37:30 +0100 Subject: [PATCH 12/14] regen --- features/webrtc.yml.dist | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/features/webrtc.yml.dist b/features/webrtc.yml.dist index 980241cefed..b0e27833f90 100644 --- a/features/webrtc.yml.dist +++ b/features/webrtc.yml.dist @@ -3,14 +3,14 @@ status: baseline: high - baseline_low_date: 2017-09-19 - baseline_high_date: 2020-03-19 + baseline_low_date: 2020-01-15 + baseline_high_date: 2022-07-15 support: chrome: "56" chrome_android: "56" - edge: "15" - firefox: "44" - firefox_android: "44" + edge: "79" + firefox: "22" + firefox_android: "24" safari: "11" safari_ios: "11" compat_features: @@ -48,7 +48,6 @@ compat_features: - api.RTCIceCandidate.toJSON - api.RTCSessionDescription.toJSON - # ⬇️ Same status as overall feature ⬇️ # baseline: high # baseline_low_date: 2017-09-19 # baseline_high_date: 2020-03-19 @@ -268,6 +267,7 @@ compat_features: - api.RTCCertificate - api.RTCCertificate.expires + # ⬇️ Same status as overall feature ⬇️ # baseline: high # baseline_low_date: 2020-01-15 # baseline_high_date: 2022-07-15 From e18daf3c33cf4a2720ddf1f8cdeb367c6464b41f Mon Sep 17 00:00:00 2001 From: Dietrich Ayala <50103+autonome@users.noreply.github.com> Date: Tue, 19 Nov 2024 08:11:17 -0500 Subject: [PATCH 13/14] Update features/webrtc-stats.yml Co-authored-by: Daniel D. Beck --- features/webrtc-stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/features/webrtc-stats.yml b/features/webrtc-stats.yml index 619071b1ad5..bc36c211ce6 100644 --- a/features/webrtc-stats.yml +++ b/features/webrtc-stats.yml @@ -1,5 +1,5 @@ name: WebRTC statistics -description: The `RTCPeerConnection.getStats()`, `RTCRtpSender.getStats()`, and `RTCRtpReceiver.getStats()` methods return detailed information about the status, performance, network and media for a given WebRTC connection. +description: The `RTCPeerConnection.getStats()`, `RTCRtpSender.getStats()`, and `RTCRtpReceiver.getStats()` methods return detailed information about the status, performance, network, and media for a given WebRTC connection. spec: https://w3c.github.io/webrtc-stats/ group: webrtc compat_features: From 360973507a202252d278c91844958b6ded75b68f Mon Sep 17 00:00:00 2001 From: dietrich ayala Date: Tue, 19 Nov 2024 14:12:54 +0100 Subject: [PATCH 14/14] compute stats status --- features/webrtc-stats.yml | 2 ++ features/webrtc-stats.yml.dist | 14 ++++++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/features/webrtc-stats.yml b/features/webrtc-stats.yml index bc36c211ce6..f98936c5505 100644 --- a/features/webrtc-stats.yml +++ b/features/webrtc-stats.yml @@ -2,6 +2,8 @@ name: WebRTC statistics description: The `RTCPeerConnection.getStats()`, `RTCRtpSender.getStats()`, and `RTCRtpReceiver.getStats()` methods return detailed information about the status, performance, network, and media for a given WebRTC connection. spec: https://w3c.github.io/webrtc-stats/ group: webrtc +status: + compute_from: api.RTCPeerConnection.getStats.returns_promise compat_features: - api.RTCPeerConnection.getStats - api.RTCPeerConnection.getStats.returns_promise diff --git a/features/webrtc-stats.yml.dist b/features/webrtc-stats.yml.dist index 8f85ec456c6..46322ebdf42 100644 --- a/features/webrtc-stats.yml.dist +++ b/features/webrtc-stats.yml.dist @@ -2,8 +2,17 @@ # Do not edit this file by hand. Edit the source file instead! status: - baseline: false - support: {} + baseline: high + baseline_low_date: 2020-01-15 + baseline_high_date: 2022-07-15 + support: + chrome: "58" + chrome_android: "58" + edge: "79" + firefox: "44" + firefox_android: "44" + safari: "11" + safari_ios: "11" compat_features: # baseline: high # baseline_low_date: 2017-09-19 @@ -64,6 +73,7 @@ compat_features: - api.RTCStatsReport.type_candidate-pair.remoteCandidateId - api.RTCStatsReport.type_candidate-pair.state + # ⬇️ Same status as overall feature ⬇️ # baseline: high # baseline_low_date: 2020-01-15 # baseline_high_date: 2022-07-15