diff options
author | Andreas Kling <kling@serenityos.org> | 2022-09-14 11:43:57 +0200 |
---|---|---|
committer | Andreas Kling <kling@serenityos.org> | 2022-09-14 14:43:17 +0200 |
commit | f25203f245e56f4c6aa734db5930b3220907917f (patch) | |
tree | 2557ed5fbd301986a488c61989f79d37e09fbf6e /Userland/Services/AudioServer | |
parent | b8aa6a4453d8020f37dbc9dee15941ab7b63099f (diff) | |
download | serenity-f25203f245e56f4c6aa734db5930b3220907917f.zip |
LibWeb: Don't re-resolve "auto" flex item sizes after definitizing them
This is rather subtle and points to our architecture around definite
sizes not being exactly right, but...
At some points during flexbox layout, the spec tells us that the sizes
of certain flex items are considered definite from this point on.
We implement this by marking each item's associated UsedValues as
"has-definite-width/height".
However, this breaks code that tries to resolve computed "auto" sizes
by taking the corresponding size from the containing block. The end
result was that the 1st sizing pass in flexbox would find the right size
for an "auto" sized item, but the 2nd pass would override the correct
size with the containing block's content size in that axis instead.
To work around the issue, FFC now remembers when it "definitizes" an
item, and future attempts to resolve an "auto" computed size for that
value will bypass the computed-auto-is-resolved-against-containing-block
step of the algorithm. It's not perfect, and we'll need to think more
about how to really represent these intermediate states relating to
box sizes being definite..
Diffstat (limited to 'Userland/Services/AudioServer')
0 files changed, 0 insertions, 0 deletions