-
simon.fraser@apple.com authored
https://bugs.webkit.org/show_bug.cgi?id=120780 Reviewed by Tim Horton. When a repaint happened on a layer with a filter, and which paints into its compositing ancestor, we'd repaint the wrong layer (and assert). Fix by ensuring that RenderLayer::enclosingFilterLayer() takes paintsIntoCompositedAncestor() into account, by adding a function that we share between three callers who check isComposited() && !paintsIntoCompositedAncestor(). I didn't use a function on RenderLayer, because I wanted it to be inline but to not #include RenderLayerBacking in RenderLayer.h. Test: compositing/filters/opacity-change-on-filtered-paints-into-ancestor.html * dom/Node.cpp: Drive-by removal of #include "RenderLayer.h" * rendering/RenderLayer.cpp: (WebCore::compositedWithOwnBackingStore): (WebCore::RenderLayer::enclosingCompositingLayerForRepaint): (WebCore::RenderLayer::enclosingFilterRepaintLayer): (WebCore::RenderLayer::clippingRootForPainting): LayoutTests: Fix repaint issue on "paints into ancestor" filtered layers https://bugs.webkit.org/show_bug.cgi?id=120780 <rdar://problem/14884148> Reviewed by Tim Horton. Ref test for opacity change on a filtered layer which paints into its compositing ancestor. * compositing/filters/opacity-change-on-filtered-paints-into-ancestor-expected.html: Added. * compositing/filters/opacity-change-on-filtered-paints-into-ancestor.html: Added. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@155131 268f45cc-cd09-0410-ab3c-d52691b4dbfc
840fcfdc