Click here to download the Blitz Browser!

WPT

wpt / webrtc / RTCPeerConnection-transceivers.https.html

Spec: WebRTC ↗

Runs: Chrome 155.0.8039.0 (wpt@6ec9fd59f, 2026-09-03) | Firefox 157.0a1 (wpt@6ec9fd59f, 2026-09-03) | Safari 251 preview (wpt@5ce815a83, 2026-08-27) | Ladybird 1.0-795e1 (wpt@7e3d005d7, 2026-09-03) | Servo Servo 0.6 (wpt@09159dcb3, 2026-09-02) | Blitz 188486089 (wpt@a95401e4e, 2026-09-02)

View on the Blitz WPT dashboard | Open test on wpt.live | wpt.fyi

ChromeFirefoxSafariLadybirdServoBlitz
Total44/4444/4444/440/440/44NOT RUN
SubtestChromeFirefoxSafariLadybirdServoBlitz
addTrack: creates a transceiver for the senderPASSPASSPASSFAILFAIL
addTrack: "transceiver == {sender,receiver}"PASSPASSPASSFAILFAIL
addTrack: transceiver.sender is associated with the trackPASSPASSPASSFAILFAIL
addTrack: transceiver.receiver has its own trackPASSPASSPASSFAILFAIL
addTrack: transceiver.receiver's track is mutedPASSPASSPASSFAILFAIL
addTrack: transceiver is not associated with an m-sectionPASSPASSPASSFAILFAIL
addTrack: transceiver is not stoppedPASSPASSPASSFAILFAIL
addTrack: transceiver's direction is sendrecvPASSPASSPASSFAILFAIL
addTrack: transceiver's currentDirection is nullPASSPASSPASSFAILFAIL
setLocalDescription(offer): transceiver gets associated with an m-sectionPASSPASSPASSFAILFAIL
setLocalDescription(offer): transceiver.mid matches the offer SDPPASSPASSPASSFAILFAIL
setRemoteDescription(offer): ontrack fires with a trackPASSPASSPASSFAILFAIL
setRemoteDescription(offer): ontrack's stream.id is the same as stream.idPASSPASSPASSFAILFAIL
setRemoteDescription(offer): ontrack fires with a transceiver.PASSPASSPASSFAILFAIL
setRemoteDescription(offer): transceiver.mid is the same on both endsPASSPASSPASSFAILFAIL
setRemoteDescription(offer): "transceiver == {sender,receiver}"PASSPASSPASSFAILFAIL
setRemoteDescription(offer): transceiver.direction is recvonlyPASSPASSPASSFAILFAIL
setRemoteDescription(offer): transceiver.currentDirection is nullPASSPASSPASSFAILFAIL
setRemoteDescription(offer): transceiver.stopped is falsePASSPASSPASSFAILFAIL
setLocalDescription(answer): transceiver.currentDirection is recvonlyPASSPASSPASSFAILFAIL
setLocalDescription(answer): transceiver.currentDirection is sendonlyPASSPASSPASSFAILFAIL
addTransceiver(track): creates a transceiver for the trackPASSPASSPASSFAILFAIL
addTransceiver(track): "transceiver == {sender,receiver}"PASSPASSPASSFAILFAIL
addTransceiver(track, init): initialize direction to inactivePASSPASSPASSFAILFAIL
addTransceiver(track, init): initialize sendEncodings[0].active to falsePASSPASSPASSFAILFAIL
addTransceiver(0 streams): ontrack fires with no streamPASSPASSPASSFAILFAIL
addTransceiver(1 stream): ontrack fires with corresponding streamPASSPASSPASSFAILFAIL
addTransceiver(2 streams): ontrack fires with corresponding two streamsPASSPASSPASSFAILFAIL
addTrack(0 streams): ontrack fires with no streamPASSPASSPASSFAILFAIL
addTrack(1 stream): ontrack fires with corresponding streamPASSPASSPASSFAILFAIL
addTrack(2 streams): ontrack fires with corresponding two streamsPASSPASSPASSFAILFAIL
addTransceiver('audio'): creates a transceiver with direction sendrecvPASSPASSPASSFAILFAIL
addTransceiver('audio'): transceiver.receiver.track.kind == 'audio'PASSPASSPASSFAILFAIL
addTransceiver('video'): transceiver.receiver.track.kind == 'video'PASSPASSPASSFAILFAIL
addTransceiver('audio'): transceiver.sender.track == nullPASSPASSPASSFAILFAIL
addTransceiver('audio'): transceiver.currentDirection is nullPASSPASSPASSFAILFAIL
addTransceiver('audio'): transceiver.stopped is falsePASSPASSPASSFAILFAIL
addTrack reuses reusable transceiversPASSPASSPASSFAILFAIL
addTransceiver does not reuse reusable transceiversPASSPASSPASSFAILFAIL
Can setup two-way call using a single transceiverPASSPASSPASSFAILFAIL
Closing the PC stops the transceiversPASSPASSPASSFAILFAIL
Changing transceiver direction to 'sendrecv' makes ontrack firePASSPASSPASSFAILFAIL
transceiver.sender.track does not revert to an old statePASSPASSPASSFAILFAIL
transceiver.direction does not revert to an old statePASSPASSPASSFAILFAIL