diff --git a/components/layout_2020/replaced.rs b/components/layout_2020/replaced.rs index 290d792c5c2..ed740e9fc3b 100644 --- a/components/layout_2020/replaced.rs +++ b/components/layout_2020/replaced.rs @@ -614,13 +614,13 @@ impl ReplacedContent { }, // Rows 6-7. (Violation::Above(max_inline_size), Violation::Above(max_block_size)) => { - if max_inline_size.0 * block_size.0 <= max_block_size.0 * inline_size.0 { + let transferred_block_size = + ratio.compute_dependent_size(Direction::Block, max_inline_size); + if transferred_block_size <= max_block_size { // Row 6. LogicalVec2 { inline: max_inline_size, - block: ratio - .compute_dependent_size(Direction::Block, max_inline_size) - .max(min_box_size.block), + block: transferred_block_size.max(min_box_size.block), } } else { // Row 7. @@ -634,12 +634,12 @@ impl ReplacedContent { }, // Rows 8-9. (Violation::Below(min_inline_size), Violation::Below(min_block_size)) => { - if min_inline_size.0 * block_size.0 <= min_block_size.0 * inline_size.0 { + let transferred_inline_size = + ratio.compute_dependent_size(Direction::Inline, min_block_size); + if min_inline_size <= transferred_inline_size { // Row 8. LogicalVec2 { - inline: ratio - .compute_dependent_size(Direction::Inline, min_block_size) - .clamp_below_max(max_box_size.inline), + inline: transferred_inline_size.clamp_below_max(max_box_size.inline), block: min_block_size, } } else { diff --git a/tests/wpt/meta/MANIFEST.json b/tests/wpt/meta/MANIFEST.json index 6da76d13452..131e04dd43b 100644 --- a/tests/wpt/meta/MANIFEST.json +++ b/tests/wpt/meta/MANIFEST.json @@ -553,6 +553,17 @@ ] ] } + }, + "visudet": { + "crashtests": { + "canvas-huge-min-max-sizes.html": [ + "63413085347c0d85a9e8c0b5f2b7c13467dba962", + [ + null, + {} + ] + ] + } } }, "compositing": { @@ -569016,6 +569027,13 @@ {} ] ], + "replaced-element-042.html": [ + "2a301c3e1930d3351435ad17938b19c67ad85e8d", + [ + null, + {} + ] + ], "sign-function-aspect-ratio.html": [ "e5ba1a8321a42918cccee4ee164527fa25078e4f", [ diff --git a/tests/wpt/tests/css/CSS2/visudet/crashtests/canvas-huge-min-max-sizes.html b/tests/wpt/tests/css/CSS2/visudet/crashtests/canvas-huge-min-max-sizes.html new file mode 100644 index 00000000000..63413085347 --- /dev/null +++ b/tests/wpt/tests/css/CSS2/visudet/crashtests/canvas-huge-min-max-sizes.html @@ -0,0 +1,21 @@ + + +