<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.1//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style>
object {
    background: red;
}
</style>
<script>
    if (window.testRunner)
        testRunner.waitUntilDone();

    function finished() {
        if (window.testRunner)
            setTimeout(function() { testRunner.notifyDone(); }, 0);
    }
</script>
</head>
<body>
    <!-- Shoud fill the whole screen, no red should be visible and a vertical scrollbar, as the embedded svg is as large as the host document itself -->
    <object data="resources/svg-slow.pl" type="image/svg+xml" onload="finished()"/>
</body>
</html>
