<html>
<head>
    <script src="resources/print.js"></script>
    <script>
        if (window.testRunner) {
            testRunner.dumpAsText();
            testRunner.waitUntilDone();
        }

        document.addEventListener("beforeload", function(event) {
            event.preventDefault();
        }, true);

        function checkObject()
        {
            var style = getComputedStyle(document.getElementsByTagName("object")[0], null);
            if (style.width != "auto" || style.height != "auto")
                print("FAIL", "red");

            if (window.testRunner)
                testRunner.notifyDone();
        }
    </script>
</head>
<body onload="checkObject();">
    <object data="../../images/resources/test-load.jpg">
        <span style="font-family:monospace; color:green">PASS</span>
    </object>
    <div id="console"></div>
</body>
</html>
