fune/testing/web-platform/tests/css/css-position
Emilio Cobos Álvarez ec3939cd59 Bug 1908242 - Make sure that sticky items are processed in the right order. r=TYLin, a=dmeehan
We rely on positioning ancestors before descendants to get the right
position. This was very implicitly enforced before the regressing bug,
by reframing on position changes (due to the order
StickyScrollContainer::AddFrame was called, ancestors before children).

In order to support dynamic sticky changes without reframing, we need to
handle the case of an existing ancestor switching position to sticky
dynamically.

Luckily we already have the right data-structure for that, so the change
is rather trivial.

Write a testharness test for this because APZ does get the position
right, so it's more future-proof against regressions to just test the
raw layout values.

Differential Revision: https://phabricator.services.mozilla.com/D216858
2024-07-18 20:54:13 +00:00
..
animations
crashtests
multicol
overlay
parsing
resources
static-position
sticky Bug 1897813 [wpt PR 46375] - Map position:sticky tests to web-features, a=testonly 2024-05-30 07:56:04 +00:00
backdrop-inherit-computed.html
backdrop-inherit-rendered-ref.html
backdrop-inherit-rendered.html
backdrop-tree-abiding-slotted.html
change-insets-inside-strict-containment-nested.html
containing-block-change-button-ref.html
containing-block-change-button.html
containing-block-change-scrollframe-ref.html
containing-block-change-scrollframe.html
fixed-z-index-blend-ref.html
fixed-z-index-blend.html
hypothetical-box-scroll-parent-ref.html
hypothetical-box-scroll-parent.html
hypothetical-box-scroll-viewport-ref.html
hypothetical-box-scroll-viewport.html
hypothetical-dynamic-change-001-ref.html
hypothetical-dynamic-change-001.html
hypothetical-dynamic-change-002.html
hypothetical-dynamic-change-003.html
inheritance.html
invalidate-opacity-negative-z-index-ref.html
invalidate-opacity-negative-z-index.html
META.yml
nested-positions-crash.html
position-absolute-abspos-table-dynamic.html
position-absolute-center-001.html
position-absolute-center-002.html
position-absolute-center-003.html
position-absolute-center-004.html
position-absolute-center-006.html
position-absolute-center-007.html
position-absolute-chrome-bug-001.html
position-absolute-chrome-bug-002.html
position-absolute-container-dynamic-002.html
position-absolute-container-dynamic.html
position-absolute-crash-chrome-001.html
position-absolute-crash-chrome-002.html
position-absolute-crash-chrome-003.html
position-absolute-crash-chrome-004.html
position-absolute-crash-chrome-005.html
position-absolute-crash-chrome-006.html
position-absolute-crash-chrome-007.html
position-absolute-crash-chrome-008.html
position-absolute-crash-chrome-009.html
position-absolute-crash-chrome-010.html
position-absolute-crash-chrome-011.html
position-absolute-crash-chrome-012.html
position-absolute-crash-chrome-013.html
position-absolute-dynamic-auto-overflow.html
position-absolute-dynamic-containing-block.html
position-absolute-dynamic-list-marker.html
position-absolute-dynamic-overflow-001.html
position-absolute-dynamic-overflow-002.html
position-absolute-dynamic-relayout-001.html
position-absolute-dynamic-relayout-002.html
position-absolute-dynamic-relayout-003.html
position-absolute-dynamic-relayout-004.html
position-absolute-dynamic-static-position-flex.html
position-absolute-dynamic-static-position-floats-001.html
position-absolute-dynamic-static-position-floats-002.html
position-absolute-dynamic-static-position-floats-003.html
position-absolute-dynamic-static-position-floats-004.html
position-absolute-dynamic-static-position-inline.html
position-absolute-dynamic-static-position-margin-001.html
position-absolute-dynamic-static-position-margin-002.html
position-absolute-dynamic-static-position-table-cell.html
position-absolute-dynamic-static-position.html
position-absolute-fieldset.html
position-absolute-fit-content.html
position-absolute-iframe-print-001.sub.html
position-absolute-iframe-print-002.sub.html
position-absolute-iframe-print-ref.html
position-absolute-in-inline-001.html
position-absolute-in-inline-002.html
position-absolute-in-inline-003.html
position-absolute-in-inline-004.html
position-absolute-in-inline-crash.html
position-absolute-large-negative-inset-ref.html
position-absolute-large-negative-inset.html
position-absolute-margin-auto-001.html
position-absolute-multicol-001.html
position-absolute-padding-percentage.html
position-absolute-percentage-height.html
position-absolute-replaced-intrinsic-size.tentative.html
position-absolute-replaced-minmax.html
position-absolute-replaced-no-intrinsic-size.tentative.html
position-absolute-replaced-with-display-table.html
position-absolute-root-element-flex.html
position-absolute-root-element-grid.html
position-absolute-root-element-ref.html
position-absolute-semi-replaced-stretch-button-ref.html
position-absolute-semi-replaced-stretch-button.html
position-absolute-semi-replaced-stretch-input-ref.html
position-absolute-semi-replaced-stretch-input.html
position-absolute-semi-replaced-stretch-other-ref.html
position-absolute-semi-replaced-stretch-other.html
position-absolute-table-001.html
position-absolute-under-non-containing-stacking-context-ref.html
position-absolute-under-non-containing-stacking-context.html
position-change-ref.html
position-change.html
position-fixed-at-bottom-right-on-viewport.html
position-fixed-dynamic-transformed-sibling-ref.html
position-fixed-dynamic-transformed-sibling.html
position-fixed-overflow-print-ref.html
position-fixed-overflow-print.html
position-fixed-root-element-flex.html
position-fixed-root-element-grid.html
position-fixed-root-element-ref.html
position-fixed-scroll-nested-fixed-ref.html
position-fixed-scroll-nested-fixed.html
position-fixed-scroll-overlap-ref.html
position-fixed-scroll-overlap.html
position-fixed-video-controls-print.html
position-relative-001.html
position-relative-002.html
position-relative-003.html
position-relative-004.html
position-relative-005.html
position-relative-006.html
position-relative-007.html
position-relative-008.html
position-relative-009.html
position-relative-010.html
position-relative-011.html
position-relative-012.html
position-relative-013.html
position-relative-014.html
position-relative-table-caption.html
position-relative-table-left-ref.html
position-relative-table-tbody-left-absolute-child.html
position-relative-table-tbody-left.html
position-relative-table-tbody-top-absolute-child.html
position-relative-table-tbody-top.html
position-relative-table-td-left.html
position-relative-table-td-top.html
position-relative-table-tfoot-left-absolute-child.html
position-relative-table-tfoot-left.html
position-relative-table-tfoot-top-absolute-child.html
position-relative-table-tfoot-top-ref.html
position-relative-table-tfoot-top.html
position-relative-table-thead-left-absolute-child.html
position-relative-table-thead-left.html
position-relative-table-thead-top-absolute-child.html
position-relative-table-thead-top.html
position-relative-table-top-ref.html
position-relative-table-tr-left-absolute-child.html
position-relative-table-tr-left.html
position-relative-table-tr-top-absolute-child.html
position-relative-table-tr-top.html
position-sticky-dynamic-ancestor-001.html Bug 1908242 - Make sure that sticky items are processed in the right order. r=TYLin, a=dmeehan 2024-07-18 20:54:13 +00:00
positon-absolute-scrollable-overflow-001.html
z-index-blend-will-change-overlapping-layers-ref.html
z-index-blend-will-change-overlapping-layers.html