Click here to download the Blitz Browser!

WPT

wpt / webrtc / RTCPeerConnection-onnegotiationneeded.html

Spec: WebRTC ↗

Runs: Chrome 155.0.8038.0 (wpt@7addae031, 2026-09-02) | Firefox 157.0a1 (wpt@7addae031, 2026-09-02) | Safari 251 preview (wpt@5ce815a83, 2026-08-27) | Ladybird 1.0-a7884 (wpt@b1a7025f8, 2026-09-02) | 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
Total24/2424/2424/240/240/24NOT RUN
SubtestChromeFirefoxSafariLadybirdServoBlitz
Creating first data channel should fire negotiationneeded eventPASSPASSPASSFAILFAIL
calling createDataChannel twice should fire negotiationneeded event oncePASSPASSPASSFAILFAIL
addTransceiver() should fire negotiationneeded eventPASSPASSPASSFAILFAIL
Calling addTransceiver() twice should fire negotiationneeded event oncePASSPASSPASSFAILFAIL
Calling both addTransceiver() and createDataChannel() should fire negotiationneeded event oncePASSPASSPASSFAILFAIL
negotiationneeded event should not fire if signaling state is not stablePASSPASSPASSFAILFAIL
negotiationneeded event should fire only after signaling state goes back to stable after setRemoteDescriptionPASSPASSPASSFAILFAIL
negotiationneeded event should fire only after signaling state goes back to stable after setLocalDescriptionPASSPASSPASSFAILFAIL
negotiationneeded event should fire only after signalingstatechange event fires from setRemoteDescriptionPASSPASSPASSFAILFAIL
negotiationneeded event should fire only after signalingstatechange event fires from setLocalDescriptionPASSPASSPASSFAILFAIL
addTrack should cause negotiationneeded to firePASSPASSPASSFAILFAIL
removeTrack should cause negotiationneeded to fire on the callerPASSPASSPASSFAILFAIL
removeTrack should cause negotiationneeded to fire on the calleePASSPASSPASSFAILFAIL
Updating the direction of the transceiver should cause negotiationneeded to firePASSPASSPASSFAILFAIL
Calling setStreams should cause negotiationneeded to firePASSPASSPASSFAILFAIL
Calling setStreams with a different stream as before should cause negotiationneeded to firePASSPASSPASSFAILFAIL
Calling setStreams with an additional stream should cause negotiationneeded to firePASSPASSPASSFAILFAIL
Calling setStreams with a stream removed should cause negotiationneeded to firePASSPASSPASSFAILFAIL
Calling setStreams with all streams removed should cause negotiationneeded to firePASSPASSPASSFAILFAIL
Calling setStreams with the same stream as before should not cause negotiationneeded to firePASSPASSPASSFAILFAIL
Calling setStreams with duplicates of the same stream as before should not cause negotiationneeded to firePASSPASSPASSFAILFAIL
Calling setStreams with the same streams as before in a different order should not cause negotiationneeded to firePASSPASSPASSFAILFAIL
Calling setStreams with duplicates of the same streams as before should not cause negotiationneeded to firePASSPASSPASSFAILFAIL
Adding two transceivers, one at a time, results in the expected number of negotiationneeded eventsPASSPASSPASSFAILFAIL