Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: c03d0ac6e6db178f90923a0a63080b5ca210d25f
https://github.com/WebKit/WebKit/commit/c03d0ac6e6db178f90923a0a63080b5ca210d25f
Author: Alan Baradlay <[email protected]>
Date: 2023-06-20 (Tue, 20 Jun 2023)
Changed paths:
A
LayoutTests/fast/block/float/float-overflows-containing-block-expected.html
A LayoutTests/fast/block/float/float-overflows-containing-block.html
M Source/WebCore/layout/floats/FloatingContext.cpp
Log Message:
-----------
REGRESSION(262277@main): wpt/css/CSS2/floats/floats-rule3-outside-left-001.xht
https://bugs.webkit.org/show_bug.cgi?id=258216
rdar://110903782
Reviewed by Antti Koivisto.
This patch ensures floats can (horizontally) overflow their containing blocks,
however they should not overflow when their static position is constrained by
other floats (i.e. not enough horizontal space left)
e.g.
It's perfectly fine for a float (F) to overflow its containing block (C).
<div id=C style="width: 100px;">
<div id=F style="width: 200px; float: left">
_________________________
|C _______________________|____
| |F | |
| | | |
| | | |
| |_______________________|____|
|_________________________|
However when the float is constrained by other, intruding floats (I) on the
same vertical position, overflow should not happen
<div id=I style="width: 20px; float: left"></div>
<div id=A style="width: 100px;">
<div id=F style="width: 200px; float: left">
_____
|I |
|_____|_____________________
|A | ____________________|_________
| ||F | |
| || | |
| || | |
| ||____________________|_________|
|_____|_____________________|
| |
|_____|
^^ incorrect layout
_____
|I |
|_____|_____________________
|A | |
| | |
| | |
| | |
| | |
|_____|_____________________|
| |
|_____|
______________________________
|F |
| |
| |
|______________________________|
^^ correct layout
Note that overflowing, when the intruding float (I) does not constrain the
float candidate (F) position is also perfectly fine.
_____
___________________________ |I |
|A _________________________|____ | |
| |F | | | |
| | | | | |
| | | | | |
| |_________________________|____| | |
|___________________________| | |
| |
|_____|
* LayoutTests/fast/block/float/float-overflows-containing-block-expected.html:
Added.
* LayoutTests/fast/block/float/float-overflows-containing-block.html: Added.
* Source/WebCore/layout/floats/FloatingContext.cpp:
(WebCore::Layout::findAvailablePosition):
Canonical link: https://commits.webkit.org/265345@main
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes