Closed Bug 2013429 Opened 1 month ago Closed 1 month ago

Spanner with column-span: all receieves 0 inline-size in vertical-* writing mode

Categories

(Core :: Layout: Columns, defect)

defect

Tracking

()

RESOLVED FIXED
149 Branch
Tracking Status
firefox149 --- fixed

People

(Reporter: dshin, Assigned: dshin)

Details

(Whiteboard: [anchorpositioning:2026], [wptsync upstream])

Attachments

(2 files)

STR: Load attached test case
Expected: 2 purple spanners in each grey frames, a horizontal one in the first, a vertical oneto the right in the second.
Actual: Only the horizontal spanner is shown.

Blocks passing some WPTs like anchor-position-multicol-015.html

Overall frame tree:

ColumnSetWrapper(div id=c)(0)@7f9e342b3c60 parent=7f9e342b3a80 (x=0, y=0, w=6000, h=6000) wm=v-rl-ltr logical-size=((6000 x 6000)) [content=7f9e312044c0][cs=7f9e342af308] <
  line@7f9e342b3de8 count=1 state=block,clean,prevmarginclean,not-impacted,not-wrapped,no-break,clear-before:none,clear-after:none (x=6000, y=0, w=0, h=3000) wm=v-rl-ltr cs=((6000 x 6000)) logical-rect=(0,0,3000,0) <
    ColumnSet(div id=c)(0)@7f9e342b3d30 parent=7f9e342b3c60 next=7f9e342b3f00 next-continuation=7f9e342b40e0 (x=6000, y=0, w=0, h=3000) wm=v-rl-ltr logical-size=((3000 x 0)) parent-wm=v-rl-ltr cs=((6000 x 6000)) logical-rect=(0,0,3000,0) [content=7f9e312044c0][cs=7f9e342b0408][:-moz-column-set] <
      Block(div id=c)(0)@7f9e342b3b98 parent=7f9e342b3d30 next-continuation=7f9e342b4018 (x=0, y=0, w=0, h=3000) wm=v-rl-ltr logical-size=((3000 x 0)) parent-wm=v-rl-ltr cs=((0 x 3000)) logical-rect=(0,0,3000,0) [content=7f9e312044c0][cs=7f9e342b0c08][:-moz-column-content] <
      >
    >
  >
  line@7f9e342b4198 count=1 state=block,clean,prevmarginclean,not-impacted,not-wrapped,no-break,clear-before:none,clear-after:none (x=5400, y=0, w=600, h=6000) wm=v-rl-ltr cs=((6000 x 6000)) logical-rect=(0,0,6000,600) <
    Block(div id=c)(0)@7f9e342b3f00 parent=7f9e342b3c60 next=7f9e342b40e0 (x=5400, y=0, w=600, h=6000) parent-wm=v-rl-ltr cs=((6000 x 6000)) logical-rect=(0,0,6000,600) [content=7f9e312044c0][cs=7f9e342b1008][:-moz-column-span-wrapper] <
      line@7f9e342b3fc8 count=1 state=block,clean,prevmarginclean,not-impacted,not-wrapped,no-break,clear-before:none,clear-after:none bm=6000 (x=0, y=0, w=600, h=0) <
        Block(div id=s)(1)@7f9e342b3e38 parent=7f9e342b3f00 (x=0, y=0, w=600, h=0) wm=v-rl-ltr logical-size=((0 x 600)) [content=7f9e31204550][cs=7f9e342b0808] <
        >
      >
    >
  >
  line@7f9e342b41e8 count=1 state=block,clean,prevmarginclean,not-impacted,not-wrapped,no-break,clear-before:none,clear-after:none (x=0, y=0, w=5400, h=3000) wm=v-rl-ltr cs=((6000 x 6000)) logical-rect=(0,600,3000,5400) <
    ColumnSet(div id=c)(0)@7f9e342b40e0 parent=7f9e342b3c60 prev-continuation=7f9e342b3d30 (x=0, y=0, w=5400, h=3000) wm=v-rl-ltr logical-size=((3000 x 5400)) parent-wm=v-rl-ltr cs=((6000 x 6000)) logical-rect=(0,600,3000,5400) [content=7f9e312044c0][cs=7f9e342b0408][:-moz-column-set] <
      Block(div id=c)(0)@7f9e342b4018 parent=7f9e342b40e0 prev-continuation=7f9e342b3b98 (x=5400, y=0, w=0, h=3000) wm=v-rl-ltr logical-size=((3000 x 0)) parent-wm=v-rl-ltr cs=((5400 x 3000)) logical-rect=(0,0,3000,0) [content=7f9e312044c0][cs=7f9e342b0c08][:-moz-column-content] <
      >
    >
  >
>

Specifically:

ColumnSetWrapper(div id=c)(0)@7f9e342b3c60 [...] (x=0, y=0, w=6000, h=6000) wm=v-rl-ltr [...]<
...
    Block(div id=c)(0)@7f9e342b3f00 [...] (x=5400, y=0, w=600, h=6000) parent-wm=v-rl-ltr [...] [:-moz-column-span-wrapper]<
...
        Block(div id=s)(1)@7f9e342b3e38 [...] (x=0, y=0, w=600, h=0) wm=v-rl-ltr [...] <

Note that writing mode of :-moz-column-span-wrapper isn't v-rl-ltr. This triggers the shrinkwrap path here.

It doesn't make sense to me that the span wrapper's writing mode doesn't inherit from ColumnSetWrapper.

We consider :-moz-column-span-wrapper a non-inheriting anon box, and the style resolution doesn't seem to take parent style into account.

So it follows that it receives the "default" writing mode.

Severity: -- → S3
Assignee: nobody → dshin
Status: NEW → ASSIGNED
Pushed by dshin@mozilla.com: https://github.com/mozilla-firefox/firefox/commit/0da9dc6432dd https://hg.mozilla.org/integration/autoland/rev/102025d1bcfc Avoid :-moz-column-span-wrapper as alignment containing block. r=layout-reviewers,TYLin
Created web-platform-tests PR https://github.com/web-platform-tests/wpt/pull/57475 for changes under testing/web-platform/tests
Whiteboard: [anchorpositioning:triage] → [anchorpositioning:triage], [wptsync upstream]
Status: ASSIGNED → RESOLVED
Closed: 1 month ago
Resolution: --- → FIXED
Target Milestone: --- → 149 Branch
Upstream PR merged by moz-wptsync-bot
Whiteboard: [anchorpositioning:triage], [wptsync upstream] → [anchorpositioning:2026], [wptsync upstream]
QA Whiteboard: [qa-triage-done-c150/b149]
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: