-
Notifications
You must be signed in to change notification settings - Fork 1.7k
[LBSE] Add transform related tests from LBSE downstream #6292
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[LBSE] Add transform related tests from LBSE downstream #6292
Conversation
EWS run on previous version of this PR (hash b687575)
|
b687575
to
c6b4041
Compare
EWS run on previous version of this PR (hash c6b4041)
|
Rebased after the macOS Ventura pixel test baseline landed + fix EWS problems (forgot to skip new tests that only pass with LBSE activated on ios-wk2 / glib / ...) |
Rebasing to retry the wincairo EWS.... |
c6b4041
to
3925c39
Compare
EWS run on previous version of this PR (hash 3925c39)
|
3925c39
to
4041b09
Compare
EWS run on previous version of this PR (hash 4041b09)
|
Please check again @rwlbuis. |
4041b09
to
a5000bf
Compare
EWS run on previous version of this PR (hash a5000bf)
|
Should (some of these) be WPT tests? |
Possible, yes. However they need to be reworked for that and I have no capacity left for that at present.... I would still like to see them included in LBSE testing - we could create a tracking bug for tests worth upstreaming. WDYT? |
a5000bf
to
c26e42e
Compare
EWS run on previous version of this PR (hash c26e42e)
|
EWS run on current version of this PR (hash c26e42e) |
c26e42e
to
34cc292
Compare
EWS run on previous version of this PR (hash 34cc292)
|
EWS run on previous version of this PR (hash 34cc292) |
34cc292
to
8b15230
Compare
EWS run on current version of this PR (hash 8b15230)
|
EWS run on current version of this PR (hash 8b15230) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM.
Yes, I guess a tracking bug for that would be good. |
https://bugs.webkit.org/show_bug.cgi?id=247668 Reviewed by Rob Buis. Add more tests that were written in the past years and haven't been upstreamed yet. They mostly cover laying out objects with tiny dimensions, to assure LBSE renderers these kind of documents properly. In fact it improves over the legacy engine, which had issues with these kind of documents (see discussion of test results below). svg/transforms/transform-origin-and-box-getCTM.html deserves to be a WPT test, since currently all browser deviate. To my understanding LBSE handles all combinations correctly, whereas the legacy engine performed worst before. Test discussion: - svg/custom/circle-move-invalidation-small-viewBox.svg 1) Purpose Copy from circle-move-invalidation.svg, but with a user coordinate system that is two orders of magnitudes smaller -- verify repainting works fine. 2) Results Works fine across FF/Chrome/SafariLegacy/SafariLBSE. (Used to have a LBSE-only regression, that's why the test got added) - svg/transforms/layout-tiny-elements-in-scaled-group.svg 1) Purpose Verifies that using small numbers for e.g. rect dimensions works as expected. The test uses four rectangles, with a width/height of 0.0015 - which is an order of magnitude smaller than the LayoutUnit epsilon (~1/64 ~ 0.015625), enclosed by a group that scales the content by a factor 10000. 2) Results o FF: Layout/rendering is broken - the blue rect covers the whole viewport. o Chrome: Works as expected. o SafariLegacy: Empty document, nothing rendered. o SafariLBSE: Works as expected. - svg/transforms/layout-tiny-elements.svg, and svg/transforms/rotation-tiny-element.svg 1) Purpose Same as layout-tiny-elements-in-scaled-group.svg, however not enclosing the rectangles in a scaled group, but transforming the rects themselves. 2) Results Works fine across Chrome/SafariLegacy/SafariLBSE. FF shows the same broken behavior as for layout-tiny-elements-in-scaled-group.svg - svg/transforms/nested-containers.svg, and svg/transforms/nested-transforms-rotation-origin-with-viewBox.svg, and svg/transforms/nested-transforms-rotation-origin.svg 1) Purpose Basic reftests to check nesting containers with scale/rotation/translation works as intended. 2) Results Works fine across FF/Chrome/SafariLegacy/SafariLBSE. - svg/transforms/rotation-origin-in-small-units.svg 1) Purpose Testing small units as rotation origins in transform attributes. 2) Results o FF: Layout/rendering is broken - tilted, parallel red/yellow stripes + large blue rect appear. o Chrome: Works as expected. o SafariLegacy: Empty document, nothing rendered. o SafariLBSE: Works as expected. - svg/transforms/rotation-tiny-element-in-group.svg, svg/transforms/translation-tiny-element.svg 1) Purpose Similar to rotation-tiny-element.svg (however the rotation is applied on an enclosing container). 2) Results o FF: Layout/rendering is broken - red rectangle covers the whole viewport (however at right origin, and rotated as expected for the rotation-* test). o Chrome: Works as expected. o SafariLegacy: Empty document, nothing rendered. o SafariLBSE: Works as expected. - svg/transforms/transform-origin-and-box-getCTM.html, and svg/transforms/transform-origin-and-box.svg 1) Purpose transform-origin-and-box.svg checks various transform-box / transform-origin permutations, combined with transform defined as SVG transform attribute. The *getCTM.html then queries the SVG JS exposed geometry (getCTM/getBBox/etc.). 2) Results transform-origin-and-box.svg works fine. transform-origin-and-box-getCTM.html highlights a number of cross-browser differences: o FF: Fails getCTM() / getScreenCTM() (+ getAbsoluteBBoxById()) tests for rect7 / rect8 / rect9. o Chrome: Works as expected. o SafariLegacy: Fails getCTM() / getScreenCTM() (+ getAbsoluteBBoxById()) for rect3 / rect4 / rect5 / rect6 / rect9. o SafariLBSE: Fails all tests -- getCTM is currently not implemented in a LBSE-aware way (patch is ready to fix that -- then we'll pass all tests!) - svg/transforms/transformed-child-in-container.svg, and svg/transforms/transformed-child-in-container-small-units.svg, and svg/transforms/transformed-container.svg, and svg/transforms/transformed-container-small-units.svg 1) Purpose Basic reftests to check nesting transformed and untransformed containers works fine. Used for original LBSE bootstrapping process. 2) Results: Works fine across FF/Chrome/SafariLegacy/SafariLBSE. No change in functionality, only adding new tests. * LayoutTests/platform/glib/TestExpectations: * LayoutTests/platform/ios-wk2/TestExpectations: * LayoutTests/platform/mac-ventura-wk2-lbse-text/TestExpectations: * LayoutTests/platform/mac-wk2/TestExpectations: * LayoutTests/platform/win/TestExpectations: * LayoutTests/svg/custom/circle-move-invalidation-small-viewBox-expected.svg: Added. * LayoutTests/svg/custom/circle-move-invalidation-small-viewBox.svg: Added. * LayoutTests/svg/transforms/layout-tiny-elements-expected.svg: Added. * LayoutTests/svg/transforms/layout-tiny-elements-in-scaled-group-expected.svg: Added. * LayoutTests/svg/transforms/layout-tiny-elements-in-scaled-group.svg: Added. * LayoutTests/svg/transforms/layout-tiny-elements.svg: Added. * LayoutTests/svg/transforms/nested-containers-expected.svg: Added. * LayoutTests/svg/transforms/nested-containers.svg: Added. * LayoutTests/svg/transforms/nested-transforms-rotation-origin-expected.svg: Added. * LayoutTests/svg/transforms/nested-transforms-rotation-origin-with-viewBox-expected.svg: Added. * LayoutTests/svg/transforms/nested-transforms-rotation-origin-with-viewBox.svg: Added. * LayoutTests/svg/transforms/nested-transforms-rotation-origin.svg: Added. * LayoutTests/svg/transforms/rotation-origin-in-small-units-expected.svg: Added. * LayoutTests/svg/transforms/rotation-origin-in-small-units.svg: Added. * LayoutTests/svg/transforms/rotation-tiny-element-expected.svg: Added. * LayoutTests/svg/transforms/rotation-tiny-element-in-group-expected.svg: Added. * LayoutTests/svg/transforms/rotation-tiny-element-in-group.svg: Added. * LayoutTests/svg/transforms/rotation-tiny-element.svg: Added. * LayoutTests/svg/transforms/transform-origin-and-box-expected.svg: Added. * LayoutTests/svg/transforms/transform-origin-and-box-getCTM-expected.txt: Added. * LayoutTests/svg/transforms/transform-origin-and-box-getCTM.html: Added. * LayoutTests/svg/transforms/transform-origin-and-box.svg: Added. * LayoutTests/svg/transforms/transformed-child-in-container-expected.svg: Added. * LayoutTests/svg/transforms/transformed-child-in-container-small-units-expected.svg: Added. * LayoutTests/svg/transforms/transformed-child-in-container-small-units.svg: Added. * LayoutTests/svg/transforms/transformed-child-in-container.svg: Added. * LayoutTests/svg/transforms/transformed-container-expected.svg: Added. * LayoutTests/svg/transforms/transformed-container-small-units-expected.svg: Added. * LayoutTests/svg/transforms/transformed-container-small-units.svg: Added. * LayoutTests/svg/transforms/transformed-container.svg: Added. * LayoutTests/svg/transforms/translation-tiny-element-expected.svg: Added. * LayoutTests/svg/transforms/translation-tiny-element.svg: Added. Canonical link: https://commits.webkit.org/256948@main
8b15230
to
4b03741
Compare
Committed 256948@main (4b03741): https://commits.webkit.org/256948@main Reviewed commits have been landed. Closing PR #6292 and removing active labels. |
|
4b03741
8b15230
🧪 ios-wk2🧪 api-mac🧪 mac-wk1🧪 mac-AS-debug-wk2