Consider merging https://chromium.googlesource.com/chromium/blink/+/f052baa7402aa050a3e5c633a4b374ecf7162926 The original layer coordinates conversion code contains a bug that it forgets to return for the simple case where the fixed position container found is already the ancestor layer wanted, and the code falls through to the special path intended for RenderFlowThread.
It seems that it is not applied: https://github.com/WebKit/WebKit/blob/90099cb07fc40b47981923bc721f25ea1a31cbec/Source/WebCore/rendering/RenderLayer.cpp#L2407
I think our containing block logic is correct, but there's still a FIXME for this in compositing code.
Created attachment 461806 [details] Test case shows that we have a bug
// FIXME: Handle fixed inside of a transform, which should not behave as fixed.
Pull request: https://github.com/WebKit/WebKit/pull/3560
Committed 253809@main (546a1c950d42): <https://commits.webkit.org/253809@main> Reviewed commits have been landed. Closing PR #3560 and removing active labels.
<rdar://problem/99174247>