tree 5c77611e2d5b182fdfbb4b29bdac26f21847cc56
parent 86d251acc8f2176cda0177e900f551d939de5c8f
author Daniel Holbert <dholbert@cs.stanford.edu> 1663619997 +0000
committer moz-wptsync-bot <wptsync@mozilla.com> 1663667226 +0100

Ignore 'align-content' when determining the aligned static position of abspos flex children.

Before this patch, we honored `align-content` (in combination with
`align-self`) for cross-axis alignment for abspos flex children **in cases
where the flex container was multi-line**. This was a bit weird, but was
required by the spec, and made some sense in the spirit of aligning the abspos
box as if it were the sole flex item in a flex container.

Now the CSSWG has resolved in [1] to simplify things by just ignoring
`align-content` for abspos flex children. So, this patch updates us in
accordance with this change. Such items now only have to look at `align-self`
for cross-axis alignment to determine their static position in their flex
container.

Before this commit, we had a bunch of WPT tests to check the impact of every
align-content value, with all of the various flavors of directionality.  Now
that align-content has *no effect* in any of these cases, all of these tests
become pretty trivial and redundant.  Rather than carrying them all forward
with trivial "no impact" expectations for each scenario, I've just updated the
first/simplest such test to expect no-behavioral-impact and I've removed the
rest.

[1] https://github.com/w3c/csswg-drafts/issues/7596#issuecomment-1225952646

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

bugzilla-url: https://bugzilla.mozilla.org/show_bug.cgi?id=1786910
gecko-commit: e2ea415fa03ccc085adee3bdaec2ab53a25993d0
gecko-reviewers: TYLin
