https://drafts.csswg.org/css-transforms-2/#interpolation-of-transform-functions says: > The use of this property with any value other than none establishes a stacking context. It also establishes a containing block for all descendants, just like the transform property does. Currently we are handling this via the StyleAdjuster, which is why preserve-3d-flat-grouping-properties-containing-block.html is failing the WPT test suite.
<rdar://problem/86630387>
Created attachment 448397 [details] Patch
Comment on attachment 448397 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=448397&action=review > Source/WebCore/rendering/style/RenderStyle.cpp:1188 > + if (usedTransformStyle3D() != other.usedTransformStyle3D() I wonder if this will be a perf regression, since usedTransformStyle3D() does more work now. This code is pretty hot. Might be better to keep the /StyleAdjuster code but have it set a usedTransformStyle field.
Created attachment 448501 [details] Patch
(In reply to Simon Fraser (smfr) from comment #3) > Comment on attachment 448397 [details] > Patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=448397&action=review > > > Source/WebCore/rendering/style/RenderStyle.cpp:1188 > > + if (usedTransformStyle3D() != other.usedTransformStyle3D() > > I wonder if this will be a perf regression, since usedTransformStyle3D() > does more work now. This code is pretty hot. Might be better to keep the > /StyleAdjuster code but have it set a usedTransformStyle field. Thanks for the review! The new patch takes the approach you suggest. I ended up adding a boolean field to StyleRareNonInheritedData because that makes managing style changes a little more straight-forward (and saves a bit). I can probably change this to be an enum field if that's a better path. In addition, I've rewritten the existing tests that checked this behavior. Now they test both the used and computed value.
Created attachment 448503 [details] Patch
Committed r287742 (245812@main): <https://commits.webkit.org/245812@main> All reviewed patches have been landed. Closing bug and clearing flags on attachment 448503 [details].