Summary: | DisplayList::Recorder's clipBounds() becomes empty if a flip is applied to the CTM | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Tim Horton <thorton> | ||||||||||||
Component: | New Bugs | Assignee: | Tim Horton <thorton> | ||||||||||||
Status: | RESOLVED FIXED | ||||||||||||||
Severity: | Normal | CC: | darin, dino, sabouhallawa, simon.fraser, webkit-bug-importer, wenson_hsieh | ||||||||||||
Priority: | P2 | Keywords: | InRadar | ||||||||||||
Version: | WebKit Nightly Build | ||||||||||||||
Hardware: | Unspecified | ||||||||||||||
OS: | Unspecified | ||||||||||||||
Attachments: |
|
Description
Tim Horton
2021-10-22 02:10:02 PDT
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]. |