<!DOCTYPE HTML>
<html>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<link rel="stylesheet" href="../../resources/testharness.css">
<head>
<style>
* {
    margin: 0;
    padding: 0;
}

#makespace {
    height: 5000px;
}
</style>
</head>
<body>
<div id="makespace"></div>
<div id="measure"></div>
<script>
    if (window.testRunner)
        testRunner.dumpAsText();

    if (window.internals)
        internals.runtimeFlags.overlayScrollbarsEnabled = true;

    var test = async_test("Test that partial layout works with overlay scrollbars.");
    setTimeout(function() {
        test.step(function() {
            var measure = document.getElementById('measure');
            var measureWidth = measure.offsetWidth; // Partial layout occurs here!

            assert_equals(measureWidth, document.body.offsetWidth);
            assert_equals(measureWidth, window.innerWidth);
        });

        test.done();
    }, 0);
</script>
</body>
</html>
