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

        function test()
        {
            setTimeout(function() {
                scrollTo(1200, 0);
                document.body.offsetWidth;
                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>
