DisplayList::Recorder's clipBounds() becomes empty if a flip is applied to the CTM
Created attachment 442135 [details] Patch
Created attachment 442138 [details] Patch
Created attachment 442215 [details] Patch
oops, lost the test
Created attachment 442220 [details] Patch
smfr asked for a layout test instead of an API test, but I've not found a way to get to the raw GraphicsContext::scale() from web content (the CSS 2D transform `scale(-1)` uses setCTM/concatCTM, which is not affected because mapping the rect through the transform maintains its positive size) in a way that it stays long enough to then introspect the clipBounds :) Anyway, the API test is kind of nice because it lets us check CG vs. DL directly.
Comment on attachment 442220 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=442220&action=review > Source/WebCore/platform/graphics/displaylists/DisplayListRecorder.cpp:449 > + if (std::optional<AffineTransform> inverse = currentState().ctm.inverse()) I would’ve used auto here; writing out the type makes this code harder to read, I think
Created attachment 442514 [details] Patch
Committed r284888 (243565@main): <https://commits.webkit.org/243565@main> All reviewed patches have been landed. Closing bug and clearing flags on attachment 442514 [details].
<rdar://problem/84677208>