| <!doctype html> |
| <html> |
| <head> |
| <script src="../resources/testharness.js"></script> |
| <script src="../resources/testharnessreport.js"></script> |
| </head> |
| <body> |
| <script> |
| promise_test(async test => { |
| const pc1 = new RTCPeerConnection(); |
| pc1.addTransceiver("audio"); |
| const offer = await pc1.createOffer(); |
| |
| let sdp = offer.sdp; |
| sdp = sdp.replace("urn:ietf:params:rtp-hdrext:ssrc-audio-level", "urn:ietf:params:rtp-hdrext:encrypt urn:ietf:params:rtp-hdrext:ssrc-audio-level"); |
| |
| await pc1.setLocalDescription({ type:"offer", sdp }); |
| const pc2 = new RTCPeerConnection(); |
| await pc2.setRemoteDescription(offer); |
| |
| const answer = await pc2.createAnswer(); |
| sdp = answer.sdp; |
| sdp = sdp.replace("urn:ietf:params:rtp-hdrext:ssrc-audio-level", "urn:ietf:params:rtp-hdrext:encrypt urn:ietf:params:rtp-hdrext:ssrc-audio-level"); |
| await pc2.setLocalDescription(answer); |
| await pc1.setRemoteDescription({ type:"answer", sdp }); |
| |
| let parameters = pc1.getSenders()[0].getParameters(); |
| |
| assert_true(parameters.headerExtensions[0].encrypted); |
| await pc1.getSenders()[0].setParameters(parameters); |
| |
| // Modifying encrypted should reject. |
| parameters = pc1.getSenders()[0].getParameters(); |
| parameters.headerExtensions[0].encrypted = false; |
| return promise_rejects_dom(test, 'InvalidModificationError', pc1.getSenders()[0].setParameters(parameters)); |
| }); |
| </script> |
| </body> |
| </html> |