commit bc30450405eaae2370961abeb74277dd2de7346d parent 927298adbebc8008d2cc38843ef6ce77d702c8d0 Author: agoloman <agoloman@mozilla.com> Date: Thu, 2 Oct 2025 23:29:58 +0300 Revert (Bug 1962598, Bug 1992124): for causing wpt failures. This reverts commit 13f52674383ba53ddeff020cecc9d55ef9eb7c8d. Revert "Bug 1962598 - Implement full @position-try fallback for anchor positioning. r=layout-anchor-positioning-reviewers,layout-reviewers,dshin" This reverts commit 9903a171b5ef220b3d2692be57915a93cc58be09. Revert "Bug 1992124 - Ignore invalid @position-try rules. r=layout-anchor-positioning-reviewers,layout-reviewers,dshin" This reverts commit bf0542d5275f3b66542f13a55e8fea141450cf2a. Revert "Bug 1962598 - Add some missing expectations that I forgot to git add." This reverts commit c7e03c99997194fbca9b9fd5e2d43da0dc17a6a1. Diffstat:
44 files changed, 179 insertions(+), 424 deletions(-)
diff --git a/layout/generic/AbsoluteContainingBlock.cpp b/layout/generic/AbsoluteContainingBlock.cpp @@ -835,25 +835,6 @@ void AbsoluteContainingBlock::ResolveAutoMarginsAfterLayout( } } -struct MOZ_STACK_CLASS MOZ_RAII AutoFallbackStyleSetter { - AutoFallbackStyleSetter(nsIFrame* aFrame, ComputedStyle* aFallbackStyle) - : mFrame(aFrame) { - if (aFallbackStyle) { - mOldStyle = aFrame->SetComputedStyleWithoutNotification(aFallbackStyle); - } - } - - ~AutoFallbackStyleSetter() { - if (mOldStyle) { - mFrame->SetComputedStyleWithoutNotification(std::move(mOldStyle)); - } - } - - private: - nsIFrame* const mFrame; - RefPtr<ComputedStyle> mOldStyle; -}; - // XXX Optimize the case where it's a resize reflow and the absolutely // positioned child has the exact same size and position and skip the // reflow... @@ -891,9 +872,9 @@ void AbsoluteContainingBlock::ReflowAbsoluteFrame( #endif // DEBUG const bool isGrid = aFlags.contains(AbsPosReflowFlag::IsGridContainerCB); + const auto* stylePos = aKidFrame->StylePosition(); // TODO(bug 1989059): position-try-order. - auto fallbacks = - aKidFrame->StylePosition()->mPositionTryFallbacks._0.AsSpan(); + auto fallbacks = stylePos->mPositionTryFallbacks._0.AsSpan(); Maybe<uint32_t> currentFallbackIndex; // TODO(emilio): Right now fallback only applies to position-area, which only // makes a difference with a default anchor... Generalize it? @@ -912,59 +893,33 @@ void AbsoluteContainingBlock::ReflowAbsoluteFrame( } } } - const StylePositionTryFallbacksItem* currentFallback = nullptr; - RefPtr<ComputedStyle> currentFallbackStyle; - - auto TryAdvanceFallback = [&]() -> bool { - if (fallbacks.IsEmpty()) { - return false; - } - uint32_t nextFallbackIndex = - currentFallbackIndex ? *currentFallbackIndex + 1 : 0; - if (nextFallbackIndex >= fallbacks.Length()) { - return false; - } - const StylePositionTryFallbacksItem* nextFallback; - RefPtr<ComputedStyle> nextFallbackStyle; - while (true) { - nextFallback = &fallbacks[nextFallbackIndex]; - if (nextFallback->IsIdentAndOrTactic()) { - auto* ident = nextFallback->AsIdentAndOrTactic().ident.AsAtom(); - if (!ident->IsEmpty()) { - nextFallbackStyle = aPresContext->StyleSet()->ResolvePositionTry( - *aKidFrame->GetContent()->AsElement(), *aKidFrame->Style(), - ident); - if (!nextFallbackStyle) { - // No @position-try rule for this name was found, per spec we should - // skip it. - nextFallbackIndex++; - if (nextFallbackIndex >= fallbacks.Length()) { - return false; - } - } - } - } - break; + do { + const StylePositionTryFallbacksItem* currentFallback = nullptr; + RefPtr<ComputedStyle> currentFallbackStyle; + if (currentFallbackIndex) { + currentFallback = &fallbacks[*currentFallbackIndex]; } - currentFallbackIndex = Some(nextFallbackIndex); - currentFallback = nextFallback; - currentFallbackStyle = std::move(nextFallbackStyle); - return true; - }; - do { - AutoFallbackStyleSetter fallback(aKidFrame, currentFallbackStyle); const nsRect usedCb = [&] { if (isGrid) { // TODO(emilio): how does position-area interact with grid? return nsGridContainerFrame::GridItemCB(aKidFrame); } - auto positionArea = aKidFrame->StylePosition()->mPositionArea; + auto positionArea = stylePos->mPositionArea; const StylePositionTryFallbacksTryTactic* tactic = nullptr; if (currentFallback) { if (currentFallback->IsIdentAndOrTactic()) { const auto& item = currentFallback->AsIdentAndOrTactic(); + if (!item.ident.AsAtom()->IsEmpty()) { + currentFallbackStyle = aPresContext->StyleSet()->ResolvePositionTry( + *aKidFrame->GetContent()->AsElement(), *aKidFrame->Style(), + item.ident.AsAtom()); + if (currentFallbackStyle) { + positionArea = + currentFallbackStyle->StylePosition()->mPositionArea; + } + } tactic = &item.try_tactic; } else { MOZ_ASSERT(currentFallback->IsPositionArea()); @@ -1204,18 +1159,21 @@ void AbsoluteContainingBlock::ReflowAbsoluteFrame( aKidFrame->DidReflow(aPresContext, &kidReflowInput); - if (usedCb.Contains(aKidFrame->GetRect()) && aStatus.IsComplete()) { - // We don't overflow our CB, no further fallback needed. - break; - } - - if (!TryAdvanceFallback()) { - // If there are no further fallbacks, we're done. + if (fallbacks.IsEmpty() || + (currentFallbackIndex && + *currentFallbackIndex >= fallbacks.Length() - 1) || + (usedCb.Contains(aKidFrame->GetRect()) && aStatus.IsComplete())) { + // If there are no further fallbacks, or we don't overflow, we're done. break; } // Try with the next fallback. aKidFrame->AddStateBits(NS_FRAME_IS_DIRTY); + if (currentFallbackIndex) { + (*currentFallbackIndex)++; + } else { + currentFallbackIndex.emplace(0); + } aStatus.Reset(); } while (true); diff --git a/layout/generic/nsIFrame.h b/layout/generic/nsIFrame.h @@ -957,16 +957,15 @@ class nsIFrame : public nsQueryFrame { } /** - * SetComputedStyleWithoutNotification is for changes to the style that should - * suppress style change processing, in other words, those that aren't really - * changes. This generally means only changes that happen during frame - * construction, or those that get handled out of band, like @position-try - * fallback. - * @return the old style. - */ - RefPtr<ComputedStyle> SetComputedStyleWithoutNotification( - RefPtr<ComputedStyle> aStyle) { - return std::exchange(mComputedStyle, std::move(aStyle)); + * SetComputedStyleWithoutNotification is for changes to the style + * context that should suppress style change processing, in other + * words, those that aren't really changes. This generally means only + * changes that happen during frame construction. + */ + void SetComputedStyleWithoutNotification(ComputedStyle* aStyle) { + if (aStyle != mComputedStyle) { + mComputedStyle = aStyle; + } } protected: diff --git a/testing/web-platform/meta/css/css-anchor-position/anchor-center-fallback-transition-behavior.html.ini b/testing/web-platform/meta/css/css-anchor-position/anchor-center-fallback-transition-behavior.html.ini @@ -1,3 +0,0 @@ -[anchor-center-fallback-transition-behavior.html] - [anchor-center aligned bottom anchored element overflowing IMCB] - expected: FAIL diff --git a/testing/web-platform/meta/css/css-anchor-position/anchor-invalid-fallback.html.ini b/testing/web-platform/meta/css/css-anchor-position/anchor-invalid-fallback.html.ini @@ -0,0 +1,3 @@ +[anchor-invalid-fallback.html] + [Flip to invalid anchor()] + expected: FAIL diff --git a/testing/web-platform/meta/css/css-anchor-position/anchor-scroll-chained-fallback.html.ini b/testing/web-platform/meta/css/css-anchor-position/anchor-scroll-chained-fallback.html.ini @@ -0,0 +1,2 @@ +[anchor-scroll-chained-fallback.html] + expected: FAIL diff --git a/testing/web-platform/meta/css/css-anchor-position/anchor-scroll-position-try-001.html.ini b/testing/web-platform/meta/css/css-anchor-position/anchor-scroll-position-try-001.html.ini @@ -1,9 +1,14 @@ [anchor-scroll-position-try-001.html] [Scroll down until the top edge of #anchor touches container but not overflowing] - expected: [PASS, FAIL] + expected: + [PASS, FAIL] [Scroll further up, where the second option no longer fits] - expected: [PASS, FAIL] + expected: + [PASS, FAIL] + + [Scroll further down, making the first fallback position overflow by 1px] + expected: FAIL [Scroll back up so that both the first and second options fit.] expected: FAIL diff --git a/testing/web-platform/meta/css/css-anchor-position/anchor-scroll-position-try-002.html.ini b/testing/web-platform/meta/css/css-anchor-position/anchor-scroll-position-try-002.html.ini @@ -0,0 +1,3 @@ +[anchor-scroll-position-try-002.html] + [Should use the second fallback position after scrolling left] + expected: FAIL diff --git a/testing/web-platform/meta/css/css-anchor-position/anchor-scroll-position-try-004.html.ini b/testing/web-platform/meta/css/css-anchor-position/anchor-scroll-position-try-004.html.ini @@ -1,4 +1,7 @@ [anchor-scroll-position-try-004.html] + [Should use the second fallback position after scrolling viewport down] + expected: FAIL + [Should use the third fallback position after scrolling the vrl scroller left] expected: if os == "android": [PASS, FAIL] diff --git a/testing/web-platform/meta/css/css-anchor-position/anchor-scroll-position-try-005.html.ini b/testing/web-platform/meta/css/css-anchor-position/anchor-scroll-position-try-005.html.ini @@ -0,0 +1,3 @@ +[anchor-scroll-position-try-005.html] + [Should use the second fallback position after scrolling left] + expected: FAIL diff --git a/testing/web-platform/meta/css/css-anchor-position/anchor-scroll-position-try-006.html.ini b/testing/web-platform/meta/css/css-anchor-position/anchor-scroll-position-try-006.html.ini @@ -1,4 +1,7 @@ [anchor-scroll-position-try-006.html] + [Should use the last (fourth) position option initially] + expected: FAIL + [Should still use the last position option as long as it fits.] expected: FAIL diff --git a/testing/web-platform/meta/css/css-anchor-position/anchor-scroll-position-try-007.html.ini b/testing/web-platform/meta/css/css-anchor-position/anchor-scroll-position-try-007.html.ini @@ -1,4 +1,7 @@ [anchor-scroll-position-try-007.html] + [Should use the last position option initially] + expected: FAIL + [Should stay at initial position, since it still fits] expected: FAIL diff --git a/testing/web-platform/meta/css/css-anchor-position/anchor-scroll-position-try-008.html.ini b/testing/web-platform/meta/css/css-anchor-position/anchor-scroll-position-try-008.html.ini @@ -1,4 +1,7 @@ [anchor-scroll-position-try-008.html] + [Should use the last fallback position initially] + expected: FAIL + [Should use the third fallback position with enough space left] expected: FAIL diff --git a/testing/web-platform/meta/css/css-anchor-position/anchor-scroll-position-try-009.html.ini b/testing/web-platform/meta/css/css-anchor-position/anchor-scroll-position-try-009.html.ini @@ -1,4 +1,7 @@ [anchor-scroll-position-try-009.html] + [Should use the last fallback position initially] + expected: FAIL + [Should use the third fallback position with enough space right] expected: FAIL diff --git a/testing/web-platform/meta/css/css-anchor-position/anchor-scroll-position-try-010.html.ini b/testing/web-platform/meta/css/css-anchor-position/anchor-scroll-position-try-010.html.ini @@ -1,4 +1,7 @@ [anchor-scroll-position-try-010.html] + [Should use the last fallback position initially] + expected: FAIL + [Should use the third fallback position with enough space right] expected: FAIL diff --git a/testing/web-platform/meta/css/css-anchor-position/anchor-scroll-position-try-013.html.ini b/testing/web-platform/meta/css/css-anchor-position/anchor-scroll-position-try-013.html.ini @@ -4,3 +4,6 @@ [anchor-scroll-position-try-013 2] expected: FAIL + + [anchor-scroll-position-try-013 1] + expected: FAIL diff --git a/testing/web-platform/meta/css/css-anchor-position/anchor-scroll-position-try-014.html.ini b/testing/web-platform/meta/css/css-anchor-position/anchor-scroll-position-try-014.html.ini @@ -1,9 +1,3 @@ [anchor-scroll-position-try-014.html] [anchor-scroll-position-try-014 1] expected: FAIL - - [anchor-scroll-position-try-014] - expected: FAIL - - [anchor-scroll-position-try-014 2] - expected: FAIL diff --git a/testing/web-platform/meta/css/css-anchor-position/last-successful-animation.html.ini b/testing/web-platform/meta/css/css-anchor-position/last-successful-animation.html.ini @@ -2,5 +2,5 @@ [No successful position, keep flip-block] expected: FAIL - [Starts rendering with flip-block] + [Base position without fallback now successful] expected: FAIL diff --git a/testing/web-platform/meta/css/css-anchor-position/last-successful-basic.html.ini b/testing/web-platform/meta/css/css-anchor-position/last-successful-basic.html.ini @@ -2,5 +2,5 @@ [No successful position, keep flip-block] expected: FAIL - [Starts rendering with flip-block] + [Base position without fallback now successful] expected: FAIL diff --git a/testing/web-platform/meta/css/css-anchor-position/last-successful-change-fallbacks-position-area.html.ini b/testing/web-platform/meta/css/css-anchor-position/last-successful-change-fallbacks-position-area.html.ini @@ -1,9 +1,3 @@ [last-successful-change-fallbacks-position-area.html] [position-try-fallbacks is set to a different value, both base and fallback works, uses base because last successful position option is invalidated] expected: FAIL - - [Starts rendering with fallback] - expected: FAIL - - [Both base and fallback works, position-try-fallbacks is set to the same value, keeps fallback] - expected: FAIL diff --git a/testing/web-platform/meta/css/css-anchor-position/last-successful-change-fallbacks.html.ini b/testing/web-platform/meta/css/css-anchor-position/last-successful-change-fallbacks.html.ini @@ -1,9 +1,3 @@ [last-successful-change-fallbacks.html] [No successful position, keep flip-block] expected: FAIL - - [Starts rendering with flip-block] - expected: FAIL - - [No successful position, last successful invalidated by position-try-fallbacks change] - expected: FAIL diff --git a/testing/web-platform/meta/css/css-anchor-position/last-successful-change-try-rule.html.ini b/testing/web-platform/meta/css/css-anchor-position/last-successful-change-try-rule.html.ini @@ -2,5 +2,5 @@ [No successful position, keep --try] expected: FAIL - [Starts rendering with --try] + [No successful position, last successful invalidated by @position-try change] expected: FAIL diff --git a/testing/web-platform/meta/css/css-anchor-position/last-successful-fallback-to-base-style.html.ini b/testing/web-platform/meta/css/css-anchor-position/last-successful-fallback-to-base-style.html.ini @@ -4,6 +4,3 @@ [Both base position and flip-inline works, keep base position since it's the last successful option] expected: FAIL - - [Starts rendering with flip-inline fallback] - expected: FAIL diff --git a/testing/web-platform/meta/css/css-anchor-position/last-successful-iframe.html.ini b/testing/web-platform/meta/css/css-anchor-position/last-successful-iframe.html.ini @@ -1,3 +1,6 @@ [last-successful-iframe.html] [No successful position, keep flip-block] expected: FAIL + + [Base position without fallback now successful] + expected: FAIL diff --git a/testing/web-platform/meta/css/css-anchor-position/last-successful-intermediate-ignored.html.ini b/testing/web-platform/meta/css/css-anchor-position/last-successful-intermediate-ignored.html.ini @@ -1,6 +1,3 @@ [last-successful-intermediate-ignored.html] [No successful position (with intermediate successful), keep flip-block] expected: FAIL - - [Starts rendering with flip-block] - expected: FAIL diff --git a/testing/web-platform/meta/css/css-anchor-position/position-anchor-001.html.ini b/testing/web-platform/meta/css/css-anchor-position/position-anchor-001.html.ini @@ -0,0 +1,2 @@ +[position-anchor-001.html] + expected: FAIL diff --git a/testing/web-platform/meta/css/css-anchor-position/position-area-in-position-try.html.ini b/testing/web-platform/meta/css/css-anchor-position/position-area-in-position-try.html.ini @@ -137,29 +137,41 @@ [span-bottom span-all] expected: FAIL - [y-self-start x-self-start] + [Placement: --top] expected: FAIL - [y-self-start center] + [Placement: --left] expected: FAIL - [y-self-start x-self-end] + [Placement: --right, --top] expected: FAIL - [center x-self-start] + [Placement: --bottom, --top] expected: FAIL - [center x-self-end] + [Placement: --bottom, --right, --top] expected: FAIL - [y-self-end x-self-start] + [Placement: --bottom, --right, --left, --top] expected: FAIL - [y-self-end center] + [Placement: --bottom, --left, --top, --right] expected: FAIL - [y-self-end x-self-end] + [Placement: --right flip-inline] expected: FAIL - [span-y-self-start span-x-self-end] + [Placement: --bottom flip-block] + expected: FAIL + + [Placement: --left flip-start] + expected: FAIL + + [Placement: --left flip-inline, --top] + expected: FAIL + + [Placement: --top flip-block, --left] + expected: FAIL + + [Placement: --left flip-start flip-block, --left] expected: FAIL diff --git a/testing/web-platform/meta/css/css-anchor-position/position-area-value.html.ini b/testing/web-platform/meta/css/css-anchor-position/position-area-value.html.ini @@ -1,3 +0,0 @@ -[position-area-value.html] - [top left] - expected: FAIL diff --git a/testing/web-platform/meta/css/css-anchor-position/position-try-001.html.ini b/testing/web-platform/meta/css/css-anchor-position/position-try-001.html.ini @@ -10,6 +10,3 @@ [.target 5] expected: FAIL - - [.target 6] - expected: FAIL diff --git a/testing/web-platform/meta/css/css-anchor-position/position-try-003.html.ini b/testing/web-platform/meta/css/css-anchor-position/position-try-003.html.ini @@ -4,3 +4,6 @@ [.anchored 2] expected: FAIL + + [.anchored 3] + expected: FAIL diff --git a/testing/web-platform/meta/css/css-anchor-position/position-try-cascade-layer-reorder.html.ini b/testing/web-platform/meta/css/css-anchor-position/position-try-cascade-layer-reorder.html.ini @@ -0,0 +1,6 @@ +[position-try-cascade-layer-reorder.html] + [When in the same layer, the last rule of each name wins] + expected: FAIL + + [When in different layers, the rule of each name in the highest layer wins] + expected: FAIL diff --git a/testing/web-platform/meta/css/css-anchor-position/position-try-cascade.html.ini b/testing/web-platform/meta/css/css-anchor-position/position-try-cascade.html.ini @@ -1,3 +1,18 @@ [position-try-cascade.html] + [@position-try rule applies] + expected: FAIL + + [@position-try rule wins over inline style] + expected: FAIL + + [@position-try rule does not win over !important] + expected: FAIL + + [@position-try rule does not win over animations] + expected: FAIL + [@position-try rule does not win over transitions] expected: FAIL + + [@position-try revert / revert-layer reverts to user / author origin] + expected: FAIL diff --git a/testing/web-platform/meta/css/css-anchor-position/position-try-container-query.html.ini b/testing/web-platform/meta/css/css-anchor-position/position-try-container-query.html.ini @@ -1,3 +1,6 @@ [position-try-container-query.html] + [Size container query responds to fallback width] + expected: FAIL + [Size container query responds to fallback width and applies height to not fit the first fallback] expected: FAIL diff --git a/testing/web-platform/meta/css/css-anchor-position/position-try-dynamic.html.ini b/testing/web-platform/meta/css/css-anchor-position/position-try-dynamic.html.ini @@ -0,0 +1,3 @@ +[position-try-dynamic.html] + [Left position set to right edge of anchor with @position-try] + expected: FAIL diff --git a/testing/web-platform/meta/css/css-anchor-position/position-try-fallbacks-limit.html.ini b/testing/web-platform/meta/css/css-anchor-position/position-try-fallbacks-limit.html.ini @@ -1,3 +1,6 @@ [position-try-fallbacks-limit.html] [Try fallbacks which are not found are not part of the limit] expected: FAIL + + [Must support At least five try fallbacks] + expected: FAIL diff --git a/testing/web-platform/meta/css/css-anchor-position/position-try-initial-transition.html.ini b/testing/web-platform/meta/css/css-anchor-position/position-try-initial-transition.html.ini @@ -0,0 +1,3 @@ +[position-try-initial-transition.html] + [No transition for initial style with @position-try] + expected: FAIL diff --git a/testing/web-platform/meta/css/css-anchor-position/position-try-order-basic.html.ini b/testing/web-platform/meta/css/css-anchor-position/position-try-order-basic.html.ini @@ -1,45 +0,0 @@ -[position-try-order-basic.html] - [most-height --right, --left | --right] - expected: FAIL - - [most-inline-size --right, --left | --left] - expected: FAIL - - [most-width --right, --left | --left] - expected: FAIL - - [most-width --bottom, --top | --bottom] - expected: FAIL - - [most-block-size --bottom, --top | --top] - expected: FAIL - - [most-height --bottom, --top | --top] - expected: FAIL - - [most-inline-size --right, --left, --bottom, --top | --bottom] - expected: FAIL - - [most-inline-size --right, --left, --top, --bottom | --top] - expected: FAIL - - [most-block-size --bottom, --top, --right, --left | --right] - expected: FAIL - - [most-block-size --bottom, --top, --left, --right | --left] - expected: FAIL - - [most-block-size --bottom-sweep, --left-sweep | --left-sweep] - expected: FAIL - - [most-inline-size --right-sweep, --left-sweep, --bottom-sweep, --top-sweep | --left-sweep] - expected: FAIL - - [most-block-size --right-sweep, --left-sweep, --bottom-sweep, --top-sweep | --top-sweep] - expected: FAIL - - [most-inline-size\n --right-sweep, --left-sweep, --bottom-sweep, --top-sweep,\n /* --right, --left, --bottom, --top */\n --bottom\n | --bottom] - expected: FAIL - - [most-block-size\n --right-sweep, --left-sweep, --bottom-sweep, --top-sweep,\n /* --right, --left, --bottom, --top */\n --right\n | --right] - expected: FAIL diff --git a/testing/web-platform/meta/css/css-anchor-position/position-try-order-position-area.html.ini b/testing/web-platform/meta/css/css-anchor-position/position-try-order-position-area.html.ini @@ -1,47 +1,47 @@ [position-try-order-position-area.html] expected: if (processor == "x86") and (os == "linux"): [OK, CRASH] - [most-height --right, --left | --right] + [--right, --left, --bottom, --top | --right] expected: FAIL - [most-width --bottom, --top | --bottom] + [normal --right, --left, --bottom, --top | --right] expected: FAIL - [most-inline-size --right, --left, --bottom, --top | --bottom] + [normal --top, --left, --bottom, --right | --top] expected: FAIL - [most-inline-size --right, --left, --top, --bottom | --top] + [most-block-size --right, --left | --right] expected: FAIL - [most-block-size --bottom, --top, --right, --left | --right] + [most-height --right, --left | --right] expected: FAIL - [most-block-size --bottom, --top, --left, --right | --left] + [most-inline-size --bottom, --top | --bottom] expected: FAIL - [most-inline-size --right-sweep, --left-sweep, --bottom-sweep, --top-sweep | --left-sweep] + [most-width --bottom, --top | --bottom] expected: FAIL - [most-inline-size --right, --left | --left] + [most-inline-size --right, --left, --bottom, --top | --bottom] expected: FAIL - [most-width --right, --left | --left] + [most-inline-size --right, --left, --top, --bottom | --top] expected: FAIL - [most-block-size --bottom, --top | --top] + [most-block-size --bottom, --top, --right, --left | --right] expected: FAIL - [most-height --bottom, --top | --top] + [most-block-size --bottom, --top, --left, --right | --left] expected: FAIL - [most-block-size --bottom-sweep, --left-sweep | --left-sweep] + [most-inline-size --left-sweep, --bottom-sweep | --left-sweep] expected: FAIL - [most-block-size --right-sweep, --left-sweep, --bottom-sweep, --top-sweep | --top-sweep] + [most-inline-size --bottom-sweep, --left-sweep | --bottom-sweep] expected: FAIL - [most-inline-size\n --right-sweep, --left-sweep, --bottom-sweep, --top-sweep,\n /* --right, --left, --bottom, --top */\n --bottom\n | --bottom] + [most-block-size --left-sweep, --bottom-sweep | --left-sweep] expected: FAIL - [most-block-size\n --right-sweep, --left-sweep, --bottom-sweep, --top-sweep,\n /* --right, --left, --bottom, --top */\n --right\n | --right] + [most-inline-size --right-sweep, --left-sweep, --bottom-sweep, --top-sweep | --left-sweep] expected: FAIL diff --git a/testing/web-platform/meta/css/css-anchor-position/position-try-pseudo-element.html.ini b/testing/web-platform/meta/css/css-anchor-position/position-try-pseudo-element.html.ini @@ -0,0 +1,8 @@ +[position-try-pseudo-element.html] + expected: + if (processor == "x86") and (os == "linux"): [OK, CRASH] + [::before using second fallback] + expected: FAIL + + [::after using first fallback] + expected: FAIL diff --git a/testing/web-platform/meta/css/css-anchor-position/try-tactic-alignment.html.ini b/testing/web-platform/meta/css/css-anchor-position/try-tactic-alignment.html.ini @@ -76,39 +76,3 @@ [flip-block, align-self:flex-end] expected: FAIL - - [flip-inline, justify-self:start;align-self:start, justify-self:end;align-self:start, ltr, horizontal-tb] - expected: FAIL - - [flip-block, justify-self:start;align-self:start, justify-self:start;align-self:end, ltr, horizontal-tb] - expected: FAIL - - [flip-block flip-inline, justify-self:start;align-self:start, justify-self:end;align-self:end, ltr, horizontal-tb] - expected: FAIL - - [flip-start, justify-self:start;align-self:end, justify-self:end;align-self:start, ltr, horizontal-tb] - expected: FAIL - - [flip-block flip-start, justify-self:start;align-self:start, justify-self:end;align-self:start, ltr, horizontal-tb] - expected: FAIL - - [flip-inline flip-start, justify-self:start;align-self:start, justify-self:start;align-self:end, ltr, horizontal-tb] - expected: FAIL - - [flip-block flip-inline flip-start, justify-self:start;align-self:start, justify-self:end;align-self:end, ltr, horizontal-tb] - expected: FAIL - - [flip-inline, justify-self:left;align-self:start, justify-self:right;align-self:start, ltr, horizontal-tb] - expected: FAIL - - [flip-start, justify-self:left;align-self:end, justify-self:end;align-self:self-start, ltr, horizontal-tb] - expected: FAIL - - [flip-start, justify-self:right;align-self:start, justify-self:start;align-self:self-end, ltr, horizontal-tb] - expected: FAIL - - [flip-start, justify-self:left;align-self:end, justify-self:end;align-self:self-start, ltr, vertical-rl] - expected: FAIL - - [flip-start, justify-self:left;align-self:start, justify-self:start;align-self:self-end, rtl, horizontal-tb] - expected: FAIL diff --git a/testing/web-platform/meta/css/css-anchor-position/try-tactic-anchor.html.ini b/testing/web-platform/meta/css/css-anchor-position/try-tactic-anchor.html.ini @@ -1,126 +1,21 @@ [try-tactic-anchor.html] - [flip-start] - expected: FAIL - - [flip-inline flip-start] - expected: FAIL - - [flip-start flip-block] - expected: FAIL - - [Can transform a value post-var-substitution] - expected: FAIL - - [flip-block, right:anchor(left), right:anchor(left)] - expected: FAIL - - [flip-inline, bottom:anchor(top), bottom:anchor(top)] - expected: FAIL - - [flip-inline, right:anchor(left), left:anchor(right)] - expected: FAIL - - [flip-inline, left:anchor(right), right:anchor(left)] - expected: FAIL - - [flip-start, right:anchor(left), bottom:anchor(top)] - expected: FAIL - - [flip-start, bottom:anchor(top), right:anchor(left)] - expected: FAIL - - [flip-inline flip-start, right:anchor(left), top:anchor(bottom)] - expected: FAIL - - [flip-start flip-inline, top:anchor(bottom), right:anchor(left)] - expected: FAIL - - [flip-start flip-block, left:anchor(right), bottom:anchor(top)] - expected: FAIL - - [flip-block flip-start, bottom:anchor(top), left:anchor(right)] - expected: FAIL - - [flip-start, left:anchor(right), top:anchor(bottom)] - expected: FAIL - - [flip-start, top:anchor(bottom), left:anchor(right)] - expected: FAIL - - [flip-block, bottom:anchor(top), top:anchor(bottom)] - expected: FAIL - - [flip-block, top:anchor(bottom), bottom:anchor(top)] - expected: FAIL - - [flip-inline, right:anchor(start), left:anchor(right)] - expected: FAIL - - [flip-inline, left:anchor(end), right:anchor(left)] - expected: FAIL - - [flip-start, right:anchor(start), bottom:anchor(top)] - expected: FAIL - - [flip-start, bottom:anchor(start), right:anchor(left)] - expected: FAIL - - [flip-inline flip-start, right:anchor(start), top:anchor(bottom)] - expected: FAIL - - [flip-start flip-inline, top:anchor(end), right:anchor(left)] - expected: FAIL - - [flip-start flip-block, left:anchor(end), bottom:anchor(top)] - expected: FAIL - - [flip-block flip-start, bottom:anchor(start), left:anchor(right)] + [CSS Anchor Positioning: try-tactic, anchor()] expected: FAIL - [flip-start, left:anchor(end), top:anchor(bottom)] + [flip-inline] expected: FAIL - [flip-start, top:anchor(end), left:anchor(right)] + [flip-block] expected: FAIL - [flip-block, bottom:anchor(start), top:anchor(bottom)] - expected: FAIL - - [flip-block, top:anchor(end), bottom:anchor(top)] - expected: FAIL - - [flip-inline, right:anchor(self-start), left:anchor(right)] - expected: FAIL - - [flip-inline, left:anchor(self-end), right:anchor(left)] - expected: FAIL - - [flip-start, right:anchor(self-start), bottom:anchor(top)] - expected: FAIL - - [flip-start, bottom:anchor(self-start), right:anchor(left)] - expected: FAIL - - [flip-inline flip-start, right:anchor(self-start), top:anchor(bottom)] - expected: FAIL - - [flip-start flip-inline, top:anchor(self-end), right:anchor(left)] - expected: FAIL - - [flip-start flip-block, left:anchor(self-end), bottom:anchor(top)] - expected: FAIL - - [flip-block flip-start, bottom:anchor(self-start), left:anchor(right)] - expected: FAIL - - [flip-start, left:anchor(self-end), top:anchor(bottom)] + [flip-start] expected: FAIL - [flip-start, top:anchor(self-end), left:anchor(right)] + [flip-inline flip-start] expected: FAIL - [flip-block, bottom:anchor(self-start), top:anchor(bottom)] + [flip-start flip-block] expected: FAIL - [flip-block, top:anchor(self-end), bottom:anchor(top)] + [Can transform a value post-var-substitution] expected: FAIL diff --git a/testing/web-platform/meta/css/css-anchor-position/try-tactic-basic.html.ini b/testing/web-platform/meta/css/css-anchor-position/try-tactic-basic.html.ini @@ -20,6 +20,9 @@ [--pf flip-block flip-inline flip-start] expected: FAIL + [--pf] + expected: FAIL + [--pf flip-inline flip-block] expected: FAIL diff --git a/testing/web-platform/meta/css/css-anchor-position/try-tactic-margin.html.ini b/testing/web-platform/meta/css/css-anchor-position/try-tactic-margin.html.ini @@ -19,3 +19,6 @@ [--pf flip-block flip-inline flip-start] expected: FAIL + + [--pf] + expected: FAIL diff --git a/testing/web-platform/meta/css/css-anchor-position/try-tactic-percentage.html.ini b/testing/web-platform/meta/css/css-anchor-position/try-tactic-percentage.html.ini @@ -1,90 +0,0 @@ -[try-tactic-percentage.html] - [flip-inline, left:anchor(10%), right:anchor(90%)] - expected: FAIL - - [flip-inline, left:anchor(calc(10% + 20%)), right:anchor(70%)] - expected: FAIL - - [flip-block, left:anchor(0%), left:anchor(0%)] - expected: FAIL - - [flip-block, left:anchor(100%), left:anchor(100%)] - expected: FAIL - - [flip-block, top:anchor(0%), bottom:anchor(100%)] - expected: FAIL - - [flip-block, top:anchor(100%), bottom:anchor(0%)] - expected: FAIL - - [flip-inline, left:anchor(0%), right:anchor(100%)] - expected: FAIL - - [flip-inline, left:anchor(100%), right:anchor(0%)] - expected: FAIL - - [flip-inline, top:anchor(0%), top:anchor(0%)] - expected: FAIL - - [flip-inline, top:anchor(100%), top:anchor(100%)] - expected: FAIL - - [flip-block flip-inline, left:anchor(0%), right:anchor(100%)] - expected: FAIL - - [flip-block flip-inline, left:anchor(100%), right:anchor(0%)] - expected: FAIL - - [flip-block flip-inline, top:anchor(0%), bottom:anchor(100%)] - expected: FAIL - - [flip-block flip-inline, top:anchor(100%), bottom:anchor(0%)] - expected: FAIL - - [flip-start, left:anchor(0%), top:anchor(0%)] - expected: FAIL - - [flip-start, left:anchor(100%), top:anchor(100%)] - expected: FAIL - - [flip-start, bottom:anchor(0%), right:anchor(0%)] - expected: FAIL - - [flip-start, bottom:anchor(100%), right:anchor(100%)] - expected: FAIL - - [flip-block flip-start, left:anchor(0%), top:anchor(0%)] - expected: FAIL - - [flip-block flip-start, left:anchor(100%), top:anchor(100%)] - expected: FAIL - - [flip-block flip-start, bottom:anchor(0%), left:anchor(100%)] - expected: FAIL - - [flip-block flip-start, bottom:anchor(100%), left:anchor(0%)] - expected: FAIL - - [flip-inline flip-start, left:anchor(0%), bottom:anchor(100%)] - expected: FAIL - - [flip-inline flip-start, left:anchor(100%), bottom:anchor(0%)] - expected: FAIL - - [flip-inline flip-start, bottom:anchor(0%), right:anchor(0%)] - expected: FAIL - - [flip-inline flip-start, bottom:anchor(100%), right:anchor(100%)] - expected: FAIL - - [flip-block flip-inline flip-start, left:anchor(0%), bottom:anchor(100%)] - expected: FAIL - - [flip-block flip-inline flip-start, left:anchor(100%), bottom:anchor(0%)] - expected: FAIL - - [flip-block flip-inline flip-start, bottom:anchor(0%), left:anchor(100%)] - expected: FAIL - - [flip-block flip-inline flip-start, bottom:anchor(100%), left:anchor(0%)] - expected: FAIL diff --git a/testing/web-platform/meta/css/css-anchor-position/try-tactic-wm.html.ini b/testing/web-platform/meta/css/css-anchor-position/try-tactic-wm.html.ini @@ -1,4 +1,7 @@ [try-tactic-wm.html] + [ horizontal-tb ltr] + expected: FAIL + [flip-inline horizontal-tb ltr] expected: FAIL