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>