| <!DOCTYPE HTML> |
| <html> |
| <head> |
| <script src="../resources/gc.js"></script> |
| <script> |
| if (window.testRunner) { |
| window.testRunner.dumpAsText(); |
| window.testRunner.waitUntilDone(); |
| } |
| |
| let tracks = []; |
| |
| function runTest() |
| { |
| div = document.getElementsByTagName('div')[0]; |
| |
| audio = document.createElement("audio"); |
| div.appendChild(audio); |
| |
| video = document.createElement("video"); |
| div.appendChild(video); |
| |
| for (let i = 0; i < 10; i++) { |
| let track = document.createElement("track"); |
| track.src = 'data:text/vtt,'+encodeURIComponent('WEBVTT\n\n00:00:00.000 --> 00:00:01.000\ntest\n'); |
| track.kind = "caption"; |
| track.srclang = "fr"; |
| video.appendChild(track); |
| tracks.push(track); |
| } |
| |
| object = document.createElement("object"); |
| video.appendChild(object); |
| |
| range = document.createRange(); |
| range.selectNodeContents(audio); |
| range.setEndBefore(object); |
| setTimeout(step1, 0); |
| gc(); |
| } |
| |
| function step1() |
| { |
| range.extractContents(); |
| gc(); |
| setTimeout(step2, 0); |
| } |
| |
| function step2() |
| { |
| for (let i = 0; i < 10; i++) |
| tracks[i].srclang = "en"; |
| |
| if (window.testRunner) |
| window.testRunner.notifyDone(); |
| } |
| </script> |
| </head> |
| <body onload="runTest()"> |
| <div></div> |
| <p>Tests that moving a video element from the document tree into a DocumentFragment does not crash.</p> |
| <p>If this test does not crash, it passes.</p> |
| </body> |
| </html> |