<!doctype html> <meta charset=utf-8> <meta name="timeout" content="long"> <title></title> <script src=/resources/testharness.js></script> <script src=/resources/testharnessreport.js></script> <script> 'use strict'; promise_test(async t => { const pc = new RTCPeerConnection(); t.add_cleanup(() => pc.close()); const signalingStates = []; pc.onsignalingstatechange = ev => signalingStates.push(pc.signalingState); pc.addTransceiver('audio', {direction:'recvonly'}); const offer = await pc.createOffer(); const sldPromise = pc.setLocalDescription(offer); const srdPromise = pc.setRemoteDescription(offer); await Promise.all([sldPromise, srdPromise]); assert_array_equals(signalingStates, ['have-local-offer','stable','have-remote-offer']); }, 'setLocalDescription and setRemoteDescription are not racy'); </script>