layout: Improve sizing for inline SVG (#38603)

The metadata provided by usvg has unreliable sizes. Ignore it, and rely
on the `width`, `height` and `viewBox` attributes instead.

Note that inline SVG with a natural aspect ratio but no natural sizes
should stretch to the containing block. This is left for a follow-up.

Bumps Stylo to https://github.com/servo/stylo/pull/229

Testing: Improves several WPT.

---------

Signed-off-by: Oriol Brufau <obrufau@igalia.com>
Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
Co-authored-by: Mukilan Thiyagarajan <mukilan@igalia.com>
This commit is contained in:
Oriol Brufau 2025-08-12 05:45:15 -07:00 committed by GitHub
parent 319f4f0e38
commit 141413d52e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
81 changed files with 156 additions and 260 deletions

View file

@ -1,2 +0,0 @@
[float-replaced-width-007.xht]
expected: FAIL

View file

@ -1,2 +0,0 @@
[block-replaced-width-002.xht]
expected: FAIL

View file

@ -1,2 +0,0 @@
[inline-block-replaced-height-009.xht]
expected: FAIL

View file

@ -1,2 +0,0 @@
[inline-block-replaced-width-002.xht]
expected: FAIL

View file

@ -1,2 +0,0 @@
[inline-block-replaced-width-007.xht]
expected: FAIL

View file

@ -1,2 +0,0 @@
[inline-block-replaced-width-008.xht]
expected: FAIL

View file

@ -1,2 +0,0 @@
[inline-replaced-height-009.xht]
expected: FAIL

View file

@ -1,2 +0,0 @@
[inline-replaced-width-002.xht]
expected: FAIL

View file

@ -1,2 +0,0 @@
[inline-replaced-width-008.xht]
expected: FAIL

View file

@ -1,2 +0,0 @@
[inline-replaced-width-009.xht]
expected: FAIL

View file

@ -1,2 +0,0 @@
[absolute-replaced-width-002.xht]
expected: FAIL

View file

@ -1,2 +0,0 @@
[absolute-replaced-width-003a.xht]
expected: FAIL

View file

@ -1,2 +0,0 @@
[absolute-replaced-width-003b.xht]
expected: FAIL

View file

@ -1,2 +0,0 @@
[absolute-replaced-width-003c.xht]
expected: FAIL

View file

@ -1,2 +0,0 @@
[absolute-replaced-width-009.xht]
expected: FAIL

View file

@ -1,2 +0,0 @@
[absolute-replaced-width-023.xht]
expected: FAIL

View file

@ -1,2 +0,0 @@
[absolute-replaced-width-030.xht]
expected: FAIL

View file

@ -1,2 +0,0 @@
[absolute-replaced-width-037.xht]
expected: FAIL

View file

@ -1,2 +0,0 @@
[absolute-replaced-width-051.xht]
expected: FAIL

View file

@ -1,2 +0,0 @@
[absolute-replaced-width-065.xht]
expected: FAIL

View file

@ -1,2 +0,0 @@
[flex-aspect-ratio-img-column-018.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[flex-aspect-ratio-img-row-015.html]
expected: FAIL

View file

@ -1,6 +0,0 @@
[svg-root-as-flex-item-006.html]
[svg 1]
expected: FAIL
[svg 1: undefined]
expected: FAIL

View file

@ -0,0 +1,2 @@
[display-flex-svg-overflow-default.html]
expected: FAIL

View file

@ -10,9 +10,3 @@
[.test 8]
expected: FAIL
[.test 3]
expected: FAIL
[.test 7]
expected: FAIL

View file

@ -0,0 +1,2 @@
[replaced-aspect-ratio-stretch-fit-002.html]
expected: FAIL

View file

@ -1,30 +1,6 @@
[svg-intrinsic-size-001.html]
[svg 1: undefined]
expected: FAIL
[svg 2: undefined]
expected: FAIL
[svg 3: undefined]
expected: FAIL
[svg 4: undefined]
expected: FAIL
[svg 5: undefined]
expected: FAIL
[svg 1]
expected: FAIL
[svg 2]
expected: FAIL
[svg 3]
expected: FAIL
[svg 4]
expected: FAIL
[svg 5]
expected: FAIL

View file

@ -1,30 +1,6 @@
[svg-intrinsic-size-002.html]
[svg 1: undefined]
expected: FAIL
[svg 2: undefined]
expected: FAIL
[svg 3: undefined]
expected: FAIL
[svg 4: undefined]
expected: FAIL
[svg 5: undefined]
expected: FAIL
[svg 1]
expected: FAIL
[svg 2]
expected: FAIL
[svg 3]
expected: FAIL
[svg 4]
expected: FAIL
[svg 5]
expected: FAIL

View file

@ -1,30 +1,6 @@
[svg-intrinsic-size-003.html]
[svg 1: undefined]
expected: FAIL
[svg 2: undefined]
expected: FAIL
[svg 3: undefined]
expected: FAIL
[svg 4: undefined]
expected: FAIL
[svg 5: undefined]
expected: FAIL
[svg 1]
expected: FAIL
[svg 2]
expected: FAIL
[svg 3]
expected: FAIL
[svg 4]
expected: FAIL
[svg 5]
expected: FAIL

View file

@ -1,24 +1,6 @@
[svg-intrinsic-size-004.html]
[svg 1: undefined]
expected: FAIL
[svg 2: undefined]
expected: FAIL
[svg 3: undefined]
expected: FAIL
[svg 4: undefined]
expected: FAIL
[svg 1]
expected: FAIL
[svg 2]
expected: FAIL
[svg 3]
expected: FAIL
[svg 4]
[svg 5]
expected: FAIL

View file

@ -1,2 +0,0 @@
[svg-no-ar-max-height-min-content.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[svg-no-ar-min-height-min-content.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[css-skew-001.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[css-skew-002.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[svg-transform-group-011.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[svg-transform-nested-021.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[svg-transform-nested-029.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[svg-matrix-036.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[svg-matrix-039.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[svg-matrix-041.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[svg-matrix-042.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[svg-matrix-043.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[svg-matrix-044.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[svg-matrix-045.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[svg-matrix-046.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[svg-matrix-048.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[svg-matrix-058.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[svg-matrix-059.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[svg-matrix-060.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[svg-matrix-061.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[svg-matrix-062.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[svg-matrix-063.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[svg-matrix-064.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[svg-matrix-065.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[svg-matrix-066.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[svg-matrix-067.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[svg-matrix-068.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[svg-matrix-069.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[svg-scale-001.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[svg-scale-002.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[svg-scale-003.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[svg-scale-004.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[svg-scale-008.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[svg-scale-009.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[svg-scale-010.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[svg-scale-011.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[svg-scale-012.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[svg-scale-013.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[svg-scale-014.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[svg-scale-015.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[svg-scale-016.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[svg-scale-017.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[svg-skewx-with-units.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[svg-skewy-with-units.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[svg-translate-with-units.html]
expected: FAIL

View file

@ -1,7 +1,3 @@
[outer-svg.html]
[scrollWidth, scrollHeight, scrollTop and scrollLeft work on outer svg element]
expected: FAIL
[clientWidth, clientHeight, clientTop and clientLeft work on outer svg element]
expected: FAIL

View file

@ -1,2 +0,0 @@
[svg-feimage-004.html]
expected: FAIL