| <!DOCTYPE html> |
| <html> |
| <body> |
| <p id="description">This tests removing a video element inside an iframe while another video in the main frame is playing does not hit a release assertion.</p> |
| <div id="result"></div> |
| <video id="video" autoplay width="500"></video> |
| <script src="media-file.js"></script> |
| <script> |
| |
| if (window.testRunner) { |
| testRunner.waitUntilDone(); |
| testRunner.dumpAsText(); |
| } |
| |
| let count = 0; |
| function continueTest() { |
| count++; |
| if (count < 2) |
| return; |
| setTimeout(() => { |
| iframe.remove(); |
| result.textContent = 'PASS'; |
| if (window.testRunner) |
| testRunner.notifyDone(); |
| }, 0); |
| } |
| |
| if (window.internals) { |
| testRunner.overridePreference("WebKitMainContentUserGestureOverrideEnabled", 1); |
| internals.setMediaElementRestrictions(video, "OverrideUserGestureRequirementForMainContent"); |
| } else |
| description.innerHTML += '<br>This test requries OverrideUserGestureRequirementForMainContent. Manually set this setting or use WebKitTestRunner.'; |
| |
| const videoURL = findMediaFile("video", "content/test"); |
| const iframe = document.createElement('iframe'); |
| document.body.appendChild(iframe); |
| video.src = videoURL; |
| video.addEventListener('loadeddata', continueTest); |
| |
| const doc = iframe.contentDocument; |
| doc.open(); |
| doc.write(`<!DOCTYPE html><html><body>`); |
| doc.write(`<video autoplay src="${videoURL}"></video>`); |
| doc.write(`<script>document.querySelector('video').addEventListener('loadeddata', () => top.continueTest());</` + `script>`); |
| doc.close(); |
| |
| </script> |
| </body> |
| </html> |