<html>
    <head>
        <style type="text/css">
            .box {
                width: 100px;
                height: 100px;
            }
            .opaque-background {
                background-color: green;
            }
            .translucent {
                opacity: 0.5;
            }
            .composited {
                -webkit-transform: translateZ(0);
            }
        </style>
        <script type="text/javascript">
            if (window.testRunner)
                testRunner.dumpAsText();

            function doTest() {
                if (window.testRunner && window.internals)
                    document.getElementById('layertree').innerText = window.internals.layerTreeAsText(document);
            }
            window.addEventListener('load', doTest, false);
        </script>
    </head>
    <body>
        <!-- Box with opaque background color but global opacity. -->
        <!-- Global opacity does not affect the opaqueness of content. -->
        <!-- GraphicsLayer::contentsOpaque for this box should be true. -->
        <div class="box opaque-background translucent composited"></div>

        <pre id="layertree"></pre>
    </body>
</html>
