tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

commit 07f7f784b0cdf126477f2d05b62c9b95f8d815e8
parent b13e90b6db834deba5cf8e39f217d992b228a88e
Author: Emilio Cobos Álvarez <emilio@crisal.io>
Date:   Tue, 25 Nov 2025 10:23:01 +0000

Bug 1979593 - Make try-tactic-position-area test rendering, not getComputedStyle(). r=jwatt

Same reasoning as https://github.com/web-platform-tests/wpt/pull/55489
(from bug 1994673) applies to this test.

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

Diffstat:
Dtesting/web-platform/meta/css/css-anchor-position/try-tactic-position-area.html.ini | 393-------------------------------------------------------------------------------
Mtesting/web-platform/tests/css/css-anchor-position/try-tactic-position-area.html | 324++++++++++++++++++++++++++++++++++++++++---------------------------------------
2 files changed, 163 insertions(+), 554 deletions(-)

diff --git a/testing/web-platform/meta/css/css-anchor-position/try-tactic-position-area.html.ini b/testing/web-platform/meta/css/css-anchor-position/try-tactic-position-area.html.ini @@ -1,393 +0,0 @@ -[try-tactic-position-area.html] - [flip-inline, position-area:left top, ltr horizontal-tb] - expected: FAIL - - [flip-inline, position-area:left bottom, ltr horizontal-tb] - expected: FAIL - - [flip-inline, position-area:right bottom, ltr horizontal-tb] - expected: FAIL - - [flip-inline, position-area:right top, ltr horizontal-tb] - expected: FAIL - - [flip-block, position-area:left top, ltr horizontal-tb] - expected: FAIL - - [flip-block, position-area:left bottom, ltr horizontal-tb] - expected: FAIL - - [flip-block, position-area:right bottom, ltr horizontal-tb] - expected: FAIL - - [flip-block, position-area:right top, ltr horizontal-tb] - expected: FAIL - - [flip-block flip-inline, position-area:left top, ltr horizontal-tb] - expected: FAIL - - [flip-block flip-inline, position-area:left bottom, ltr horizontal-tb] - expected: FAIL - - [flip-block flip-inline, position-area:right bottom, ltr horizontal-tb] - expected: FAIL - - [flip-block flip-inline, position-area:right top, ltr horizontal-tb] - expected: FAIL - - [flip-start, position-area:left top, ltr horizontal-tb] - expected: FAIL - - [flip-start, position-area:left bottom, ltr horizontal-tb] - expected: FAIL - - [flip-start, position-area:right bottom, ltr horizontal-tb] - expected: FAIL - - [flip-start, position-area:right top, ltr horizontal-tb] - expected: FAIL - - [flip-block flip-start, position-area:left top, ltr horizontal-tb] - expected: FAIL - - [flip-block flip-start, position-area:left bottom, ltr horizontal-tb] - expected: FAIL - - [flip-block flip-start, position-area:right bottom, ltr horizontal-tb] - expected: FAIL - - [flip-block flip-start, position-area:right top, ltr horizontal-tb] - expected: FAIL - - [flip-inline flip-start, position-area:left top, ltr horizontal-tb] - expected: FAIL - - [flip-inline flip-start, position-area:left bottom, ltr horizontal-tb] - expected: FAIL - - [flip-inline flip-start, position-area:right bottom, ltr horizontal-tb] - expected: FAIL - - [flip-inline flip-start, position-area:right top, ltr horizontal-tb] - expected: FAIL - - [flip-block flip-inline flip-start, position-area:left top, ltr horizontal-tb] - expected: FAIL - - [flip-block flip-inline flip-start, position-area:left bottom, ltr horizontal-tb] - expected: FAIL - - [flip-block flip-inline flip-start, position-area:right bottom, ltr horizontal-tb] - expected: FAIL - - [flip-block flip-inline flip-start, position-area:right top, ltr horizontal-tb] - expected: FAIL - - [flip-block flip-inline, position-area:span-left span-top, ltr horizontal-tb] - expected: FAIL - - [flip-inline, position-area:x-start y-start, ltr horizontal-tb] - expected: FAIL - - [flip-inline, position-area:x-start y-end, ltr horizontal-tb] - expected: FAIL - - [flip-inline, position-area:x-end y-end, ltr horizontal-tb] - expected: FAIL - - [flip-inline, position-area:x-end y-start, ltr horizontal-tb] - expected: FAIL - - [flip-block, position-area:x-start y-start, ltr horizontal-tb] - expected: FAIL - - [flip-block, position-area:x-start y-end, ltr horizontal-tb] - expected: FAIL - - [flip-block, position-area:x-end y-end, ltr horizontal-tb] - expected: FAIL - - [flip-block, position-area:x-end y-start, ltr horizontal-tb] - expected: FAIL - - [flip-block flip-inline, position-area:x-start y-start, ltr horizontal-tb] - expected: FAIL - - [flip-block flip-inline, position-area:x-start y-end, ltr horizontal-tb] - expected: FAIL - - [flip-block flip-inline, position-area:x-end y-end, ltr horizontal-tb] - expected: FAIL - - [flip-block flip-inline, position-area:x-end y-start, ltr horizontal-tb] - expected: FAIL - - [flip-start, position-area:x-start y-start, ltr horizontal-tb] - expected: FAIL - - [flip-start, position-area:x-start y-end, ltr horizontal-tb] - expected: FAIL - - [flip-start, position-area:x-end y-end, ltr horizontal-tb] - expected: FAIL - - [flip-start, position-area:x-end y-start, ltr horizontal-tb] - expected: FAIL - - [flip-block flip-start, position-area:x-start y-start, ltr horizontal-tb] - expected: FAIL - - [flip-block flip-start, position-area:x-start y-end, ltr horizontal-tb] - expected: FAIL - - [flip-block flip-start, position-area:x-end y-end, ltr horizontal-tb] - expected: FAIL - - [flip-block flip-start, position-area:x-end y-start, ltr horizontal-tb] - expected: FAIL - - [flip-inline flip-start, position-area:x-start y-start, ltr horizontal-tb] - expected: FAIL - - [flip-inline flip-start, position-area:x-start y-end, ltr horizontal-tb] - expected: FAIL - - [flip-inline flip-start, position-area:x-end y-end, ltr horizontal-tb] - expected: FAIL - - [flip-inline flip-start, position-area:x-end y-start, ltr horizontal-tb] - expected: FAIL - - [flip-block flip-inline flip-start, position-area:x-start y-start, ltr horizontal-tb] - expected: FAIL - - [flip-block flip-inline flip-start, position-area:x-start y-end, ltr horizontal-tb] - expected: FAIL - - [flip-block flip-inline flip-start, position-area:x-end y-end, ltr horizontal-tb] - expected: FAIL - - [flip-block flip-inline flip-start, position-area:x-end y-start, ltr horizontal-tb] - expected: FAIL - - [flip-block flip-inline, position-area:span-x-start span-y-start, ltr horizontal-tb] - expected: FAIL - - [flip-block flip-inline, position-area:self-x-start self-y-start, ltr horizontal-tb] - expected: FAIL - - [flip-block flip-inline, position-area:span-self-x-start span-self-y-start, ltr horizontal-tb] - expected: FAIL - - [flip-inline, position-area:block-start inline-start, ltr horizontal-tb] - expected: FAIL - - [flip-inline, position-area:block-end inline-start, ltr horizontal-tb] - expected: FAIL - - [flip-inline, position-area:block-end inline-end, ltr horizontal-tb] - expected: FAIL - - [flip-inline, position-area:block-start inline-end, ltr horizontal-tb] - expected: FAIL - - [flip-block, position-area:block-start inline-start, ltr horizontal-tb] - expected: FAIL - - [flip-block, position-area:block-end inline-start, ltr horizontal-tb] - expected: FAIL - - [flip-block, position-area:block-end inline-end, ltr horizontal-tb] - expected: FAIL - - [flip-block, position-area:block-start inline-end, ltr horizontal-tb] - expected: FAIL - - [flip-block flip-inline, position-area:block-start inline-start, ltr horizontal-tb] - expected: FAIL - - [flip-block flip-inline, position-area:block-end inline-start, ltr horizontal-tb] - expected: FAIL - - [flip-block flip-inline, position-area:block-end inline-end, ltr horizontal-tb] - expected: FAIL - - [flip-block flip-inline, position-area:block-start inline-end, ltr horizontal-tb] - expected: FAIL - - [flip-start, position-area:block-start inline-start, ltr horizontal-tb] - expected: FAIL - - [flip-start, position-area:block-end inline-start, ltr horizontal-tb] - expected: FAIL - - [flip-start, position-area:block-end inline-end, ltr horizontal-tb] - expected: FAIL - - [flip-start, position-area:block-start inline-end, ltr horizontal-tb] - expected: FAIL - - [flip-block flip-start, position-area:block-start inline-start, ltr horizontal-tb] - expected: FAIL - - [flip-block flip-start, position-area:block-end inline-start, ltr horizontal-tb] - expected: FAIL - - [flip-block flip-start, position-area:block-end inline-end, ltr horizontal-tb] - expected: FAIL - - [flip-block flip-start, position-area:block-start inline-end, ltr horizontal-tb] - expected: FAIL - - [flip-inline flip-start, position-area:block-start inline-start, ltr horizontal-tb] - expected: FAIL - - [flip-inline flip-start, position-area:block-end inline-start, ltr horizontal-tb] - expected: FAIL - - [flip-inline flip-start, position-area:block-end inline-end, ltr horizontal-tb] - expected: FAIL - - [flip-inline flip-start, position-area:block-start inline-end, ltr horizontal-tb] - expected: FAIL - - [flip-block flip-inline flip-start, position-area:block-start inline-start, ltr horizontal-tb] - expected: FAIL - - [flip-block flip-inline flip-start, position-area:block-end inline-start, ltr horizontal-tb] - expected: FAIL - - [flip-block flip-inline flip-start, position-area:block-end inline-end, ltr horizontal-tb] - expected: FAIL - - [flip-block flip-inline flip-start, position-area:block-start inline-end, ltr horizontal-tb] - expected: FAIL - - [flip-block flip-inline, position-area:span-block-start span-inline-start, ltr horizontal-tb] - expected: FAIL - - [flip-block flip-inline, position-area:self-block-start self-inline-start, ltr horizontal-tb] - expected: FAIL - - [flip-block flip-inline, position-area:span-self-block-start span-self-inline-start, ltr horizontal-tb] - expected: FAIL - - [, position-area:start end, ltr horizontal-tb] - expected: FAIL - - [flip-block, position-area:start end, ltr horizontal-tb] - expected: FAIL - - [flip-inline, position-area:start end, ltr horizontal-tb] - expected: FAIL - - [flip-block flip-inline, position-area:start end, ltr horizontal-tb] - expected: FAIL - - [flip-start, position-area:start, ltr horizontal-tb] - expected: FAIL - - [flip-start, position-area:end, ltr horizontal-tb] - expected: FAIL - - [flip-start, position-area:start end, ltr horizontal-tb] - expected: FAIL - - [flip-block flip-start, position-area:start end, ltr horizontal-tb] - expected: FAIL - - [flip-inline flip-start, position-area:start end, ltr horizontal-tb] - expected: FAIL - - [flip-block flip-inline flip-start, position-area:start end, ltr horizontal-tb] - expected: FAIL - - [flip-block flip-inline, position-area:span-start span-end, ltr horizontal-tb] - expected: FAIL - - [flip-block flip-inline, position-area:self-start self-end, ltr horizontal-tb] - expected: FAIL - - [flip-block flip-inline, position-area:span-self-start span-self-end, ltr horizontal-tb] - expected: FAIL - - [flip-block, position-area:left center, ltr horizontal-tb] - expected: FAIL - - [flip-block, position-area:center top, ltr horizontal-tb] - expected: FAIL - - [flip-block, position-area:center, ltr horizontal-tb] - expected: FAIL - - [flip-block, position-area:start center, ltr horizontal-tb] - expected: FAIL - - [flip-block, position-area:center start, ltr horizontal-tb] - expected: FAIL - - [flip-inline, position-area:center start, ltr horizontal-tb] - expected: FAIL - - [flip-start, position-area:center start, ltr horizontal-tb] - expected: FAIL - - [flip-block, position-area:left span-all, ltr horizontal-tb] - expected: FAIL - - [flip-block, position-area:span-all top, ltr horizontal-tb] - expected: FAIL - - [flip-block, position-area:span-all, ltr horizontal-tb] - expected: FAIL - - [flip-block, position-area:start span-all, ltr horizontal-tb] - expected: FAIL - - [flip-block, position-area:span-all start, ltr horizontal-tb] - expected: FAIL - - [flip-inline, position-area:span-all start, ltr horizontal-tb] - expected: FAIL - - [flip-start, position-area:span-all start, ltr horizontal-tb] - expected: FAIL - - [flip-block, position-area:left span-top, ltr horizontal-tb] - expected: FAIL - - [flip-inline, position-area:left span-top, ltr horizontal-tb] - expected: FAIL - - [flip-start, position-area:span-block-start inline-end, ltr horizontal-tb] - expected: FAIL - - [flip-block, position-area:left top, ltr vertical-rl] - expected: FAIL - - [, position-area:x-start y-start, rtl horizontal-tb] - expected: FAIL - - [flip-block, position-area:x-start y-start, rtl horizontal-tb] - expected: FAIL - - [flip-inline, position-area:x-start y-start, rtl horizontal-tb] - expected: FAIL - - [flip-block, position-area:x-end y-start, ltr vertical-rl] - expected: FAIL - - [flip-inline, position-area:x-end y-start, ltr vertical-rl] - expected: FAIL - - [flip-inline, position-area:start end, rtl horizontal-tb] - expected: FAIL - - [flip-inline, position-area:start end, ltr vertical-rl] - expected: FAIL - - [flip-block, position-area:start end, rtl horizontal-tb] - expected: FAIL - - [flip-block, position-area:start end, ltr vertical-rl] - expected: FAIL diff --git a/testing/web-platform/tests/css/css-anchor-position/try-tactic-position-area.html b/testing/web-platform/tests/css/css-anchor-position/try-tactic-position-area.html @@ -18,7 +18,7 @@ height: 50px; background-color: coral; } - #target { + #target, #ref { position: absolute; left: 450px; /* force fallback */ width: 40px; @@ -30,16 +30,11 @@ </style> <div id=cb> <div id=target></div> + <div id=ref></div> </div> <script> -function test_computed_value(try_tactic, property, value, expected, direction, writing_mode) { - if (direction==undefined) { - direction = 'ltr'; - } - if (writing_mode==undefined) { - writing_mode = 'horizontal-tb'; - } +function test_position_area_tactic(try_tactic, property, value, expected, direction = 'ltr', writing_mode = 'horizontal-tb') { test((t) => { t.add_cleanup(() => { style.textContent = ''; @@ -55,197 +50,204 @@ function test_computed_value(try_tactic, property, value, expected, direction, w #target { position-try-fallbacks: --pf ${try_tactic}; } + #ref { + inset: initial; + ${property}:${expected}; + } `; - assert_equals(getComputedStyle(target).getPropertyValue(property), expected); + let targetRect = target.getBoundingClientRect(); + let refRect = ref.getBoundingClientRect(); + for (let prop of ["top", "right", "bottom", "left"]) { + assert_equals(targetRect[prop], refRect[prop], `Should render as ${property}: ${expected}: ${prop}`); + } }, `${try_tactic}, ${property}:${value}, ${direction} ${writing_mode}`); } - // Physical: -test_computed_value('flip-inline', 'position-area', 'left top', 'right top'); -test_computed_value('flip-inline', 'position-area', 'left bottom', 'right bottom'); -test_computed_value('flip-inline', 'position-area', 'right bottom', 'left bottom'); -test_computed_value('flip-inline', 'position-area', 'right top', 'left top'); - -test_computed_value('flip-block', 'position-area', 'left top', 'left bottom'); -test_computed_value('flip-block', 'position-area', 'left bottom', 'left top'); -test_computed_value('flip-block', 'position-area', 'right bottom', 'right top'); -test_computed_value('flip-block', 'position-area', 'right top', 'right bottom'); - -test_computed_value('flip-block flip-inline', 'position-area', 'left top', 'right bottom'); -test_computed_value('flip-block flip-inline', 'position-area', 'left bottom', 'right top'); -test_computed_value('flip-block flip-inline', 'position-area', 'right bottom', 'left top'); -test_computed_value('flip-block flip-inline', 'position-area', 'right top', 'left bottom'); - -test_computed_value('flip-start', 'position-area', 'left top', 'left top'); -test_computed_value('flip-start', 'position-area', 'left bottom', 'right top'); -test_computed_value('flip-start', 'position-area', 'right bottom', 'right bottom'); -test_computed_value('flip-start', 'position-area', 'right top', 'left bottom'); - -test_computed_value('flip-block flip-start', 'position-area', 'left top', 'right top'); -test_computed_value('flip-block flip-start', 'position-area', 'left bottom', 'left top'); -test_computed_value('flip-block flip-start', 'position-area', 'right bottom', 'left bottom'); -test_computed_value('flip-block flip-start', 'position-area', 'right top', 'right bottom'); - -test_computed_value('flip-inline flip-start', 'position-area', 'left top', 'left bottom'); -test_computed_value('flip-inline flip-start', 'position-area', 'left bottom', 'right bottom'); -test_computed_value('flip-inline flip-start', 'position-area', 'right bottom', 'right top'); -test_computed_value('flip-inline flip-start', 'position-area', 'right top', 'left top'); - -test_computed_value('flip-block flip-inline flip-start', 'position-area', 'left top', 'right bottom'); -test_computed_value('flip-block flip-inline flip-start', 'position-area', 'left bottom', 'left bottom'); -test_computed_value('flip-block flip-inline flip-start', 'position-area', 'right bottom', 'left top'); -test_computed_value('flip-block flip-inline flip-start', 'position-area', 'right top', 'right top'); +test_position_area_tactic('flip-inline', 'position-area', 'left top', 'right top'); +test_position_area_tactic('flip-inline', 'position-area', 'left bottom', 'right bottom'); +test_position_area_tactic('flip-inline', 'position-area', 'right bottom', 'left bottom'); +test_position_area_tactic('flip-inline', 'position-area', 'right top', 'left top'); + +test_position_area_tactic('flip-block', 'position-area', 'left top', 'left bottom'); +test_position_area_tactic('flip-block', 'position-area', 'left bottom', 'left top'); +test_position_area_tactic('flip-block', 'position-area', 'right bottom', 'right top'); +test_position_area_tactic('flip-block', 'position-area', 'right top', 'right bottom'); + +test_position_area_tactic('flip-block flip-inline', 'position-area', 'left top', 'right bottom'); +test_position_area_tactic('flip-block flip-inline', 'position-area', 'left bottom', 'right top'); +test_position_area_tactic('flip-block flip-inline', 'position-area', 'right bottom', 'left top'); +test_position_area_tactic('flip-block flip-inline', 'position-area', 'right top', 'left bottom'); + +test_position_area_tactic('flip-start', 'position-area', 'left top', 'left top'); +test_position_area_tactic('flip-start', 'position-area', 'left bottom', 'right top'); +test_position_area_tactic('flip-start', 'position-area', 'right bottom', 'right bottom'); +test_position_area_tactic('flip-start', 'position-area', 'right top', 'left bottom'); + +test_position_area_tactic('flip-block flip-start', 'position-area', 'left top', 'right top'); +test_position_area_tactic('flip-block flip-start', 'position-area', 'left bottom', 'left top'); +test_position_area_tactic('flip-block flip-start', 'position-area', 'right bottom', 'left bottom'); +test_position_area_tactic('flip-block flip-start', 'position-area', 'right top', 'right bottom'); + +test_position_area_tactic('flip-inline flip-start', 'position-area', 'left top', 'left bottom'); +test_position_area_tactic('flip-inline flip-start', 'position-area', 'left bottom', 'right bottom'); +test_position_area_tactic('flip-inline flip-start', 'position-area', 'right bottom', 'right top'); +test_position_area_tactic('flip-inline flip-start', 'position-area', 'right top', 'left top'); + +test_position_area_tactic('flip-block flip-inline flip-start', 'position-area', 'left top', 'right bottom'); +test_position_area_tactic('flip-block flip-inline flip-start', 'position-area', 'left bottom', 'left bottom'); +test_position_area_tactic('flip-block flip-inline flip-start', 'position-area', 'right bottom', 'left top'); +test_position_area_tactic('flip-block flip-inline flip-start', 'position-area', 'right top', 'right top'); // Variations: -test_computed_value('flip-block flip-inline', 'position-area', 'span-left span-top', 'span-right span-bottom'); +test_position_area_tactic('flip-block flip-inline', 'position-area', 'span-left span-top', 'span-right span-bottom'); // XY: -test_computed_value('flip-inline', 'position-area', 'x-start y-start', 'x-end y-start'); -test_computed_value('flip-inline', 'position-area', 'x-start y-end', 'x-end y-end'); -test_computed_value('flip-inline', 'position-area', 'x-end y-end', 'x-start y-end'); -test_computed_value('flip-inline', 'position-area', 'x-end y-start', 'x-start y-start'); - -test_computed_value('flip-block', 'position-area', 'x-start y-start', 'x-start y-end'); -test_computed_value('flip-block', 'position-area', 'x-start y-end', 'x-start y-start'); -test_computed_value('flip-block', 'position-area', 'x-end y-end', 'x-end y-start'); -test_computed_value('flip-block', 'position-area', 'x-end y-start', 'x-end y-end'); - -test_computed_value('flip-block flip-inline', 'position-area', 'x-start y-start', 'x-end y-end'); -test_computed_value('flip-block flip-inline', 'position-area', 'x-start y-end', 'x-end y-start'); -test_computed_value('flip-block flip-inline', 'position-area', 'x-end y-end', 'x-start y-start'); -test_computed_value('flip-block flip-inline', 'position-area', 'x-end y-start', 'x-start y-end'); - -test_computed_value('flip-start', 'position-area', 'x-start y-start', 'x-start y-start'); -test_computed_value('flip-start', 'position-area', 'x-start y-end', 'x-end y-start'); -test_computed_value('flip-start', 'position-area', 'x-end y-end', 'x-end y-end'); -test_computed_value('flip-start', 'position-area', 'x-end y-start', 'x-start y-end'); - -test_computed_value('flip-block flip-start', 'position-area', 'x-start y-start', 'x-end y-start'); -test_computed_value('flip-block flip-start', 'position-area', 'x-start y-end', 'x-start y-start'); -test_computed_value('flip-block flip-start', 'position-area', 'x-end y-end', 'x-start y-end'); -test_computed_value('flip-block flip-start', 'position-area', 'x-end y-start', 'x-end y-end'); - -test_computed_value('flip-inline flip-start', 'position-area', 'x-start y-start', 'x-start y-end'); -test_computed_value('flip-inline flip-start', 'position-area', 'x-start y-end', 'x-end y-end'); -test_computed_value('flip-inline flip-start', 'position-area', 'x-end y-end', 'x-end y-start'); -test_computed_value('flip-inline flip-start', 'position-area', 'x-end y-start', 'x-start y-start'); - -test_computed_value('flip-block flip-inline flip-start', 'position-area', 'x-start y-start', 'x-end y-end'); -test_computed_value('flip-block flip-inline flip-start', 'position-area', 'x-start y-end', 'x-start y-end'); -test_computed_value('flip-block flip-inline flip-start', 'position-area', 'x-end y-end', 'x-start y-start'); -test_computed_value('flip-block flip-inline flip-start', 'position-area', 'x-end y-start', 'x-end y-start'); +test_position_area_tactic('flip-inline', 'position-area', 'x-start y-start', 'x-end y-start'); +test_position_area_tactic('flip-inline', 'position-area', 'x-start y-end', 'x-end y-end'); +test_position_area_tactic('flip-inline', 'position-area', 'x-end y-end', 'x-start y-end'); +test_position_area_tactic('flip-inline', 'position-area', 'x-end y-start', 'x-start y-start'); + +test_position_area_tactic('flip-block', 'position-area', 'x-start y-start', 'x-start y-end'); +test_position_area_tactic('flip-block', 'position-area', 'x-start y-end', 'x-start y-start'); +test_position_area_tactic('flip-block', 'position-area', 'x-end y-end', 'x-end y-start'); +test_position_area_tactic('flip-block', 'position-area', 'x-end y-start', 'x-end y-end'); + +test_position_area_tactic('flip-block flip-inline', 'position-area', 'x-start y-start', 'x-end y-end'); +test_position_area_tactic('flip-block flip-inline', 'position-area', 'x-start y-end', 'x-end y-start'); +test_position_area_tactic('flip-block flip-inline', 'position-area', 'x-end y-end', 'x-start y-start'); +test_position_area_tactic('flip-block flip-inline', 'position-area', 'x-end y-start', 'x-start y-end'); + +test_position_area_tactic('flip-start', 'position-area', 'x-start y-start', 'x-start y-start'); +test_position_area_tactic('flip-start', 'position-area', 'x-start y-end', 'x-end y-start'); +test_position_area_tactic('flip-start', 'position-area', 'x-end y-end', 'x-end y-end'); +test_position_area_tactic('flip-start', 'position-area', 'x-end y-start', 'x-start y-end'); + +test_position_area_tactic('flip-block flip-start', 'position-area', 'x-start y-start', 'x-end y-start'); +test_position_area_tactic('flip-block flip-start', 'position-area', 'x-start y-end', 'x-start y-start'); +test_position_area_tactic('flip-block flip-start', 'position-area', 'x-end y-end', 'x-start y-end'); +test_position_area_tactic('flip-block flip-start', 'position-area', 'x-end y-start', 'x-end y-end'); + +test_position_area_tactic('flip-inline flip-start', 'position-area', 'x-start y-start', 'x-start y-end'); +test_position_area_tactic('flip-inline flip-start', 'position-area', 'x-start y-end', 'x-end y-end'); +test_position_area_tactic('flip-inline flip-start', 'position-area', 'x-end y-end', 'x-end y-start'); +test_position_area_tactic('flip-inline flip-start', 'position-area', 'x-end y-start', 'x-start y-start'); + +test_position_area_tactic('flip-block flip-inline flip-start', 'position-area', 'x-start y-start', 'x-end y-end'); +test_position_area_tactic('flip-block flip-inline flip-start', 'position-area', 'x-start y-end', 'x-start y-end'); +test_position_area_tactic('flip-block flip-inline flip-start', 'position-area', 'x-end y-end', 'x-start y-start'); +test_position_area_tactic('flip-block flip-inline flip-start', 'position-area', 'x-end y-start', 'x-end y-start'); // Variations: -test_computed_value('flip-block flip-inline', 'position-area', 'span-x-start span-y-start', 'span-x-end span-y-end'); -test_computed_value('flip-block flip-inline', 'position-area', 'self-x-start self-y-start', 'self-x-end self-y-end'); -test_computed_value('flip-block flip-inline', 'position-area', 'span-self-x-start span-self-y-start', 'span-self-x-end span-self-y-end'); +test_position_area_tactic('flip-block flip-inline', 'position-area', 'span-x-start span-y-start', 'span-x-end span-y-end'); +test_position_area_tactic('flip-block flip-inline', 'position-area', 'self-x-start self-y-start', 'self-x-end self-y-end'); +test_position_area_tactic('flip-block flip-inline', 'position-area', 'span-self-x-start span-self-y-start', 'span-self-x-end span-self-y-end'); // Logical: -test_computed_value('flip-inline', 'position-area', 'block-start inline-start', 'start end'); -test_computed_value('flip-inline', 'position-area', 'block-end inline-start', 'end'); -test_computed_value('flip-inline', 'position-area', 'block-end inline-end', 'end start'); -test_computed_value('flip-inline', 'position-area', 'block-start inline-end', 'start'); - -test_computed_value('flip-block', 'position-area', 'block-start inline-start', 'end start'); -test_computed_value('flip-block', 'position-area', 'block-end inline-start', 'start'); -test_computed_value('flip-block', 'position-area', 'block-end inline-end', 'start end'); -test_computed_value('flip-block', 'position-area', 'block-start inline-end', 'end'); - -test_computed_value('flip-block flip-inline', 'position-area', 'block-start inline-start', 'end'); -test_computed_value('flip-block flip-inline', 'position-area', 'block-end inline-start', 'start end'); -test_computed_value('flip-block flip-inline', 'position-area', 'block-end inline-end', 'start'); -test_computed_value('flip-block flip-inline', 'position-area', 'block-start inline-end', 'end start'); - -test_computed_value('flip-start', 'position-area', 'block-start inline-start', 'start'); -test_computed_value('flip-start', 'position-area', 'block-end inline-start', 'start end'); -test_computed_value('flip-start', 'position-area', 'block-end inline-end', 'end'); -test_computed_value('flip-start', 'position-area', 'block-start inline-end', 'end start'); - -test_computed_value('flip-block flip-start', 'position-area', 'block-start inline-start', 'start end'); -test_computed_value('flip-block flip-start', 'position-area', 'block-end inline-start', 'start'); -test_computed_value('flip-block flip-start', 'position-area', 'block-end inline-end', 'end start'); -test_computed_value('flip-block flip-start', 'position-area', 'block-start inline-end', 'end'); - -test_computed_value('flip-inline flip-start', 'position-area', 'block-start inline-start', 'end start'); -test_computed_value('flip-inline flip-start', 'position-area', 'block-end inline-start', 'end'); -test_computed_value('flip-inline flip-start', 'position-area', 'block-end inline-end', 'start end'); -test_computed_value('flip-inline flip-start', 'position-area', 'block-start inline-end', 'start'); - -test_computed_value('flip-block flip-inline flip-start', 'position-area', 'block-start inline-start', 'end'); -test_computed_value('flip-block flip-inline flip-start', 'position-area', 'block-end inline-start', 'end start'); -test_computed_value('flip-block flip-inline flip-start', 'position-area', 'block-end inline-end', 'start'); -test_computed_value('flip-block flip-inline flip-start', 'position-area', 'block-start inline-end', 'start end'); +test_position_area_tactic('flip-inline', 'position-area', 'block-start inline-start', 'start end'); +test_position_area_tactic('flip-inline', 'position-area', 'block-end inline-start', 'end'); +test_position_area_tactic('flip-inline', 'position-area', 'block-end inline-end', 'end start'); +test_position_area_tactic('flip-inline', 'position-area', 'block-start inline-end', 'start'); + +test_position_area_tactic('flip-block', 'position-area', 'block-start inline-start', 'end start'); +test_position_area_tactic('flip-block', 'position-area', 'block-end inline-start', 'start'); +test_position_area_tactic('flip-block', 'position-area', 'block-end inline-end', 'start end'); +test_position_area_tactic('flip-block', 'position-area', 'block-start inline-end', 'end'); + +test_position_area_tactic('flip-block flip-inline', 'position-area', 'block-start inline-start', 'end'); +test_position_area_tactic('flip-block flip-inline', 'position-area', 'block-end inline-start', 'start end'); +test_position_area_tactic('flip-block flip-inline', 'position-area', 'block-end inline-end', 'start'); +test_position_area_tactic('flip-block flip-inline', 'position-area', 'block-start inline-end', 'end start'); + +test_position_area_tactic('flip-start', 'position-area', 'block-start inline-start', 'start'); +test_position_area_tactic('flip-start', 'position-area', 'block-end inline-start', 'start end'); +test_position_area_tactic('flip-start', 'position-area', 'block-end inline-end', 'end'); +test_position_area_tactic('flip-start', 'position-area', 'block-start inline-end', 'end start'); + +test_position_area_tactic('flip-block flip-start', 'position-area', 'block-start inline-start', 'start end'); +test_position_area_tactic('flip-block flip-start', 'position-area', 'block-end inline-start', 'start'); +test_position_area_tactic('flip-block flip-start', 'position-area', 'block-end inline-end', 'end start'); +test_position_area_tactic('flip-block flip-start', 'position-area', 'block-start inline-end', 'end'); + +test_position_area_tactic('flip-inline flip-start', 'position-area', 'block-start inline-start', 'end start'); +test_position_area_tactic('flip-inline flip-start', 'position-area', 'block-end inline-start', 'end'); +test_position_area_tactic('flip-inline flip-start', 'position-area', 'block-end inline-end', 'start end'); +test_position_area_tactic('flip-inline flip-start', 'position-area', 'block-start inline-end', 'start'); + +test_position_area_tactic('flip-block flip-inline flip-start', 'position-area', 'block-start inline-start', 'end'); +test_position_area_tactic('flip-block flip-inline flip-start', 'position-area', 'block-end inline-start', 'end start'); +test_position_area_tactic('flip-block flip-inline flip-start', 'position-area', 'block-end inline-end', 'start'); +test_position_area_tactic('flip-block flip-inline flip-start', 'position-area', 'block-start inline-end', 'start end'); // Variations: -test_computed_value('flip-block flip-inline', 'position-area', 'span-block-start span-inline-start', 'span-end'); -test_computed_value('flip-block flip-inline', 'position-area', 'self-block-start self-inline-start', 'self-end'); -test_computed_value('flip-block flip-inline', 'position-area', 'span-self-block-start span-self-inline-start', 'span-self-end'); +test_position_area_tactic('flip-block flip-inline', 'position-area', 'span-block-start span-inline-start', 'span-end'); +test_position_area_tactic('flip-block flip-inline', 'position-area', 'self-block-start self-inline-start', 'self-end'); +test_position_area_tactic('flip-block flip-inline', 'position-area', 'span-self-block-start span-self-inline-start', 'span-self-end'); // start/end -test_computed_value('', 'position-area', 'start end', 'start end'); +test_position_area_tactic('', 'position-area', 'start end', 'start end'); -test_computed_value('flip-block', 'position-area', 'start end', 'end'); +test_position_area_tactic('flip-block', 'position-area', 'start end', 'end'); -test_computed_value('flip-inline', 'position-area', 'start end', 'start'); +test_position_area_tactic('flip-inline', 'position-area', 'start end', 'start'); -test_computed_value('flip-block flip-inline', 'position-area', 'start end', 'end start'); +test_position_area_tactic('flip-block flip-inline', 'position-area', 'start end', 'end start'); -test_computed_value('flip-start', 'position-area', 'start', 'start'); -test_computed_value('flip-start', 'position-area', 'end', 'end'); -test_computed_value('flip-start', 'position-area', 'start end', 'end start'); +test_position_area_tactic('flip-start', 'position-area', 'start', 'start'); +test_position_area_tactic('flip-start', 'position-area', 'end', 'end'); +test_position_area_tactic('flip-start', 'position-area', 'start end', 'end start'); -test_computed_value('flip-block flip-start', 'position-area', 'start end', 'end'); +test_position_area_tactic('flip-block flip-start', 'position-area', 'start end', 'end'); -test_computed_value('flip-inline flip-start', 'position-area', 'start end', 'start'); +test_position_area_tactic('flip-inline flip-start', 'position-area', 'start end', 'start'); -test_computed_value('flip-block flip-inline flip-start', 'position-area', 'start end', 'start end'); +test_position_area_tactic('flip-block flip-inline flip-start', 'position-area', 'start end', 'start end'); // Variations: -test_computed_value('flip-block flip-inline', 'position-area', 'span-start span-end', 'span-end span-start'); -test_computed_value('flip-block flip-inline', 'position-area', 'self-start self-end', 'self-end self-start'); -test_computed_value('flip-block flip-inline', 'position-area', 'span-self-start span-self-end', 'span-self-end span-self-start'); +test_position_area_tactic('flip-block flip-inline', 'position-area', 'span-start span-end', 'span-end span-start'); +test_position_area_tactic('flip-block flip-inline', 'position-area', 'self-start self-end', 'self-end self-start'); +test_position_area_tactic('flip-block flip-inline', 'position-area', 'span-self-start span-self-end', 'span-self-end span-self-start'); // center -test_computed_value('flip-block', 'position-area', 'left center', 'left center'); -test_computed_value('flip-block', 'position-area', 'center top', 'center bottom'); -test_computed_value('flip-block', 'position-area', 'center', 'center'); -test_computed_value('flip-block', 'position-area', 'start center', 'end center'); -test_computed_value('flip-block', 'position-area', 'center start', 'center start'); -test_computed_value('flip-inline', 'position-area', 'center start', 'center end'); -test_computed_value('flip-start', 'position-area', 'center start', 'start center'); +test_position_area_tactic('flip-block', 'position-area', 'left center', 'left center'); +test_position_area_tactic('flip-block', 'position-area', 'center top', 'center bottom'); +test_position_area_tactic('flip-block', 'position-area', 'center', 'center'); +test_position_area_tactic('flip-block', 'position-area', 'start center', 'end center'); +test_position_area_tactic('flip-block', 'position-area', 'center start', 'center start'); +test_position_area_tactic('flip-inline', 'position-area', 'center start', 'center end'); +test_position_area_tactic('flip-start', 'position-area', 'center start', 'start center'); // span-all -test_computed_value('flip-block', 'position-area', 'left span-all', 'left'); -test_computed_value('flip-block', 'position-area', 'span-all top', 'bottom'); -test_computed_value('flip-block', 'position-area', 'span-all', 'span-all'); -test_computed_value('flip-block', 'position-area', 'start span-all', 'block-end'); -test_computed_value('flip-block', 'position-area', 'span-all start', 'inline-start'); -test_computed_value('flip-inline', 'position-area', 'span-all start', 'inline-end'); -test_computed_value('flip-start', 'position-area', 'span-all start', 'block-start'); +test_position_area_tactic('flip-block', 'position-area', 'left span-all', 'left'); +test_position_area_tactic('flip-block', 'position-area', 'span-all top', 'bottom'); +test_position_area_tactic('flip-block', 'position-area', 'span-all', 'span-all'); +test_position_area_tactic('flip-block', 'position-area', 'start span-all', 'block-end'); +test_position_area_tactic('flip-block', 'position-area', 'span-all start', 'inline-start'); +test_position_area_tactic('flip-inline', 'position-area', 'span-all start', 'inline-end'); +test_position_area_tactic('flip-start', 'position-area', 'span-all start', 'block-start'); // Span mix: -test_computed_value('flip-block', 'position-area', 'left span-top', 'left span-bottom'); -test_computed_value('flip-inline', 'position-area', 'left span-top', 'right span-top'); -test_computed_value('flip-start', 'position-area', 'span-block-start inline-end', 'end span-start'); +test_position_area_tactic('flip-block', 'position-area', 'left span-top', 'left span-bottom'); +test_position_area_tactic('flip-inline', 'position-area', 'left span-top', 'right span-top'); +test_position_area_tactic('flip-start', 'position-area', 'span-block-start inline-end', 'end span-start'); // Writing modes: -test_computed_value('flip-block', 'position-area', 'left top', 'right top', 'ltr', 'vertical-rl'); - -test_computed_value('', 'position-area', 'x-start y-start', 'x-start y-start', 'rtl'); -test_computed_value('flip-block', 'position-area', 'x-start y-start', 'x-start y-end', 'rtl'); -test_computed_value('flip-inline', 'position-area', 'x-start y-start', 'x-end y-start', 'rtl'); -test_computed_value('flip-block', 'position-area', 'x-end y-start', 'x-start y-start', 'ltr', 'vertical-rl'); -test_computed_value('flip-inline', 'position-area', 'x-end y-start', 'x-end y-end', 'ltr', 'vertical-rl'); - -test_computed_value('flip-inline', 'position-area', 'start end', 'start', 'rtl'); -test_computed_value('flip-inline', 'position-area', 'start end', 'start', 'ltr', 'vertical-rl'); -test_computed_value('flip-block', 'position-area', 'start end', 'end', 'rtl'); -test_computed_value('flip-block', 'position-area', 'start end', 'end', 'ltr', 'vertical-rl'); +test_position_area_tactic('flip-block', 'position-area', 'left top', 'right top', 'ltr', 'vertical-rl'); + +test_position_area_tactic('', 'position-area', 'x-start y-start', 'x-start y-start', 'rtl'); +test_position_area_tactic('flip-block', 'position-area', 'x-start y-start', 'x-start y-end', 'rtl'); +test_position_area_tactic('flip-inline', 'position-area', 'x-start y-start', 'x-end y-start', 'rtl'); +test_position_area_tactic('flip-block', 'position-area', 'x-end y-start', 'x-start y-start', 'ltr', 'vertical-rl'); +test_position_area_tactic('flip-inline', 'position-area', 'x-end y-start', 'x-end y-end', 'ltr', 'vertical-rl'); + +test_position_area_tactic('flip-inline', 'position-area', 'start end', 'start', 'rtl'); +test_position_area_tactic('flip-inline', 'position-area', 'start end', 'start', 'ltr', 'vertical-rl'); +test_position_area_tactic('flip-block', 'position-area', 'start end', 'end', 'rtl'); +test_position_area_tactic('flip-block', 'position-area', 'start end', 'end', 'ltr', 'vertical-rl'); </script>