<!DOCTYPE html><!-- webkit-test-runner [ MainContentUserGestureOverrideEnabled=true ] -->
<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) {
    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>