Closed Bug 1996832 Opened 4 months ago Closed 4 months ago

Spec Compliance for Anchor Positioning Overflow Detection

Categories

(Core :: CSS Parsing and Computation, defect)

defect
Points:
2

Tracking

()

RESOLVED FIXED
146 Branch
Tracking Status
firefox146 --- fixed

People

(Reporter: dshin, Assigned: dshin)

References

(Blocks 1 open bug)

Details

(Whiteboard: [anchorpositioning:m2])

Attachments

(8 files)

Scrollable containing block Bug 1989292

  1. Need to check margin rect of positioned frame
  2. Need to check against inset reduced containing block
  3. Need to ensure positioned rect is originated against abs containing block's padding edge (GetRect() originates from border edge)
  4. Need to use scrollable containing block, if default anchor is used and valid: Tracked in (Bug 1989292)

2 has interesting implications here:

  • For position-area, the containing block seems extended by the anchor frame.
  • For anchor(), auto seems to be treated as 0 - If the default element hangs halfway off the containing block vertically, and an positioned element is anchored to it vertically, whether or not it overflows depends on if the vertical alignment is done through top: anchor(top) or bottom: anchor(bottom). Because the other inset is auto and therefore 0, the positioned frame overflows the IMCB if top is used. This is despite the used value of the other inset being negative to accommodate for the element.

The second part feels pretty counter-intuitive, but going with the used value would make positioned elements using anchor never overflow the IMCB.

Points: --- → 2
Whiteboard: [anchorpositioning:triage] → [anchorpositioning:m2]
Depends on: 1997418

This gets confusing because insets are computed against the padding rect, but
we store all frame rect information w.r.t. border rect - Add documentation to
make that fact more explicit.

Assignee: nobody → dshin
Status: NEW → ASSIGNED
Attachment #9525138 - Attachment description: Bug 1996832: Take abs-cb being scrolled when testing abspos frame overflowing. r=#anchor-pos → Bug 1996832: Take abs-cb being scrolled into account when testing abspos frame overflowing. r=#anchor-pos
Pushed by dshin@mozilla.com: https://github.com/mozilla-firefox/firefox/commit/cfcfba76dec6 https://hg.mozilla.org/integration/autoland/rev/1af8be116ab8 Pass in border-offset padding rect for abspos cb computation. r=layout-anchor-positioning-reviewers,layout-reviewers,emilio https://github.com/mozilla-firefox/firefox/commit/d92b01bce062 https://hg.mozilla.org/integration/autoland/rev/f84810b06c0b Check margin rect of abspos frame for overflowing. r=layout-anchor-positioning-reviewers,layout-reviewers,emilio https://github.com/mozilla-firefox/firefox/commit/8e441104183c https://hg.mozilla.org/integration/autoland/rev/f9cde34dfde1 Remove unused inset param for margin computation. r=layout-anchor-positioning-reviewers,layout-reviewers,emilio https://github.com/mozilla-firefox/firefox/commit/c85f102c6f77 https://hg.mozilla.org/integration/autoland/rev/047b3e2888a9 Use inset modified containing block for abspos frame overflow check. r=layout-anchor-positioning-reviewers,layout-reviewers,emilio https://github.com/mozilla-firefox/firefox/commit/022385323b3f https://hg.mozilla.org/integration/autoland/rev/eb194dbd59c3 Take abs-cb being scrolled into account when testing abspos frame overflowing. r=layout-anchor-positioning-reviewers,layout-reviewers,emilio https://github.com/mozilla-firefox/firefox/commit/3ad2b7912f23 https://hg.mozilla.org/integration/autoland/rev/aa0e49b48f62 Adjust WPT expectations. r=layout-anchor-positioning-reviewers,emilio
QA Whiteboard: [qa-triage-done-c147/b146]
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: