<body>
    This window should not have scroll bars. If it has scroll bars, try to use them.
    <script>
        var width = innerWidth;
        var height = innerHeight;

        document.documentElement.style.height = height - 32 + "px";
        document.documentElement.style.width = width - 32 + "px";
        document.body.offsetTop;

        var newWidth = outerWidth - 24;

        if (window.testRunner) {
            testRunner.waitUntilDone();
            addEventListener("resize", function() {
                if (outerWidth == newWidth)
                    testRunner.notifyDone();
            });
        }

        resizeTo(newWidth, outerHeight - 24);
    </script>
</body>
