<html>
<head>
    <style> video { zoom: 150%; border: 3px solid red; } </style>
    <script src=media-file.js></script>
    <script>
        function init()
        {
            setSrcByTagName("video", findMediaFile("video", "content/test"));

            var totalCount = document.getElementsByTagName('video').length;
            var count = totalCount;
            document.addEventListener("canplaythrough", function () {
                if (!--count) {
                    if (window.testRunner)
                        setTimeout(function() { testRunner.notifyDone(); }, totalCount * 150);
                }
            }, true);

            if (window.testRunner)
                testRunner.waitUntilDone();
        }
    </script>

</head>
<body onload="init();">
    <p>150% zoom, with width and height attributes </p>
    &nbsp;<video width=320 height=240></video><br>
    <p>150% zoom, without width and height attributes </p>
    &nbsp;<video></video><br>
</body>
</html>
