<script>
if (window.testRunner)
    testRunner.dumpAsText();

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

function hasOpaqueCompositedScrollingContentsLayer(layer) {
    if (layer.name == "Scrolling Contents Layer")
        return layer.contentsOpaque;
    if (layer.children) {
        for (var i = 0; i < layer.children.length; i++) {
            if (hasOpaqueCompositedScrollingContentsLayer(layer.children[i]))
                return true;
        }
    }
    return false;
}

onload = function() {
    if (!window.testRunner || !window.internals)
        return;

    var result = "";
    result += "Should have opaque composited scrolling contents layer: ";
    if (hasOpaqueCompositedScrollingContentsLayer(JSON.parse(window.internals.layerTreeAsText(document))))
        result += "Pass.\n";
    else
        result += "Fail.\n";
    testRunner.setCustomTextOutput(result);
}
</script>
<style>
#scroller {
    background: white local content-box;
    border: 10px solid rgba(0, 255, 0, 0.5);
    overflow: scroll;
    width: 200px;
    height: 200px;
}
.spacer {
    height: 300px;
}
</style>
<!-- The scroller's Scrolling Contents Layer should be opaque due to the opaque
    color background. Even though the background has a content-box clip there
    is no gap because the scroller has no padding. This means that we will be
    able to draw text with subpixel anti-aliasing.
-->
<div id="scroller"><div class="spacer"></div></div>
