<!-- webkit-test-runner [ enableModernMediaControls=false ] -->
<html>
    <head>
        <script src=media-file.js></script>
        <script>
            function toggleDisplay()
            {
                var video = document.getElementById('vid');
                if (video.style.display == "none") {
                    video.style.display = "inline-block";
                    video.addEventListener("seeked", done);
                    video.currentTime = 0; // so the snapshot always has the same frame
                } else
                    video.style.display = "none";
            }
            function test()
            {
                if (window.testRunner)
                    testRunner.waitUntilDone();
                setSrcById('vid', findMediaFile('video', 'content/test'));
                var video = document.getElementById('vid');
                video.addEventListener("canplaythrough", test2);
                video.load();
            }
            function test2()
            {
                toggleDisplay();
                toggleDisplay();
            }
            function done()
            {
                if (window.testRunner)
                    testRunner.notifyDone();
            }
        </script>
    </head>
    <body onload="test()">
        This tests that toggling the display property won't make the controls disappear.<br>
        <video id="vid" controls></video>
    </body>
</html>
