Files
sousa-gecko/testing/web-platform/tests/webrtc-encoded-transform/script-transform.https.html
T
Daniel Holbert 07d4ce49a4 Bug 2008806 [wpt PR 57020] - Annotate that a WebRTC test needs a long harness timeout., a=testonly
Automatic update from web-platform-tests
Annotate that a WebRTC test needs a long harness timeout. (#57020)

The testcase script-transform.https.html has been observed on wpt.fyi to
sometimes take more than 10 seconds in Firefox and more than 6 seconds in Edge,
after a review of wpt.fyi test runs for a single day.

So, the default 10 second harness timeout seems like too strict of a cutoff.
This patch annotates the test as needing a longer harness timeout.

Fixes https://github.com/web-platform-tests/interop/issues/1240
--

wpt-commits: ff5c9d8695edd3209fd918d843c5c2d0881238f3
wpt-pr: 57020
2026-01-09 23:28:11 +00:00

62 lines
2.3 KiB
HTML

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="timeout" content="long">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src=/resources/testdriver.js></script>
<script src=/resources/testdriver-vendor.js></script>
<script src='../mediacapture-streams/permission-helper.js'></script>
</head>
<body>
<video id="video1" autoplay></video>
<video id="video2" autoplay></video>
<script src ="routines.js"></script>
<script>
promise_test(async (test) => {
const worker = await createWorker('script-transform-worker.js');
const transform = await createTransform(worker);
transform.port.postMessage("ping");
assert_equals(await getNextMessage(transform.port), "pong");
}, "transform messaging");
promise_test(async (test) => {
const {sender, receiver, senderPc, receiverPc} = await createConnectionWithTransform(test, 'script-transform-worker.js', {audio: true});
const sender2 = senderPc.addTransceiver('video').sender;
const receiver2 = senderPc.getReceivers()[1];
assert_throws_dom("InvalidStateError", () => sender2.transform = sender.transform);
assert_throws_dom("InvalidStateError", () => receiver2.transform = receiver.transform);
sender.transform = sender.transform;
receiver.transform = receiver.transform;
sender.transform = null;
receiver.transform = null;
}, "Cannot reuse attached transforms");
promise_test(async (test) => {
const {sender, receiver, senderPc, receiverPc} = await createConnectionWithTransform(test, 'script-transform-worker.js', {audio: true});
assert_equals(await getNextMessage(sender.transform.port), "audio chunk");
video1.srcObject = new MediaStream([receiver.track]);
await video1.play();
}, "audio exchange with transform");
promise_test(async (test) => {
const {sender, receiver, senderPc, receiverPc} = await createConnectionWithTransform(test, 'script-transform-worker.js', {video: true});
assert_equals(await getNextMessage(sender.transform.port), "video chunk");
// First frame should be a keyframe
assert_equals(await getNextMessage(sender.transform.port), "video keyframe");
video1.srcObject = new MediaStream([receiver.track]);
await video1.play();
}, "video exchange with transform");
</script>
</body>
</html>