> 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.
Created attachment 448397 [details]
Comment on attachment 448397 [details]
View in context: https://bugs.webkit.org/attachment.cgi?id=448397&action=review
> + 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]
(In reply to Simon Fraser (smfr) from comment #3)
> Comment on attachment 448397 [details]
> View in context:
> > 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]
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].