github web-platform-tests/wpt merge_pr_49040

latest releases: merge_pr_49470, epochs/three_hourly/2024-12-03_06H, epochs/six_hourly/2024-12-03_06H...
10 months ago

Ensure that padding inflated bounds of in-flow children are included in the scrollable element's overflow area.

This means that when users scroll to the inline-end of a scroller, they will
see that the inline-end padding of that scroller is added in.

This is achieved by unioning an additional rect into the scrollable element's
overflow area (Which is an accumulation of the recursive overflow-area
contributions from its subtree).

This additional rect is calculated as follows:

  • In-flow children and float's margin boxes are unioned (including zero-size boxes)
  • The unioned rect is then inflated by the scrollable element's padding

Note: The bounds of zero-area in-flow-child rects are included in this rect,
in both block- and inline- directions. This is a change in behavior; Divs of
huge inline size and zero block size used to not affect the scrollable overflow,
where divs with huge block size and zero inline size did, as a side effect of now
removed nsBlockFrame::ConsiderBlockEndEdgeOfChildren.

Note on WPT change sizing-orthog-(vlr|vrl)-in-htb-(008|020)-ref.xht - the padding existed
to force empty space below p#sentence-after. However, this only applies to previous
Firefox. Any combination of browser + default font (+ its default size) causing a scroll
would cause the test to fail as false positive (According to wpt.fyi, this is what happens
with sizing-orthog-(vlr|vrl)-008.xht tests). This change brings Firefox's scroll behaviour
inline with other browsers.

Differential Revision: https://phabricator.services.mozilla.com/D151310

bugzilla-url: https://bugzilla.mozilla.org/show_bug.cgi?id=1768921
gecko-commit: 117987129d8ea7663303a76773b50410d13438bf
gecko-reviewers: dholbert

Don't miss a new wpt release

NewReleases is sending notifications on new releases.