Title: [283340] trunk/Source/WebCore
Revision
283340
Author
commit-qu...@webkit.org
Date
2021-09-30 14:20:32 -0700 (Thu, 30 Sep 2021)

Log Message

Move canCompositeClipPath to RenderLayer
https://bugs.webkit.org/show_bug.cgi?id=231014

Patch by Rob Buis <rb...@igalia.com> on 2021-09-30
Reviewed by Simon Fraser.

Move canCompositeClipPath to RenderLayer since the
code almost exclusively deals with layers. Also
remove unneeded ASSERTs.

* rendering/RenderElement.cpp:
(WebCore::RenderElement::adjustStyleDifference const):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::willCompositeClipPath const):
* rendering/RenderLayer.h:
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::canCompositeClipPath): Deleted.
* rendering/RenderLayerCompositor.h:

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (283339 => 283340)


--- trunk/Source/WebCore/ChangeLog	2021-09-30 21:13:05 UTC (rev 283339)
+++ trunk/Source/WebCore/ChangeLog	2021-09-30 21:20:32 UTC (rev 283340)
@@ -1,3 +1,23 @@
+2021-09-30  Rob Buis  <rb...@igalia.com>
+
+        Move canCompositeClipPath to RenderLayer
+        https://bugs.webkit.org/show_bug.cgi?id=231014
+
+        Reviewed by Simon Fraser.
+
+        Move canCompositeClipPath to RenderLayer since the
+        code almost exclusively deals with layers. Also
+        remove unneeded ASSERTs.
+
+        * rendering/RenderElement.cpp:
+        (WebCore::RenderElement::adjustStyleDifference const):
+        * rendering/RenderLayer.cpp:
+        (WebCore::RenderLayer::willCompositeClipPath const):
+        * rendering/RenderLayer.h:
+        * rendering/RenderLayerCompositor.cpp:
+        (WebCore::RenderLayerCompositor::canCompositeClipPath): Deleted.
+        * rendering/RenderLayerCompositor.h:
+
 2021-09-30  Devin Rousso  <drou...@apple.com>
 
         [iOS][GPU Process] support `<attachment>`

Modified: trunk/Source/WebCore/rendering/RenderElement.cpp (283339 => 283340)


--- trunk/Source/WebCore/rendering/RenderElement.cpp	2021-09-30 21:13:05 UTC (rev 283339)
+++ trunk/Source/WebCore/rendering/RenderElement.cpp	2021-09-30 21:20:32 UTC (rev 283340)
@@ -306,10 +306,7 @@
     }
 
     if (contextSensitiveProperties & StyleDifferenceContextSensitiveProperty::ClipPath) {
-        if (hasLayer()
-            && downcast<RenderLayerModelObject>(*this).layer()->isComposited()
-            && hasClipPath()
-            && RenderLayerCompositor::canCompositeClipPath(*downcast<RenderLayerModelObject>(*this).layer()))
+        if (hasLayer() && downcast<RenderLayerModelObject>(*this).layer()->willCompositeClipPath())
             diff = std::max(diff, StyleDifference::RecompositeLayer);
         else
             diff = std::max(diff, StyleDifference::Repaint);

Modified: trunk/Source/WebCore/rendering/RenderLayer.cpp (283339 => 283340)


--- trunk/Source/WebCore/rendering/RenderLayer.cpp	2021-09-30 21:13:05 UTC (rev 283339)
+++ trunk/Source/WebCore/rendering/RenderLayer.cpp	2021-09-30 21:20:32 UTC (rev 283340)
@@ -682,6 +682,21 @@
         sc->dirtyZOrderLists();
 }
 
+bool RenderLayer::willCompositeClipPath() const
+{
+    if (!isComposited())
+        return false;
+
+    auto* clipPath = renderer().style().clipPath();
+    if (!clipPath)
+        return false;
+
+    if (renderer().hasMask())
+        return false;
+
+    return (clipPath->type() != ClipPathOperation::Shape || clipPath->type() == ClipPathOperation::Shape) && GraphicsLayer::supportsLayerType(GraphicsLayer::Type::Shape);
+}
+
 void RenderLayer::dirtyNormalFlowList()
 {
     ASSERT(layerListMutationAllowed());

Modified: trunk/Source/WebCore/rendering/RenderLayer.h (283339 => 283340)


--- trunk/Source/WebCore/rendering/RenderLayer.h	2021-09-30 21:13:05 UTC (rev 283339)
+++ trunk/Source/WebCore/rendering/RenderLayer.h	2021-09-30 21:20:32 UTC (rev 283340)
@@ -238,6 +238,8 @@
     void setLayerListMutationAllowed(bool flag) { m_layerListMutationAllowed = flag; }
 #endif
 
+    bool willCompositeClipPath() const;
+
 protected:
     void destroy();
 

Modified: trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp (283339 => 283340)


--- trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp	2021-09-30 21:13:05 UTC (rev 283339)
+++ trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp	2021-09-30 21:20:32 UTC (rev 283340)
@@ -1760,18 +1760,6 @@
     return false;
 }
 
-bool RenderLayerCompositor::canCompositeClipPath(const RenderLayer& layer)
-{
-    ASSERT(layer.isComposited());
-    ASSERT(layer.renderer().style().clipPath());
-
-    if (layer.renderer().hasMask())
-        return false;
-
-    auto& clipPath = *layer.renderer().style().clipPath();
-    return (clipPath.type() != ClipPathOperation::Shape || clipPath.type() == ClipPathOperation::Shape) && GraphicsLayer::supportsLayerType(GraphicsLayer::Type::Shape);
-}
-
 // FIXME: remove and never ask questions about reflection layers.
 static RenderLayerModelObject& rendererForCompositingTests(const RenderLayer& layer)
 {

Modified: trunk/Source/WebCore/rendering/RenderLayerCompositor.h (283339 => 283340)


--- trunk/Source/WebCore/rendering/RenderLayerCompositor.h	2021-09-30 21:13:05 UTC (rev 283339)
+++ trunk/Source/WebCore/rendering/RenderLayerCompositor.h	2021-09-30 21:20:32 UTC (rev 283340)
@@ -245,8 +245,6 @@
 
     void layerStyleChanged(StyleDifference, RenderLayer&, const RenderStyle* oldStyle);
 
-    static bool canCompositeClipPath(const RenderLayer&);
-
     // Get the nearest ancestor layer that has overflow or clip, but is not a stacking context
     RenderLayer* enclosingNonStackingClippingLayer(const RenderLayer&) const;
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to