summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/webrtc/RTCPeerConnection-GC.https.html
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-15 03:35:49 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-15 03:35:49 +0000
commitd8bbc7858622b6d9c278469aab701ca0b609cddf (patch)
treeeff41dc61d9f714852212739e6b3738b82a2af87 /testing/web-platform/tests/webrtc/RTCPeerConnection-GC.https.html
parentReleasing progress-linux version 125.0.3-1~progress7.99u1. (diff)
downloadfirefox-d8bbc7858622b6d9c278469aab701ca0b609cddf.tar.xz
firefox-d8bbc7858622b6d9c278469aab701ca0b609cddf.zip
Merging upstream version 126.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testing/web-platform/tests/webrtc/RTCPeerConnection-GC.https.html')
-rw-r--r--testing/web-platform/tests/webrtc/RTCPeerConnection-GC.https.html30
1 files changed, 30 insertions, 0 deletions
diff --git a/testing/web-platform/tests/webrtc/RTCPeerConnection-GC.https.html b/testing/web-platform/tests/webrtc/RTCPeerConnection-GC.https.html
index 156a2e1f09..282c362a2d 100644
--- a/testing/web-platform/tests/webrtc/RTCPeerConnection-GC.https.html
+++ b/testing/web-platform/tests/webrtc/RTCPeerConnection-GC.https.html
@@ -85,6 +85,36 @@ promise_test(async t => {
await onVideoChange();
assert_not_equals(color, getVideoSignal(destVideo));
}, "GC does not collect a peer connection pipe rendering to a video element");
+
+promise_test(async t => {
+ const pc1 = new RTCPeerConnection();
+ t.add_cleanup(() => pc1.close());
+ const pc2 = new RTCPeerConnection();
+ t.add_cleanup(() => pc2.close());
+
+ const [track, stream] = await createTrackAndStreamWithCleanup(t, "video");
+ pc1.addTrack(track, stream);
+ exchangeIceCandidates(pc1, pc2);
+
+ const metadataToBeLoaded = [];
+ pc2.ontrack = (e) => {
+ const stream = e.streams[0];
+ const v = document.createElement('video');
+ v.autoplay = true;
+ v.srcObject = stream;
+ v.id = stream.id
+ metadataToBeLoaded.push(new Promise((resolve) => {
+ v.addEventListener('loadedmetadata', () => {
+ resolve();
+ });
+ }));
+ };
+ await exchangeOfferAnswer(pc1, pc2);
+
+ garbageCollect();
+
+ await Promise.all(metadataToBeLoaded);
+}, "GC does not collect an HTMLMediaElement playing a video track");
</script>
</body>
</html>