<html>
<head>
    <script type="text/javascript">
        if (window.testRunner && window.internals) {
            testRunner.waitUntilDone();
            internals.settings.setFrameFlattening("FullyEnabled")
        }

        function test()
        {
            setTimeout(function() {
                scrollTo(1200, 0);
                if (window.testRunner)
                    testRunner.notifyDone();
            }, 0);
        }
    </script>
</head>
<body onload="test()">
    <div>
        <p>Test that an off-screen iframe with positive coordinates is flattened, and so are its child frames.
    </div>

    <p><iframe width="200" height="200" style='border: 0px; position: absolute; left: 1200px; top: 0px;' src="data:text/html,
        <style>body { background-color: blue; }</style>
        <body>
            <iframe src='data:text/html, <style>div {width:800px;background-color:silver;}</style><div>This is a nested frame that is flattened and scrolled into view.</div>'></iframe>
        </body>
        "></iframe>
</body>
</html>
