<body style="margin:0px">
    <div style="width: 100px; height: 100px; position: absolute; left: 100px; top: 100px; background-color: red">FAIL</div>
    <div id="outer" style="opacity: 0.5; margin: 100px">
        <div style="position: relative; background-color: green; width: 100px; height: 100px">PASS</div>
    </div>
You should see a 100x100 green rect at 100x100 above with the word PASS.  There should be no red on this page.  This is a test case for https://bugs.webkit.org/show_bug.cgi?id=25252

    <script>
        function doTest() {
            document.getElementById("outer").style.opacity = 1.0;
            if (window.testRunner)
                testRunner.notifyDone();
        }
        if (window.testRunner)
            testRunner.waitUntilDone();
        // Delay until after the first paint
        setTimeout(doTest, 0);
    </script>
</body>
