Title: [87547] trunk
- Revision
- 87547
- Author
- jam...@google.com
- Date
- 2011-05-27 13:29:12 -0700 (Fri, 27 May 2011)
Log Message
2011-05-27 James Robinson <jam...@chromium.org>
Reviewed by Simon Fraser.
GraphicsLayers for overflow controls on iframe without clipping layer left out of layer tree
https://bugs.webkit.org/show_bug.cgi?id=61590
* compositing/iframes/resizer-expected.txt: Added.
* compositing/iframes/resizer.html: Added.
2011-05-27 James Robinson <jam...@chromium.org>
Reviewed by Simon Fraser.
GraphicsLayers for overflow controls on iframe without clipping layer left out of layer tree
https://bugs.webkit.org/show_bug.cgi?id=61590
Adds overflow control layers to the compositor tree for layers without clipping layers regardless of whether the
backing is parented. This ensures that the scroll corner layer for an iframe without a clipping layer ends up
in the final layer tree. We don't currently render resizers for iframes, but we will soon and this keeps the
graphics layer tree consistent.
Test: compositing/iframes/resizer.html
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::rebuildCompositingLayerTree):
Modified Paths
Added Paths
Diff
Modified: trunk/LayoutTests/ChangeLog (87546 => 87547)
--- trunk/LayoutTests/ChangeLog 2011-05-27 20:28:19 UTC (rev 87546)
+++ trunk/LayoutTests/ChangeLog 2011-05-27 20:29:12 UTC (rev 87547)
@@ -1,3 +1,13 @@
+2011-05-27 James Robinson <jam...@chromium.org>
+
+ Reviewed by Simon Fraser.
+
+ GraphicsLayers for overflow controls on iframe without clipping layer left out of layer tree
+ https://bugs.webkit.org/show_bug.cgi?id=61590
+
+ * compositing/iframes/resizer-expected.txt: Added.
+ * compositing/iframes/resizer.html: Added.
+
2011-05-27 Nikolas Zimmermann <nzimmerm...@rim.com>
Not reviewed.
Added: trunk/LayoutTests/compositing/iframes/resizer.html (0 => 87547)
--- trunk/LayoutTests/compositing/iframes/resizer.html (rev 0)
+++ trunk/LayoutTests/compositing/iframes/resizer.html 2011-05-27 20:29:12 UTC (rev 87547)
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<style>
+.container {
+ -webkit-transform: translateZ(0);
+ resize: both;
+}
+</style>
+<script>
+function test() {
+ if (window.layoutTestController) {
+ layoutTestController.dumpAsText();
+ document.getElementById('layers').innerHTML = layoutTestController.layerTreeAsText();
+ }
+}
+</script>
+<!-- There should be a layer for the iframe's scroll corner alongside the iframe's content's layer tree -->
+<body _onload_="test()">
+<iframe class="container" src=""
+<pre id="layers">Layer tree appears here in DRT.</pre>
Property changes on: trunk/LayoutTests/compositing/iframes/resizer.html
___________________________________________________________________
Added: svn:eol-style
Added: trunk/LayoutTests/platform/chromium-gpu/compositing/iframes/resizer-expected.txt (0 => 87547)
--- trunk/LayoutTests/platform/chromium-gpu/compositing/iframes/resizer-expected.txt (rev 0)
+++ trunk/LayoutTests/platform/chromium-gpu/compositing/iframes/resizer-expected.txt 2011-05-27 20:29:12 UTC (rev 87547)
@@ -0,0 +1,56 @@
+
+(GraphicsLayer
+ (bounds 800.00 600.00)
+ (children 1
+ (GraphicsLayer
+ (bounds 800.00 600.00)
+ (children 1
+ (GraphicsLayer
+ (position 8.00 8.00)
+ (bounds 304.00 154.00)
+ (drawsContent 1)
+ (children 2
+ (GraphicsLayer
+ (position 2.00 2.00)
+ (children 2
+ (GraphicsLayer
+ (bounds 285.00 150.00)
+ (children 1
+ (GraphicsLayer
+ (children 1
+ (GraphicsLayer
+ (bounds 285.00 230.00)
+ (children 1
+ (GraphicsLayer
+ (bounds 285.00 230.00)
+ (drawsContent 1)
+ (children 1
+ (GraphicsLayer
+ (position 18.00 10.00)
+ (bounds 210.00 210.00)
+ (drawsContent 1)
+ )
+ )
+ )
+ )
+ )
+ )
+ )
+ )
+ )
+ (GraphicsLayer
+ (position 285.00 0.00)
+ (bounds 15.00 150.00)
+ (drawsContent 1)
+ )
+ )
+ )
+ (GraphicsLayer
+ )
+ )
+ )
+ )
+ )
+ )
+)
+
Property changes on: trunk/LayoutTests/platform/chromium-gpu/compositing/iframes/resizer-expected.txt
___________________________________________________________________
Added: svn:eol-style
Added: trunk/LayoutTests/platform/mac/compositing/iframes/resizer-expected.txt (0 => 87547)
--- trunk/LayoutTests/platform/mac/compositing/iframes/resizer-expected.txt (rev 0)
+++ trunk/LayoutTests/platform/mac/compositing/iframes/resizer-expected.txt 2011-05-27 20:29:12 UTC (rev 87547)
@@ -0,0 +1,49 @@
+
+(GraphicsLayer
+ (bounds 800.00 600.00)
+ (children 1
+ (GraphicsLayer
+ (bounds 800.00 600.00)
+ (children 1
+ (GraphicsLayer
+ (position 8.00 8.00)
+ (bounds 304.00 154.00)
+ (drawsContent 1)
+ (children 1
+ (GraphicsLayer
+ (position 2.00 2.00)
+ (children 1
+ (GraphicsLayer
+ (bounds 285.00 150.00)
+ (children 1
+ (GraphicsLayer
+ (children 1
+ (GraphicsLayer
+ (bounds 285.00 230.00)
+ (children 1
+ (GraphicsLayer
+ (bounds 285.00 230.00)
+ (drawsContent 1)
+ (children 1
+ (GraphicsLayer
+ (position 18.00 10.00)
+ (bounds 210.00 210.00)
+ (drawsContent 1)
+ )
+ )
+ )
+ )
+ )
+ )
+ )
+ )
+ )
+ )
+ )
+ )
+ )
+ )
+ )
+ )
+)
+
Property changes on: trunk/LayoutTests/platform/mac/compositing/iframes/resizer-expected.txt
___________________________________________________________________
Added: svn:eol-style
Modified: trunk/Source/WebCore/ChangeLog (87546 => 87547)
--- trunk/Source/WebCore/ChangeLog 2011-05-27 20:28:19 UTC (rev 87546)
+++ trunk/Source/WebCore/ChangeLog 2011-05-27 20:29:12 UTC (rev 87547)
@@ -1,3 +1,20 @@
+2011-05-27 James Robinson <jam...@chromium.org>
+
+ Reviewed by Simon Fraser.
+
+ GraphicsLayers for overflow controls on iframe without clipping layer left out of layer tree
+ https://bugs.webkit.org/show_bug.cgi?id=61590
+
+ Adds overflow control layers to the compositor tree for layers without clipping layers regardless of whether the
+ backing is parented. This ensures that the scroll corner layer for an iframe without a clipping layer ends up
+ in the final layer tree. We don't currently render resizers for iframes, but we will soon and this keeps the
+ graphics layer tree consistent.
+
+ Test: compositing/iframes/resizer.html
+
+ * rendering/RenderLayerCompositor.cpp:
+ (WebCore::RenderLayerCompositor::rebuildCompositingLayerTree):
+
2011-05-27 Adam Barth <aba...@webkit.org>
Reviewed by Eric Seidel.
Modified: trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp (87546 => 87547)
--- trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp 2011-05-27 20:28:19 UTC (rev 87546)
+++ trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp 2011-05-27 20:29:12 UTC (rev 87547)
@@ -858,28 +858,28 @@
if (layer->renderer()->isRenderPart())
parented = parentFrameContentLayers(toRenderPart(layer->renderer()));
+ if (!parented)
+ layerBacking->parentForSublayers()->setChildren(layerChildren);
+
// If the layer has a clipping layer the overflow controls layers will be siblings of the clipping layer.
// Otherwise, the overflow control layers are normal children.
if (!layerBacking->hasClippingLayer()) {
if (GraphicsLayer* overflowControlLayer = layerBacking->layerForHorizontalScrollbar()) {
overflowControlLayer->removeFromParent();
- layerChildren.append(overflowControlLayer);
+ layerBacking->parentForSublayers()->addChild(overflowControlLayer);
}
if (GraphicsLayer* overflowControlLayer = layerBacking->layerForVerticalScrollbar()) {
overflowControlLayer->removeFromParent();
- layerChildren.append(overflowControlLayer);
+ layerBacking->parentForSublayers()->addChild(overflowControlLayer);
}
if (GraphicsLayer* overflowControlLayer = layerBacking->layerForScrollCorner()) {
overflowControlLayer->removeFromParent();
- layerChildren.append(overflowControlLayer);
+ layerBacking->parentForSublayers()->addChild(overflowControlLayer);
}
}
- if (!parented)
- layerBacking->parentForSublayers()->setChildren(layerChildren);
-
#if ENABLE(FULLSCREEN_API)
// For the sake of clients of the full screen renderer, don't reparent
// the full screen layer out from under them if they're in the middle of
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes