<html>
    <!-- LayoutTests location is hard-coded to avoid duplication of code. -->
    <script src="http://svn.webkit.org/repository/webkit/trunk/LayoutTests/media/media-file.js"></script>
    <script>
        var vid;

        function canplaythrough()
        {
            vid.play();
        }

        function load()
        {
            vid = document.getElementById('vid');
            vid.addEventListener('canplaythrough', canplaythrough);

            // Mute first
            vid.muted = true;

            vid.src = "http://src.chromium.org/svn/trunk/src/chrome/test/data/media/" + findMediaFile("video", "bear");
        }
    </script>

    <body>
        <video id=vid controls autoplay>
        </video>
        <p>TEST: Video should be muted (e.g., controls) and also produce no sound (<a href="https://bugs.webkit.org/show_bug.cgi?id=57673">bug 57673</a>).</p>
        <input type="button" value="Load movie" onclick="load()">
        <br>
    </body>

</html>
