Title: [290881] trunk/Source/WebCore
- Revision
- 290881
- Author
- [email protected]
- Date
- 2022-03-07 03:18:47 -0800 (Mon, 07 Mar 2022)
Log Message
Add hasTransformOrPerspective() helper to RenderObject
https://bugs.webkit.org/show_bug.cgi?id=237469
Reviewed by Darin Adler.
Avoid duplicating the logic to test if a renderer is transformed in
multiple places. Currently RenderGeometryMap duplicates the logic to add
one extra condition, the presence of a 'perspective' property.
While I was at it: remove the redundant offsetPath() check in
RenderObject::hasTransform(), since RenderStyle::hasTransform()
already returns true if offsetPath() is non-null.
LBSE wants to extend hasTransform() by a new condition: hasSVGTransform().
Before this patch, the place in RenderGeometryMap was easy to miss, fix that,
by centralizing the logic in one place.
Covered by existing tests, no change in behaviour.
* rendering/RenderGeometryMap.cpp:
(WebCore::canMapBetweenRenderersViaLayers): Use RenderObject::hasTransformOrPespective().
* rendering/RenderObject.h:
(WebCore::RenderObject::hasTransform const): Remove redundant offsetPath() check.
(WebCore::RenderObject::hasTransformOrPespective const): Add new helper.
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (290880 => 290881)
--- trunk/Source/WebCore/ChangeLog 2022-03-07 11:16:26 UTC (rev 290880)
+++ trunk/Source/WebCore/ChangeLog 2022-03-07 11:18:47 UTC (rev 290881)
@@ -1,5 +1,32 @@
2022-03-07 Nikolas Zimmermann <[email protected]>
+ Add hasTransformOrPerspective() helper to RenderObject
+ https://bugs.webkit.org/show_bug.cgi?id=237469
+
+ Reviewed by Darin Adler.
+
+ Avoid duplicating the logic to test if a renderer is transformed in
+ multiple places. Currently RenderGeometryMap duplicates the logic to add
+ one extra condition, the presence of a 'perspective' property.
+
+ While I was at it: remove the redundant offsetPath() check in
+ RenderObject::hasTransform(), since RenderStyle::hasTransform()
+ already returns true if offsetPath() is non-null.
+
+ LBSE wants to extend hasTransform() by a new condition: hasSVGTransform().
+ Before this patch, the place in RenderGeometryMap was easy to miss, fix that,
+ by centralizing the logic in one place.
+
+ Covered by existing tests, no change in behaviour.
+
+ * rendering/RenderGeometryMap.cpp:
+ (WebCore::canMapBetweenRenderersViaLayers): Use RenderObject::hasTransformOrPespective().
+ * rendering/RenderObject.h:
+ (WebCore::RenderObject::hasTransform const): Remove redundant offsetPath() check.
+ (WebCore::RenderObject::hasTransformOrPespective const): Add new helper.
+
+2022-03-07 Nikolas Zimmermann <[email protected]>
+
[LBSE] Begin layer-aware RenderSVGTransformableContainer implementation
https://bugs.webkit.org/show_bug.cgi?id=237024
Modified: trunk/Source/WebCore/rendering/RenderGeometryMap.cpp (290880 => 290881)
--- trunk/Source/WebCore/rendering/RenderGeometryMap.cpp 2022-03-07 11:16:26 UTC (rev 290880)
+++ trunk/Source/WebCore/rendering/RenderGeometryMap.cpp 2022-03-07 11:18:47 UTC (rev 290881)
@@ -150,7 +150,7 @@
if (current->isFixedPositioned() || style.isFlippedBlocksWritingMode())
return false;
- if (current->hasTransformRelatedProperty() && (style.hasTransform() || style.translate() || style.scale() || style.rotate() || style.hasPerspective()))
+ if (current->hasTransformOrPespective())
return false;
if (current->isRenderFragmentedFlow())
Modified: trunk/Source/WebCore/rendering/RenderObject.h (290880 => 290881)
--- trunk/Source/WebCore/rendering/RenderObject.h 2022-03-07 11:16:26 UTC (rev 290880)
+++ trunk/Source/WebCore/rendering/RenderObject.h 2022-03-07 11:18:47 UTC (rev 290881)
@@ -449,7 +449,8 @@
bool hasPotentiallyScrollableOverflow() const;
bool hasTransformRelatedProperty() const { return m_bitfields.hasTransformRelatedProperty(); } // Transform, perspective or transform-style: preserve-3d.
- bool hasTransform() const { return hasTransformRelatedProperty() && (style().hasTransform() || style().translate() || style().scale() || style().rotate() || style().offsetPath()); }
+ bool hasTransform() const { return hasTransformRelatedProperty() && (style().hasTransform() || style().translate() || style().scale() || style().rotate()); }
+ bool hasTransformOrPespective() const { return hasTransformRelatedProperty() && (hasTransform() || style().hasPerspective()); }
inline bool preservesNewline() const;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes