Title: [286982] trunk/Source/WebCore
Revision
286982
Author
commit-qu...@webkit.org
Date
2021-12-13 14:32:42 -0800 (Mon, 13 Dec 2021)

Log Message

Unreviewed, reverting r283354.
https://bugs.webkit.org/show_bug.cgi?id=234273

causes missing content with clip-path

Reverted changeset:

"[Performance] Optimize
RenderLayer::clipCrossesPaintingBoundary"
https://bugs.webkit.org/show_bug.cgi?id=230885
https://commits.webkit.org/r283354

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (286981 => 286982)


--- trunk/Source/WebCore/ChangeLog	2021-12-13 22:19:24 UTC (rev 286981)
+++ trunk/Source/WebCore/ChangeLog	2021-12-13 22:32:42 UTC (rev 286982)
@@ -1,3 +1,17 @@
+2021-12-13  Commit Queue  <commit-qu...@webkit.org>
+
+        Unreviewed, reverting r283354.
+        https://bugs.webkit.org/show_bug.cgi?id=234273
+
+        causes missing content with clip-path
+
+        Reverted changeset:
+
+        "[Performance] Optimize
+        RenderLayer::clipCrossesPaintingBoundary"
+        https://bugs.webkit.org/show_bug.cgi?id=230885
+        https://commits.webkit.org/r283354
+
 2021-12-13  Alejandro G. Castro  <a...@igalia.com>
 
         [GTK] Fix ANGLE compilation

Modified: trunk/Source/WebCore/rendering/RenderLayer.cpp (286981 => 286982)


--- trunk/Source/WebCore/rendering/RenderLayer.cpp	2021-12-13 22:19:24 UTC (rev 286981)
+++ trunk/Source/WebCore/rendering/RenderLayer.cpp	2021-12-13 22:32:42 UTC (rev 286982)
@@ -1935,19 +1935,18 @@
     return nullptr;
 }
 
-static RenderLayer* repaintTargetForLayer(const RenderLayer& layer)
+RenderLayer* RenderLayer::enclosingCompositingLayerForRepaint(IncludeSelfOrNot includeSelf) const
 {
-    if (compositedWithOwnBackingStore(layer))
-        return const_cast<RenderLayer*>(&layer);
+    auto repaintTargetForLayer = [](const RenderLayer& layer) -> RenderLayer* {
+        if (compositedWithOwnBackingStore(layer))
+            return const_cast<RenderLayer*>(&layer);
+        
+        if (layer.paintsIntoProvidedBacking())
+            return layer.backingProviderLayer();
+        
+        return nullptr;
+    };
 
-    if (layer.paintsIntoProvidedBacking())
-        return layer.backingProviderLayer();
-
-    return nullptr;
-}
-
-RenderLayer* RenderLayer::enclosingCompositingLayerForRepaint(IncludeSelfOrNot includeSelf) const
-{
     RenderLayer* repaintTarget = nullptr;
     if (includeSelf == IncludeSelf && (repaintTarget = repaintTargetForLayer(*this)))
         return repaintTarget;
@@ -1960,18 +1959,6 @@
     return nullptr;
 }
 
-bool RenderLayer::sharesCompositingLayerForRepaint(const RenderLayer& otherLayer) const
-{
-    if (repaintTargetForLayer(*this))
-        return false;
-
-    const RenderLayer* paintParent = paintOrderParent();
-    if (&otherLayer == paintParent)
-        return true;
-    auto* otherPaintParent = otherLayer.paintOrderParent();
-    return paintParent == otherPaintParent || this == otherPaintParent;
-}
-
 RenderLayer* RenderLayer::enclosingFilterLayer(IncludeSelfOrNot includeSelf) const
 {
     const RenderLayer* curr = (includeSelf == IncludeSelf) ? this : parent();
@@ -4469,11 +4456,8 @@
 
 bool RenderLayer::clipCrossesPaintingBoundary() const
 {
-    auto* parentLayer = parent();
-    if (!sharesCompositingLayerForRepaint(*parentLayer))
-        return true;
-
-    return parentLayer->enclosingPaginationLayer(IncludeCompositedPaginatedLayers) != enclosingPaginationLayer(IncludeCompositedPaginatedLayers);
+    return parent()->enclosingPaginationLayer(IncludeCompositedPaginatedLayers) != enclosingPaginationLayer(IncludeCompositedPaginatedLayers)
+        || parent()->enclosingCompositingLayerForRepaint() != enclosingCompositingLayerForRepaint();
 }
 
 void RenderLayer::calculateClipRects(const ClipRectsContext& clipRectsContext, ClipRects& clipRects) const

Modified: trunk/Source/WebCore/rendering/RenderLayer.h (286981 => 286982)


--- trunk/Source/WebCore/rendering/RenderLayer.h	2021-12-13 22:19:24 UTC (rev 286981)
+++ trunk/Source/WebCore/rendering/RenderLayer.h	2021-12-13 22:32:42 UTC (rev 286982)
@@ -587,7 +587,6 @@
     // Enclosing compositing layer; if includeSelf is true, may return this.
     RenderLayer* enclosingCompositingLayer(IncludeSelfOrNot = IncludeSelf) const;
     RenderLayer* enclosingCompositingLayerForRepaint(IncludeSelfOrNot = IncludeSelf) const;
-    bool sharesCompositingLayerForRepaint(const RenderLayer& otherLayer) const;
     // Ancestor compositing layer, excluding this.
     RenderLayer* ancestorCompositingLayer() const { return enclosingCompositingLayer(ExcludeSelf); }
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to