Inline float placement: line retries, deferred and revocable floats - #628
Draft
nicoburns wants to merge 1 commit into
Draft
Inline float placement: line retries, deferred and revocable floats#628nicoburns wants to merge 1 commit into
nicoburns wants to merge 1 commit into
Conversation
Contributor
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
devin-ai-integration
Bot
force-pushed
the
devin/1786127796-float-placement-inline
branch
from
August 7, 2026 20:34
91d7c4a to
be4fc35
Compare
devin-ai-integration
Bot
changed the base branch from
devin/1786122908-taffy-git-dep
to
devin/1786127796-float-inline-flow
August 7, 2026 20:34
devin-ai-integration
Bot
force-pushed
the
devin/1786127796-float-placement-inline
branch
from
August 7, 2026 20:43
be4fc35 to
598dcce
Compare
devin-ai-integration
Bot
force-pushed
the
devin/1786127796-float-inline-flow
branch
from
August 7, 2026 20:51
3dfb7ab to
1138c55
Compare
devin-ai-integration
Bot
force-pushed
the
devin/1786127796-float-placement-inline
branch
from
August 7, 2026 20:52
598dcce to
f8c643c
Compare
devin-ai-integration
Bot
changed the base branch from
devin/1786127796-float-inline-flow
to
main
August 7, 2026 21:10
…lacement: line retries, deferred and revocable floats
devin-ai-integration
Bot
force-pushed
the
devin/1786127796-float-placement-inline
branch
from
August 7, 2026 21:10
f8c643c to
48edec0
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Companion to the taffy float-placement stack (DioxusLabs/taffy#1064–#1068); based on #629.
This PR contains the taffy upgrade: it bumps the pinned taffy rev to the current head of the taffy float-placement stack (DioxusLabs/taffy#1066–#1068; #1064/#1065 already merged) and adds the two
Display::FlowRootmatch arms required by taffy's newdisplay: flow-rootsupport (blitz-dom/src/layout/mod.rs,blitz-paint/src/render.rs).Inline float placement changes in
blitz-dom/src/layout/inline.rs:ContentSlot; if the committed line overflows the slot (or exceeds its valid height viaMaxHeightExceeded), the line is reverted and re-laid in the next slot down. Fixes thefloats-wrap-top-below-inline-*family.advance + float_width <= slot_width; otherwise its placement is deferred and it is placed below the committed line (per CSS2 §9.5.1 rule 5: a float may not be higher than the line's preceding content).float_snapshot/restore_float_snapshotAPI from Add BlockContext::float_snapshot/restore_float_snapshot for speculative float placement taffy#1068) remain revocable while no inline content after them has been committed. If the line's content later turns out unbreakable and unable to fit anywhere (white-space: nowrap, long words), the float placement is undone, the line stays put (overflowing), and the float is placed below it. Fixesfloat-nowrap-3/9.html.WPT results
css/CSS2/floats+css/CSS2/floats-clearon this PR (base #629, taffy stack head pinned): 231 PASS / 94 FAIL / 0 CRASH of 325, 0 regressions vs the pre-stack baseline (195 PASS / 130 FAIL). Newly passing tests attributable to this PR + the taffy stack includefloats-rule3-outside-*(4),floats-rule7-outside-*(2),floats-wrap-top-below-bfc-*(6),floats-wrap-top-below-inline-*(6),floats-zero-height-wrap-*(2),floats-placement-004,floats-placement-vertical-001b/001c,float-in-inline-001/002,float-nowrap-hyphen-rewind-1,clear-float-002/003,floats-132,floats-149,floats-bfc-003.Link to Devin session: https://app.devin.ai/sessions/2aa49a15ca484966b5b71922bfd2bb58
Requested by: @nicoburns
WPT results
293 newly passing, 27 newly failing (net +266), 1 other status change.
Full diff (321 changed tests)
Generated by the WPT workflow.