<!DOCTYPE html>
<script src="../../resources/check-layout.js"></script>
<body>

<div style="overflow: scroll; height: 200px; width: 400px; background-color: salmon">
    <div style="overflow: scroll; height: 100%; background-color: purple">
        <div style="overflow: scroll; height: 100%; background-color: purple">
            <div style="border: 0; height: 100%; width: 100%; background-color: orange"></div>
        </div>
    </div>
</div>

<div style="overflow: scroll; height: 200px; width: 400px; background-color: salmon">
    <div style="overflow: scroll; height: 100%; background-color: purple">
        <div style="overflow: scroll; height: 100%; background-color: purple;line-height: 0">
            <iframe style="border: 0; height: 100%; width: 100%; background-color: orange"></iframe>
        </div>
    </div>
</div>

<script>
var dummy = document.createElement('div');
dummy.style.overflow = "scroll";
document.body.appendChild(dummy);
var scrollbarWidth = dummy.offsetWidth - dummy.clientWidth;
document.body.removeChild(dummy);

function setExpected(node, width, height)
{
    node.setAttribute('data-expected-width', width);
    node.setAttribute('data-expected-height', height);
}

var containers = document.querySelectorAll('body > div');
for (var i = 0; i < containers.length; i++) {
    var width = containers[i].offsetWidth;
    var height = containers[i].offsetHeight;

    width -= scrollbarWidth;
    height -= scrollbarWidth;
    var first = containers[i].querySelector('div');
    setExpected(first, width, height);

    width -= scrollbarWidth;
    height -= scrollbarWidth;
    var second = first.querySelector('div');
    setExpected(second, width, height);

    width -= scrollbarWidth;
    height -= scrollbarWidth;
    var third = second.querySelector('*');
    setExpected(third, width, height);
}

checkLayout('body > div')
</script>

</body>