Title: [287875] trunk
- Revision
- 287875
- Author
- [email protected]
- Date
- 2022-01-11 05:45:53 -0800 (Tue, 11 Jan 2022)
Log Message
Some css-transforms tests assert in debug
https://bugs.webkit.org/show_bug.cgi?id=230079
<rdar://problem/83179970>
Reviewed by Simon Fraser.
Source/WebCore:
No new tests. This is covered by existing WPT tests. This change fixes
five assertions and one test completely. In addition, it leads to progressions,
but not complete fixes, in the four remaining tests.
Table elements, which can be transformed, were not properly forming containing blocks
for fixed and absolutely positioned elements.
* rendering/RenderElement.h:
(WebCore::RenderElement::canContainFixedPositionObjects const): Return true even when
we have a transformed element that is not a block.
(WebCore::RenderElement::canContainAbsolutelyPositionedObjects const): Ditto.
(WebCore::RenderElement::isTransformable const): Added this helper which returns whether
not SVG elements are transformable. Eventually this should be extended to handle SVG
elements as well.
LayoutTests:
* TestExpectations: Update expectations to note new passes.
Modified Paths
Diff
Modified: trunk/LayoutTests/ChangeLog (287874 => 287875)
--- trunk/LayoutTests/ChangeLog 2022-01-11 13:22:12 UTC (rev 287874)
+++ trunk/LayoutTests/ChangeLog 2022-01-11 13:45:53 UTC (rev 287875)
@@ -1,3 +1,13 @@
+2022-01-11 Martin Robinson <[email protected]>
+
+ Some css-transforms tests assert in debug
+ https://bugs.webkit.org/show_bug.cgi?id=230079
+ <rdar://problem/83179970>
+
+ Reviewed by Simon Fraser.
+
+ * TestExpectations: Update expectations to note new passes.
+
2022-01-11 Diego Pino Garcia <[email protected]>
REGRESSION (Lazy tree creation): css3/calc/transitions-dependent.html is frequently failing
Modified: trunk/LayoutTests/TestExpectations (287874 => 287875)
--- trunk/LayoutTests/TestExpectations 2022-01-11 13:22:12 UTC (rev 287874)
+++ trunk/LayoutTests/TestExpectations 2022-01-11 13:45:53 UTC (rev 287875)
@@ -3942,18 +3942,12 @@
imported/w3c/web-platform-tests/css/css-transforms/transform-compound-notref-2.html [ Skip ]
imported/w3c/web-platform-tests/css/css-transforms/backface-visibility-001.ref.html [ Skip ]
-webkit.org/b/230079 [ Debug ] imported/w3c/web-platform-tests/css/css-transforms/transform-transformed-tbody-contains-fixed-position.html [ Skip ]
-webkit.org/b/230079 [ Debug ] imported/w3c/web-platform-tests/css/css-transforms/transform-transformed-tfoot-contains-fixed-position.html [ Skip ]
-webkit.org/b/230079 [ Debug ] imported/w3c/web-platform-tests/css/css-transforms/transform-transformed-thead-contains-fixed-position.html [ Skip ]
-webkit.org/b/230079 [ Debug ] imported/w3c/web-platform-tests/css/css-transforms/transform-transformed-tr-contains-fixed-position.html [ Skip ]
-webkit.org/b/230079 [ Debug ] imported/w3c/web-platform-tests/css/css-transforms/transform-transformed-tr-percent-height-child.html [ Skip ]
-webkit.org/b/230079 [ Debug ] fast/layers/top-layer-ancestor-opacity-and-transform-crash.html [ Skip ]
+webkit.org/b/230080 imported/w3c/web-platform-tests/css/css-transforms/transform-transformed-tbody-contains-fixed-position.html [ ImageOnlyFailure ]
+webkit.org/b/230080 imported/w3c/web-platform-tests/css/css-transforms/transform-transformed-tfoot-contains-fixed-position.html [ ImageOnlyFailure ]
+webkit.org/b/230080 imported/w3c/web-platform-tests/css/css-transforms/transform-transformed-thead-contains-fixed-position.html [ ImageOnlyFailure ]
+webkit.org/b/230080 imported/w3c/web-platform-tests/css/css-transforms/transform-transformed-tr-percent-height-child.html [ ImageOnlyFailure ]
-webkit.org/b/230080 [ Release ] imported/w3c/web-platform-tests/css/css-transforms/transform-transformed-tbody-contains-fixed-position.html [ ImageOnlyFailure ]
-webkit.org/b/230080 [ Release ] imported/w3c/web-platform-tests/css/css-transforms/transform-transformed-tfoot-contains-fixed-position.html [ ImageOnlyFailure ]
-webkit.org/b/230080 [ Release ] imported/w3c/web-platform-tests/css/css-transforms/transform-transformed-thead-contains-fixed-position.html [ ImageOnlyFailure ]
-webkit.org/b/230080 [ Release ] imported/w3c/web-platform-tests/css/css-transforms/transform-transformed-tr-contains-fixed-position.html [ ImageOnlyFailure ]
-webkit.org/b/230080 [ Release ] imported/w3c/web-platform-tests/css/css-transforms/transform-transformed-tr-percent-height-child.html [ ImageOnlyFailure ]
+webkit.org/b/235063 [ Debug ] fast/layers/top-layer-ancestor-opacity-and-transform-crash.html [ Skip ]
webkit.org/b/230080 imported/w3c/web-platform-tests/css/css-transforms/3d-rendering-context-and-abspos.html [ ImageOnlyFailure ]
webkit.org/b/230080 imported/w3c/web-platform-tests/css/css-transforms/3d-rendering-context-and-fixpos.html [ ImageOnlyFailure ]
Modified: trunk/Source/WebCore/ChangeLog (287874 => 287875)
--- trunk/Source/WebCore/ChangeLog 2022-01-11 13:22:12 UTC (rev 287874)
+++ trunk/Source/WebCore/ChangeLog 2022-01-11 13:45:53 UTC (rev 287875)
@@ -1,3 +1,26 @@
+2022-01-11 Martin Robinson <[email protected]>
+
+ Some css-transforms tests assert in debug
+ https://bugs.webkit.org/show_bug.cgi?id=230079
+ <rdar://problem/83179970>
+
+ Reviewed by Simon Fraser.
+
+ No new tests. This is covered by existing WPT tests. This change fixes
+ five assertions and one test completely. In addition, it leads to progressions,
+ but not complete fixes, in the four remaining tests.
+
+ Table elements, which can be transformed, were not properly forming containing blocks
+ for fixed and absolutely positioned elements.
+
+ * rendering/RenderElement.h:
+ (WebCore::RenderElement::canContainFixedPositionObjects const): Return true even when
+ we have a transformed element that is not a block.
+ (WebCore::RenderElement::canContainAbsolutelyPositionedObjects const): Ditto.
+ (WebCore::RenderElement::isTransformable const): Added this helper which returns whether
+ not SVG elements are transformable. Eventually this should be extended to handle SVG
+ elements as well.
+
2022-01-11 Nikolas Zimmermann <[email protected]>
[LBSE] Introduce SVGBoundingBoxComputation
Modified: trunk/Source/WebCore/rendering/RenderElement.h (287874 => 287875)
--- trunk/Source/WebCore/rendering/RenderElement.h 2022-01-11 13:22:12 UTC (rev 287874)
+++ trunk/Source/WebCore/rendering/RenderElement.h 2022-01-11 13:45:53 UTC (rev 287875)
@@ -84,6 +84,7 @@
// Note that even if these 2 "canContain" functions return true for a particular renderer, it does not necessarily mean the renderer is the containing block (see containingBlockForAbsolute(Fixed)Position).
bool canContainFixedPositionObjects() const;
bool canContainAbsolutelyPositionedObjects() const;
+ bool canEstablishContainingBlockWithTransform() const;
Color selectionColor(CSSPropertyID) const;
std::unique_ptr<RenderStyle> selectionPseudoStyle() const;
@@ -455,7 +456,7 @@
inline bool RenderElement::canContainFixedPositionObjects() const
{
return isRenderView()
- || (isRenderBlock() && hasTransform())
+ || (canEstablishContainingBlockWithTransform() && hasTransform())
// FIXME: will-change should create containing blocks on inline boxes (bug 225035)
|| (isRenderBlock() && style().willChange() && style().willChange()->createsContainingBlockForOutOfFlowPositioned())
|| isSVGForeignObject()
@@ -466,7 +467,7 @@
inline bool RenderElement::canContainAbsolutelyPositionedObjects() const
{
return style().position() != PositionType::Static
- || (isRenderBlock() && hasTransformRelatedProperty())
+ || (canEstablishContainingBlockWithTransform() && hasTransformRelatedProperty())
// FIXME: will-change should create containing blocks on inline boxes (bug 225035)
|| (isRenderBlock() && style().willChange() && style().willChange()->createsContainingBlockForAbsolutelyPositioned())
|| isSVGForeignObject()
@@ -475,6 +476,11 @@
|| isRenderView();
}
+inline bool RenderElement::canEstablishContainingBlockWithTransform() const
+{
+ return isRenderBlock() || (isTablePart() && !isRenderTableCol());
+}
+
inline bool RenderElement::createsGroupForStyle(const RenderStyle& style)
{
return style.hasOpacity() || style.hasMask() || style.clipPath() || style.hasFilter() || style.hasBackdropFilter() || style.hasBlendMode();
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes