<!-- webkit-test-runner [ ModernMediaControlsEnabled=false ] -->
<html>
    <head>
        <script src=media-file.js></script>
        <script>
            if (window.testRunner)
                testRunner.waitUntilDone();

            var video;

            function start()
            {
                internals.suspendAnimations();
                setSrcByTagName("video", findMediaFile("video", "content/test"));
                video = document.getElementsByTagName('video')[0];
                video.load();
                video.play();
                video.addEventListener("canplaythrough", canPlayThrough);
            }

            function canPlayThrough()
            {
                // Ensure that the frame is always the same in pixel result.
                video.addEventListener("seeked", finish);
                video.pause();
                video.currentTime = 0;
            }

            function finish()
            {
                if (window.testRunner)
                    testRunner.notifyDone();
            }
        </script>
    </head>

    <body onload="start()">
        <p>The controls should not depend on preload value.</p>
        <video preload=none controls ></video>
    </body>
</html>
