<style>
div {
  overflow:scroll;
  position:absolute;
}

.box {
  display:block;
  background-color:green;
  width:100px;
  height:100px;
}
</style>

<body>
Test that scrollbar width is added to the intrinsic width of different display types.
<div style="top: 100px"><span class="box"></span></div>
<div style="top: 100px; left: 150px; display: -webkit-box;"><span class="box"></span></div>
<div style="top: 100px; left: 300px; -webkit-writing-mode: vertical-rl; overflow-x: hidden" data-no-horizontal-scrollbar><span class="box"></span></div>
<div style="top: 100px; left: 450px; overflow-y: hidden" data-no-vertical-scrollbar><span class="box"></span></div>

<script src="../../resources/check-layout.js"></script>
<script>
var dummy = document.createElement('h1');
dummy.style.overflow = 'scroll';
document.body.appendChild(dummy);
var scrollbarWidth = dummy.offsetWidth - dummy.clientWidth;
document.body.removeChild(dummy);

Array.prototype.forEach.call(document.querySelectorAll('div'), function(node) {
    var width = 100;
    if (!node.hasAttribute('data-no-vertical-scrollbar'))
        width += scrollbarWidth;
    node.setAttribute('data-expected-width', width);
    var height = 100;
    if (!node.hasAttribute('data-no-horizontal-scrollbar'))
        height += scrollbarWidth;
    node.setAttribute('data-expected-height', height);
});
checkLayout('body');
</script>
</body>
