Skip to content

Inline float placement: line retries, deferred and revocable floats - #628

Draft
nicoburns wants to merge 1 commit into
mainfrom
devin/1786127796-float-placement-inline
Draft

Inline float placement: line retries, deferred and revocable floats#628
nicoburns wants to merge 1 commit into
mainfrom
devin/1786127796-float-placement-inline

Conversation

@nicoburns

@nicoburns nicoburns commented Aug 7, 2026

Copy link
Copy Markdown
Member

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::FlowRoot match arms required by taffy's new display: flow-root support (blitz-dom/src/layout/mod.rs, blitz-paint/src/render.rs).

Inline float placement changes in blitz-dom/src/layout/inline.rs:

  • Line retries around floats: each line is laid out into a float-shortened ContentSlot; if the committed line overflows the slot (or exceeds its valid height via MaxHeightExceeded), the line is reverted and re-laid in the next slot down. Fixes the floats-wrap-top-below-inline-* family.
  • Deferred floats: a float encountered mid-line is placed alongside the line only if 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).
  • Revocable floats: floats placed speculatively (via taffy's new float_snapshot/restore_float_snapshot API 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. Fixes float-nowrap-3/9.html.

WPT results

css/CSS2/floats + css/CSS2/floats-clear on 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 include floats-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)
+ Fail => Pass css/CSS2/borders/border-right-width-095.xht
+ Fail => Pass css/CSS2/css1/c414-flt-fit-001.xht
+ Fail => Pass css/CSS2/css1/c5501-mrgn-t-000.xht
+ Fail => Pass css/CSS2/css1/c5503-mrgn-b-000.xht
- Pass => Fail css/CSS2/css1/c5525-fltinln-000.xht
+ Fail => Pass css/CSS2/css1/c5525-fltwidth-001.xht
+ Fail => Pass css/CSS2/css1/c62-percent-000.xht
+ Fail => Pass css/CSS2/floats-clear/adjoining-float-before-clearance.html
+ Fail => Pass css/CSS2/floats-clear/adjoining-float-nested-forced-clearance.html
+ Fail => Pass css/CSS2/floats-clear/adjoining-float-new-fc.html
+ Fail => Pass css/CSS2/floats-clear/clear-after-top-margin.html
+ Fail => Pass css/CSS2/floats-clear/clear-applies-to-013.xht
+ Fail => Pass css/CSS2/floats-clear/clear-clearance-calculation-001.xht
+ Fail => Pass css/CSS2/floats-clear/clear-clearance-calculation-002.xht
+ Fail => Pass css/CSS2/floats-clear/clear-clearance-calculation-003.xht
+ Fail => Pass css/CSS2/floats-clear/clear-float-002.xht
+ Fail => Pass css/CSS2/floats-clear/clear-float-003.xht
+ Fail => Pass css/CSS2/floats-clear/clear-on-child-with-margins-2.html
+ Fail => Pass css/CSS2/floats-clear/clear-on-child-with-margins.html
+ Fail => Pass css/CSS2/floats-clear/clear-on-parent-with-margins-no-clearance.html
+ Fail => Pass css/CSS2/floats-clear/clear-on-parent-with-margins.html
+ Fail => Pass css/CSS2/floats-clear/clear-on-replaced-element.html
+ Fail => Pass css/CSS2/floats-clear/float-005.xht
+ Fail => Pass css/CSS2/floats-clear/float-applies-to-008a.xht
+ Fail => Pass css/CSS2/floats-clear/float-applies-to-013.xht
+ Fail => Pass css/CSS2/floats-clear/float-applies-to-014.xht
+ Fail => Pass css/CSS2/floats-clear/float-non-replaced-width-007.xht
+ Fail => Pass css/CSS2/floats-clear/float-non-replaced-width-008.xht
+ Fail => Pass css/CSS2/floats-clear/float-non-replaced-width-009.xht
+ Fail => Pass css/CSS2/floats-clear/float-non-replaced-width-010.xht
+ Fail => Pass css/CSS2/floats-clear/float-non-replaced-width-011.xht
+ Fail => Pass css/CSS2/floats-clear/float-non-replaced-width-012.xht
+ Fail => Pass css/CSS2/floats-clear/float-replaced-height-002.xht
+ Fail => Pass css/CSS2/floats-clear/float-replaced-height-003.xht
+ Fail => Pass css/CSS2/floats-clear/floats-005.xht
+ Fail => Pass css/CSS2/floats-clear/floats-015.xht
+ Fail => Pass css/CSS2/floats-clear/floats-118.xht
+ Fail => Pass css/CSS2/floats-clear/floats-119.xht
+ Fail => Pass css/CSS2/floats-clear/floats-120.xht
+ Fail => Pass css/CSS2/floats-clear/floats-132.xht
+ Fail => Pass css/CSS2/floats-clear/floats-138.xht
+ Fail => Pass css/CSS2/floats-clear/floats-145.xht
+ Crash => Pass css/CSS2/floats-clear/floats-146.xht
+ Fail => Pass css/CSS2/floats-clear/floats-154.xht
+ Fail => Pass css/CSS2/floats-clear/floats-bfc-001.xht
+ Fail => Pass css/CSS2/floats-clear/floats-bfc-003.html
+ Fail => Pass css/CSS2/floats-clear/margin-collapse-018.xht
+ Fail => Pass css/CSS2/floats-clear/margin-collapse-023.xht
+ Fail => Pass css/CSS2/floats-clear/margin-collapse-027.xht
+ Fail => Pass css/CSS2/floats-clear/margin-collapse-033.xht
+ Fail => Pass css/CSS2/floats-clear/margin-collapse-034.xht
+ Fail => Pass css/CSS2/floats-clear/margin-collapse-035.xht
+ Fail => Pass css/CSS2/floats-clear/margin-collapse-122.xht
+ Fail => Pass css/CSS2/floats-clear/margin-collapse-123.xht
+ Fail => Pass css/CSS2/floats-clear/margin-collapse-125.xht
+ Fail => Pass css/CSS2/floats-clear/margin-collapse-135.xht
+ Fail => Pass css/CSS2/floats-clear/margin-collapse-142.xht
+ Fail => Pass css/CSS2/floats-clear/margin-collapse-165.xht
+ Fail => Pass css/CSS2/floats-clear/margin-collapse-clear-012.xht
+ Fail => Pass css/CSS2/floats-clear/margin-collapse-clear-013.xht
+ Fail => Pass css/CSS2/floats-clear/margin-collapse-clear-015.xht
+ Fail => Pass css/CSS2/floats-clear/margin-collapse-clear-016.xht
+ Fail => Pass css/CSS2/floats-clear/margin-collapse-clear-017.xht
+ Fail => Pass css/CSS2/floats-clear/negative-clearance-after-adjoining-float.html
+ Fail => Pass css/CSS2/floats-clear/negative-clearance-after-bottom-margin.html
+ Fail => Pass css/CSS2/floats-clear/nested-clearance-new-formatting-context.html
+ Fail => Pass css/CSS2/floats-clear/no-clearance-due-to-large-margin.html
+ Fail => Pass css/CSS2/floats-clear/second-float-inside-empty-cleared-block-after-margin.html
+ Fail => Pass css/CSS2/floats-clear/second-float-inside-empty-cleared-block.html
+ Fail => Pass css/CSS2/floats/float-nowrap-3.html
- Pass => Fail css/CSS2/floats/float-nowrap-4.html
+ Fail => Pass css/CSS2/floats/float-nowrap-9.html
+ Fail => Pass css/CSS2/floats/floats-placement-003.html
+ Fail => Pass css/CSS2/floats/floats-placement-004.html
+ Fail => Pass css/CSS2/floats/floats-rule3-outside-left-001.xht
+ Fail => Pass css/CSS2/floats/floats-rule3-outside-left-002.xht
+ Fail => Pass css/CSS2/floats/floats-rule3-outside-right-001.xht
+ Fail => Pass css/CSS2/floats/floats-rule3-outside-right-002.xht
+ Fail => Pass css/CSS2/floats/floats-rule7-outside-left-001.xht
+ Fail => Pass css/CSS2/floats/floats-rule7-outside-right-001.xht
+ Fail => Pass css/CSS2/floats/floats-wrap-bfc-005.xht
+ Fail => Pass css/CSS2/floats/floats-wrap-bfc-007.xht
+ Fail => Pass css/CSS2/floats/floats-wrap-bfc-008.html
+ Fail => Pass css/CSS2/floats/floats-wrap-bfc-with-margin-008.tentative.html
+ Fail => Pass css/CSS2/floats/floats-wrap-bfc-with-margin-009.tentative.html
+ Fail => Pass css/CSS2/floats/floats-wrap-top-below-bfc-001l.xht
+ Fail => Pass css/CSS2/floats/floats-wrap-top-below-bfc-001r.xht
+ Fail => Pass css/CSS2/floats/floats-wrap-top-below-bfc-002l.xht
+ Fail => Pass css/CSS2/floats/floats-wrap-top-below-bfc-002r.xht
+ Fail => Pass css/CSS2/floats/floats-wrap-top-below-bfc-003l.xht
+ Fail => Pass css/CSS2/floats/floats-wrap-top-below-bfc-003r.xht
+ Fail => Pass css/CSS2/floats/floats-wrap-top-below-inline-001l.xht
+ Fail => Pass css/CSS2/floats/floats-wrap-top-below-inline-001r.xht
+ Fail => Pass css/CSS2/floats/floats-wrap-top-below-inline-002l.xht
+ Fail => Pass css/CSS2/floats/floats-wrap-top-below-inline-002r.xht
+ Fail => Pass css/CSS2/floats/floats-wrap-top-below-inline-003l.xht
+ Fail => Pass css/CSS2/floats/floats-wrap-top-below-inline-003r.xht
+ Fail => Pass css/CSS2/floats/floats-zero-height-wrap-001.xht
+ Fail => Pass css/CSS2/floats/floats-zero-height-wrap-002.xht
+ Fail => Pass css/CSS2/floats/new-fc-beside-adjoining-float-2.html
+ Fail => Pass css/CSS2/floats/new-fc-beside-adjoining-float.html
+ Fail => Pass css/CSS2/floats/new-fc-separates-from-float-2.html
+ Fail => Pass css/CSS2/floats/new-fc-separates-from-float-3.html
+ Fail => Pass css/CSS2/floats/zero-space-between-floats-004.html
+ Fail => Pass css/CSS2/floats/zero-width-floats-positioning.tentative.html
+ Fail => Pass css/CSS2/linebox/line-height-128.xht
+ Fail => Pass css/CSS2/lists/list-style-image-005.xht
+ Fail => Pass css/CSS2/margin-padding-clear/margin-applies-to-001.xht
+ Fail => Pass css/CSS2/margin-padding-clear/margin-applies-to-002.xht
+ Fail => Pass css/CSS2/margin-padding-clear/margin-applies-to-003.xht
+ Fail => Pass css/CSS2/margin-padding-clear/margin-applies-to-004.xht
+ Fail => Pass css/CSS2/margin-padding-clear/margin-applies-to-005.xht
+ Fail => Pass css/CSS2/margin-padding-clear/margin-applies-to-006.xht
+ Fail => Pass css/CSS2/margin-padding-clear/margin-applies-to-007.xht
+ Fail => Pass css/CSS2/margin-padding-clear/margin-applies-to-009.xht
+ Fail => Pass css/CSS2/margin-padding-clear/margin-applies-to-012.xht
+ Fail => Pass css/CSS2/margin-padding-clear/margin-applies-to-013.xht
+ Fail => Pass css/CSS2/margin-padding-clear/margin-applies-to-014.xht
+ Fail => Pass css/CSS2/margin-padding-clear/margin-bottom-103.xht
+ Fail => Pass css/CSS2/margin-padding-clear/margin-bottom-104.xht
+ Fail => Pass css/CSS2/margin-padding-clear/margin-collapse-006.xht
+ Fail => Pass css/CSS2/margin-padding-clear/margin-collapse-039.xht
+ Fail => Pass css/CSS2/margin-padding-clear/margin-collapse-040.xht
+ Fail => Pass css/CSS2/margin-padding-clear/margin-collapse-041.xht
+ Fail => Pass css/CSS2/margin-padding-clear/margin-collapse-104.xht
+ Fail => Pass css/CSS2/margin-padding-clear/margin-collapse-113.xht
+ Fail => Pass css/CSS2/margin-padding-clear/margin-collapse-114.xht
+ Fail => Pass css/CSS2/margin-padding-clear/margin-collapse-clear-011.xht
+ Fail => Pass css/CSS2/margin-padding-clear/margin-left-103.xht
+ Fail => Pass css/CSS2/margin-padding-clear/margin-left-104.xht
+ Fail => Pass css/CSS2/margin-padding-clear/margin-right-004.xht
+ Fail => Pass css/CSS2/margin-padding-clear/margin-right-005.xht
+ Fail => Pass css/CSS2/margin-padding-clear/margin-right-006.xht
+ Fail => Pass css/CSS2/margin-padding-clear/margin-right-007.xht
+ Fail => Pass css/CSS2/margin-padding-clear/margin-right-016.xht
+ Fail => Pass css/CSS2/margin-padding-clear/margin-right-017.xht
+ Fail => Pass css/CSS2/margin-padding-clear/margin-right-018.xht
+ Fail => Pass css/CSS2/margin-padding-clear/margin-right-028.xht
+ Fail => Pass css/CSS2/margin-padding-clear/margin-right-029.xht
+ Fail => Pass css/CSS2/margin-padding-clear/margin-right-030.xht
+ Fail => Pass css/CSS2/margin-padding-clear/margin-right-040.xht
+ Fail => Pass css/CSS2/margin-padding-clear/margin-right-041.xht
+ Fail => Pass css/CSS2/margin-padding-clear/margin-right-042.xht
+ Fail => Pass css/CSS2/margin-padding-clear/margin-right-052.xht
+ Fail => Pass css/CSS2/margin-padding-clear/margin-right-053.xht
+ Fail => Pass css/CSS2/margin-padding-clear/margin-right-054.xht
+ Fail => Pass css/CSS2/margin-padding-clear/margin-right-064.xht
+ Fail => Pass css/CSS2/margin-padding-clear/margin-right-065.xht
+ Fail => Pass css/CSS2/margin-padding-clear/margin-right-066.xht
+ Fail => Pass css/CSS2/margin-padding-clear/margin-right-076.xht
+ Fail => Pass css/CSS2/margin-padding-clear/margin-right-077.xht
+ Fail => Pass css/CSS2/margin-padding-clear/margin-right-078.xht
+ Fail => Pass css/CSS2/margin-padding-clear/margin-right-088.xht
+ Fail => Pass css/CSS2/margin-padding-clear/margin-right-089.xht
+ Fail => Pass css/CSS2/margin-padding-clear/margin-right-090.xht
+ Fail => Pass css/CSS2/margin-padding-clear/margin-right-103.xht
+ Fail => Pass css/CSS2/margin-padding-clear/margin-right-104.xht
+ Fail => Pass css/CSS2/margin-padding-clear/margin-right-109.xht
+ Fail => Pass css/CSS2/margin-padding-clear/margin-right-110.xht
+ Fail => Pass css/CSS2/margin-padding-clear/margin-right-111.xht
+ Fail => Pass css/CSS2/margin-padding-clear/margin-right-112.xht
+ Fail => Pass css/CSS2/margin-padding-clear/margin-right-applies-to-001.xht
+ Fail => Pass css/CSS2/margin-padding-clear/margin-right-applies-to-002.xht
+ Fail => Pass css/CSS2/margin-padding-clear/margin-right-applies-to-004.xht
+ Fail => Pass css/CSS2/margin-padding-clear/margin-right-applies-to-005.xht
+ Fail => Pass css/CSS2/margin-padding-clear/margin-right-applies-to-006.xht
+ Fail => Pass css/CSS2/margin-padding-clear/margin-right-applies-to-007.xht
+ Fail => Pass css/CSS2/margin-padding-clear/margin-right-applies-to-009.xht
+ Fail => Pass css/CSS2/margin-padding-clear/margin-right-applies-to-012.xht
+ Fail => Pass css/CSS2/margin-padding-clear/margin-right-applies-to-013.xht
+ Fail => Pass css/CSS2/margin-padding-clear/margin-right-applies-to-014.xht
+ Fail => Pass css/CSS2/margin-padding-clear/padding-applies-to-001.xht
+ Fail => Pass css/CSS2/margin-padding-clear/padding-applies-to-002.xht
+ Fail => Pass css/CSS2/margin-padding-clear/padding-applies-to-003.xht
+ Fail => Pass css/CSS2/margin-padding-clear/padding-applies-to-004.xht
+ Fail => Pass css/CSS2/margin-padding-clear/padding-applies-to-005.xht
+ Fail => Pass css/CSS2/margin-padding-clear/padding-applies-to-006.xht
+ Fail => Pass css/CSS2/margin-padding-clear/padding-applies-to-007.xht
+ Fail => Pass css/CSS2/margin-padding-clear/padding-applies-to-009.xht
+ Fail => Pass css/CSS2/margin-padding-clear/padding-applies-to-012.xht
+ Fail => Pass css/CSS2/margin-padding-clear/padding-applies-to-013.xht
+ Fail => Pass css/CSS2/margin-padding-clear/padding-applies-to-014.xht
+ Fail => Pass css/CSS2/margin-padding-clear/padding-right-001.xht
+ Fail => Pass css/CSS2/margin-padding-clear/padding-right-002.xht
+ Fail => Pass css/CSS2/margin-padding-clear/padding-right-004.xht
+ Fail => Pass css/CSS2/margin-padding-clear/padding-right-005.xht
+ Fail => Pass css/CSS2/margin-padding-clear/padding-right-012.xht
+ Fail => Pass css/CSS2/margin-padding-clear/padding-right-013.xht
+ Fail => Pass css/CSS2/margin-padding-clear/padding-right-015.xht
+ Fail => Pass css/CSS2/margin-padding-clear/padding-right-016.xht
+ Fail => Pass css/CSS2/margin-padding-clear/padding-right-023.xht
+ Fail => Pass css/CSS2/margin-padding-clear/padding-right-024.xht
+ Fail => Pass css/CSS2/margin-padding-clear/padding-right-026.xht
+ Fail => Pass css/CSS2/margin-padding-clear/padding-right-027.xht
+ Fail => Pass css/CSS2/margin-padding-clear/padding-right-034.xht
+ Fail => Pass css/CSS2/margin-padding-clear/padding-right-035.xht
+ Fail => Pass css/CSS2/margin-padding-clear/padding-right-037.xht
+ Fail => Pass css/CSS2/margin-padding-clear/padding-right-038.xht
+ Fail => Pass css/CSS2/margin-padding-clear/padding-right-045.xht
+ Fail => Pass css/CSS2/margin-padding-clear/padding-right-046.xht
+ Fail => Pass css/CSS2/margin-padding-clear/padding-right-048.xht
+ Fail => Pass css/CSS2/margin-padding-clear/padding-right-049.xht
+ Fail => Pass css/CSS2/margin-padding-clear/padding-right-056.xht
+ Fail => Pass css/CSS2/margin-padding-clear/padding-right-057.xht
+ Fail => Pass css/CSS2/margin-padding-clear/padding-right-059.xht
+ Fail => Pass css/CSS2/margin-padding-clear/padding-right-060.xht
+ Fail => Pass css/CSS2/margin-padding-clear/padding-right-067.xht
+ Fail => Pass css/CSS2/margin-padding-clear/padding-right-068.xht
+ Fail => Pass css/CSS2/margin-padding-clear/padding-right-070.xht
+ Fail => Pass css/CSS2/margin-padding-clear/padding-right-071.xht
+ Fail => Pass css/CSS2/margin-padding-clear/padding-right-078.xht
+ Fail => Pass css/CSS2/margin-padding-clear/padding-right-079.xht
+ Fail => Pass css/CSS2/margin-padding-clear/padding-right-081.xht
+ Fail => Pass css/CSS2/margin-padding-clear/padding-right-082.xht
+ Fail => Pass css/CSS2/margin-padding-clear/padding-right-100.xht
+ Fail => Pass css/CSS2/margin-padding-clear/padding-right-101.xht
+ Fail => Pass css/CSS2/margin-padding-clear/padding-right-102.xht
+ Fail => Pass css/CSS2/margin-padding-clear/padding-right-applies-to-001.xht
+ Fail => Pass css/CSS2/margin-padding-clear/padding-right-applies-to-002.xht
+ Fail => Pass css/CSS2/margin-padding-clear/padding-right-applies-to-003.xht
+ Fail => Pass css/CSS2/margin-padding-clear/padding-right-applies-to-004.xht
+ Fail => Pass css/CSS2/margin-padding-clear/padding-right-applies-to-005.xht
+ Fail => Pass css/CSS2/margin-padding-clear/padding-right-applies-to-006.xht
+ Fail => Pass css/CSS2/margin-padding-clear/padding-right-applies-to-009.xht
+ Fail => Pass css/CSS2/margin-padding-clear/padding-right-applies-to-013.xht
+ Fail => Pass css/CSS2/margin-padding-clear/padding-right-applies-to-014.xht
+ Fail => Pass css/CSS2/normal-flow/block-formatting-contexts-011.xht
+ Fail => Pass css/CSS2/normal-flow/inline-replaced-width-012.xht
+ Fail => Pass css/CSS2/normal-flow/inline-replaced-width-013.xht
+ Fail => Pass css/CSS2/normal-flow/max-height-applies-to-018.html
+ Fail => Pass css/CSS2/normal-flow/max-width-106.xht
+ Fail => Pass css/CSS2/normal-flow/max-width-110.xht
+ Fail => Pass css/CSS2/normal-flow/max-width-applies-to-018.html
+ Fail => Pass css/CSS2/normal-flow/min-height-106.xht
+ Fail => Pass css/CSS2/positioning/abspos-008.xht
+ Fail => Pass css/CSS2/positioning/position-relative-018.xht
+ Fail => Pass css/CSS2/text/white-space-mixed-003.xht
+ Fail => Pass css/CSS2/values/units-004.xht
+ Fail => Pass css/css-backgrounds/box-shadow-overlapping-002.html
+ Fail => Pass css/css-backgrounds/box-shadow-overlapping-003.html
+ Fail => Pass css/css-backgrounds/box-shadow-overlapping-004.html
+ Fail => Pass css/css-flexbox/align-items-baseline-overflow-non-visible.html
+ Fail => Pass css/css-flexbox/aspect-ratio-transferred-max-size.html
+ Fail => Pass css/css-flexbox/flex-aspect-ratio-img-column-006.html
+ Fail => Pass css/css-flexbox/flex-aspect-ratio-img-column-007.html
+ Fail => Pass css/css-flexbox/flex-aspect-ratio-img-column-009.html
+ Fail => Pass css/css-flexbox/flex-aspect-ratio-img-row-004.html
+ Fail => Pass css/css-flexbox/flex-flow-001.html
+ Fail => Pass css/css-flexbox/flex-flow-004.html
+ Fail => Pass css/css-flexbox/flex-lines/multi-line-wrap-reverse-column-reverse.html
+ Fail => Pass css/css-flexbox/flex-lines/multi-line-wrap-with-column-reverse.html
- Pass => Fail css/css-flexbox/flexbox-baseline-multi-line-vert-002.html
- Pass => Fail css/css-flexbox/flexbox-min-height-auto-002b.html
+ Fail => Pass css/css-flexbox/flexbox-paint-ordering-001.xhtml
+ Fail => Pass css/css-flexbox/flexbox_box-clear.html
+ Fail => Pass css/css-flexbox/flexbox_fbfc.html
+ Fail => Pass css/css-flexbox/intrinsic-size/row-002.html
+ Fail => Pass css/css-flexbox/intrinsic-size/row-003.html
+ Fail => Pass css/css-flexbox/intrinsic-size/row-004.html
+ Fail => Pass css/css-grid/abspos/grid-positioned-items-background-001.html
+ Fail => Pass css/css-grid/alignment/grid-content-alignment-and-self-alignment-002.html
+ Fail => Pass css/css-grid/alignment/grid-gutters-016.html
+ Fail => Pass css/css-grid/grid-model/grid-box-sizing-001.html
+ Fail => Pass css/css-grid/grid-model/grid-floats-no-intrude-001.html
+ Fail => Pass css/css-grid/grid-model/grid-inline-floats-no-intrude-001.html
+ Fail => Pass css/css-grid/grid-model/grid-margins-no-collapse-002.html
+ Fail => Pass css/css-grid/layout-algorithm/grid-find-fr-size-restart-algorithm.html
- Pass => Fail css/css-grid/layout-algorithm/grid-percent-cols-filled-shrinkwrap-001.html
- Pass => Fail css/css-grid/layout-algorithm/grid-percent-cols-spanned-shrinkwrap-001.html
- Pass => Fail css/css-multicol/inline-block-and-column-span-all.html
+ Fail => Pass css/css-overflow/scrollable-overflow-padding-inline.html
! Crash => Fail css/css-page/page-size-007-print.html
- Pass => Fail css/css-position/position-absolute-in-inline-margin-top.html
+ Fail => Pass css/css-rhythm/block-step-size-none-does-not-establish-block-formatting-context.html
+ Fail => Pass css/css-rhythm/block-step-size-none-does-not-establish-indepdendent-formatting-context.html
+ Fail => Pass css/css-shapes/shape-outside/shape-image/gradients/shape-outside-linear-gradient-001.html
- Pass => Fail css/css-shapes/shape-outside/shape-image/shape-image-001.html
- Pass => Fail css/css-shapes/shape-outside/shape-image/shape-image-012.html
- Pass => Fail css/css-shapes/shape-outside/shape-image/shape-image-014.html
- Pass => Fail css/css-shapes/shape-outside/supported-shapes/inset/shape-outside-inset-028.html
- Pass => Fail css/css-shapes/shape-outside/supported-shapes/inset/shape-outside-inset-029.html
- Pass => Fail css/css-shapes/shape-outside/supported-shapes/inset/shape-outside-inset-030.html
+ Fail => Pass css/css-shapes/shape-outside/supported-shapes/path/shape-outside-path-000.html
+ Fail => Pass css/css-shapes/shape-outside/supported-shapes/path/shape-outside-path-001.html
- Pass => Fail css/css-shapes/shape-outside/supported-shapes/polygon/shape-outside-polygon-012.html
- Pass => Fail css/css-shapes/shape-outside/supported-shapes/polygon/shape-outside-polygon-013.html
- Pass => Fail css/css-shapes/shape-outside/supported-shapes/polygon/shape-outside-polygon-014.html
- Pass => Fail css/css-shapes/shape-outside/supported-shapes/polygon/shape-outside-polygon-015.html
- Pass => Fail css/css-shapes/shape-outside/supported-shapes/polygon/shape-outside-polygon-032.html
+ Fail => Pass css/css-shapes/shape-outside/supported-shapes/shape/shape-outside-shape-000.html
+ Fail => Pass css/css-shapes/shape-outside/supported-shapes/shape/shape-outside-shape-001.html
+ Fail => Pass css/css-sizing/aspect-ratio/block-aspect-ratio-025.html
+ Fail => Pass css/css-sizing/fit-content-contribution-001.html
- Pass => Fail css/css-sizing/float-clearance-with-margin-collapse-and-fit-content-and-padding-percentage-001.html
- Pass => Fail css/css-sizing/float-clearance-with-margin-collapse-and-fit-content-and-padding-percentage-002.html
- Pass => Fail css/css-sizing/float-clearance-with-margin-collapse-and-fit-content-and-padding-percentage-003.html
- Pass => Fail css/css-sizing/float-clearance-with-margin-collapse-and-fit-content-and-padding-percentage-004.html
+ Fail => Pass css/css-sizing/intrinsic-percent-replaced-001.html
+ Fail => Pass css/css-sizing/replaced-aspect-ratio-intrinsic-size-002.html
+ Fail => Pass css/css-tables/min-height-table.html
- Pass => Fail css/css-text/hyphens/hyphens-none-014.html
- Pass => Fail css/css-text/hyphens/hyphens-none-015.html
+ Fail => Pass css/css-text/line-breaking/line-breaking-017.html
+ Fail => Pass css/css-text/overflow-wrap/overflow-wrap-min-content-size-003.html
+ Fail => Pass css/css-text/white-space/break-spaces-051.html
- Pass => Fail css/css-text/white-space/pre-float-001.html
+ Fail => Pass css/css-text/white-space/pre-line-051.html
+ Fail => Pass css/css-text/white-space/pre-wrap-051.html
+ Fail => Pass css/css-text/white-space/white-space-pre-051.html
- Pass => Fail css/css-transforms/transform-generated-001.html
+ Fail => Pass css/css-transforms/transform-origin-013.html
+ Fail => Pass css/css-values/ic-unit-001.html
+ Fail => Pass css/css-writing-modes/contiguous-floated-table-vlr-007.xht
+ Fail => Pass css/css-writing-modes/contiguous-floated-table-vlr-009.xht
+ Fail => Pass css/css-writing-modes/contiguous-floated-table-vrl-006.xht
+ Fail => Pass css/css-writing-modes/contiguous-floated-table-vrl-008.xht
+ Fail => Pass css/css-writing-modes/float-vlr-014.html
+ Fail => Pass css/css-writing-modes/inline-box-orthogonal-child-with-margins.html
+ Fail => Pass css/css-writing-modes/percent-margin-vlr-003.xht
+ Fail => Pass css/css-writing-modes/percent-margin-vrl-002.xht
+ Fail => Pass css/filter-effects/filtered-inline-applies-to-float.html

Generated by the WPT workflow.

@nicoburns nicoburns self-assigned this Aug 7, 2026
@devin-ai-integration

Copy link
Copy Markdown
Contributor

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR that start with 'DevinAI' or '@devin'.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment, CI, and merge conflict monitoring

@devin-ai-integration
devin-ai-integration Bot force-pushed the devin/1786127796-float-placement-inline branch from 91d7c4a to be4fc35 Compare August 7, 2026 20:34
@devin-ai-integration
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 devin-ai-integration Bot changed the title Inline float placement: line retries, deferred/revocable floats, no inline-flow splitting for floats Inline float placement: line retries, deferred and revocable floats Aug 7, 2026
@devin-ai-integration
devin-ai-integration Bot force-pushed the devin/1786127796-float-placement-inline branch from be4fc35 to 598dcce Compare August 7, 2026 20:43
@devin-ai-integration
devin-ai-integration Bot force-pushed the devin/1786127796-float-inline-flow branch from 3dfb7ab to 1138c55 Compare August 7, 2026 20:51
@devin-ai-integration
devin-ai-integration Bot force-pushed the devin/1786127796-float-placement-inline branch from 598dcce to f8c643c Compare August 7, 2026 20:52
@devin-ai-integration
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
devin-ai-integration Bot force-pushed the devin/1786127796-float-placement-inline branch from f8c643c to 48edec0 Compare August 7, 2026 21:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant