2011-06-21  Adrienne Walker  <enne@google.com>

        Reviewed by Simon Fraser.

        Add child layers to the overlap map if their parent belatedly becomes composited
        https://bugs.webkit.org/show_bug.cgi?id=62181

        * compositing/layer-creation/overlap-transformed-layer-expected.txt: Added.
        * compositing/layer-creation/overlap-transformed-layer.html: Added.
2011-06-21  Adrienne Walker  <enne@google.com>

        Reviewed by Simon Fraser.

        Add child layers to the overlap map if their parent belatedly becomes composited
        https://bugs.webkit.org/show_bug.cgi?id=62181

        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::addToOverlapMapRecursive):
        (WebCore::RenderLayerCompositor::computeCompositingRequirements):
        * rendering/RenderLayerCompositor.h:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@89394 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/LayoutTests/compositing/layer-creation/overlap-transformed-layer.html b/LayoutTests/compositing/layer-creation/overlap-transformed-layer.html
new file mode 100644
index 0000000..dabbae3
--- /dev/null
+++ b/LayoutTests/compositing/layer-creation/overlap-transformed-layer.html
@@ -0,0 +1,65 @@
+<html>
+<head>
+<style>
+    #container {
+        -webkit-transform: translate(-10px, 0px);
+    }
+
+    #indicator {
+        position: absolute;
+        left: 15px;
+        top: 0px;
+        height: 256px;
+        width: 256px;
+        background-color: red;
+    }
+
+    #green {
+        position: absolute;
+        left: 0px;
+        top: 0px;
+        width: 300px;
+        height: 300px;
+        background-color: green;
+    }
+
+    #composited {
+        position: absolute;
+        left: 400px;
+        -webkit-transform:translateZ(0);
+    }
+
+    #layertree {
+        position: absolute;
+        left: 10000px;
+        top: 0px;
+    }
+
+    body {
+        overflow: hidden;
+    }
+
+</style>
+
+<script>
+    if (window.layoutTestController) {
+        layoutTestController.dumpAsText(true);
+        window.addEventListener('load', function() {
+            document.getElementById("layertree").innerText = layoutTestController.layerTreeAsText();
+        }, false);
+    }
+</script>
+
+<body>
+    <div id="container">
+        <!-- This red square should not be visible -->
+        <div id="indicator"></div>
+        <div id="composited"></div>
+    </div>
+
+    <!-- This green square should render completely on top of the red one -->
+    <div id="green"></div>
+
+    <pre id="layertree"></pre>
+</body>
+</html>