Created attachment 38799 [details] Testcase When elements inside a compositing layer are reflected, the compositing layer is not make large enough to show the entire reflection. See attached testcase.
Patch: diff --git a/WebCore/rendering/RenderLayerCompositor.cpp b/WebCore/rendering/RenderLayerCompositor.cpp index 517735e..5eb25cb 100644 --- a/WebCore/rendering/RenderLayerCompositor.cpp +++ b/WebCore/rendering/RenderLayerCompositor.cpp @@ -291,6 +291,13 @@ IntRect RenderLayerCompositor::calculateCompositedBounds(const RenderLayer* laye return boundingBoxRect; } + if (RenderLayer* reflection = layer->reflectionLayer()) { + if (!reflection->isComposited()) { + IntRect childUnionBounds = calculateCompositedBounds(reflection, layer); + unionBounds.unite(childUnionBounds); + } + } + ASSERT(layer->isStackingContext() || (!layer->m_posZOrderList || layer->m_posZOrderList->size() == 0)); if (Vector<RenderLayer*>* negZOrderList = layer->negZOrderList()) {
Created attachment 38828 [details] Patch, testcase, changelog
Comment on attachment 38828 [details] Patch, testcase, changelog > +</html> > \ No newline at end of file Please add a newline.
http://trac.webkit.org/changeset/47905
Looks landed.
/me makes comments under his breath about tools like "bugzilla-tool" being able to update and close bugs after landing. :) bugzilla-tool land-diff 28837 in this instance. :)