haikuwebkit/LayoutTests/compositing/columns/composited-nested-columns.html

62 lines
1.4 KiB
HTML
Raw Permalink Normal View History

Fix compositing layers in columns https://bugs.webkit.org/show_bug.cgi?id=120436 Source/WebCore: Reviewed by Dave Hyatt. Remove the old hack in RenderLayer::updateLayerPosition() for placing layers in columns, which changed the layer position for composited layers; this broke hit-testing. Fix a better way by moving compositing layers to the correct positions that take column offsets into account, by fixing RenderLayer::convertToLayerCoords() to optionally apply column adjustment, and using this in the code which positions compositing layers. Tests: compositing/columns/ancestor-clipped-in-paginated.html compositing/columns/clipped-in-paginated.html compositing/columns/composited-columns-vertical-rl.html compositing/columns/composited-columns.html compositing/columns/composited-in-paginated-rl.html compositing/columns/composited-in-paginated-writing-mode-rl.html compositing/columns/composited-lr-paginated-repaint.html compositing/columns/composited-rl-paginated-repaint.html compositing/columns/hittest-composited-in-paginated.html compositing/columns/rotated-in-paginated.html compositing/columns/untransformed-composited-in-paginated.html * rendering/RenderLayer.cpp: (WebCore::RenderLayer::updateLayerPosition): (WebCore::RenderLayer::convertToPixelSnappedLayerCoords): (WebCore::accumulateOffsetTowardsAncestor): (WebCore::RenderLayer::convertToLayerCoords): * rendering/RenderLayer.h: * rendering/RenderLayerBacking.cpp: (WebCore::RenderLayerBacking::updateCompositedBounds): (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry): LayoutTests: Reviewed by Dave Hyatt. Various testcases for compositing in columns. * compositing/columns/ancestor-clipped-in-paginated-expected.txt: Added. * compositing/columns/ancestor-clipped-in-paginated.html: Copied from LayoutTests/compositing/columns/composited-in-paginated.html. * compositing/columns/clipped-in-paginated-expected.txt: Added. * compositing/columns/clipped-in-paginated.html: Copied from LayoutTests/compositing/columns/composited-in-paginated.html. * compositing/columns/composited-columns-expected.txt: Added. * compositing/columns/composited-columns-vertical-rl-expected.txt: Added. * compositing/columns/composited-columns-vertical-rl.html: Added. * compositing/columns/composited-columns.html: Added. * compositing/columns/composited-in-paginated-rl-expected.txt: Added. * compositing/columns/composited-in-paginated-rl.html: Copied from LayoutTests/compositing/columns/composited-in-paginated.html. * compositing/columns/composited-in-paginated-writing-mode-rl-expected.txt: Added. * compositing/columns/composited-in-paginated-writing-mode-rl.html: Copied from LayoutTests/compositing/columns/composited-in-paginated.html. * compositing/columns/composited-in-paginated.html: * compositing/columns/composited-lr-paginated-repaint-expected.txt: Added. * compositing/columns/composited-lr-paginated-repaint.html: Added. * compositing/columns/composited-nested-columns-expected.txt: Added. * compositing/columns/composited-nested-columns.html: Added. * compositing/columns/composited-rl-paginated-repaint-expected.txt: Added. * compositing/columns/composited-rl-paginated-repaint.html: Added. * compositing/columns/hittest-composited-in-paginated-expected.txt: Added. * compositing/columns/hittest-composited-in-paginated.html: Copied from LayoutTests/compositing/columns/composited-in-paginated.html. * compositing/columns/rotated-in-paginated-expected.txt: Added. * compositing/columns/rotated-in-paginated.html: Copied from LayoutTests/compositing/columns/composited-in-paginated.html. * compositing/columns/untransformed-composited-in-paginated-expected.txt: Added. * compositing/columns/untransformed-composited-in-paginated.html: Copied from LayoutTests/compositing/columns/composited-in-paginated.html. Canonical link: https://commits.webkit.org/138419@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@154785 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2013-08-28 22:52:53 +00:00
<!DOCTYPE html>
<html>
<head>
<style>
.columns {
-webkit-column-width: 300px;
}
.columns > .columns {
-webkit-column-width: 150px;
border: 1px solid black;
}
.spacer {
height: 250px;
width: 100%;
margin: 10px;
background-color: silver;
}
.columns > .columns > .spacer {
height: 150px;
}
.box {
height: 100px;
width: 100px;
margin: 10px;
background-color: blue;
}
.composited {
-webkit-transform: translateZ(0);
}
</style>
<script>
if (window.testRunner)
testRunner.dumpAsText();
function dumpLayers()
{
if (window.testRunner)
document.getElementById('layers').innerText = window.internals.layerTreeAsText(document);
}
window.addEventListener('load', dumpLayers, false);
</script>
</head>
<body>
<div class="composited columns">
<div class="spacer"></div>
<div class="spacer"></div>
<div class="columns">
<div class="spacer"></div>
<div class="spacer"></div>
<div class="spacer"></div>
<div class="composited box"></div>
</div>
</div>
<pre id="layers">Layer tree goes here in DRT</pre>
</body>
</html>