layout: Floor free space by 0 in solve_inline_margins_avoiding_floats() (#37362)

`PlacementAmongFloats` should guarantee that the inline size of the
placement rect is at least as big as the inline size of the box,
resulting in a non-negative free space.

However, that may fail when dealing with huge sizes that need to be
saturated to MAX_AU, so this floors the free space by zero.

Testing: New crashtest
Fixes: #37312

Signed-off-by: Oriol Brufau <obrufau@igalia.com>
This commit is contained in:
Oriol Brufau 2025-06-10 11:05:09 +02:00 committed by GitHub
parent c2ad4afcf9
commit 5c597f98e0
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 17 additions and 2 deletions

View file

@ -480,6 +480,13 @@
null,
{}
]
],
"huge-width-after-float.html": [
"8e4d04399ff1ed4ca934c9a6c79711fcfb881f69",
[
null,
{}
]
]
},
"floats-saturated-position-crash.html": [

View file

@ -0,0 +1,6 @@
<!DOCTYPE html>
<link rel="author" title="Oriol Brufau" href="obrufau@igalia.com">
<link rel="help" href="https://github.com/servo/servo/issues/37312">
<div style="float: left"></div>
<div style="width: 10000000000px; overflow: scroll"></div>