diff options
author | bors-servo <lbergstrom+bors@mozilla.com> | 2019-08-19 10:18:55 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-08-19 10:18:55 -0400 |
commit | 8fd06759dc3bb9b551720043292ee5911bf35541 (patch) | |
tree | b047061eb31caaff2fb798a170e006b7666bce1f | |
parent | 4f4c2be144bf1c8d7fb8c9c67320c1c2352818f6 (diff) | |
parent | 76712d7d25f8b48d78e6be87aaefd0e55d1f7d09 (diff) | |
download | servo-8fd06759dc3bb9b551720043292ee5911bf35541.tar.gz servo-8fd06759dc3bb9b551720043292ee5911bf35541.zip |
Auto merge of #24002 - servo-wpt-sync:wpt_update_19-08-2019, r=servo-wpt-sync
Sync WPT with upstream (19-08-2019)
Automated downstream sync of changes from upstream as of 19-08-2019.
[no-wpt-sync]
<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/24002)
<!-- Reviewable:end -->
353 files changed, 6510 insertions, 1289 deletions
diff --git a/tests/wpt/metadata/FileAPI/url/url-in-tags-revoke.window.js.ini b/tests/wpt/metadata/FileAPI/url/url-in-tags-revoke.window.js.ini index 76b398963ae..a9e46713244 100644 --- a/tests/wpt/metadata/FileAPI/url/url-in-tags-revoke.window.js.ini +++ b/tests/wpt/metadata/FileAPI/url/url-in-tags-revoke.window.js.ini @@ -7,7 +7,7 @@ expected: FAIL [Opening a blob URL in a new window immediately before revoking it works.] - expected: FAIL + expected: TIMEOUT [Opening a blob URL in a noopener about:blank window immediately before revoking it works.] expected: FAIL diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json index b460cc44e7a..15ec7336ee8 100644 --- a/tests/wpt/metadata/MANIFEST.json +++ b/tests/wpt/metadata/MANIFEST.json @@ -115461,6 +115461,18 @@ {} ] ], + "css/css-display/display-flow-root-list-item-001.html": [ + [ + "css/css-display/display-flow-root-list-item-001.html", + [ + [ + "/css/css-display/display-flow-root-list-item-001-ref.html", + "==" + ] + ], + {} + ] + ], "css/css-display/display-inline-dynamic-001.html": [ [ "css/css-display/display-inline-dynamic-001.html", @@ -127243,60 +127255,60 @@ {} ] ], - "css/css-layout-api/auto-block-size-absolute.https.html": [ + "css/css-layout-api/auto-block-size/absolute.https.html": [ [ - "css/css-layout-api/auto-block-size-absolute.https.html", + "css/css-layout-api/auto-block-size/absolute.https.html", [ [ - "/css/css-layout-api/auto-block-size-absolute-ref.html", + "/css/css-layout-api/auto-block-size/absolute-ref.html", "==" ] ], {} ] ], - "css/css-layout-api/auto-block-size-flex.https.html": [ + "css/css-layout-api/auto-block-size/flex.https.html": [ [ - "css/css-layout-api/auto-block-size-flex.https.html", + "css/css-layout-api/auto-block-size/flex.https.html", [ [ - "/css/css-layout-api/auto-block-size-flex-ref.html", + "/css/css-layout-api/auto-block-size/flex-ref.html", "==" ] ], {} ] ], - "css/css-layout-api/auto-block-size-floats.https.html": [ + "css/css-layout-api/auto-block-size/floats.https.html": [ [ - "css/css-layout-api/auto-block-size-floats.https.html", + "css/css-layout-api/auto-block-size/floats.https.html", [ [ - "/css/css-layout-api/auto-block-size-floats-ref.html", + "/css/css-layout-api/auto-block-size/floats-ref.html", "==" ] ], {} ] ], - "css/css-layout-api/auto-block-size-inflow.https.html": [ + "css/css-layout-api/auto-block-size/inflow.https.html": [ [ - "css/css-layout-api/auto-block-size-inflow.https.html", + "css/css-layout-api/auto-block-size/inflow.https.html", [ [ - "/css/css-layout-api/auto-block-size-inflow-ref.html", + "/css/css-layout-api/auto-block-size/inflow-ref.html", "==" ] ], {} ] ], - "css/css-layout-api/auto-block-size-negative.https.html": [ + "css/css-layout-api/auto-block-size/negative.https.html": [ [ - "css/css-layout-api/auto-block-size-negative.https.html", + "css/css-layout-api/auto-block-size/negative.https.html", [ [ - "/css/css-layout-api/auto-block-size-negative-ref.html", + "/css/css-layout-api/auto-block-size/negative-ref.html", "==" ] ], @@ -127615,9 +127627,9 @@ {} ] ], - "css/css-layout-api/constraints-fixed-block-size-absolute-left-right-vrl.https.html": [ + "css/css-layout-api/constraints/fixed-block-size-absolute-left-right-vrl.https.html": [ [ - "css/css-layout-api/constraints-fixed-block-size-absolute-left-right-vrl.https.html", + "css/css-layout-api/constraints/fixed-block-size-absolute-left-right-vrl.https.html", [ [ "/css/css-layout-api/green-square-ref.html", @@ -127627,9 +127639,9 @@ {} ] ], - "css/css-layout-api/constraints-fixed-block-size-absolute-none.https.html": [ + "css/css-layout-api/constraints/fixed-block-size-absolute-none.https.html": [ [ - "css/css-layout-api/constraints-fixed-block-size-absolute-none.https.html", + "css/css-layout-api/constraints/fixed-block-size-absolute-none.https.html", [ [ "/css/css-layout-api/green-square-ref.html", @@ -127639,9 +127651,9 @@ {} ] ], - "css/css-layout-api/constraints-fixed-block-size-absolute-top-bottom.https.html": [ + "css/css-layout-api/constraints/fixed-block-size-absolute-top-bottom.https.html": [ [ - "css/css-layout-api/constraints-fixed-block-size-absolute-top-bottom.https.html", + "css/css-layout-api/constraints/fixed-block-size-absolute-top-bottom.https.html", [ [ "/css/css-layout-api/green-square-ref.html", @@ -127651,9 +127663,9 @@ {} ] ], - "css/css-layout-api/constraints-fixed-block-size-block-none-vrl.https.html": [ + "css/css-layout-api/constraints/fixed-block-size-block-none-vrl.https.html": [ [ - "css/css-layout-api/constraints-fixed-block-size-block-none-vrl.https.html", + "css/css-layout-api/constraints/fixed-block-size-block-none-vrl.https.html", [ [ "/css/css-layout-api/green-square-ref.html", @@ -127663,9 +127675,9 @@ {} ] ], - "css/css-layout-api/constraints-fixed-block-size-block-none.https.html": [ + "css/css-layout-api/constraints/fixed-block-size-block-none.https.html": [ [ - "css/css-layout-api/constraints-fixed-block-size-block-none.https.html", + "css/css-layout-api/constraints/fixed-block-size-block-none.https.html", [ [ "/css/css-layout-api/green-square-ref.html", @@ -127675,9 +127687,9 @@ {} ] ], - "css/css-layout-api/constraints-fixed-block-size-fixed-max.https.html": [ + "css/css-layout-api/constraints/fixed-block-size-fixed-max.https.html": [ [ - "css/css-layout-api/constraints-fixed-block-size-fixed-max.https.html", + "css/css-layout-api/constraints/fixed-block-size-fixed-max.https.html", [ [ "/css/css-layout-api/green-square-ref.html", @@ -127687,9 +127699,9 @@ {} ] ], - "css/css-layout-api/constraints-fixed-block-size-fixed-min.https.html": [ + "css/css-layout-api/constraints/fixed-block-size-fixed-min.https.html": [ [ - "css/css-layout-api/constraints-fixed-block-size-fixed-min.https.html", + "css/css-layout-api/constraints/fixed-block-size-fixed-min.https.html", [ [ "/css/css-layout-api/green-square-ref.html", @@ -127699,9 +127711,9 @@ {} ] ], - "css/css-layout-api/constraints-fixed-block-size-fixed-vrl.https.html": [ + "css/css-layout-api/constraints/fixed-block-size-fixed-vrl.https.html": [ [ - "css/css-layout-api/constraints-fixed-block-size-fixed-vrl.https.html", + "css/css-layout-api/constraints/fixed-block-size-fixed-vrl.https.html", [ [ "/css/css-layout-api/green-square-ref.html", @@ -127711,9 +127723,9 @@ {} ] ], - "css/css-layout-api/constraints-fixed-block-size-fixed.https.html": [ + "css/css-layout-api/constraints/fixed-block-size-fixed.https.html": [ [ - "css/css-layout-api/constraints-fixed-block-size-fixed.https.html", + "css/css-layout-api/constraints/fixed-block-size-fixed.https.html", [ [ "/css/css-layout-api/green-square-ref.html", @@ -127723,9 +127735,9 @@ {} ] ], - "css/css-layout-api/constraints-fixed-block-size-flex-basis-vrl.https.html": [ + "css/css-layout-api/constraints/fixed-block-size-flex-basis-vrl.https.html": [ [ - "css/css-layout-api/constraints-fixed-block-size-flex-basis-vrl.https.html", + "css/css-layout-api/constraints/fixed-block-size-flex-basis-vrl.https.html", [ [ "/css/css-layout-api/green-square-ref.html", @@ -127735,9 +127747,9 @@ {} ] ], - "css/css-layout-api/constraints-fixed-block-size-flex-column-basis.https.html": [ + "css/css-layout-api/constraints/fixed-block-size-flex-column-basis.https.html": [ [ - "css/css-layout-api/constraints-fixed-block-size-flex-column-basis.https.html", + "css/css-layout-api/constraints/fixed-block-size-flex-column-basis.https.html", [ [ "/css/css-layout-api/green-square-ref.html", @@ -127747,9 +127759,9 @@ {} ] ], - "css/css-layout-api/constraints-fixed-block-size-flex-column-grow.https.html": [ + "css/css-layout-api/constraints/fixed-block-size-flex-column-grow.https.html": [ [ - "css/css-layout-api/constraints-fixed-block-size-flex-column-grow.https.html", + "css/css-layout-api/constraints/fixed-block-size-flex-column-grow.https.html", [ [ "/css/css-layout-api/green-square-ref.html", @@ -127759,9 +127771,9 @@ {} ] ], - "css/css-layout-api/constraints-fixed-block-size-flex-column-none.https.html": [ + "css/css-layout-api/constraints/fixed-block-size-flex-column-none.https.html": [ [ - "css/css-layout-api/constraints-fixed-block-size-flex-column-none.https.html", + "css/css-layout-api/constraints/fixed-block-size-flex-column-none.https.html", [ [ "/css/css-layout-api/green-square-ref.html", @@ -127771,9 +127783,9 @@ {} ] ], - "css/css-layout-api/constraints-fixed-block-size-flex-column-stretch-vrl.https.html": [ + "css/css-layout-api/constraints/fixed-block-size-flex-column-stretch-vrl.https.html": [ [ - "css/css-layout-api/constraints-fixed-block-size-flex-column-stretch-vrl.https.html", + "css/css-layout-api/constraints/fixed-block-size-flex-column-stretch-vrl.https.html", [ [ "/css/css-layout-api/green-square-ref.html", @@ -127783,9 +127795,9 @@ {} ] ], - "css/css-layout-api/constraints-fixed-block-size-flex-grow-vrl.https.html": [ + "css/css-layout-api/constraints/fixed-block-size-flex-grow-vrl.https.html": [ [ - "css/css-layout-api/constraints-fixed-block-size-flex-grow-vrl.https.html", + "css/css-layout-api/constraints/fixed-block-size-flex-grow-vrl.https.html", [ [ "/css/css-layout-api/green-square-ref.html", @@ -127795,9 +127807,9 @@ {} ] ], - "css/css-layout-api/constraints-fixed-block-size-flex-none.https.html": [ + "css/css-layout-api/constraints/fixed-block-size-flex-none.https.html": [ [ - "css/css-layout-api/constraints-fixed-block-size-flex-none.https.html", + "css/css-layout-api/constraints/fixed-block-size-flex-none.https.html", [ [ "/css/css-layout-api/green-square-ref.html", @@ -127807,9 +127819,9 @@ {} ] ], - "css/css-layout-api/constraints-fixed-block-size-flex-percentage-indefinite.https.html": [ + "css/css-layout-api/constraints/fixed-block-size-flex-percentage-indefinite.https.html": [ [ - "css/css-layout-api/constraints-fixed-block-size-flex-percentage-indefinite.https.html", + "css/css-layout-api/constraints/fixed-block-size-flex-percentage-indefinite.https.html", [ [ "/css/css-layout-api/green-square-ref.html", @@ -127819,9 +127831,9 @@ {} ] ], - "css/css-layout-api/constraints-fixed-block-size-flex-stretch-max.https.html": [ + "css/css-layout-api/constraints/fixed-block-size-flex-stretch-max.https.html": [ [ - "css/css-layout-api/constraints-fixed-block-size-flex-stretch-max.https.html", + "css/css-layout-api/constraints/fixed-block-size-flex-stretch-max.https.html", [ [ "/css/css-layout-api/green-square-ref.html", @@ -127831,9 +127843,9 @@ {} ] ], - "css/css-layout-api/constraints-fixed-block-size-flex-stretch.https.html": [ + "css/css-layout-api/constraints/fixed-block-size-flex-stretch.https.html": [ [ - "css/css-layout-api/constraints-fixed-block-size-flex-stretch.https.html", + "css/css-layout-api/constraints/fixed-block-size-flex-stretch.https.html", [ [ "/css/css-layout-api/green-square-ref.html", @@ -127843,9 +127855,9 @@ {} ] ], - "css/css-layout-api/constraints-fixed-block-size-grid-none.https.html": [ + "css/css-layout-api/constraints/fixed-block-size-grid-none.https.html": [ [ - "css/css-layout-api/constraints-fixed-block-size-grid-none.https.html", + "css/css-layout-api/constraints/fixed-block-size-grid-none.https.html", [ [ "/css/css-layout-api/green-square-ref.html", @@ -127855,9 +127867,9 @@ {} ] ], - "css/css-layout-api/constraints-fixed-block-size-grid-stretch-max.https.html": [ + "css/css-layout-api/constraints/fixed-block-size-grid-stretch-max.https.html": [ [ - "css/css-layout-api/constraints-fixed-block-size-grid-stretch-max.https.html", + "css/css-layout-api/constraints/fixed-block-size-grid-stretch-max.https.html", [ [ "/css/css-layout-api/green-square-ref.html", @@ -127867,9 +127879,9 @@ {} ] ], - "css/css-layout-api/constraints-fixed-block-size-grid-stretch.https.html": [ + "css/css-layout-api/constraints/fixed-block-size-grid-stretch.https.html": [ [ - "css/css-layout-api/constraints-fixed-block-size-grid-stretch.https.html", + "css/css-layout-api/constraints/fixed-block-size-grid-stretch.https.html", [ [ "/css/css-layout-api/green-square-ref.html", @@ -127879,9 +127891,9 @@ {} ] ], - "css/css-layout-api/constraints-fixed-block-size-grid-vrl.https.html": [ + "css/css-layout-api/constraints/fixed-block-size-grid-vrl.https.html": [ [ - "css/css-layout-api/constraints-fixed-block-size-grid-vrl.https.html", + "css/css-layout-api/constraints/fixed-block-size-grid-vrl.https.html", [ [ "/css/css-layout-api/green-square-ref.html", @@ -127891,9 +127903,9 @@ {} ] ], - "css/css-layout-api/constraints-fixed-block-size-percentage-indefinite.https.html": [ + "css/css-layout-api/constraints/fixed-block-size-percentage-indefinite.https.html": [ [ - "css/css-layout-api/constraints-fixed-block-size-percentage-indefinite.https.html", + "css/css-layout-api/constraints/fixed-block-size-percentage-indefinite.https.html", [ [ "/css/css-layout-api/green-square-ref.html", @@ -127903,9 +127915,9 @@ {} ] ], - "css/css-layout-api/constraints-fixed-block-size-percentage-quirks-mode.https.html": [ + "css/css-layout-api/constraints/fixed-block-size-percentage-quirks-mode.https.html": [ [ - "css/css-layout-api/constraints-fixed-block-size-percentage-quirks-mode.https.html", + "css/css-layout-api/constraints/fixed-block-size-percentage-quirks-mode.https.html", [ [ "/css/css-layout-api/green-square-ref.html", @@ -127915,9 +127927,9 @@ {} ] ], - "css/css-layout-api/constraints-fixed-block-size-percentage-vrl.https.html": [ + "css/css-layout-api/constraints/fixed-block-size-percentage-vrl.https.html": [ [ - "css/css-layout-api/constraints-fixed-block-size-percentage-vrl.https.html", + "css/css-layout-api/constraints/fixed-block-size-percentage-vrl.https.html", [ [ "/css/css-layout-api/green-square-ref.html", @@ -127927,9 +127939,9 @@ {} ] ], - "css/css-layout-api/constraints-fixed-block-size-percentage.https.html": [ + "css/css-layout-api/constraints/fixed-block-size-percentage.https.html": [ [ - "css/css-layout-api/constraints-fixed-block-size-percentage.https.html", + "css/css-layout-api/constraints/fixed-block-size-percentage.https.html", [ [ "/css/css-layout-api/green-square-ref.html", @@ -127939,9 +127951,9 @@ {} ] ], - "css/css-layout-api/constraints-fixed-block-size-quirky-body.https.html": [ + "css/css-layout-api/constraints/fixed-block-size-quirky-body.https.html": [ [ - "css/css-layout-api/constraints-fixed-block-size-quirky-body.https.html", + "css/css-layout-api/constraints/fixed-block-size-quirky-body.https.html", [ [ "/css/css-layout-api/green-square-ref.html", @@ -127951,240 +127963,240 @@ {} ] ], - "css/css-layout-api/constraints-fixed-inline-size-absolute-left-right.https.html": [ + "css/css-layout-api/constraints/fixed-inline-size-absolute-left-right.https.html": [ [ - "css/css-layout-api/constraints-fixed-inline-size-absolute-left-right.https.html", + "css/css-layout-api/constraints/fixed-inline-size-absolute-left-right.https.html", [ [ - "/css/css-layout-api/constraints-fixed-inline-size-ref.html", + "/css/css-layout-api/constraints/fixed-inline-size-ref.html", "==" ] ], {} ] ], - "css/css-layout-api/constraints-fixed-inline-size-absolute-top-bottom-vrl.https.html": [ + "css/css-layout-api/constraints/fixed-inline-size-absolute-top-bottom-vrl.https.html": [ [ - "css/css-layout-api/constraints-fixed-inline-size-absolute-top-bottom-vrl.https.html", + "css/css-layout-api/constraints/fixed-inline-size-absolute-top-bottom-vrl.https.html", [ [ - "/css/css-layout-api/constraints-fixed-inline-size-ref.html", + "/css/css-layout-api/constraints/fixed-inline-size-ref.html", "==" ] ], {} ] ], - "css/css-layout-api/constraints-fixed-inline-size-block-auto-avoid-floats-vlr.https.html": [ + "css/css-layout-api/constraints/fixed-inline-size-block-auto-avoid-floats-vlr.https.html": [ [ - "css/css-layout-api/constraints-fixed-inline-size-block-auto-avoid-floats-vlr.https.html", + "css/css-layout-api/constraints/fixed-inline-size-block-auto-avoid-floats-vlr.https.html", [ [ - "/css/css-layout-api/constraints-fixed-inline-size-ref.html", + "/css/css-layout-api/constraints/fixed-inline-size-ref.html", "==" ] ], {} ] ], - "css/css-layout-api/constraints-fixed-inline-size-block-auto-avoid-floats.https.html": [ + "css/css-layout-api/constraints/fixed-inline-size-block-auto-avoid-floats.https.html": [ [ - "css/css-layout-api/constraints-fixed-inline-size-block-auto-avoid-floats.https.html", + "css/css-layout-api/constraints/fixed-inline-size-block-auto-avoid-floats.https.html", [ [ - "/css/css-layout-api/constraints-fixed-inline-size-ref.html", + "/css/css-layout-api/constraints/fixed-inline-size-ref.html", "==" ] ], {} ] ], - "css/css-layout-api/constraints-fixed-inline-size-block-auto-vlr.https.html": [ + "css/css-layout-api/constraints/fixed-inline-size-block-auto-vlr.https.html": [ [ - "css/css-layout-api/constraints-fixed-inline-size-block-auto-vlr.https.html", + "css/css-layout-api/constraints/fixed-inline-size-block-auto-vlr.https.html", [ [ - "/css/css-layout-api/constraints-fixed-inline-size-ref.html", + "/css/css-layout-api/constraints/fixed-inline-size-ref.html", "==" ] ], {} ] ], - "css/css-layout-api/constraints-fixed-inline-size-block-auto.https.html": [ + "css/css-layout-api/constraints/fixed-inline-size-block-auto.https.html": [ [ - "css/css-layout-api/constraints-fixed-inline-size-block-auto.https.html", + "css/css-layout-api/constraints/fixed-inline-size-block-auto.https.html", [ [ - "/css/css-layout-api/constraints-fixed-inline-size-ref.html", + "/css/css-layout-api/constraints/fixed-inline-size-ref.html", "==" ] ], {} ] ], - "css/css-layout-api/constraints-fixed-inline-size-fixed-vrl.https.html": [ + "css/css-layout-api/constraints/fixed-inline-size-fixed-vrl.https.html": [ [ - "css/css-layout-api/constraints-fixed-inline-size-fixed-vrl.https.html", + "css/css-layout-api/constraints/fixed-inline-size-fixed-vrl.https.html", [ [ - "/css/css-layout-api/constraints-fixed-inline-size-ref.html", + "/css/css-layout-api/constraints/fixed-inline-size-ref.html", "==" ] ], {} ] ], - "css/css-layout-api/constraints-fixed-inline-size-fixed.https.html": [ + "css/css-layout-api/constraints/fixed-inline-size-fixed.https.html": [ [ - "css/css-layout-api/constraints-fixed-inline-size-fixed.https.html", + "css/css-layout-api/constraints/fixed-inline-size-fixed.https.html", [ [ - "/css/css-layout-api/constraints-fixed-inline-size-ref.html", + "/css/css-layout-api/constraints/fixed-inline-size-ref.html", "==" ] ], {} ] ], - "css/css-layout-api/constraints-fixed-inline-size-flex-grow-column-vrl.https.html": [ + "css/css-layout-api/constraints/fixed-inline-size-flex-grow-column-vrl.https.html": [ [ - "css/css-layout-api/constraints-fixed-inline-size-flex-grow-column-vrl.https.html", + "css/css-layout-api/constraints/fixed-inline-size-flex-grow-column-vrl.https.html", [ [ - "/css/css-layout-api/constraints-fixed-inline-size-ref.html", + "/css/css-layout-api/constraints/fixed-inline-size-ref.html", "==" ] ], {} ] ], - "css/css-layout-api/constraints-fixed-inline-size-flex-grow.https.html": [ + "css/css-layout-api/constraints/fixed-inline-size-flex-grow.https.html": [ [ - "css/css-layout-api/constraints-fixed-inline-size-flex-grow.https.html", + "css/css-layout-api/constraints/fixed-inline-size-flex-grow.https.html", [ [ - "/css/css-layout-api/constraints-fixed-inline-size-ref.html", + "/css/css-layout-api/constraints/fixed-inline-size-ref.html", "==" ] ], {} ] ], - "css/css-layout-api/constraints-fixed-inline-size-grid.https.html": [ + "css/css-layout-api/constraints/fixed-inline-size-grid.https.html": [ [ - "css/css-layout-api/constraints-fixed-inline-size-grid.https.html", + "css/css-layout-api/constraints/fixed-inline-size-grid.https.html", [ [ - "/css/css-layout-api/constraints-fixed-inline-size-ref.html", + "/css/css-layout-api/constraints/fixed-inline-size-ref.html", "==" ] ], {} ] ], - "css/css-layout-api/constraints-fixed-inline-size-percentage-vlr.https.html": [ + "css/css-layout-api/constraints/fixed-inline-size-percentage-vlr.https.html": [ [ - "css/css-layout-api/constraints-fixed-inline-size-percentage-vlr.https.html", + "css/css-layout-api/constraints/fixed-inline-size-percentage-vlr.https.html", [ [ - "/css/css-layout-api/constraints-fixed-inline-size-ref.html", + "/css/css-layout-api/constraints/fixed-inline-size-ref.html", "==" ] ], {} ] ], - "css/css-layout-api/constraints-fixed-inline-size-percentage.https.html": [ + "css/css-layout-api/constraints/fixed-inline-size-percentage.https.html": [ [ - "css/css-layout-api/constraints-fixed-inline-size-percentage.https.html", + "css/css-layout-api/constraints/fixed-inline-size-percentage.https.html", [ [ - "/css/css-layout-api/constraints-fixed-inline-size-ref.html", + "/css/css-layout-api/constraints/fixed-inline-size-ref.html", "==" ] ], {} ] ], - "css/css-layout-api/fallback-constructor-error.https.html": [ + "css/css-layout-api/fallback-layout/bad-return.https.html": [ [ - "css/css-layout-api/fallback-constructor-error.https.html", + "css/css-layout-api/fallback-layout/bad-return.https.html", [ [ - "/css/css-layout-api/fallback-ref.html", + "/css/css-layout-api/fallback-layout/fallback-ref.html", "==" ] ], {} ] ], - "css/css-layout-api/fallback-layout-error.https.html": [ + "css/css-layout-api/fallback-layout/constructor-error.https.html": [ [ - "css/css-layout-api/fallback-layout-error.https.html", + "css/css-layout-api/fallback-layout/constructor-error.https.html", [ [ - "/css/css-layout-api/fallback-ref.html", + "/css/css-layout-api/fallback-layout/fallback-ref.html", "==" ] ], {} ] ], - "css/css-layout-api/fallback-layout-invalid-child.https.html": [ + "css/css-layout-api/fallback-layout/error.https.html": [ [ - "css/css-layout-api/fallback-layout-invalid-child.https.html", + "css/css-layout-api/fallback-layout/error.https.html", [ [ - "/css/css-layout-api/fallback-ref.html", + "/css/css-layout-api/fallback-layout/fallback-ref.html", "==" ] ], {} ] ], - "css/css-layout-api/fallback-layout-invalid-fragment.https.html": [ + "css/css-layout-api/fallback-layout/invalid-child.https.html": [ [ - "css/css-layout-api/fallback-layout-invalid-fragment.https.html", + "css/css-layout-api/fallback-layout/invalid-child.https.html", [ [ - "/css/css-layout-api/fallback-ref.html", + "/css/css-layout-api/fallback-layout/fallback-ref.html", "==" ] ], {} ] ], - "css/css-layout-api/fallback-layout-no-promise.https.html": [ + "css/css-layout-api/fallback-layout/invalid-fragment.https.html": [ [ - "css/css-layout-api/fallback-layout-no-promise.https.html", + "css/css-layout-api/fallback-layout/invalid-fragment.https.html", [ [ - "/css/css-layout-api/fallback-ref.html", + "/css/css-layout-api/fallback-layout/fallback-ref.html", "==" ] ], {} ] ], - "css/css-layout-api/fallback-layout-return.https.html": [ + "css/css-layout-api/fallback-layout/no-promise.https.html": [ [ - "css/css-layout-api/fallback-layout-return.https.html", + "css/css-layout-api/fallback-layout/no-promise.https.html", [ [ - "/css/css-layout-api/fallback-ref.html", + "/css/css-layout-api/fallback-layout/fallback-ref.html", "==" ] ], {} ] ], - "css/css-layout-api/fallback-layout-unresolved-promise.https.html": [ + "css/css-layout-api/fallback-layout/unresolved-promise.https.html": [ [ - "css/css-layout-api/fallback-layout-unresolved-promise.https.html", + "css/css-layout-api/fallback-layout/unresolved-promise.https.html", [ [ - "/css/css-layout-api/fallback-ref.html", + "/css/css-layout-api/fallback-layout/fallback-ref.html", "==" ] ], @@ -128239,9 +128251,9 @@ {} ] ], - "css/css-layout-api/layout-child-absolute.https.html": [ + "css/css-layout-api/layout-child/absolute.https.html": [ [ - "css/css-layout-api/layout-child-absolute.https.html", + "css/css-layout-api/layout-child/absolute.https.html", [ [ "/css/css-layout-api/green-square-ref.html", @@ -128251,9 +128263,9 @@ {} ] ], - "css/css-layout-api/layout-child-before-after.https.html": [ + "css/css-layout-api/layout-child/before-after.https.html": [ [ - "css/css-layout-api/layout-child-before-after.https.html", + "css/css-layout-api/layout-child/before-after.https.html", [ [ "/css/css-layout-api/green-square-ref.html", @@ -128263,9 +128275,9 @@ {} ] ], - "css/css-layout-api/layout-child-fixed.https.html": [ + "css/css-layout-api/layout-child/fixed.https.html": [ [ - "css/css-layout-api/layout-child-fixed.https.html", + "css/css-layout-api/layout-child/fixed.https.html", [ [ "/css/css-layout-api/green-square-ref.html", @@ -128275,9 +128287,9 @@ {} ] ], - "css/css-layout-api/layout-child-float.https.html": [ + "css/css-layout-api/layout-child/float.https.html": [ [ - "css/css-layout-api/layout-child-float.https.html", + "css/css-layout-api/layout-child/float.https.html", [ [ "/css/css-layout-api/green-square-ref.html", @@ -128287,9 +128299,9 @@ {} ] ], - "css/css-layout-api/layout-child-inflow.https.html": [ + "css/css-layout-api/layout-child/inflow.https.html": [ [ - "css/css-layout-api/layout-child-inflow.https.html", + "css/css-layout-api/layout-child/inflow.https.html", [ [ "/css/css-layout-api/green-square-ref.html", @@ -128299,9 +128311,9 @@ {} ] ], - "css/css-layout-api/layout-child-inlines.https.html": [ + "css/css-layout-api/layout-child/inlines.https.html": [ [ - "css/css-layout-api/layout-child-inlines.https.html", + "css/css-layout-api/layout-child/inlines.https.html", [ [ "/css/css-layout-api/green-square-ref.html", @@ -128311,9 +128323,9 @@ {} ] ], - "css/css-layout-api/layout-child-text.https.html": [ + "css/css-layout-api/layout-child/text.https.html": [ [ - "css/css-layout-api/layout-child-text.https.html", + "css/css-layout-api/layout-child/text.https.html", [ [ "/css/css-layout-api/green-square-ref.html", @@ -128323,72 +128335,72 @@ {} ] ], - "css/css-layout-api/position-fragment-htb-ltr.https.html": [ + "css/css-layout-api/position-fragment/htb-ltr.https.html": [ [ - "css/css-layout-api/position-fragment-htb-ltr.https.html", + "css/css-layout-api/position-fragment/htb-ltr.https.html", [ [ - "/css/css-layout-api/position-fragment-ref.html", + "/css/css-layout-api/position-fragment/ref.html", "==" ] ], {} ] ], - "css/css-layout-api/position-fragment-htb-rtl.https.html": [ + "css/css-layout-api/position-fragment/htb-rtl.https.html": [ [ - "css/css-layout-api/position-fragment-htb-rtl.https.html", + "css/css-layout-api/position-fragment/htb-rtl.https.html", [ [ - "/css/css-layout-api/position-fragment-ref.html", + "/css/css-layout-api/position-fragment/ref.html", "==" ] ], {} ] ], - "css/css-layout-api/position-fragment-vlr-ltr.https.html": [ + "css/css-layout-api/position-fragment/vlr-ltr.https.html": [ [ - "css/css-layout-api/position-fragment-vlr-ltr.https.html", + "css/css-layout-api/position-fragment/vlr-ltr.https.html", [ [ - "/css/css-layout-api/position-fragment-ref.html", + "/css/css-layout-api/position-fragment/ref.html", "==" ] ], {} ] ], - "css/css-layout-api/position-fragment-vlr-rtl.https.html": [ + "css/css-layout-api/position-fragment/vlr-rtl.https.html": [ [ - "css/css-layout-api/position-fragment-vlr-rtl.https.html", + "css/css-layout-api/position-fragment/vlr-rtl.https.html", [ [ - "/css/css-layout-api/position-fragment-ref.html", + "/css/css-layout-api/position-fragment/ref.html", "==" ] ], {} ] ], - "css/css-layout-api/position-fragment-vrl-ltr.https.html": [ + "css/css-layout-api/position-fragment/vrl-ltr.https.html": [ [ - "css/css-layout-api/position-fragment-vrl-ltr.https.html", + "css/css-layout-api/position-fragment/vrl-ltr.https.html", [ [ - "/css/css-layout-api/position-fragment-ref.html", + "/css/css-layout-api/position-fragment/ref.html", "==" ] ], {} ] ], - "css/css-layout-api/position-fragment-vrl-rtl.https.html": [ + "css/css-layout-api/position-fragment/vrl-rtl.https.html": [ [ - "css/css-layout-api/position-fragment-vrl-rtl.https.html", + "css/css-layout-api/position-fragment/vrl-rtl.https.html", [ [ - "/css/css-layout-api/position-fragment-ref.html", + "/css/css-layout-api/position-fragment/ref.html", "==" ] ], @@ -134383,6 +134395,18 @@ {} ] ], + "css/css-paint-api/color-custom-property-animation.https.html": [ + [ + "css/css-paint-api/color-custom-property-animation.https.html", + [ + [ + "/css/css-paint-api/color-custom-property-animation-ref.html", + "==" + ] + ], + {} + ] + ], "css/css-paint-api/custom-property-animation-on-main-thread.https.html": [ [ "css/css-paint-api/custom-property-animation-on-main-thread.https.html", @@ -142959,6 +142983,118 @@ {} ] ], + "css/css-text-decor/text-decoration-skip-ink-sidewayslr-001.html": [ + [ + "css/css-text-decor/text-decoration-skip-ink-sidewayslr-001.html", + [ + [ + "/css/css-text-decor/reference/text-decoration-skip-ink-sidewayslr-001-notref.html", + "!=" + ] + ], + {} + ] + ], + "css/css-text-decor/text-decoration-skip-ink-sidewayslr-002.html": [ + [ + "css/css-text-decor/text-decoration-skip-ink-sidewayslr-002.html", + [ + [ + "/css/css-text-decor/reference/text-decoration-skip-ink-002-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-text-decor/text-decoration-skip-ink-sidewaysrl-001.html": [ + [ + "css/css-text-decor/text-decoration-skip-ink-sidewaysrl-001.html", + [ + [ + "/css/css-text-decor/reference/text-decoration-skip-ink-sidewaysrl-001-notref.html", + "!=" + ] + ], + {} + ] + ], + "css/css-text-decor/text-decoration-skip-ink-sidewaysrl-002.html": [ + [ + "css/css-text-decor/text-decoration-skip-ink-sidewaysrl-002.html", + [ + [ + "/css/css-text-decor/reference/text-decoration-skip-ink-002-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-text-decor/text-decoration-skip-ink-upright-001.html": [ + [ + "css/css-text-decor/text-decoration-skip-ink-upright-001.html", + [ + [ + "/css/css-text-decor/reference/text-decoration-skip-ink-upright-001-notref.html", + "!=" + ], + [ + "/css/css-text-decor/reference/text-decoration-skip-ink-upright-001-offset-notref.html", + "!=" + ] + ], + {} + ] + ], + "css/css-text-decor/text-decoration-skip-ink-upright-002.html": [ + [ + "css/css-text-decor/text-decoration-skip-ink-upright-002.html", + [ + [ + "/css/css-text-decor/reference/text-decoration-skip-ink-002-ref.html", + "==" + ], + [ + "/css/css-text-decor/reference/text-decoration-skip-ink-upright-002-notref.html", + "!=" + ] + ], + {} + ] + ], + "css/css-text-decor/text-decoration-skip-ink-vertical-001.html": [ + [ + "css/css-text-decor/text-decoration-skip-ink-vertical-001.html", + [ + [ + "/css/css-text-decor/reference/text-decoration-skip-ink-vertical-001-notref.html", + "!=" + ], + [ + "/css/css-text-decor/reference/text-decoration-skip-ink-vertical-001-offset-notref.html", + "!=" + ] + ], + {} + ] + ], + "css/css-text-decor/text-decoration-skip-ink-vertical-002.html": [ + [ + "css/css-text-decor/text-decoration-skip-ink-vertical-002.html", + [ + [ + "/css/css-text-decor/reference/text-decoration-skip-ink-002-ref.html", + "==" + ], + [ + "/css/css-text-decor/reference/text-decoration-skip-ink-vertical-002-notref.html", + "!=" + ] + ], + {} + ] + ], "css/css-text-decor/text-decoration-style-multiple.html": [ [ "css/css-text-decor/text-decoration-style-multiple.html", @@ -202597,18 +202733,6 @@ {} ] ], - "html/rendering/replaced-elements/the-select-element/select-1-block-size-001-2.html": [ - [ - "html/rendering/replaced-elements/the-select-element/select-1-block-size-001-2.html", - [ - [ - "/html/rendering/replaced-elements/the-select-element/select-1-block-size-001-ref-2.html", - "==" - ] - ], - {} - ] - ], "html/rendering/replaced-elements/the-select-element/select-1-block-size-001.html": [ [ "html/rendering/replaced-elements/the-select-element/select-1-block-size-001.html", @@ -205505,6 +205629,18 @@ {} ] ], + "shadow-dom/directionality-002.tentative.html": [ + [ + "shadow-dom/directionality-002.tentative.html", + [ + [ + "/shadow-dom/directionality-002-ref.html", + "==" + ] + ], + {} + ] + ], "shadow-dom/layout-slot-no-longer-assigned.html": [ [ "shadow-dom/layout-slot-no-longer-assigned.html", @@ -211137,6 +211273,18 @@ {} ] ], + "html/rendering/replaced-elements/the-select-element/select-1-block-size-001-ref.html": [ + [ + "html/rendering/replaced-elements/the-select-element/select-1-block-size-001-ref.html", + [ + [ + "/html/rendering/replaced-elements/the-select-element/select-1-block-size-001-ref-2.html", + "==" + ] + ], + {} + ] + ], "infrastructure/assumptions/ahem-ref.html": [ [ "infrastructure/assumptions/ahem-ref.html", @@ -245278,6 +245426,9 @@ "css/css-display/display-flow-root-001-ref.html": [ [] ], + "css/css-display/display-flow-root-list-item-001-ref.html": [ + [] + ], "css/css-display/display-inline-dynamic-001-ref.html": [ [] ], @@ -251791,19 +251942,19 @@ "css/css-layout-api/META.yml": [ [] ], - "css/css-layout-api/auto-block-size-absolute-ref.html": [ + "css/css-layout-api/auto-block-size/absolute-ref.html": [ [] ], - "css/css-layout-api/auto-block-size-flex-ref.html": [ + "css/css-layout-api/auto-block-size/flex-ref.html": [ [] ], - "css/css-layout-api/auto-block-size-floats-ref.html": [ + "css/css-layout-api/auto-block-size/floats-ref.html": [ [] ], - "css/css-layout-api/auto-block-size-inflow-ref.html": [ + "css/css-layout-api/auto-block-size/inflow-ref.html": [ [] ], - "css/css-layout-api/auto-block-size-negative-ref.html": [ + "css/css-layout-api/auto-block-size/negative-ref.html": [ [] ], "css/css-layout-api/box-tree-registered-ref.html": [ @@ -251812,40 +251963,40 @@ "css/css-layout-api/box-tree-unregistered-ref.html": [ [] ], - "css/css-layout-api/constraints-fixed-inline-size-ref.html": [ + "css/css-layout-api/child-constraints/support/layout-child-sizes-worklet.js": [ [] ], - "css/css-layout-api/fallback-ref.html": [ + "css/css-layout-api/constraints/fixed-inline-size-ref.html": [ [] ], - "css/css-layout-api/green-square-ref.html": [ + "css/css-layout-api/constraints/support/constraints-fixed-block-size-quirky-body-iframe.html": [ [] ], - "css/css-layout-api/position-fragment-ref.html": [ + "css/css-layout-api/constraints/support/constraints-fixed-block-size.js": [ [] ], - "css/css-layout-api/style-map-multi-ref.html": [ + "css/css-layout-api/constraints/support/constraints-fixed-inline-size.js": [ [] ], - "css/css-layout-api/style-map-ref.html": [ + "css/css-layout-api/fallback-layout/fallback-ref.html": [ [] ], - "css/css-layout-api/support/constraints-fixed-block-size-quirky-body-iframe.html": [ + "css/css-layout-api/green-square-ref.html": [ [] ], - "css/css-layout-api/support/constraints-fixed-block-size.js": [ + "css/css-layout-api/layout-child/support/layout-child-worklet.js": [ [] ], - "css/css-layout-api/support/constraints-fixed-inline-size.js": [ + "css/css-layout-api/position-fragment/ref.html": [ [] ], - "css/css-layout-api/support/layout-child-sizes-worklet.js": [ + "css/css-layout-api/position-fragment/support/layout-position-child-worklet.js": [ [] ], - "css/css-layout-api/support/layout-child-worklet.js": [ + "css/css-layout-api/style-map-multi-ref.html": [ [] ], - "css/css-layout-api/support/layout-position-child-worklet.js": [ + "css/css-layout-api/style-map-ref.html": [ [] ], "css/css-lists/META.yml": [ @@ -253033,6 +253184,9 @@ "css/css-paint-api/background-repeat-x-ref.html": [ [] ], + "css/css-paint-api/color-custom-property-animation-ref.html": [ + [] + ], "css/css-paint-api/geometry-background-image-001-ref.html": [ [] ], @@ -254827,6 +254981,30 @@ "css/css-text-decor/reference/text-decoration-skip-ink-004-notref.html": [ [] ], + "css/css-text-decor/reference/text-decoration-skip-ink-sidewayslr-001-notref.html": [ + [] + ], + "css/css-text-decor/reference/text-decoration-skip-ink-sidewaysrl-001-notref.html": [ + [] + ], + "css/css-text-decor/reference/text-decoration-skip-ink-upright-001-notref.html": [ + [] + ], + "css/css-text-decor/reference/text-decoration-skip-ink-upright-001-offset-notref.html": [ + [] + ], + "css/css-text-decor/reference/text-decoration-skip-ink-upright-002-notref.html": [ + [] + ], + "css/css-text-decor/reference/text-decoration-skip-ink-vertical-001-notref.html": [ + [] + ], + "css/css-text-decor/reference/text-decoration-skip-ink-vertical-001-offset-notref.html": [ + [] + ], + "css/css-text-decor/reference/text-decoration-skip-ink-vertical-002-notref.html": [ + [] + ], "css/css-text-decor/reference/text-decoration-style-multiple-ref.html": [ [] ], @@ -256744,9 +256922,6 @@ "css/css-transforms/META.yml": [ [] ], - "css/css-transforms/animation/resources/interpolation-testcommon.js": [ - [] - ], "css/css-transforms/composited-under-rotateY-180deg-clip-perspective-ref.html": [ [] ], @@ -260137,6 +260312,21 @@ "css/css-writing-modes/support/margin-collapse-2em-space-wm-vert.png": [ [] ], + "css/css-writing-modes/support/mn+arabic.png": [ + [] + ], + "css/css-writing-modes/support/mn+latin.png": [ + [] + ], + "css/css-writing-modes/support/mn-orientation.png": [ + [] + ], + "css/css-writing-modes/support/mn_ar_wrap.png": [ + [] + ], + "css/css-writing-modes/support/mn_en_wrap.png": [ + [] + ], "css/css-writing-modes/support/opaque-square-40x160.png": [ [] ], @@ -260338,6 +260528,9 @@ "css/css-writing-modes/support/wm-propagation-body-035-exp-res.png": [ [] ], + "css/css-writing-modes/support/world.png": [ + [] + ], "css/css-writing-modes/support/yellow-square-59x59.png": [ [] ], @@ -260353,6 +260546,21 @@ "css/css-writing-modes/support/yellow-square-vert-redline-right-59x59.png": [ [] ], + "css/css-writing-modes/support/zh+arabic.png": [ + [] + ], + "css/css-writing-modes/support/zh+latin.png": [ + [] + ], + "css/css-writing-modes/support/zh-orientation.png": [ + [] + ], + "css/css-writing-modes/support/zh_ar_wrap.png": [ + [] + ], + "css/css-writing-modes/support/zh_en_wrap.png": [ + [] + ], "css/css-writing-modes/table-progression-001-ref.html": [ [] ], @@ -266383,6 +266591,12 @@ "feature-policy/reporting/midi-reporting.https.html.headers": [ [] ], + "feature-policy/reporting/oversized-images-reporting.html.headers": [ + [] + ], + "feature-policy/reporting/oversized.jpg": [ + [] + ], "feature-policy/reporting/payment-report-only.https.html.headers": [ [] ], @@ -271942,9 +272156,6 @@ "html/rendering/replaced-elements/the-select-element/select-1-block-size-001-ref-2.html": [ [] ], - "html/rendering/replaced-elements/the-select-element/select-1-block-size-001-ref.html": [ - [] - ], "html/rendering/replaced-elements/the-select-element/select-1-block-size-ref.html": [ [] ], @@ -276646,6 +276857,9 @@ "performance-timeline/performanceobservers.js": [ [] ], + "performance-timeline/resources/postmessage-entry.html": [ + [] + ], "performance-timeline/resources/square.png": [ [] ], @@ -281101,6 +281315,9 @@ "shadow-dom/directionality-001-ref.html": [ [] ], + "shadow-dom/directionality-002-ref.html": [ + [] + ], "shadow-dom/focus/resources/shadow-utils.js": [ [] ], @@ -287410,6 +287627,126 @@ "webgl/common.js": [ [] ], + "webgpu/framework/allowed_characters.js": [ + [] + ], + "webgpu/framework/collect_garbage.js": [ + [] + ], + "webgpu/framework/fixture.js": [ + [] + ], + "webgpu/framework/gpu/implementation.js": [ + [] + ], + "webgpu/framework/id.js": [ + [] + ], + "webgpu/framework/index.js": [ + [] + ], + "webgpu/framework/listing.js": [ + [] + ], + "webgpu/framework/loader.js": [ + [] + ], + "webgpu/framework/logger.js": [ + [] + ], + "webgpu/framework/params/combine.js": [ + [] + ], + "webgpu/framework/params/exclude.js": [ + [] + ], + "webgpu/framework/params/filter.js": [ + [] + ], + "webgpu/framework/params/index.js": [ + [] + ], + "webgpu/framework/params/options.js": [ + [] + ], + "webgpu/framework/test_filter/filter_by_group.js": [ + [] + ], + "webgpu/framework/test_filter/filter_one_file.js": [ + [] + ], + "webgpu/framework/test_filter/index.js": [ + [] + ], + "webgpu/framework/test_filter/internal.js": [ + [] + ], + "webgpu/framework/test_filter/load_filter.js": [ + [] + ], + "webgpu/framework/test_group.js": [ + [] + ], + "webgpu/framework/url_query.js": [ + [] + ], + "webgpu/framework/util/index.js": [ + [] + ], + "webgpu/framework/util/stack.js": [ + [] + ], + "webgpu/framework/version.js": [ + [] + ], + "webgpu/runtime/wpt.js": [ + [] + ], + "webgpu/suites/cts/buffers/create_mapped.spec.js": [ + [] + ], + "webgpu/suites/cts/buffers/map.spec.js": [ + [] + ], + "webgpu/suites/cts/buffers/map_detach.spec.js": [ + [] + ], + "webgpu/suites/cts/buffers/map_oom.spec.js": [ + [] + ], + "webgpu/suites/cts/buffers/mapping_test.js": [ + [] + ], + "webgpu/suites/cts/canvas/context_creation.spec.js": [ + [] + ], + "webgpu/suites/cts/command_buffer/basic.spec.js": [ + [] + ], + "webgpu/suites/cts/command_buffer/compute/basic.spec.js": [ + [] + ], + "webgpu/suites/cts/command_buffer/copies.spec.js": [ + [] + ], + "webgpu/suites/cts/command_buffer/render/basic.spec.js": [ + [] + ], + "webgpu/suites/cts/command_buffer/render/rendering.spec.js": [ + [] + ], + "webgpu/suites/cts/examples.spec.js": [ + [] + ], + "webgpu/suites/cts/fences.spec.js": [ + [] + ], + "webgpu/suites/cts/gpu_test.js": [ + [] + ], + "webgpu/suites/cts/index.js": [ + [] + ], "webmessaging/META.yml": [ [] ], @@ -313098,6 +313435,12 @@ {} ] ], + "css/css-box/parsing/padding-computed.html": [ + [ + "css/css-box/parsing/padding-computed.html", + {} + ] + ], "css/css-box/parsing/padding-invalid.html": [ [ "css/css-box/parsing/padding-invalid.html", @@ -317028,6 +317371,24 @@ {} ] ], + "css/css-inline/parsing/line-height-computed.html": [ + [ + "css/css-inline/parsing/line-height-computed.html", + {} + ] + ], + "css/css-inline/parsing/line-height-invalid.html": [ + [ + "css/css-inline/parsing/line-height-invalid.html", + {} + ] + ], + "css/css-inline/parsing/line-height-valid.html": [ + [ + "css/css-inline/parsing/line-height-valid.html", + {} + ] + ], "css/css-layout-api/at-supports-rule.https.html": [ [ "css/css-layout-api/at-supports-rule.https.html", @@ -317052,9 +317413,9 @@ {} ] ], - "css/css-layout-api/layout-child-inlines-dynamic.https.html": [ + "css/css-layout-api/layout-child/inlines-dynamic.https.html": [ [ - "css/css-layout-api/layout-child-inlines-dynamic.https.html", + "css/css-layout-api/layout-child/inlines-dynamic.https.html", {} ] ], @@ -317106,6 +317467,12 @@ {} ] ], + "css/css-lists/nested-list-with-list-style-type-none.html": [ + [ + "css/css-lists/nested-list-with-list-style-type-none.html", + {} + ] + ], "css/css-lists/parsing/counter-increment-invalid.html": [ [ "css/css-lists/parsing/counter-increment-invalid.html", @@ -318168,6 +318535,30 @@ {} ] ], + "css/css-position/animations/bottom-interpolation.html": [ + [ + "css/css-position/animations/bottom-interpolation.html", + {} + ] + ], + "css/css-position/animations/left-interpolation.html": [ + [ + "css/css-position/animations/left-interpolation.html", + {} + ] + ], + "css/css-position/animations/right-interpolation.html": [ + [ + "css/css-position/animations/right-interpolation.html", + {} + ] + ], + "css/css-position/animations/top-interpolation.html": [ + [ + "css/css-position/animations/top-interpolation.html", + {} + ] + ], "css/css-position/inheritance.html": [ [ "css/css-position/inheritance.html", @@ -320214,6 +320605,12 @@ {} ] ], + "css/css-sizing/animation/width-interpolation.html": [ + [ + "css/css-sizing/animation/width-interpolation.html", + {} + ] + ], "css/css-sizing/aspect-ratio-affects-container-width-when-height-changes.html": [ [ "css/css-sizing/aspect-ratio-affects-container-width-when-height-changes.html", @@ -323664,14 +324061,6 @@ {} ] ], - "css/css-transitions/transitions-animatable-properties-01.html": [ - [ - "css/css-transitions/transitions-animatable-properties-01.html", - { - "timeout": "long" - } - ] - ], "css/css-transitions/zero-duration-multiple-transition.html": [ [ "css/css-transitions/zero-duration-multiple-transition.html", @@ -326144,6 +326533,18 @@ {} ] ], + "css/css-values/minmax-angle-computed.html": [ + [ + "css/css-values/minmax-angle-computed.html", + {} + ] + ], + "css/css-values/minmax-angle-invalid.html": [ + [ + "css/css-values/minmax-angle-invalid.html", + {} + ] + ], "css/css-values/rgba-011.html": [ [ "css/css-values/rgba-011.html", @@ -343502,6 +343903,12 @@ {} ] ], + "feature-policy/reporting/oversized-images-reporting.html": [ + [ + "feature-policy/reporting/oversized-images-reporting.html", + {} + ] + ], "feature-policy/reporting/payment-report-only.https.html": [ [ "feature-policy/reporting/payment-report-only.https.html", @@ -362266,6 +362673,12 @@ {} ] ], + "infrastructure/assumptions/document-fonts-ready.html": [ + [ + "infrastructure/assumptions/document-fonts-ready.html", + {} + ] + ], "infrastructure/assumptions/html-elements.html": [ [ "infrastructure/assumptions/html-elements.html", @@ -362721,9 +363134,9 @@ {} ] ], - "intersection-observer/cross-origin-iframe.html": [ + "intersection-observer/cross-origin-iframe.sub.html": [ [ - "intersection-observer/cross-origin-iframe.html", + "intersection-observer/cross-origin-iframe.sub.html", {} ] ], @@ -378978,6 +379391,12 @@ {} ] ], + "performance-timeline/not-clonable.html": [ + [ + "performance-timeline/not-clonable.html", + {} + ] + ], "performance-timeline/observer-buffered-false.any.js": [ [ "performance-timeline/observer-buffered-false.any.html", @@ -400606,6 +401025,12 @@ {} ] ], + "svg/animations/correct-events-for-short-animations-with-syncbases.html": [ + [ + "svg/animations/correct-events-for-short-animations-with-syncbases.html", + {} + ] + ], "svg/animations/cyclic-syncbase.html": [ [ "svg/animations/cyclic-syncbase.html", @@ -400678,6 +401103,12 @@ {} ] ], + "svg/animations/scripted/paced-value-animation-overwrites-keyTimes.html": [ + [ + "svg/animations/scripted/paced-value-animation-overwrites-keyTimes.html", + {} + ] + ], "svg/animations/single-values-animation.html": [ [ "svg/animations/single-values-animation.html", @@ -402094,6 +402525,12 @@ {} ] ], + "svg/text/parsing/text-anchor-computed.svg": [ + [ + "svg/text/parsing/text-anchor-computed.svg", + {} + ] + ], "svg/text/parsing/text-anchor-invalid.svg": [ [ "svg/text/parsing/text-anchor-invalid.svg", @@ -409226,6 +409663,56 @@ } ] ], + "webgpu/cts.html": [ + [ + "webgpu/cts.html?q=cts:buffers/create_mapped:", + {} + ], + [ + "webgpu/cts.html?q=cts:buffers/map:", + {} + ], + [ + "webgpu/cts.html?q=cts:buffers/map_detach:", + {} + ], + [ + "webgpu/cts.html?q=cts:buffers/map_oom:", + {} + ], + [ + "webgpu/cts.html?q=cts:canvas/context_creation:", + {} + ], + [ + "webgpu/cts.html?q=cts:command_buffer/basic:", + {} + ], + [ + "webgpu/cts.html?q=cts:command_buffer/compute/basic:", + {} + ], + [ + "webgpu/cts.html?q=cts:command_buffer/copies:", + {} + ], + [ + "webgpu/cts.html?q=cts:command_buffer/render/basic:", + {} + ], + [ + "webgpu/cts.html?q=cts:command_buffer/render/rendering:", + {} + ], + [ + "webgpu/cts.html?q=cts:examples:", + {} + ], + [ + "webgpu/cts.html?q=cts:fences:", + {} + ] + ], "webmessaging/Channel_postMessage_Blob.htm": [ [ "webmessaging/Channel_postMessage_Blob.htm", @@ -415292,6 +415779,12 @@ } ] ], + "webxr/navigator_xr_sameObject.https.html": [ + [ + "webxr/navigator_xr_sameObject.https.html", + {} + ] + ], "webxr/render_state_vertical_fov_immersive.https.html": [ [ "webxr/render_state_vertical_fov_immersive.https.html", @@ -415412,6 +415905,12 @@ {} ] ], + "webxr/xrFrame_session_sameObject.https.html": [ + [ + "webxr/xrFrame_session_sameObject.https.html", + {} + ] + ], "webxr/xrInputSource_add_remove.https.html": [ [ "webxr/xrInputSource_add_remove.https.html", @@ -415436,6 +415935,18 @@ {} ] ], + "webxr/xrInputSource_sameObject.https.html": [ + [ + "webxr/xrInputSource_sameObject.https.html", + {} + ] + ], + "webxr/xrPose_transform_sameObject.https.html": [ + [ + "webxr/xrPose_transform_sameObject.https.html", + {} + ] + ], "webxr/xrRay_constructor.https.html": [ [ "webxr/xrRay_constructor.https.html", @@ -415478,6 +415989,12 @@ {} ] ], + "webxr/xrRigidTransform_sameObject.https.html": [ + [ + "webxr/xrRigidTransform_sameObject.https.html", + {} + ] + ], "webxr/xrSession_cancelAnimationFrame.https.html": [ [ "webxr/xrSession_cancelAnimationFrame.https.html", @@ -415544,6 +416061,12 @@ {} ] ], + "webxr/xrSession_sameObject.https.html": [ + [ + "webxr/xrSession_sameObject.https.html", + {} + ] + ], "webxr/xrSession_viewer_referenceSpace.https.html": [ [ "webxr/xrSession_viewer_referenceSpace.https.html", @@ -415580,6 +416103,18 @@ {} ] ], + "webxr/xrView_sameObject.https.html": [ + [ + "webxr/xrView_sameObject.https.html", + {} + ] + ], + "webxr/xrViewerPose_views_sameObject.https.html": [ + [ + "webxr/xrViewerPose_views_sameObject.https.html", + {} + ] + ], "webxr/xrViewport_valid.https.html": [ [ "webxr/xrViewport_valid.https.html", @@ -415598,6 +416133,12 @@ {} ] ], + "webxr/xrWebGLLayer_framebuffer_sameObject.https.html": [ + [ + "webxr/xrWebGLLayer_framebuffer_sameObject.https.html", + {} + ] + ], "webxr/xrWebGLLayer_framebuffer_scale.https.html": [ [ "webxr/xrWebGLLayer_framebuffer_scale.https.html", @@ -441168,7 +441709,7 @@ }, "paths": { ".azure-pipelines.yml": [ - "4a4e9c7ff5ead2be22dda7ab7b50071bd70817e4", + "5799d624b4efc1e974b3cbeec0e7d9a9f6cf2e17", "support" ], ".codecov.yml": [ @@ -540903,6 +541444,10 @@ "1bfeec236460ff47ccbea842ceffd3abe733a61b", "testharness" ], + "css/css-box/parsing/padding-computed.html": [ + "f1186c4530d04c41eacbdffeb1a03e966e1becf5", + "testharness" + ], "css/css-box/parsing/padding-invalid.html": [ "3e3a560c2f71877494577f9dbc5c2eecfbab8a62", "testharness" @@ -544555,6 +545100,14 @@ "3d1dcb020df129dd10d66bb4b04d62c3c280cfb6", "reftest" ], + "css/css-display/display-flow-root-list-item-001-ref.html": [ + "00bfbca26a6036692746a8c2689831f1fcc21427", + "support" + ], + "css/css-display/display-flow-root-list-item-001.html": [ + "6c5bece5864aa15f7bd34b26055ed755b43db1f1", + "reftest" + ], "css/css-display/display-inline-dynamic-001-ref.html": [ "8b5f5015f9ebc818cbf48666773440a359e1d740", "support" @@ -560311,6 +560864,18 @@ "1a6c7a400cbec8117953389b5c54854991a66ad0", "testharness" ], + "css/css-inline/parsing/line-height-computed.html": [ + "dff6fc6702e678840718153031dc2d01b02f5470", + "testharness" + ], + "css/css-inline/parsing/line-height-invalid.html": [ + "e7d4ae62460d58c863e0a7b9568ecd7c72aef197", + "testharness" + ], + "css/css-inline/parsing/line-height-valid.html": [ + "663e2638d8b4869561ea24748c8e54077079371c", + "testharness" + ], "css/css-layout-api/META.yml": [ "c85c2d4ccc0b02f3e22ca444952fb7583d96e7c7", "support" @@ -560319,44 +560884,44 @@ "0f23325ce60d67c445745377b443fa0b0de5954d", "testharness" ], - "css/css-layout-api/auto-block-size-absolute-ref.html": [ + "css/css-layout-api/auto-block-size/absolute-ref.html": [ "416d57c43fa72e401fc833ecd214e09470fb3980", "support" ], - "css/css-layout-api/auto-block-size-absolute.https.html": [ - "bf81b21a4bbd2ded687b1aa18bc71036550206b2", + "css/css-layout-api/auto-block-size/absolute.https.html": [ + "7a726f6e00c09422bb46520a4d63de8e37af6942", "reftest" ], - "css/css-layout-api/auto-block-size-flex-ref.html": [ + "css/css-layout-api/auto-block-size/flex-ref.html": [ "e71b104c7421fad3f95f46484accb56b4f01c38f", "support" ], - "css/css-layout-api/auto-block-size-flex.https.html": [ - "5b152bb645ff21750c8d6b703d4ad6225a6504e0", + "css/css-layout-api/auto-block-size/flex.https.html": [ + "96fe3c79a938b1ab3f21bd8cd647c6ea375d776b", "reftest" ], - "css/css-layout-api/auto-block-size-floats-ref.html": [ + "css/css-layout-api/auto-block-size/floats-ref.html": [ "368d3d8693fec1b3b0dadc2c6d1862d224e8fa21", "support" ], - "css/css-layout-api/auto-block-size-floats.https.html": [ - "342c57b5300e257c8fd456489c9c57f9be0913bc", + "css/css-layout-api/auto-block-size/floats.https.html": [ + "b36f89da24530683b6687c799e3260d453af8352", "reftest" ], - "css/css-layout-api/auto-block-size-inflow-ref.html": [ + "css/css-layout-api/auto-block-size/inflow-ref.html": [ "73f84811b18e9f64edabe8577748ab018fced4d1", "support" ], - "css/css-layout-api/auto-block-size-inflow.https.html": [ - "7daef6e4c85c1931d16548720d528e4adfe98589", + "css/css-layout-api/auto-block-size/inflow.https.html": [ + "2239b27894c239360743a1c0f2b52bfce2f2f506", "reftest" ], - "css/css-layout-api/auto-block-size-negative-ref.html": [ + "css/css-layout-api/auto-block-size/negative-ref.html": [ "665b5c6620b5698f57abf63fbc01a836d8a065f6", "support" ], - "css/css-layout-api/auto-block-size-negative.https.html": [ - "392edd125aea56db857f39264abf22c6e84b337b", + "css/css-layout-api/auto-block-size/negative.https.html": [ + "a1a76d94aa3d8f2c3bd922088777c935aa8f72f2", "reftest" ], "css/css-layout-api/box-tree-registered-ref.html": [ @@ -560376,89 +560941,93 @@ "reftest" ], "css/css-layout-api/child-constraints/available-block-size-htb-vrl.https.html": [ - "0da20ee837155760bda86679355053bae821ac37", + "6ec8e4062fcce4ed95d326596735de9f44ce4cbb", "reftest" ], "css/css-layout-api/child-constraints/available-block-size-invalid.https.html": [ - "dfbc812556fbf606734755781fb8d25600964d25", + "32a0f11a4ec70f17a54d7bd1345d17cf421dc202", "reftest" ], "css/css-layout-api/child-constraints/available-block-size-vrl-htb.https.html": [ - "c8e84ae51703800e1d2031fc1b4efbe61330a528", + "536af3b5a46b9eb156ae249be1fa2a315c08bd8d", "reftest" ], "css/css-layout-api/child-constraints/available-inline-size-htb-htb.https.html": [ - "94cf75fc93fc84c0954917ac2784f1216d84ff19", + "6205c01d104feef599255ada7f96e567ec79ff49", "reftest" ], "css/css-layout-api/child-constraints/available-inline-size-invalid.https.html": [ - "136d13fa703a55a0432e3ab6d50556073175b8e9", + "8bb18aaa4ba2b127257170c4a0c6f84048693477", "reftest" ], "css/css-layout-api/child-constraints/available-inline-size-vrl-vrl.https.html": [ - "392a6b514228a03c04c19e83d163e76fc43036fb", + "1b8d01f02476526bcf327e21f4919153ce346dbf", "reftest" ], "css/css-layout-api/child-constraints/available-size-for-percentages-htb-htb.https.html": [ - "960fb7d7dcfb1da96b1a925090e5c58d1c4a7b4a", + "9bf4d40ad613390ba41581d52de0f4d52cf2e5f9", "reftest" ], "css/css-layout-api/child-constraints/available-size-for-percentages-htb-vrl.https.html": [ - "0e9b5570abeb52ff833e0549d8e8464a02482c07", + "eb104a180d75a2c041fd21c2ca00cb44e4568831", "reftest" ], "css/css-layout-api/child-constraints/available-size-for-percentages-invalid.https.html": [ - "62efe992fb3ed4029d63da14d6525e9d0964919d", + "8bd969271e0c257ec2c374eda0cb03d1b0a84912", "reftest" ], "css/css-layout-api/child-constraints/available-size-for-percentages-vrl-htb.https.html": [ - "1352ea917835c37fca3e9740349262c2f2139c59", + "ce8ff95dd0d15d9d05c8bf022e3ccb5e5eaa2deb", "reftest" ], "css/css-layout-api/child-constraints/available-size-for-percentages-vrl-vrl.https.html": [ - "9c30c212fae3a7add6dc3c56f7acae26b969e231", + "71c7355b9cdb206235c8bf1c834c42d42c10f52d", "reftest" ], "css/css-layout-api/child-constraints/fixed-block-size-vrl.https.html": [ - "dedcaa0ee83c3cbc7be138024290a3281a76b9ed", + "631c5f82815569d4274c24ad73607d03085b7051", "reftest" ], "css/css-layout-api/child-constraints/fixed-block-size.https.html": [ - "eea540ca59f2d7dd312b0ff723d4c3b6cee9e954", + "737cc4da75b440cdd7dece9b8a4872805bcb014c", "reftest" ], "css/css-layout-api/child-constraints/fixed-inline-size-vrl.https.html": [ - "22bd3e7c1258d729d901c64ab6d854ee42e309a8", + "4fc3c2e77d99291630bdcd9d8e505976a6183e55", "reftest" ], "css/css-layout-api/child-constraints/fixed-inline-size.https.html": [ - "0a05a46fe69f85836c1a125e63b9dc579a343a0b", + "0fdf4aca3a76a1afe6349e0d157d8eb0bd3e0561", "reftest" ], "css/css-layout-api/child-constraints/percentage-size-htb-htb.https.html": [ - "99224c73f5b5fc676fd16146c6f1b5877cb555fa", + "84bda1ddf5a87384e61c0ff5ebd894be09b8a638", "reftest" ], "css/css-layout-api/child-constraints/percentage-size-htb-vrl.https.html": [ - "8116d5a9b0881364246156962d9ec2e4df65114b", + "98d285b015d4adda92df3f42b988499ec57d620a", "reftest" ], "css/css-layout-api/child-constraints/percentage-size-invalid.https.html": [ - "932380a6163ed71c825675424563c3b0180c4eaa", + "04355355528a4312e24d3b975d7c603f551ac141", "reftest" ], "css/css-layout-api/child-constraints/percentage-size-quirks-mode.https.html": [ - "39a360d079d3deab244305a26a5ab4ca905ff796", + "527149b67a8cd89ec6337484bc5e1c4da5e5e8cc", "reftest" ], "css/css-layout-api/child-constraints/percentage-size-vrl-htb.https.html": [ - "70640ef0b29da555f70585eb5b6042ede9a47b0c", + "2d3d496fa5f2465a1b3790ff341a77060d95512c", "reftest" ], "css/css-layout-api/child-constraints/percentage-size-vrl-vrl.https.html": [ - "07132579621deb3c10650ab5172fdd5e24ec6076", + "577b98ad983eeb733e235db1fc9885ca62a880a3", "reftest" ], + "css/css-layout-api/child-constraints/support/layout-child-sizes-worklet.js": [ + "5956c9a70c2ba650318fd6bbbc859f1cc8002f08", + "support" + ], "css/css-layout-api/computed-style-layout-function.https.html": [ "d115009c6ca43dc5b2d72934cfe3cf3dbe5af626", "testharness" @@ -560475,210 +561044,222 @@ "4bea061917ab74c542534e23c33b5135c8a01d15", "reftest" ], - "css/css-layout-api/constraints-fixed-block-size-absolute-left-right-vrl.https.html": [ - "4a376d7ae24de5a86451e3cc85261ac21a070f59", + "css/css-layout-api/constraints/fixed-block-size-absolute-left-right-vrl.https.html": [ + "8e177dbf3369c8a8094fae5c617bde081b248625", "reftest" ], - "css/css-layout-api/constraints-fixed-block-size-absolute-none.https.html": [ - "7a695e0d8dcf5a2f32b5151d0f7fbfdb850fffbd", + "css/css-layout-api/constraints/fixed-block-size-absolute-none.https.html": [ + "7b10f11d7ddd8c75e3d76b2fd762d040ea486c56", "reftest" ], - "css/css-layout-api/constraints-fixed-block-size-absolute-top-bottom.https.html": [ - "7cbee8295ce0bb341705e0e7012c4d440c0091ad", + "css/css-layout-api/constraints/fixed-block-size-absolute-top-bottom.https.html": [ + "73c29000cfdc6d50388f4619fdc639185e6c85bf", "reftest" ], - "css/css-layout-api/constraints-fixed-block-size-block-none-vrl.https.html": [ - "6f36abe73bcee18dd20b3cc825cfeb4ee7b66523", + "css/css-layout-api/constraints/fixed-block-size-block-none-vrl.https.html": [ + "704b66d64aaeb724a66f94f09e003096b789db72", "reftest" ], - "css/css-layout-api/constraints-fixed-block-size-block-none.https.html": [ - "4fd6441c0aa63c3533250689ae5acf37eb65ab06", + "css/css-layout-api/constraints/fixed-block-size-block-none.https.html": [ + "6c023f5162837beb379d5995fa9a59016ae1fe9c", "reftest" ], - "css/css-layout-api/constraints-fixed-block-size-fixed-max.https.html": [ - "accdd7c8b009680ba3291d44c698a9e20403c532", + "css/css-layout-api/constraints/fixed-block-size-fixed-max.https.html": [ + "8af6afde26952faf53ab272c56f1e51d8ce9db27", "reftest" ], - "css/css-layout-api/constraints-fixed-block-size-fixed-min.https.html": [ - "845683dc6d5715996e4855db88ad1b7632675fa5", + "css/css-layout-api/constraints/fixed-block-size-fixed-min.https.html": [ + "4d76ed97850f01051e3fdc74b22ef32e418b6222", "reftest" ], - "css/css-layout-api/constraints-fixed-block-size-fixed-vrl.https.html": [ - "a319129a27d2b0e034bf9ff856bac505c346e73b", + "css/css-layout-api/constraints/fixed-block-size-fixed-vrl.https.html": [ + "bbc0a2fde87207deb4c1cd5eefa47f1dff2a06ad", "reftest" ], - "css/css-layout-api/constraints-fixed-block-size-fixed.https.html": [ - "646a514d18c99261d0d48ebd2fbb56373aac1570", + "css/css-layout-api/constraints/fixed-block-size-fixed.https.html": [ + "45376ac295c460d81a84d25a715085180bc4eb6f", "reftest" ], - "css/css-layout-api/constraints-fixed-block-size-flex-basis-vrl.https.html": [ - "bb12d15dbc7a375d7ba6ba0e31446ff89e51b93d", + "css/css-layout-api/constraints/fixed-block-size-flex-basis-vrl.https.html": [ + "25fc685a67b2b3082edf297d6d29d83ce1cc5ffe", "reftest" ], - "css/css-layout-api/constraints-fixed-block-size-flex-column-basis.https.html": [ - "8435b021c978c69d1e67694ec0d0d2419edf2b8b", + "css/css-layout-api/constraints/fixed-block-size-flex-column-basis.https.html": [ + "8df99ee835bb212f28ade5f0db4496857c3f44bf", "reftest" ], - "css/css-layout-api/constraints-fixed-block-size-flex-column-grow.https.html": [ - "68a3c19764315ead1453b14fe73a3a897c0b2a92", + "css/css-layout-api/constraints/fixed-block-size-flex-column-grow.https.html": [ + "da53fa86ad8c5114d40887490d8014af1089d849", "reftest" ], - "css/css-layout-api/constraints-fixed-block-size-flex-column-none.https.html": [ - "a0c416f5338f08679deead337442000f1f4efd61", + "css/css-layout-api/constraints/fixed-block-size-flex-column-none.https.html": [ + "1d4249e9252797a00311bb0d1629a791618f9efe", "reftest" ], - "css/css-layout-api/constraints-fixed-block-size-flex-column-stretch-vrl.https.html": [ - "be448da4ec18f04d4f1e80b353150890d0116565", + "css/css-layout-api/constraints/fixed-block-size-flex-column-stretch-vrl.https.html": [ + "c71e202b0ceda991010ba7a76d3815ad74ad4882", "reftest" ], - "css/css-layout-api/constraints-fixed-block-size-flex-grow-vrl.https.html": [ - "d79445e16e89bfc750dc5bd0365280e4319a5458", + "css/css-layout-api/constraints/fixed-block-size-flex-grow-vrl.https.html": [ + "f77b84910a557a71063bfc7a1e64e7697922bd5f", "reftest" ], - "css/css-layout-api/constraints-fixed-block-size-flex-none.https.html": [ - "f34a0d88a95657e8877d2cd965b05a4f3b8138ff", + "css/css-layout-api/constraints/fixed-block-size-flex-none.https.html": [ + "9ef11daccf71535da0836455cfd2d4003f6f719c", "reftest" ], - "css/css-layout-api/constraints-fixed-block-size-flex-percentage-indefinite.https.html": [ - "ee8e27b38cbdcf3205ed87bb9a940ec8f3bd86eb", + "css/css-layout-api/constraints/fixed-block-size-flex-percentage-indefinite.https.html": [ + "111120673e758e36394bdeb1c07347b067a9bc7a", "reftest" ], - "css/css-layout-api/constraints-fixed-block-size-flex-stretch-max.https.html": [ - "bbf358e1129150ca5d6486dc2373c182b8f55eda", + "css/css-layout-api/constraints/fixed-block-size-flex-stretch-max.https.html": [ + "c72ed3e04d8f3f5eef05e9d2ff576024736acb58", "reftest" ], - "css/css-layout-api/constraints-fixed-block-size-flex-stretch.https.html": [ - "1b1e43879f1fc39dc49af5b26c9aa519cb88092d", + "css/css-layout-api/constraints/fixed-block-size-flex-stretch.https.html": [ + "cfaf38295f848bdac90f8e0687f496d110cd85ca", "reftest" ], - "css/css-layout-api/constraints-fixed-block-size-grid-none.https.html": [ - "27b68a0961135253120f5e02bba6b5b3c9064ead", + "css/css-layout-api/constraints/fixed-block-size-grid-none.https.html": [ + "5c7381523e5175062cad19c02017699bceaf9597", "reftest" ], - "css/css-layout-api/constraints-fixed-block-size-grid-stretch-max.https.html": [ - "108c90db4f4f80cd3a72f87bf8e06087a78fccf9", + "css/css-layout-api/constraints/fixed-block-size-grid-stretch-max.https.html": [ + "c738ad546d220f3893b2b63d4ea6dd46debdda15", "reftest" ], - "css/css-layout-api/constraints-fixed-block-size-grid-stretch.https.html": [ - "f93ad5be3631219987f2d1c5d2be09daf12084ca", + "css/css-layout-api/constraints/fixed-block-size-grid-stretch.https.html": [ + "2e83f42c8662262dbb301a07859c3b985f9e63ab", "reftest" ], - "css/css-layout-api/constraints-fixed-block-size-grid-vrl.https.html": [ - "db82767f782d60daa895d7d9e39251324aafd560", + "css/css-layout-api/constraints/fixed-block-size-grid-vrl.https.html": [ + "2c004cd9169a27659a92e7686d88d05a992cd603", "reftest" ], - "css/css-layout-api/constraints-fixed-block-size-percentage-indefinite.https.html": [ - "94a20387442c36b5041e40194aa7ceda405a3274", + "css/css-layout-api/constraints/fixed-block-size-percentage-indefinite.https.html": [ + "ab02cb4b03f4bf141f4e3540b0b2e0e38c27a6d6", "reftest" ], - "css/css-layout-api/constraints-fixed-block-size-percentage-quirks-mode.https.html": [ - "9bd9044991cdde7c113f8fdbd08a2048a77746f9", + "css/css-layout-api/constraints/fixed-block-size-percentage-quirks-mode.https.html": [ + "285ce941b2cd85b301f45e69076570d8f7eb3fbf", "reftest" ], - "css/css-layout-api/constraints-fixed-block-size-percentage-vrl.https.html": [ - "8c7a8c5d3ea11ac3a5ac6e4269340baa10e266a5", + "css/css-layout-api/constraints/fixed-block-size-percentage-vrl.https.html": [ + "870bc526f874a5999987cff9a12a93159e8130db", "reftest" ], - "css/css-layout-api/constraints-fixed-block-size-percentage.https.html": [ - "693553e14e267676f213b998df8c4fe525ee459a", + "css/css-layout-api/constraints/fixed-block-size-percentage.https.html": [ + "335556550d28988c095fdac828caae9f3ba76d5d", "reftest" ], - "css/css-layout-api/constraints-fixed-block-size-quirky-body.https.html": [ - "7601e8b6bb4cee2e55deda5cb9603f94904bffea", + "css/css-layout-api/constraints/fixed-block-size-quirky-body.https.html": [ + "150426d45c79d881cd50bfcb52edb00df27bd963", "reftest" ], - "css/css-layout-api/constraints-fixed-inline-size-absolute-left-right.https.html": [ - "6b3662a16d43dcd5087ac4b277bec0435481eae9", + "css/css-layout-api/constraints/fixed-inline-size-absolute-left-right.https.html": [ + "3b81c4d13d408df528dbd33777403866e390eaa0", "reftest" ], - "css/css-layout-api/constraints-fixed-inline-size-absolute-top-bottom-vrl.https.html": [ - "632a5dddfac21e78c5161ae6b2d84200a9d2c9e9", + "css/css-layout-api/constraints/fixed-inline-size-absolute-top-bottom-vrl.https.html": [ + "ec94e59a17de50a46616d9402763abe157f2b684", "reftest" ], - "css/css-layout-api/constraints-fixed-inline-size-block-auto-avoid-floats-vlr.https.html": [ - "a8f4dd31ac9b41d6394fe009a6400cef356bca11", + "css/css-layout-api/constraints/fixed-inline-size-block-auto-avoid-floats-vlr.https.html": [ + "2758462bd3357f288a758ea1fe23e7b3799c0e2c", "reftest" ], - "css/css-layout-api/constraints-fixed-inline-size-block-auto-avoid-floats.https.html": [ - "2eb6197c0774ecd86ee6be73b9d9c48cbdfa3051", + "css/css-layout-api/constraints/fixed-inline-size-block-auto-avoid-floats.https.html": [ + "862b9ad3b287db2939c00d29f1ad181568f5d3cf", "reftest" ], - "css/css-layout-api/constraints-fixed-inline-size-block-auto-vlr.https.html": [ - "751ea5ef759357deb7837fabeab95fe42855bde2", + "css/css-layout-api/constraints/fixed-inline-size-block-auto-vlr.https.html": [ + "0c15fd12eed4e04fceb64b4a2ffee3ced1fd1203", "reftest" ], - "css/css-layout-api/constraints-fixed-inline-size-block-auto.https.html": [ - "1458a8bbb7987b37e713b83f4c3bb876429f9e8f", + "css/css-layout-api/constraints/fixed-inline-size-block-auto.https.html": [ + "c513c3d8441c370af8be533a8c14d5ed7aa6945a", "reftest" ], - "css/css-layout-api/constraints-fixed-inline-size-fixed-vrl.https.html": [ - "39ea818216de1668f0b6d8edc478c6b570bf0e80", + "css/css-layout-api/constraints/fixed-inline-size-fixed-vrl.https.html": [ + "93b0c110d97d6573a9f9b19b9b5aeac04658fde5", "reftest" ], - "css/css-layout-api/constraints-fixed-inline-size-fixed.https.html": [ - "6434d339196ea7c113368576830cc55d35308676", + "css/css-layout-api/constraints/fixed-inline-size-fixed.https.html": [ + "d8e8062f83fce06b7ae6bc20c7527ce4ae333fa3", "reftest" ], - "css/css-layout-api/constraints-fixed-inline-size-flex-grow-column-vrl.https.html": [ - "263d45e5b0b9dd11c73e2f53c6c795fbea541588", + "css/css-layout-api/constraints/fixed-inline-size-flex-grow-column-vrl.https.html": [ + "b9159965a07b0e6d108a08e9535b4b0b259c26fe", "reftest" ], - "css/css-layout-api/constraints-fixed-inline-size-flex-grow.https.html": [ - "d2589e62e78061502e6515356dbe871552103c83", + "css/css-layout-api/constraints/fixed-inline-size-flex-grow.https.html": [ + "c2532c1460b838f9367a95bf4771a7474c0405d3", "reftest" ], - "css/css-layout-api/constraints-fixed-inline-size-grid.https.html": [ - "94eca6b5967697617270c7bb63e76cf4cbfb093b", + "css/css-layout-api/constraints/fixed-inline-size-grid.https.html": [ + "45f9f491e7b7bf6c24af4167407f37500ca75788", "reftest" ], - "css/css-layout-api/constraints-fixed-inline-size-percentage-vlr.https.html": [ - "0efabcb31abb6c7df237e4666d659404a147a4cc", + "css/css-layout-api/constraints/fixed-inline-size-percentage-vlr.https.html": [ + "2e3504377726a11fa52b3194596daf8f29a20d2a", "reftest" ], - "css/css-layout-api/constraints-fixed-inline-size-percentage.https.html": [ - "4b5a5675ac0d9d1f9cf24e06f3e35a8a6a2f9a70", + "css/css-layout-api/constraints/fixed-inline-size-percentage.https.html": [ + "c9041cf0eac2436260c2ff3e5e775fb3f9430854", "reftest" ], - "css/css-layout-api/constraints-fixed-inline-size-ref.html": [ + "css/css-layout-api/constraints/fixed-inline-size-ref.html": [ "e5727c0e2d2efa2b8487da66d0828487d7571497", "support" ], + "css/css-layout-api/constraints/support/constraints-fixed-block-size-quirky-body-iframe.html": [ + "da770e6caf1da462983fc6741b58c4084a8da438", + "support" + ], + "css/css-layout-api/constraints/support/constraints-fixed-block-size.js": [ + "25d73ef61568477784a002dfeb591b7f5c8d0b30", + "support" + ], + "css/css-layout-api/constraints/support/constraints-fixed-inline-size.js": [ + "3636f366547342a04253864016bf89ed392ea48a", + "support" + ], "css/css-layout-api/crash-multicol.https.html": [ - "dbcbd183def6a4c3374e127736944b72d9651c74", + "5f175100e55ba48fa8cda6f2cd626affee0e3b09", "testharness" ], - "css/css-layout-api/fallback-constructor-error.https.html": [ + "css/css-layout-api/fallback-layout/bad-return.https.html": [ + "4c90ae7d336682c948a237937c01475a6fa4cdae", + "reftest" + ], + "css/css-layout-api/fallback-layout/constructor-error.https.html": [ "3f711af2e7ae955ded29895bc64eb52cac7f487e", "reftest" ], - "css/css-layout-api/fallback-layout-error.https.html": [ + "css/css-layout-api/fallback-layout/error.https.html": [ "4c44f2168b2fb1e5c1071f40a355ea9a79714730", "reftest" ], - "css/css-layout-api/fallback-layout-invalid-child.https.html": [ + "css/css-layout-api/fallback-layout/fallback-ref.html": [ + "63bb91e90ca00f02d108f562ed857058df2443ca", + "support" + ], + "css/css-layout-api/fallback-layout/invalid-child.https.html": [ "567c3f7f74590eb8fcb9defd724533738f36023f", "reftest" ], - "css/css-layout-api/fallback-layout-invalid-fragment.https.html": [ + "css/css-layout-api/fallback-layout/invalid-fragment.https.html": [ "2e33e8761d32118154ced40882a095d30001c0fc", "reftest" ], - "css/css-layout-api/fallback-layout-no-promise.https.html": [ + "css/css-layout-api/fallback-layout/no-promise.https.html": [ "e7b22a4c5cd21a892799e4f711704bcdc6d57ce3", "reftest" ], - "css/css-layout-api/fallback-layout-return.https.html": [ - "4c90ae7d336682c948a237937c01475a6fa4cdae", - "reftest" - ], - "css/css-layout-api/fallback-layout-unresolved-promise.https.html": [ + "css/css-layout-api/fallback-layout/unresolved-promise.https.html": [ "369c56e4f9483537cf531fc1f20aea6f93fea88b", "reftest" ], - "css/css-layout-api/fallback-ref.html": [ - "63bb91e90ca00f02d108f562ed857058df2443ca", - "support" - ], "css/css-layout-api/fragment-data-function-failure.https.html": [ "8496967be06401d5a21d097f4ad9db410758b49d", "reftest" @@ -560703,64 +561284,72 @@ "f11405b8e8cce153f1521f09965c873090cadbb9", "testharness" ], - "css/css-layout-api/layout-child-absolute.https.html": [ - "26513f4fac745f7aca5b922882a23003b20a2230", + "css/css-layout-api/layout-child/absolute.https.html": [ + "7c47e38e7ad929a22c958f8e7aa33ca19e6002f7", "reftest" ], - "css/css-layout-api/layout-child-before-after.https.html": [ - "4923f26cf9d0e3af710dbc338f5db696230e9534", + "css/css-layout-api/layout-child/before-after.https.html": [ + "373392ddfd143355979edaa5a6f1585c2aedb655", "reftest" ], - "css/css-layout-api/layout-child-fixed.https.html": [ - "264fc638d5222c280d78da2ec882154fb7308d8c", + "css/css-layout-api/layout-child/fixed.https.html": [ + "95d8852b7da266598f32f713c9f1e80bc3731488", "reftest" ], - "css/css-layout-api/layout-child-float.https.html": [ - "6e40893e3b34369a84e8ca065616f87276b720a5", + "css/css-layout-api/layout-child/float.https.html": [ + "e8db261774b4bcd4837ba1395a68178431bd67ae", "reftest" ], - "css/css-layout-api/layout-child-inflow.https.html": [ - "11f2b88aa1fe930f36907e3e4c3b5e1b13d28b06", + "css/css-layout-api/layout-child/inflow.https.html": [ + "b43f1a7facdce8d1680767a063ba6a46859b8562", "reftest" ], - "css/css-layout-api/layout-child-inlines-dynamic.https.html": [ + "css/css-layout-api/layout-child/inlines-dynamic.https.html": [ "50052087f44e42740e639d098ce4861dd008d81a", "testharness" ], - "css/css-layout-api/layout-child-inlines.https.html": [ - "811af3f40b299b874bcc71d38e8de6b86c67ab34", + "css/css-layout-api/layout-child/inlines.https.html": [ + "dac7e0b26bc74667fef0564c3c2e904bbd6e162c", "reftest" ], - "css/css-layout-api/layout-child-text.https.html": [ - "40513f0acf39d25c759330b6c0e3bfc8648741cf", + "css/css-layout-api/layout-child/support/layout-child-worklet.js": [ + "70d1b7e4572bd09b2c201705bf643e2979caccf1", + "support" + ], + "css/css-layout-api/layout-child/text.https.html": [ + "090034fc1866fa5ddd1767fc4cb6f80c9e577ea8", "reftest" ], - "css/css-layout-api/position-fragment-htb-ltr.https.html": [ - "b09cb7067d5630d7398cdf9e583b01581df1b910", + "css/css-layout-api/position-fragment/htb-ltr.https.html": [ + "f60109ca5743a9f94b286751c0e751e795fe25b5", "reftest" ], - "css/css-layout-api/position-fragment-htb-rtl.https.html": [ - "2d65b8cb988981bea8abb32b2fb00458368702fc", + "css/css-layout-api/position-fragment/htb-rtl.https.html": [ + "980a3cdc253994914b950c36d00f34cfc02ce606", "reftest" ], - "css/css-layout-api/position-fragment-ref.html": [ + "css/css-layout-api/position-fragment/ref.html": [ "4ce0a6e39de33707a325301a7dca13ea331420b0", "support" ], - "css/css-layout-api/position-fragment-vlr-ltr.https.html": [ - "62a5980307d19e00e1fbe06a93d5a2fd32bc2bd8", + "css/css-layout-api/position-fragment/support/layout-position-child-worklet.js": [ + "7d5c494952d58038a6bc71719be3c6d8d6e363cb", + "support" + ], + "css/css-layout-api/position-fragment/vlr-ltr.https.html": [ + "d75a4af639f7bd938077447ef13991bdb4df197d", "reftest" ], - "css/css-layout-api/position-fragment-vlr-rtl.https.html": [ - "a9983b1eb20ffab493fcdcee37a99132811d636e", + "css/css-layout-api/position-fragment/vlr-rtl.https.html": [ + "a8ef6c699ca98167679e56a881b71b68868bad04", "reftest" ], - "css/css-layout-api/position-fragment-vrl-ltr.https.html": [ - "090128562f891cd1e1e88686d3957e036509aa46", + "css/css-layout-api/position-fragment/vrl-ltr.https.html": [ + "21c9ce54d665de7e5cc3406112b73b31a07a82c9", "reftest" ], - "css/css-layout-api/position-fragment-vrl-rtl.https.html": [ - "e16f26b1d4fecd3caf6b7eddbbace3f00494345b", + "css/css-layout-api/position-fragment/vrl-rtl.https.html": [ + "777e725da99140680c9b359d26dba8fd697af910", "reftest" ], "css/css-layout-api/style-map-multi-ref.html": [ @@ -560779,30 +561368,6 @@ "0300b8dfb4ac2b98c54216b8edb6388e7cb60f2a", "reftest" ], - "css/css-layout-api/support/constraints-fixed-block-size-quirky-body-iframe.html": [ - "da770e6caf1da462983fc6741b58c4084a8da438", - "support" - ], - "css/css-layout-api/support/constraints-fixed-block-size.js": [ - "25d73ef61568477784a002dfeb591b7f5c8d0b30", - "support" - ], - "css/css-layout-api/support/constraints-fixed-inline-size.js": [ - "3636f366547342a04253864016bf89ed392ea48a", - "support" - ], - "css/css-layout-api/support/layout-child-sizes-worklet.js": [ - "5956c9a70c2ba650318fd6bbbc859f1cc8002f08", - "support" - ], - "css/css-layout-api/support/layout-child-worklet.js": [ - "70d1b7e4572bd09b2c201705bf643e2979caccf1", - "support" - ], - "css/css-layout-api/support/layout-position-child-worklet.js": [ - "7d5c494952d58038a6bc71719be3c6d8d6e363cb", - "support" - ], "css/css-layout-api/supports.https.html": [ "e269b292146cbab4f87041ab4cd2362010de5cf5", "testharness" @@ -561159,6 +561724,10 @@ "d4b3e300f8ea5011249e433b925a9a8f32e8c935", "reftest" ], + "css/css-lists/nested-list-with-list-style-type-none.html": [ + "e103113c3f4d98ed34b4cdda04bd436469d01f54", + "testharness" + ], "css/css-lists/nested-marker-dynamic.html": [ "fdfb93dc6149055be4611d85fb9705bcafe5c3a5", "reftest" @@ -565199,6 +565768,14 @@ "2eccfd2a7d0b6e894a66f1afedc6969090f8ad9c", "reftest" ], + "css/css-paint-api/color-custom-property-animation-ref.html": [ + "3439cd9364560c870b09a394887daec5969b6bd4", + "support" + ], + "css/css-paint-api/color-custom-property-animation.https.html": [ + "5cbfee89c45dd37e165676a835ece3f6283d0957", + "reftest" + ], "css/css-paint-api/custom-property-animation-on-main-thread.https.html": [ "13ccf3fc27372d9494e09a36095140e4dbef236b", "reftest" @@ -565711,6 +566288,22 @@ "c1ce1ff602eee4668b9cb5d0168c4372193a8d3a", "support" ], + "css/css-position/animations/bottom-interpolation.html": [ + "272e79fc05b0267afe696c11ea0572299559d223", + "testharness" + ], + "css/css-position/animations/left-interpolation.html": [ + "33ed0b4ec3b961bc0f71fc1b784b51201f50ebfa", + "testharness" + ], + "css/css-position/animations/right-interpolation.html": [ + "284d435e56eac5370edd570d2f67b0dfeaa6bbf6", + "testharness" + ], + "css/css-position/animations/top-interpolation.html": [ + "f5af530c387a7b52a78a4ca13b27d976f60b2dc9", + "testharness" + ], "css/css-position/fixed-z-index-blend-ref.html": [ "2675401b4092996c2b3c3b80426f2730dc7bbf5f", "support" @@ -571303,6 +571896,10 @@ "086e654a8e039f259b5e828d024f808c2e95016b", "support" ], + "css/css-sizing/animation/width-interpolation.html": [ + "33bc1b14c83f45afbea4cdfadbe3959ac829e615", + "testharness" + ], "css/css-sizing/aspect-ratio-affects-container-width-when-height-changes.html": [ "0dbbb2f9404da7cfa89f2e75af3ca06cfbe4be7e", "testharness" @@ -572939,6 +573536,38 @@ "2861918d87f3cebaa3fe0d4978668e970424d84e", "support" ], + "css/css-text-decor/reference/text-decoration-skip-ink-sidewayslr-001-notref.html": [ + "49cbf1530d7c9447f125c7ceea34b81a96de2f4a", + "support" + ], + "css/css-text-decor/reference/text-decoration-skip-ink-sidewaysrl-001-notref.html": [ + "3882683f1db645f823741afe93acd7ad7244cbdc", + "support" + ], + "css/css-text-decor/reference/text-decoration-skip-ink-upright-001-notref.html": [ + "a57eac2f2db3fed32f73f3bcca2d5198ea634970", + "support" + ], + "css/css-text-decor/reference/text-decoration-skip-ink-upright-001-offset-notref.html": [ + "a0a2c1fbaeb7c8fcfd90d5c2c4f5b75fabd15fe4", + "support" + ], + "css/css-text-decor/reference/text-decoration-skip-ink-upright-002-notref.html": [ + "80edf92bd91e469fcb9bdb32bc04891316d26510", + "support" + ], + "css/css-text-decor/reference/text-decoration-skip-ink-vertical-001-notref.html": [ + "0938ce60eac27d280c91842d4383b9dc55b26c0d", + "support" + ], + "css/css-text-decor/reference/text-decoration-skip-ink-vertical-001-offset-notref.html": [ + "073fe6a951a4b3df79bf0e26f8987c280e98bf4e", + "support" + ], + "css/css-text-decor/reference/text-decoration-skip-ink-vertical-002-notref.html": [ + "f7b71783b555c92fe02916ece3e377a13ef7c09b", + "support" + ], "css/css-text-decor/reference/text-decoration-style-multiple-ref.html": [ "f80396930e1bbaf06df7b999cf657cf74af99bc0", "support" @@ -573371,6 +574000,38 @@ "9d763f287c42491df3d445d3faf1ae444e4f9702", "reftest" ], + "css/css-text-decor/text-decoration-skip-ink-sidewayslr-001.html": [ + "48d427e238253e26ff18f7b3cbef925e987e8b6a", + "reftest" + ], + "css/css-text-decor/text-decoration-skip-ink-sidewayslr-002.html": [ + "c5ee3469ba53ece4829474a6947f912c9cb5621d", + "reftest" + ], + "css/css-text-decor/text-decoration-skip-ink-sidewaysrl-001.html": [ + "3384215476ef5ddc544cf55d341ccdf209ebd441", + "reftest" + ], + "css/css-text-decor/text-decoration-skip-ink-sidewaysrl-002.html": [ + "94344307e3522fe6c57a24626b230ac5c56c74d3", + "reftest" + ], + "css/css-text-decor/text-decoration-skip-ink-upright-001.html": [ + "5d0d78c5d7ed582200df37f1b467bcf51fb3d7ac", + "reftest" + ], + "css/css-text-decor/text-decoration-skip-ink-upright-002.html": [ + "2e7d80ec2de40d2d575c5e5d50e47ddeb88e7ab7", + "reftest" + ], + "css/css-text-decor/text-decoration-skip-ink-vertical-001.html": [ + "bf9054365e305a4f28fc409105f333f6aa7b19ac", + "reftest" + ], + "css/css-text-decor/text-decoration-skip-ink-vertical-002.html": [ + "9cacc8c56fbb9efa3078c54648a9ce7f8ce15db4", + "reftest" + ], "css/css-text-decor/text-decoration-skip-ink.html": [ "cd6f7a049c673e3dc92546f557e1813b20448128", "testharness" @@ -580384,27 +581045,23 @@ "testharness" ], "css/css-transforms/animation/list-interpolation.html": [ - "4755279d73cc32b6396d332bdbbfdcbcc3624f52", + "85701e9efad69b20ba3236abf6ce78b16e9594f1", "testharness" ], "css/css-transforms/animation/matrix-interpolation.html": [ - "4becea079d78e16479e3d12e6310e69f8444dadf", + "a326e7c92f21aca39613c6964055b9592b35b034", "testharness" ], - "css/css-transforms/animation/resources/interpolation-testcommon.js": [ - "73ce9ceefb38654c480bf41b8ce542efcc3701c3", - "support" - ], "css/css-transforms/animation/rotate-interpolation.html": [ - "ec96ba0b09b1e10e7d603d092461efad2a92d47d", + "911d8e38bd0bb6c3d5652d6824c64c58bd2233cf", "testharness" ], "css/css-transforms/animation/scale-interpolation.html": [ - "942b80a309def7c2b370e95d809900f87885964c", + "146575c902c10b8f34a6e9a12ee66abae1904223", "testharness" ], "css/css-transforms/animation/translate-interpolation.html": [ - "d5d47f733ef419d762d070a3ffb06c33aedaf2fe", + "aed6c41cf641ffc3b5eb7ef22b4b7353d98004fb", "testharness" ], "css/css-transforms/backface-visibility-hidden-001.html": [ @@ -585932,7 +586589,7 @@ "testharness" ], "css/css-transitions/CSSTransition-effect.tentative.html": [ - "41bd23eb53122ed228eb18c3c3e73148b7e2e20e", + "a38bc21bde05b95f14963d3a6543cef40f193e5a", "testharness" ], "css/css-transitions/CSSTransition-finished.tentative.html": [ @@ -585944,7 +586601,7 @@ "testharness" ], "css/css-transitions/CSSTransition-startTime.tentative.html": [ - "b6482f8047422f6d5abf6e1ae5a14b8fdc9a41f8", + "4dbe8634192a3e2431aa7c0f542071fec47e2ba7", "testharness" ], "css/css-transitions/CSSTransition-transitionProperty.tentative.html": [ @@ -586112,39 +586769,39 @@ "testharness" ], "css/css-transitions/properties-value-001.html": [ - "a4d196a56474c95463ecb00d5bf374eb87c1e615", + "1f6d49881bfa2bcc5fa95b316af20a8806e620b5", "testharness" ], "css/css-transitions/properties-value-002.html": [ - "a1f91682e0cb3c27877b03e7a3ca1cebb6ad7619", + "9c5d9afbb931256251ef59f055d00619282a2e9f", "testharness" ], "css/css-transitions/properties-value-003.html": [ - "49c8dfbd786cb133f64b538ce2d8a557bc9bde7c", + "4f6bbda53bc2df17f28987d13ff8288fc94290c4", "testharness" ], "css/css-transitions/properties-value-auto-001.html": [ - "dd077f05f5d40a0ac85f78b26eb92446d9417393", + "6c932aa7cd6c9156e943027551a7cbbce3786365", "testharness" ], "css/css-transitions/properties-value-implicit-001.html": [ - "fe7664986b493d506f7e495609a623a6b7c72718", + "8500436c529707f43349354ee87ef460e2d7d63b", "testharness" ], "css/css-transitions/properties-value-inherit-001.html": [ - "0e91c7101b27584e735c8959463f6d02ec581bed", + "abbdecdfae9159fd0d315d6dea955e81aec988ce", "testharness" ], "css/css-transitions/properties-value-inherit-002.html": [ - "49ee3140f7b33bee500c7db9d7ccea0568b1b80b", + "9556cf7e23af7f755d5c1e9d09571fb8a9ee91aa", "testharness" ], "css/css-transitions/properties-value-inherit-003.html": [ - "046ba43c41f2732b3c67aa8c3881904e1532a517", + "13a16132134c14b273a443779a9b95468ec1af9f", "testharness" ], "css/css-transitions/pseudo-elements-001.html": [ - "ae9db1e5c6328f84f3bcd30a898401d37af84dfd", + "146c533e235f0061872586039172a51c2d779873", "testharness" ], "css/css-transitions/pseudo-elements-002.html": [ @@ -586276,7 +586933,7 @@ "support" ], "css/css-transitions/support/runParallelAsyncHarness.js": [ - "fa3b09c7d8413cddf887680551434c9cdebfe780", + "de9b7837900b4daa3884babe6545b57ea901da15", "support" ], "css/css-transitions/support/square-purple.png": [ @@ -586655,10 +587312,6 @@ "cd47469ec742106ace7d904dc588d746ac514ba5", "testharness" ], - "css/css-transitions/transitions-animatable-properties-01.html": [ - "48a7d1e2e016ae914dbc9b8c08eadbc0e2a669a2", - "testharness" - ], "css/css-transitions/zero-duration-multiple-transition.html": [ "4268ce766d76f14af0a211e829f50434f131bd20", "testharness" @@ -591004,7 +591657,7 @@ "reftest" ], "css/css-values/ex-unit-001.html": [ - "ad296b4174e4331f445931c2aa2a959dffad51c9", + "eff0dbe2ebdeb85a8d9b9b907cd510193792dccf", "reftest" ], "css/css-values/ex-unit-002.html": [ @@ -591091,6 +591744,14 @@ "73069ecfe1e6d5b198f6e01df48facbe117d6828", "reftest" ], + "css/css-values/minmax-angle-computed.html": [ + "84e598a8147e123285d54876f942a0df0a5bf57f", + "testharness" + ], + "css/css-values/minmax-angle-invalid.html": [ + "29dc15dfd965c940910ca5c63d6201643277f907", + "testharness" + ], "css/css-values/q-unit-case-insensitivity-001.html": [ "b4a08aa117952c6f92e2aec6f57843b46a460104", "reftest" @@ -592896,23 +593557,23 @@ "reftest" ], "css/css-writing-modes/available-size-006.html": [ - "e884f76f2036daab618415520191d504c7a932d3", + "e197f8f322fe2595a3cef76c5dd57c6f952068e3", "reftest" ], "css/css-writing-modes/available-size-007.html": [ - "c8cfea23b2e7d3a4a161be10168d0fb47ca77622", + "bf3e8c5faad5efcbf3adc4e59e23a1fc9952514c", "reftest" ], "css/css-writing-modes/available-size-008.html": [ - "d38c9cbc1d852ba68b8d01a0c46bb7c77452b620", + "786d8ec482a311296373a55c8d8a3a5dca31501d", "reftest" ], "css/css-writing-modes/available-size-009.html": [ - "9d7a2c8288d00fcb79ffa98cc3cd4dd7127c2223", + "5e26975999ea1c07716d6c989ea695c6fbd9c579", "reftest" ], "css/css-writing-modes/available-size-010.html": [ - "f6452cc957e7f35e6e1c777474890c0b806440d0", + "6745edd79532820023ea7f942171995c93be6d10", "reftest" ], "css/css-writing-modes/available-size-011.html": [ @@ -592932,11 +593593,11 @@ "reftest" ], "css/css-writing-modes/available-size-015.html": [ - "f7cb13b24e023024c6e827a0308e9d42d2ef8df2", + "d23025a994956a29526b461e7540cc3616136023", "reftest" ], "css/css-writing-modes/available-size-016.html": [ - "c3c388e2446e8d85c1623861cbd574bfb44fbfc2", + "15038868b80534a55bfc77f7e3fc74a7552cc0cf", "reftest" ], "css/css-writing-modes/available-size-017.html": [ @@ -592948,7 +593609,7 @@ "reftest" ], "css/css-writing-modes/available-size-019.html": [ - "a25a2f6f31ed1c118fa82fcb9493e5bd40687a23", + "b6fbfdf804fc40040caaafca3108c16d1eee6998", "reftest" ], "css/css-writing-modes/background-position-vlr-003.xht": [ @@ -595872,7 +596533,7 @@ "support" ], "css/css-writing-modes/relpos-inline-overflowing-block-vrl.html": [ - "ea075c3f95e176c4fd4935fb2d305fc5bcf277da", + "fa09cf37cf59b61dbbd59f22ea49e24c809dc9d7", "reftest" ], "css/css-writing-modes/replaced-content-image-002.xht": [ @@ -595952,11 +596613,11 @@ "reftest" ], "css/css-writing-modes/sizing-orthog-htb-in-vlr-004-ref.xht": [ - "7bb0a0618e3fc5e1d9332b73884cb1e382fb3359", + "5f971974b8dd0998fddc71a33b5c0020e09f6c8d", "support" ], "css/css-writing-modes/sizing-orthog-htb-in-vlr-004.xht": [ - "2111a8b47d8bbbaa8724e960615054dc39549a0b", + "cd1529ce42116abbc68c1a1a25170607ec8021b1", "reftest" ], "css/css-writing-modes/sizing-orthog-htb-in-vlr-006-ref.xht": [ @@ -596080,7 +596741,7 @@ "reftest" ], "css/css-writing-modes/sizing-orthog-htb-in-vrl-001-ref.xht": [ - "c2a476eee8703cc865a76300cf21f40f553368c4", + "297457f62c2c575a931be4a21cc1158014aa7ee1", "support" ], "css/css-writing-modes/sizing-orthog-htb-in-vrl-001.xht": [ @@ -597107,6 +597768,26 @@ "8a2fa55efdf69d9ac0222eeabfc534600e26c82e", "support" ], + "css/css-writing-modes/support/mn+arabic.png": [ + "d999c3d3096199f5ab91a5dd9e4aea49fa3143b0", + "support" + ], + "css/css-writing-modes/support/mn+latin.png": [ + "224297163c62727c498aa369354347e8a2c9b2be", + "support" + ], + "css/css-writing-modes/support/mn-orientation.png": [ + "0167dfbde65956c0548535d5e24c334575886fb5", + "support" + ], + "css/css-writing-modes/support/mn_ar_wrap.png": [ + "c7d5ca5806ee51d4e0acf7b91f1b21a5e4ac976f", + "support" + ], + "css/css-writing-modes/support/mn_en_wrap.png": [ + "e697c992bcb09124eb8067034970c5733503ace7", + "support" + ], "css/css-writing-modes/support/opaque-square-40x160.png": [ "11636f5f77136c7cb15b9abc41a9d44c1773b3ba", "support" @@ -597375,6 +598056,10 @@ "33f2820dafd2599226da0ad8dad2b9dee1f329d1", "support" ], + "css/css-writing-modes/support/world.png": [ + "b56ada3ef1dedac0597a8bdf86442981a98aaf9e", + "support" + ], "css/css-writing-modes/support/yellow-square-59x59.png": [ "50816d38f6b6758e69991c65de0b9dc505628ebe", "support" @@ -597395,6 +598080,26 @@ "7e881312b358a609412577050c0f3a50f97bec79", "support" ], + "css/css-writing-modes/support/zh+arabic.png": [ + "019debeae63216d8b3d6ceb96548d22111b627b4", + "support" + ], + "css/css-writing-modes/support/zh+latin.png": [ + "8fa56d5b6c5bf4b9f2f50555cddcc66f6af9c31d", + "support" + ], + "css/css-writing-modes/support/zh-orientation.png": [ + "fa05cfe7977ffc44800c813b8d1398a9d8554633", + "support" + ], + "css/css-writing-modes/support/zh_ar_wrap.png": [ + "747e816e21213d1dd8e6b94ee51f93b84e45cc1c", + "support" + ], + "css/css-writing-modes/support/zh_en_wrap.png": [ + "a3d659186398366d6ea695eafdc40310f65b3361", + "support" + ], "css/css-writing-modes/svg-aliasing-001.html": [ "3979459838ee19b78655073122afd0cb92f8b357", "reftest" @@ -597696,11 +598401,11 @@ "reftest" ], "css/css-writing-modes/text-combine-upright-all-001-manual.html": [ - "c99faf4faeecb9e4f9d143c5ed9352a6d5f0d224", + "32d7d48598aedcd263daaae2e7dbcd7f0f9038d4", "manual" ], "css/css-writing-modes/text-combine-upright-all-002-manual.html": [ - "be9f582217075c5687681c7a1dd7204c3a28ed1a", + "1ef4ec06c0db8173af57206edda152e9ae128872", "manual" ], "css/css-writing-modes/text-combine-upright-decorations-001.html": [ @@ -597708,15 +598413,15 @@ "reftest" ], "css/css-writing-modes/text-combine-upright-digits-001-manual.html": [ - "75c14eb42d811b642c94eb56c5a4720403f6875d", + "76a1798e48612e280c79b1dd819d949537b04b6b", "manual" ], "css/css-writing-modes/text-combine-upright-digits-002-manual.html": [ - "9d46e56f93744ec4625362b7a7113e52b0d7f6c6", + "1977d070e85649afc4e58434cfdbada0a8b5428c", "manual" ], "css/css-writing-modes/text-combine-upright-digits-004-manual.html": [ - "9fe84ee3436e9b63ec39cc25d01d0fc95531ca9a", + "b681a8a9a10c11f9369d34cea565c6e6ab0253a9", "manual" ], "css/css-writing-modes/text-combine-upright-inherit-all-001.html": [ @@ -598648,79 +599353,79 @@ "reftest" ], "css/css-writing-modes/writing-mode-vlr-001-manual.html": [ - "31186029deca3cdd7df91757e70d21deaaccba7d", + "ac5adb13f4e3dc843f6ae5d70a6b35c01566ec56", "manual" ], "css/css-writing-modes/writing-mode-vlr-002-manual.html": [ - "bb53c939e843f60dfbda6e5b9c03b5aedf139555", + "588d56d02cc9ad3136c738496289f442703dce1f", "manual" ], "css/css-writing-modes/writing-mode-vlr-003-manual.html": [ - "1aaf29d2e6d0972c12a0feda5dd7171647e7cc4f", + "009212990695fa4d1e39d1c2507263a34c9f2a12", "manual" ], "css/css-writing-modes/writing-mode-vlr-005-manual.html": [ - "2bbdca599981e261db590ddcedfa645a6aa595f2", + "cd7b313add152fe15fbcb69a9ad5ec36b66d9d8e", "manual" ], "css/css-writing-modes/writing-mode-vlr-006-manual.html": [ - "0ceb4a74bb9274480abe71f21b1920d00003d207", + "bc09501eadac5d3f2ee84b490716249cbb6e9ed2", "manual" ], "css/css-writing-modes/writing-mode-vlr-007-manual.html": [ - "8317c5c8efd7e607ff4b780acc77f80c3a2840af", + "2e725addd3db3a299cf0c5045a2ffc72eacdaf92", "manual" ], "css/css-writing-modes/writing-mode-vlr-008-manual.html": [ - "21abffa9194d3354e2411fe0d8caa9528c3b3541", + "30a3299890140853f8a472a901261c1a4880ff4c", "manual" ], "css/css-writing-modes/writing-mode-vlr-009-manual.html": [ - "ba2ca64828febf295b50bc05f0d7082d347274c2", + "287036dafeafa0a52b1840c14bc56c2b1cb13555", "manual" ], "css/css-writing-modes/writing-mode-vlr-010-manual.html": [ - "4dc9430b8dada1c35601db40cb4408aad4d37af6", + "8f5baee8fff3c14067f9e8aea91885b5d236f495", "manual" ], "css/css-writing-modes/writing-mode-vlr-012-manual.html": [ - "ebf773c555984bc7bf30ffdba61b8f3cd03a4d4d", + "78ba92258af784838a0ba7992ac8b0d011a6b91a", "manual" ], "css/css-writing-modes/writing-mode-vlr-014-manual.html": [ - "656f78759db28d73d8881d1034ff7054dfe9bf35", + "0bcdb1f87b7d89449da94ca0b326b58349e67edd", "manual" ], "css/css-writing-modes/writing-mode-vlr-015-manual.html": [ - "a8fe0055395c9a87275764f984a442805e6c99ab", + "c7c080e77d92809bdde3e41f9ae0e9584ce638bc", "manual" ], "css/css-writing-modes/writing-mode-vlr-forms-001-manual.html": [ - "02e0dd8da0d6bde7590fb020a82f3f8ceaa7dc30", + "a3878d148b2c9ce87ddf7f622ef8c976fbd58cad", "manual" ], "css/css-writing-modes/writing-mode-vlr-forms-002-manual.html": [ - "b89ea1addb3433047cc580106abcb24e3cff77f4", + "751057dc77c2b9ab6ee2e5041d4232f415ad7e74", "manual" ], "css/css-writing-modes/writing-mode-vlr-forms-003-manual.html": [ - "bfd90f8438f16c07791371d66de8cbf49d62a0df", + "bf3d839ec40febcbac6247e70a80d1278fdb539f", "manual" ], "css/css-writing-modes/writing-mode-vlr-forms-004-manual.html": [ - "fd44a2b6ed7bb48b0bffb2f6b33aa9a046e61cc2", + "91f991f5285fc93f90b5e64fba7df9f62aef610f", "manual" ], "css/css-writing-modes/writing-mode-vlr-forms-005-manual.html": [ - "0ef619a636f67e5abdbeb238c37ee0adb00c6005", + "361f9dbec22857e792b61045e3b6b90ed1dae339", "manual" ], "css/css-writing-modes/writing-mode-vlr-forms-006-manual.html": [ - "16162c2a3cd5d59fd4bae18e7239496149e077de", + "78416009a174236bb01de1e4af52ea4df5d50b42", "manual" ], "css/css-writing-modes/writing-mode-vlr-table-001-manual.html": [ - "21bd590863b99eb1f429e1751c3bcc9b0ec603a8", + "f323ed008cf40ce59a0603652ea959223b3b101e", "manual" ], "css/css-writing-modes/writing-mode-vlr-table-002-manual.html": [ @@ -598728,75 +599433,75 @@ "manual" ], "css/css-writing-modes/writing-mode-vrl-001-manual.html": [ - "a4f995f4b7fec16670e57afd8d403957fb77c532", + "8cea8b8b83107e51c014f62b2ec7c4c77a44d37c", "manual" ], "css/css-writing-modes/writing-mode-vrl-002-manual.html": [ - "7c7bcfbcdc6c58f45d9928d84d6ab8cd3bcae893", + "086f77e8b4fcde12f88901b0564725a46ada6325", "manual" ], "css/css-writing-modes/writing-mode-vrl-003-manual.html": [ - "64fcb66b1337b781281251a468968b6dc6b2e990", + "a0129a3d1b24400bb9484afbc769316dbe10fc2a", "manual" ], "css/css-writing-modes/writing-mode-vrl-005-manual.html": [ - "c6462f2fe1aa97b6bffd04f96934171d3f281bb8", + "835ddaac7998b20196792d081e8fafccbe18d87f", "manual" ], "css/css-writing-modes/writing-mode-vrl-007-manual.html": [ - "3427f74990cddc722d6c5bc2766491552a568101", + "5574a100eaf7261a94c713ada697e35c118cbf6b", "manual" ], "css/css-writing-modes/writing-mode-vrl-008-manual.html": [ - "7d2a3bb6a7be1a46219fe41afbc233b329cf1e2d", + "7401d6e78cd06a019c37e06ed8e7deb3e587e7d1", "manual" ], "css/css-writing-modes/writing-mode-vrl-009-manual.html": [ - "6dff8d7efbe124be239816b41d96ca4f4889dc3a", + "0486ac6f5efe5825bad9ddbc7be9126655cedf86", "manual" ], "css/css-writing-modes/writing-mode-vrl-010-manual.html": [ - "e81a579c75a7c1034fc6dc46a575ef91d3c99e52", + "05f8de14ac29cf5bf924c421a39688405e36d6d7", "manual" ], "css/css-writing-modes/writing-mode-vrl-012-manual.html": [ - "a53ec5c14f4ad12307281379f8bb695ed842c01d", + "71907e822a39f964da0a197406ae928d9fc11189", "manual" ], "css/css-writing-modes/writing-mode-vrl-014-manual.html": [ - "bf3424fd04313a38c411061daad8bf0db0c86376", + "2dcf570916f022a435789e532dd008ec80eb0ab9", "manual" ], "css/css-writing-modes/writing-mode-vrl-015-manual.html": [ - "cfcdf2f51b7b07742350f49a71d88509e6ddc5f8", + "e1a6f023a863ff1dc3de7bea5c07048331d1ca0d", "manual" ], "css/css-writing-modes/writing-mode-vrl-forms-001-manual.html": [ - "0548cb968286eff448017e243b0eed651ad6cfad", + "20dea4fbc36e93bd6dc80164083096cb2c0ec5cc", "manual" ], "css/css-writing-modes/writing-mode-vrl-forms-002-manual.html": [ - "3de4c72c3ff4b07865cbf5538902053351b66e58", + "5d7db3e2a38664862a763b2abe6dd5cdc59bcf44", "manual" ], "css/css-writing-modes/writing-mode-vrl-forms-003-manual.html": [ - "e07502e4fce16bf3c5bb8e4755cd3cae9f285662", + "3dfe1d61bf5166307eacba477ffa7a469b2b7a63", "manual" ], "css/css-writing-modes/writing-mode-vrl-forms-004-manual.html": [ - "42bef3494f963bb0bd40400a4fe7e19a01ea9ca5", + "074603d5811d1a653213f1c2c73c6de417a19076", "manual" ], "css/css-writing-modes/writing-mode-vrl-forms-005-manual.html": [ - "7177c316d7128f1653953428d60f5cb2e6661676", + "2ce63cd5664044e6a3f25600fc8586258d84fd99", "manual" ], "css/css-writing-modes/writing-mode-vrl-forms-006-manual.html": [ - "2ed6bc9982846ea4313ded2d54cc35a630e69eb2", + "8d03c4dfcb234889ab74b05130149fecd1da2548", "manual" ], "css/css-writing-modes/writing-mode-vrl-table-001-manual.html": [ - "1705beb791531eea974e77125e8aaae363570f91", + "d3bc9664524a6f4ed530f82b2572a2bc79af166d", "manual" ], "css/css-writing-modes/writing-mode-vrl-table-002-manual.html": [ @@ -602312,11 +603017,11 @@ "testharness" ], "css/selectors/of-type-selectors-ref.xhtml": [ - "af883c97ecf1a968edcdcd5cc5d2f7d6fba71212", + "ae866213df0112292c3bade7c48ad2d27f9a14f8", "support" ], "css/selectors/of-type-selectors.xhtml": [ - "18fead9b1cc452059ad74f9cc3154d663e5f8d4b", + "73ec208b8f219d8d3b74984d65c8e72a997c8470", "reftest" ], "css/selectors/old-tests/css3-modsel-1.xml": [ @@ -603836,7 +604541,7 @@ "support" ], "css/support/interpolation-testcommon.js": [ - "9bc71ff9d32e372551d5b75cfd329dd6ce114949", + "62f40790dbdf25720a127e21ed14d7fedafdef0f", "support" ], "css/support/parsing-testcommon.js": [ @@ -619791,6 +620496,18 @@ "0e145978a014f08fb5faff42750e9338da0f9ede", "support" ], + "feature-policy/reporting/oversized-images-reporting.html": [ + "baa866d0a1c4777ab2ef6fcd894624b85ec72ae4", + "testharness" + ], + "feature-policy/reporting/oversized-images-reporting.html.headers": [ + "02bcbb92a866d3f3f423bf2ebb1a5cd45dcbf167", + "support" + ], + "feature-policy/reporting/oversized.jpg": [ + "497ed770bfb6fb367f2eeb1978225bc4d036055b", + "support" + ], "feature-policy/reporting/payment-report-only.https.html": [ "d2b8e5ee9cc017d3012a2cdd79143230495b4544", "testharness" @@ -619868,7 +620585,7 @@ "support" ], "feature-policy/reporting/unoptimized-lossy-images-reporting.html": [ - "62a5469f8ca7de0ca19985361e377b6463c01aaf", + "8dcf110dd2b39f1b48e16d3aefbe53e9e7565ea5", "testharness" ], "feature-policy/reporting/unoptimized-lossy-images-reporting.html.headers": [ @@ -625804,7 +626521,7 @@ "support" ], "html/cross-origin-opener-policy/coep-navigate-popup.https.html": [ - "717122b4b2f2e766a8fe172a8751f5e6c63d0e8a", + "21320a61b2eaa8b17cbb518d2028a5dce4134bf7", "testharness" ], "html/cross-origin-opener-policy/coep-navigate-popup.https.html.headers": [ @@ -625896,7 +626613,7 @@ "support" ], "html/cross-origin-opener-policy/resources/common.js": [ - "b60093f1c62c5d77b213ed95e25ee468b2c2200c", + "c5d3c6c1084668ecd3ff02615725c7c3dc6117bb", "support" ], "html/cross-origin-opener-policy/resources/coop-coep.py": [ @@ -632623,17 +633340,13 @@ "3b8d992cc2a07dfd902dbb1011e2c348e862baaa", "reftest" ], - "html/rendering/replaced-elements/the-select-element/select-1-block-size-001-2.html": [ - "5f03a761dc8729632ef74dcf189b7945ae3cee8d", - "reftest" - ], "html/rendering/replaced-elements/the-select-element/select-1-block-size-001-ref-2.html": [ "385c2a75d427dde8ef0ba71cc777f298027423b9", "support" ], "html/rendering/replaced-elements/the-select-element/select-1-block-size-001-ref.html": [ - "ad504846dfa29297927a369149d427499f0657b5", - "support" + "3834281dd83cd0e604fc27dd66dcaa3fb12287ff", + "reftest_node" ], "html/rendering/replaced-elements/the-select-element/select-1-block-size-001.html": [ "5dc0fc15dc52c8f3af4595a7901fd89b1827f2a2", @@ -643179,6 +643892,10 @@ "5d5b0dc0e108a823ef16614e9c2c91f5ea142543", "testharness" ], + "infrastructure/assumptions/document-fonts-ready.html": [ + "9fb0137025b63b7fad191af3d2a0a941cd573870", + "testharness" + ], "infrastructure/assumptions/html-elements.html": [ "3fe3d201ff649aca36e49b6b78cd48a94db26806", "testharness" @@ -644172,7 +644889,7 @@ "support" ], "interfaces/webrtc-stats.idl": [ - "e92533a226e97da4bac61fd8b2ce192568976791", + "87b079c00abe9e0ab265ca32e048e1c461b6efdc", "support" ], "interfaces/webrtc.idl": [ @@ -644188,7 +644905,7 @@ "support" ], "interfaces/webxr.idl": [ - "ec4b76d9ba819527257e251fd52777dfa7cc415a", + "3febf83ebe375474bb177e0ff5e42887d27e44e6", "support" ], "interfaces/worklets.idl": [ @@ -644219,8 +644936,8 @@ "f7ce6fa7246f006883b39479ad9bdda9ed84978c", "testharness" ], - "intersection-observer/cross-origin-iframe.html": [ - "bdd6d3f529a0406d910580f477bce978c3e54c8c", + "intersection-observer/cross-origin-iframe.sub.html": [ + "d444237f6b954b08952c502a510e7ead785c2eec", "testharness" ], "intersection-observer/disconnect.html": [ @@ -644300,7 +645017,7 @@ "testharness" ], "intersection-observer/resources/cross-origin-subframe.html": [ - "0cc117cb3a69d0f2ed19505f7d14f824cbad6d71", + "4305ed1719b68f227192e005c9696fec5fe58f83", "support" ], "intersection-observer/resources/iframe-no-root-subframe.html": [ @@ -644308,7 +645025,7 @@ "support" ], "intersection-observer/resources/intersection-observer-test-utils.js": [ - "44f794b0883b1bade51b1b7b8f5507ac6dfcb123", + "7db26d72df54505da7a6363009cab138772a7890", "support" ], "intersection-observer/resources/observer-in-iframe-subframe.html": [ @@ -657499,6 +658216,10 @@ "5dd44fb18fbdb9c3c32f4538d2ef7ec2cac47302", "testharness" ], + "performance-timeline/not-clonable.html": [ + "d651776e5f4b945328e9de2651b8a59f11b53426", + "testharness" + ], "performance-timeline/observer-buffered-false.any.js": [ "a28100b0fdba2e00579809a581935d312cf1245e", "testharness" @@ -657551,6 +658272,10 @@ "86ad397b0a5c379d0129d43c92952bc6c8c5c0cf", "testharness" ], + "performance-timeline/resources/postmessage-entry.html": [ + "ef5be73395b49d895a2589be547a7f3950f416ba", + "support" + ], "performance-timeline/resources/square.png": [ "be211bc377180386eec7e891485e083a2c45841e", "support" @@ -672700,7 +673425,7 @@ "testharness" ], "service-workers/service-worker/worker-interception.https.html": [ - "204638a44afffda47c39d1e0fed7d9a3cf3972fc", + "302a214ac619400c38f7564c065a5e0be47ac6df", "testharness" ], "service-workers/service-worker/xhr-response-url.https.html": [ @@ -672991,6 +673716,14 @@ "d96926ad65f03283936daa6d6fd0440450c82314", "reftest" ], + "shadow-dom/directionality-002-ref.html": [ + "454b2fecabcdec1a2b76cc0130d21c0d274458c9", + "support" + ], + "shadow-dom/directionality-002.tentative.html": [ + "7ff036194baa9f6c9fbe1a4116aac864709f9c67", + "reftest" + ], "shadow-dom/event-composed-path-after-dom-mutation.html": [ "fd129e036af711b1fa4f9a42fabcc344200fc2d6", "testharness" @@ -674943,6 +675676,10 @@ "68aa63a39d3acf927de8f2fae47c7b2ceac9e4a9", "testharness" ], + "svg/animations/correct-events-for-short-animations-with-syncbases.html": [ + "19e7eef8c1ce470d67c2eaecf2f07a9d2907f2c1", + "testharness" + ], "svg/animations/cyclic-syncbase.html": [ "c0351156e310a8a6f0fca3ebee506b80983a53bb", "testharness" @@ -674991,6 +675728,10 @@ "86a0a40fa2de116c5b2076641180b24688d56f9b", "testharness" ], + "svg/animations/scripted/paced-value-animation-overwrites-keyTimes.html": [ + "56f67dc5ed1ceeeea347b703f5048b289f95131b", + "testharness" + ], "svg/animations/single-values-animation.html": [ "40aa3461866cf4c32316d86216dcfe4298be7718", "testharness" @@ -678903,6 +679644,10 @@ "3be94fb8499b1a776298399f07cc1baa069581d4", "testharness" ], + "svg/text/parsing/text-anchor-computed.svg": [ + "e11b23fc2316f0178b304437269f94fa95897f22", + "testharness" + ], "svg/text/parsing/text-anchor-invalid.svg": [ "69a6a58971264821b3f9d12ce1f8110a34d40fa0", "testharness" @@ -679516,7 +680261,7 @@ "support" ], "tools/ci/tests/test_update_pr_preview.py": [ - "3202a1a2df6ac1d6c1485b1e6b72b3b425b351e6", + "056add73a92d4a4bb196c31d3f0a1cdbe963c184", "support" ], "tools/ci/update_pr_preview.py": [ @@ -688360,11 +689105,11 @@ "support" ], "web-nfc/NDEFMessage_constructor.https.html": [ - "5be4571493ad9b6ac9f677d66e81806b4590034e", + "24d5046f4839f560c8be2c9e164fd93b3ab86943", "testharness" ], "web-nfc/NDEFRecord_constructor.https.html": [ - "e2e2c45507225ab17c72849928142e7f24a57813", + "2264815780b47107562750c39a2b0152c97ba865", "testharness" ], "web-nfc/NFCErrorEvent_constructor.https.html": [ @@ -688380,7 +689125,7 @@ "testharness" ], "web-nfc/NFCReadingEvent_constructor.https.html": [ - "c2f9cef6e505637684281a799d44107c1557b00a", + "20585176b7f89a129fad99f17d068b2deb828f68", "testharness" ], "web-nfc/NFCWriter_push.https.html": [ @@ -688400,7 +689145,7 @@ "testharness" ], "web-nfc/resources/nfc-helpers.js": [ - "fc72fa2de89f8d634ff142a0cba58ac866172d60", + "76c878ae094b8c98ad8f44aca335a0f157ea01f7", "support" ], "web-share/META.yml": [ @@ -690631,6 +691376,170 @@ "c8efcd031fe53a37c5db3740b82db4a1f0df647d", "testharness" ], + "webgpu/cts.html": [ + "661060fcd7b32f7cecbbbc87499c7b70d1f39694", + "testharness" + ], + "webgpu/framework/allowed_characters.js": [ + "f49e19641d95bcc510f09f1bb045825c19d6b28c", + "support" + ], + "webgpu/framework/collect_garbage.js": [ + "5589fa7deb3819dfa9cfa0b202e432b73569b675", + "support" + ], + "webgpu/framework/fixture.js": [ + "d77ede708f0377feec5101d7272eaf27d07c5598", + "support" + ], + "webgpu/framework/gpu/implementation.js": [ + "726eeab4eed644d4b5c4e0693e2462dbf1a08c5d", + "support" + ], + "webgpu/framework/id.js": [ + "8e5db2c7d7fbde102865f7da04fcccaea53960b6", + "support" + ], + "webgpu/framework/index.js": [ + "93ee20963990d21039a60902b4e52ee0c5cb8b72", + "support" + ], + "webgpu/framework/listing.js": [ + "856afa99c36ebae161250be0023de7f2947ec8bc", + "support" + ], + "webgpu/framework/loader.js": [ + "c9cd20f307c3006b48a3e9f8aac373d56914f76b", + "support" + ], + "webgpu/framework/logger.js": [ + "8aa332c571a19f9db7a5486b9a8d28269101051e", + "support" + ], + "webgpu/framework/params/combine.js": [ + "d85e81dc88510a314bbffccbf6fa0b6ced61c5ae", + "support" + ], + "webgpu/framework/params/exclude.js": [ + "23bc6ee0f69fa3d87853881cdf01ab224fcb58b1", + "support" + ], + "webgpu/framework/params/filter.js": [ + "6a5d99e765f4dc502223502e168b37442d735daa", + "support" + ], + "webgpu/framework/params/index.js": [ + "5d89da54f5b77174615a8d26edf206253fff0ace", + "support" + ], + "webgpu/framework/params/options.js": [ + "6906863880ce99d3a29a3c7021ae3859798c34eb", + "support" + ], + "webgpu/framework/test_filter/filter_by_group.js": [ + "3036e21bd63c40b7d34f0f46dea432d505b131b1", + "support" + ], + "webgpu/framework/test_filter/filter_one_file.js": [ + "6a998db0de9c96f796bd05f90e73e60e0d141aee", + "support" + ], + "webgpu/framework/test_filter/index.js": [ + "1a9dbcad4875d6e5160965f08f37c3fcd1e4c54d", + "support" + ], + "webgpu/framework/test_filter/internal.js": [ + "ae55718f3b3df435310bba1808adb09672b8cc8b", + "support" + ], + "webgpu/framework/test_filter/load_filter.js": [ + "03d475eb4b8aa756b5ebb46c5fa764876d6e6fc7", + "support" + ], + "webgpu/framework/test_group.js": [ + "c9cafb37b670dd1cf79a46fbcb6acd595b3b53b7", + "support" + ], + "webgpu/framework/url_query.js": [ + "b265139043918b98e9937a6c216e3748a7c5cb87", + "support" + ], + "webgpu/framework/util/index.js": [ + "8d0fe0e5b48c6149bbf5c1f0aa8af2876fad00a3", + "support" + ], + "webgpu/framework/util/stack.js": [ + "ae99ac904a132d947f304ca0f03f50b25fd197ae", + "support" + ], + "webgpu/framework/version.js": [ + "b9ec1b4f9f36069cd843e2f275723c9000a849fb", + "support" + ], + "webgpu/runtime/wpt.js": [ + "d11499f1e8cd45553e2ae6832413e108790fe505", + "support" + ], + "webgpu/suites/cts/buffers/create_mapped.spec.js": [ + "30a6638889a916c03b57a9cbf33ae3f46cdc8eb0", + "support" + ], + "webgpu/suites/cts/buffers/map.spec.js": [ + "dfc79ac5d1e9bafb58b00c7bf4c23d029e9605c2", + "support" + ], + "webgpu/suites/cts/buffers/map_detach.spec.js": [ + "afaab08606be74d7bee8544a23b79228a770572b", + "support" + ], + "webgpu/suites/cts/buffers/map_oom.spec.js": [ + "f39021ca9a181dd5f6b94ee17a895e7f0cd802f2", + "support" + ], + "webgpu/suites/cts/buffers/mapping_test.js": [ + "1baa6ffc3519091622dab337c92b87d1e357a157", + "support" + ], + "webgpu/suites/cts/canvas/context_creation.spec.js": [ + "b0b2c48b418ebabf06c42d9a4216536484ae1c8f", + "support" + ], + "webgpu/suites/cts/command_buffer/basic.spec.js": [ + "137e428bd9db9311987662d6e5024c31f04742ca", + "support" + ], + "webgpu/suites/cts/command_buffer/compute/basic.spec.js": [ + "56754d5f39e21f483f9f21e931e35a7dfa1e1259", + "support" + ], + "webgpu/suites/cts/command_buffer/copies.spec.js": [ + "9bf78db8454bf848a6a1236db6503f893d33a225", + "support" + ], + "webgpu/suites/cts/command_buffer/render/basic.spec.js": [ + "bb201dbe846a7113b32dbeb4b2c3cbe5ba39e8b5", + "support" + ], + "webgpu/suites/cts/command_buffer/render/rendering.spec.js": [ + "762285d1bcccc81f5b7c4a389cf16523451f5927", + "support" + ], + "webgpu/suites/cts/examples.spec.js": [ + "ad86e73b191e74a8a23a81ccccf54cc2c95f3fa9", + "support" + ], + "webgpu/suites/cts/fences.spec.js": [ + "d9f8ce57678e9907f20a5819b2a43686e27ba53c", + "support" + ], + "webgpu/suites/cts/gpu_test.js": [ + "a67ce4ab0ba24f13c8a66dae551390c3d71d06ba", + "support" + ], + "webgpu/suites/cts/index.js": [ + "cb2a592697f9b1041e5a2f71cf59939b5a04ed4a", + "support" + ], "webmessaging/Channel_postMessage_Blob.htm": [ "c8c247ef59dc7b513c54459fc83fd1aa6fcec8dd", "testharness" @@ -696192,15 +697101,15 @@ "testharness" ], "webxr/events_input_sources_change.https.html": [ - "bc2b2a95e40b0d700e8d18c9dc953b84ec9fbcde", + "107cc9b544e3a395c14655d0f4356485f05d7bf5", "testharness" ], "webxr/events_referenceSpace_reset.https.html": [ - "f15ffc52a8845b7e2cdd6ddb4a9b7f06c1c3e5e0", + "3a931168fd328b9fb62f5ecd65958f4365b7aa03", "testharness" ], "webxr/events_session_select.https.html": [ - "b74d5ea02dbefa51311d592fbf26019f06790ec2", + "396d6b23939f96a2f29151eac21548cd97f92009", "testharness" ], "webxr/events_session_select_subframe.https.html": [ @@ -696223,6 +697132,10 @@ "3e54e367787cb95dada398790fe23b10174df29f", "testharness" ], + "webxr/navigator_xr_sameObject.https.html": [ + "56cd65c4e42dbe7bb9d652547e65f0491e05f831", + "testharness" + ], "webxr/render_state_vertical_fov_immersive.https.html": [ "485438cabf6a633df42a0f94c04922e7274013e1", "testharness" @@ -696268,7 +697181,7 @@ "testharness" ], "webxr/xrBoundedReferenceSpace_updates.https.html": [ - "2f84d6453672adfaa066a8c199b47333bdebb5d1", + "1d7ad93695adedb538e43084568a80c9b40b7660", "testharness" ], "webxr/xrDevice_disconnect_ends.https.html": [ @@ -696316,11 +697229,15 @@ "testharness" ], "webxr/xrFrame_getPose.https.html": [ - "8795a0a9737f673384bf208aa0043b1be04864fd", + "71ca78abb48cf12cb41e8249289a06eddc7eae94", "testharness" ], "webxr/xrFrame_lifetime.https.html": [ - "c7af792c7bb45155c1a24e177ed3be05875872d6", + "2d706d24848a29ee9ad5f3d309f809b803f5c8ca", + "testharness" + ], + "webxr/xrFrame_session_sameObject.https.html": [ + "cbbef68713b2991945827899407036a8a9205a14", "testharness" ], "webxr/xrInputSource_add_remove.https.html": [ @@ -696339,6 +697256,14 @@ "32073c631f8ecfc3b19c33ed03e6b9999553cfec", "testharness" ], + "webxr/xrInputSource_sameObject.https.html": [ + "78240de2f9019218061e45359cfad7cd28057d52", + "testharness" + ], + "webxr/xrPose_transform_sameObject.https.html": [ + "79eed4cdec4663b3a0a401aff80126e4dad767f9", + "testharness" + ], "webxr/xrRay_constructor.https.html": [ "b955db4509c2f60facee570e6011a1441297e3dd", "testharness" @@ -696352,7 +697277,7 @@ "testharness" ], "webxr/xrReferenceSpace_originOffsetBounded.https.html": [ - "ae1767ba74e0638217b590b4c2d620ec76ddef2f", + "d0f91a4630d045c2fc8f3f6dbc588cc769386fd2", "testharness" ], "webxr/xrRigidTransform_constructor.https.html": [ @@ -696367,6 +697292,10 @@ "df804193ffe9eb87dbb16383cb333a5fe0a06546", "testharness" ], + "webxr/xrRigidTransform_sameObject.https.html": [ + "d014fe6fb56766a636559db67abc06428a88e98c", + "testharness" + ], "webxr/xrSession_cancelAnimationFrame.https.html": [ "6a294f21f06d98483d9278d08e50124d84779aad", "testharness" @@ -696376,7 +697305,7 @@ "testharness" ], "webxr/xrSession_end.https.html": [ - "b91a5b977cab3d2fbb5c4989246f45b0c9b2024b", + "e8c078ead9b7eaf4ed4312f14945ddfa07994614", "testharness" ], "webxr/xrSession_input_events_end.https.html": [ @@ -696396,11 +697325,11 @@ "testharness" ], "webxr/xrSession_requestAnimationFrame_getViewerPose.https.html": [ - "bdb5edda566704c4d1434b328d3adbe46d3501ba", + "9ddc36e95b3fae928a3ccb01e0a9a76f3977f38e", "testharness" ], "webxr/xrSession_requestAnimationFrame_timestamp.https.html": [ - "daa786b368627dfc60663470e9e339f97eff729c", + "2796be9987b5f23e92d5f114fdaa972a5323a37c", "testharness" ], "webxr/xrSession_requestReferenceSpace.https.html": [ @@ -696411,6 +697340,10 @@ "1bd516ee12e1d3ba24fd13ff04974c72e284b38a", "testharness" ], + "webxr/xrSession_sameObject.https.html": [ + "837fa0a008d6cdfcbd9ee134e7ec78bce7c2b95b", + "testharness" + ], "webxr/xrSession_viewer_referenceSpace.https.html": [ "fd6082bc3468f094953152d220fceafa083baf76", "testharness" @@ -696420,7 +697353,7 @@ "testharness" ], "webxr/xrStationaryReferenceSpace_floorlevel_updates.https.html": [ - "aa3c1b85c5d8ef550b9a835d384c67f602e290e9", + "3f33cf354b8d3fde3d0a2efd3d92b78037a9178a", "testharness" ], "webxr/xrView_eyes.https.html": [ @@ -696435,6 +697368,14 @@ "9404fcb8aaf33876f2918d3796190f16feafe506", "testharness" ], + "webxr/xrView_sameObject.https.html": [ + "1213bcb1f1166a876ecb7e0d76260092525e3cd6", + "testharness" + ], + "webxr/xrViewerPose_views_sameObject.https.html": [ + "ec1ee6964f0ddcfc93e1be13ff0b4d09a2af59ec", + "testharness" + ], "webxr/xrViewport_valid.https.html": [ "1b7d982d596187f1381bee73eac2990900a37f8f", "testharness" @@ -696447,6 +697388,10 @@ "dd40865e445aafce88f5941f4127236c36f01f2d", "testharness" ], + "webxr/xrWebGLLayer_framebuffer_sameObject.https.html": [ + "b0f637863b6aec46d36d3d1400219ce7aebb494a", + "testharness" + ], "webxr/xrWebGLLayer_framebuffer_scale.https.html": [ "7b5cedb1c83987daf435f662e5687cf6e1bb0559", "testharness" diff --git a/tests/wpt/metadata/css/css-paint-api/color-custom-property-animation.https.html.ini b/tests/wpt/metadata/css/css-paint-api/color-custom-property-animation.https.html.ini new file mode 100644 index 00000000000..e1184b62884 --- /dev/null +++ b/tests/wpt/metadata/css/css-paint-api/color-custom-property-animation.https.html.ini @@ -0,0 +1,2 @@ +[color-custom-property-animation.https.html] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-text-decor/text-decoration-skip-ink-sidewayslr-001.html.ini b/tests/wpt/metadata/css/css-text-decor/text-decoration-skip-ink-sidewayslr-001.html.ini new file mode 100644 index 00000000000..48c0a1db13f --- /dev/null +++ b/tests/wpt/metadata/css/css-text-decor/text-decoration-skip-ink-sidewayslr-001.html.ini @@ -0,0 +1,2 @@ +[text-decoration-skip-ink-sidewayslr-001.html] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-text-decor/text-decoration-skip-ink-sidewaysrl-001.html.ini b/tests/wpt/metadata/css/css-text-decor/text-decoration-skip-ink-sidewaysrl-001.html.ini new file mode 100644 index 00000000000..32ca831d030 --- /dev/null +++ b/tests/wpt/metadata/css/css-text-decor/text-decoration-skip-ink-sidewaysrl-001.html.ini @@ -0,0 +1,2 @@ +[text-decoration-skip-ink-sidewaysrl-001.html] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-text-decor/text-decoration-skip-ink-upright-001.html.ini b/tests/wpt/metadata/css/css-text-decor/text-decoration-skip-ink-upright-001.html.ini new file mode 100644 index 00000000000..139a151b6f4 --- /dev/null +++ b/tests/wpt/metadata/css/css-text-decor/text-decoration-skip-ink-upright-001.html.ini @@ -0,0 +1,2 @@ +[text-decoration-skip-ink-upright-001.html] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-text-decor/text-decoration-skip-ink-vertical-001.html.ini b/tests/wpt/metadata/css/css-text-decor/text-decoration-skip-ink-vertical-001.html.ini new file mode 100644 index 00000000000..7533f547d68 --- /dev/null +++ b/tests/wpt/metadata/css/css-text-decor/text-decoration-skip-ink-vertical-001.html.ini @@ -0,0 +1,2 @@ +[text-decoration-skip-ink-vertical-001.html] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-transforms/animation/list-interpolation.html.ini b/tests/wpt/metadata/css/css-transforms/animation/list-interpolation.html.ini index 006c4415580..d8df35ad03b 100644 --- a/tests/wpt/metadata/css/css-transforms/animation/list-interpolation.html.ini +++ b/tests/wpt/metadata/css/css-transforms/animation/list-interpolation.html.ini @@ -86,3 +86,6 @@ [Match on rotation with spherical interpolation: Animation between "rotate3d(1, 0, 0, 360deg) translateX(100px)" and "rotate3d(0, 1, 0, -720deg) translateY(200px)" at progress 0.25] expected: FAIL + [Transform list interpolation] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-transforms/animation/matrix-interpolation.html.ini b/tests/wpt/metadata/css/css-transforms/animation/matrix-interpolation.html.ini index d25cb43f3da..0f05b67d484 100644 --- a/tests/wpt/metadata/css/css-transforms/animation/matrix-interpolation.html.ini +++ b/tests/wpt/metadata/css/css-transforms/animation/matrix-interpolation.html.ini @@ -2,3 +2,6 @@ [Animation between "rotateY(360deg)" and "rotateX(720deg)" at progress 0.5] expected: FAIL + [Matrix interpolation] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-transforms/animation/rotate-interpolation.html.ini b/tests/wpt/metadata/css/css-transforms/animation/rotate-interpolation.html.ini index 713e1537b0e..906dc2eaf07 100644 --- a/tests/wpt/metadata/css/css-transforms/animation/rotate-interpolation.html.ini +++ b/tests/wpt/metadata/css/css-transforms/animation/rotate-interpolation.html.ini @@ -71,3 +71,6 @@ [Animation between "none" and "none" at progress 2] expected: FAIL + [rotate interpolation] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-transforms/animation/scale-interpolation.html.ini b/tests/wpt/metadata/css/css-transforms/animation/scale-interpolation.html.ini index 0b0c20b9270..18fe2ce3054 100644 --- a/tests/wpt/metadata/css/css-transforms/animation/scale-interpolation.html.ini +++ b/tests/wpt/metadata/css/css-transforms/animation/scale-interpolation.html.ini @@ -89,3 +89,6 @@ [Animation between "26 17 9" and "2 1" at progress 2] expected: FAIL + [scale interpolation] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-transforms/animation/translate-interpolation.html.ini b/tests/wpt/metadata/css/css-transforms/animation/translate-interpolation.html.ini index 6241318a17f..88830acf249 100644 --- a/tests/wpt/metadata/css/css-transforms/animation/translate-interpolation.html.ini +++ b/tests/wpt/metadata/css/css-transforms/animation/translate-interpolation.html.ini @@ -71,3 +71,6 @@ [Animation between "none" and "none" at progress 2] expected: FAIL + [translate interpolation] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-values/minmax-angle-computed.html.ini b/tests/wpt/metadata/css/css-values/minmax-angle-computed.html.ini new file mode 100644 index 00000000000..2ccfc9a5c87 --- /dev/null +++ b/tests/wpt/metadata/css/css-values/minmax-angle-computed.html.ini @@ -0,0 +1,97 @@ +[minmax-angle-computed.html] + [Property transform value 'rotate(calc(max(90deg, 1.56rad) * 2)' computes to 'rotate(180deg)'] + expected: FAIL + + [Property transform value 'rotate(max(1deg, 2deg))' computes to 'rotate(2deg)'] + expected: FAIL + + [Property transform value 'rotate(max(91deg, 0.25turn))' computes to 'rotate(91deg)'] + expected: FAIL + + [Property transform value 'rotate(calc(min(90deg, 1.58rad) - max(0.25turn, 99grad)))' computes to 'rotate(0deg)'] + expected: FAIL + + [Property transform value 'rotate(min(1grad, 2grad))' computes to 'rotate(0.9deg)'] + expected: FAIL + + [Property transform value 'rotate(max(1rad))' computes to 'rotate(57.2958deg)'] + expected: FAIL + + [Property transform value 'rotate(max(0.25turn, min(270deg, 3.14rad)))' computes to 'rotate(179.909deg)'] + expected: FAIL + + [Property transform value 'rotate(min(1rad))' computes to 'rotate(57.2958deg)'] + expected: FAIL + + [Property transform value 'rotate(min(1turn))' computes to 'rotate(360deg)'] + expected: FAIL + + [Property transform value 'rotate(min(270deg, max(0.25turn, 3.14rad)))' computes to 'rotate(179.909deg)'] + expected: FAIL + + [Property transform value 'rotate(calc(max(90deg, 1.56rad) + 0.25turn))' computes to 'rotate(180deg)'] + expected: FAIL + + [Property transform value 'rotate(max(1deg))' computes to 'rotate(1deg)'] + expected: FAIL + + [Property transform value 'rotate(max(1turn, 2turn))' computes to 'rotate(720deg)'] + expected: FAIL + + [Property transform value 'rotate(max(1grad))' computes to 'rotate(0.9deg)'] + expected: FAIL + + [Property transform value 'rotate(max(1turn))' computes to 'rotate(360deg)'] + expected: FAIL + + [Property transform value 'rotate(calc(min(90deg, 1.58rad) - 0.125turn))' computes to 'rotate(45deg)'] + expected: FAIL + + [Property transform value 'rotate(min(1grad))' computes to 'rotate(0.9deg)'] + expected: FAIL + + [Property transform value 'rotate(min(1deg, 2deg))' computes to 'rotate(1deg)'] + expected: FAIL + + [Property transform value 'rotate(calc(min(90deg, 1.58rad) + max(0.25turn, 99grad)))' computes to 'rotate(180deg)'] + expected: FAIL + + [Property transform value 'rotate(min(90deg, 0.26turn))' computes to 'rotate(90deg)'] + expected: FAIL + + [Property transform value 'rotate(min(1deg))' computes to 'rotate(1deg)'] + expected: FAIL + + [Property transform value 'rotate(max(1rad, 2rad))' computes to 'rotate(114.592deg)'] + expected: FAIL + + [Property transform value 'rotate(min(1rad, 2rad))' computes to 'rotate(57.2958deg)'] + expected: FAIL + + [Property transform value 'rotate(calc(min(90deg, 1.58rad) / 2)' computes to 'rotate(45deg)'] + expected: FAIL + + [Property transform value 'rotate(calc(max(90deg, 1.56rad) / 2)' computes to 'rotate(45deg)'] + expected: FAIL + + [Property transform value 'rotate(max(1.58rad, 90deg))' computes to 'rotate(90.5273deg)'] + expected: FAIL + + [Property transform value 'rotate(max(1grad, 2grad))' computes to 'rotate(1.8deg)'] + expected: FAIL + + [Property transform value 'rotate(calc(min(90deg, 1.58rad) * 2)' computes to 'rotate(180deg)'] + expected: FAIL + + [Property transform value 'rotate(calc(min(90deg, 1.58rad) + 0.25turn))' computes to 'rotate(180deg)'] + expected: FAIL + + [Property transform value 'rotate(calc(max(90deg, 1.56rad) - 0.125turn))' computes to 'rotate(45deg)'] + expected: FAIL + + [Property transform value 'rotate(min(1.57rad, 95deg))' computes to 'rotate(89.9544deg)'] + expected: FAIL + + [Property transform value 'rotate(min(1turn, 2turn))' computes to 'rotate(360deg)'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/cssom-view/matchMedia-display-none-iframe.html.ini b/tests/wpt/metadata/css/cssom-view/matchMedia-display-none-iframe.html.ini new file mode 100644 index 00000000000..e6e1f29e274 --- /dev/null +++ b/tests/wpt/metadata/css/cssom-view/matchMedia-display-none-iframe.html.ini @@ -0,0 +1,2 @@ +[matchMedia-display-none-iframe.html] + expected: ERROR diff --git a/tests/wpt/metadata/css/filter-effects/animation/backdrop-filter-interpolation-001.html.ini b/tests/wpt/metadata/css/filter-effects/animation/backdrop-filter-interpolation-001.html.ini index 544695a27bf..5d7f8796d97 100644 --- a/tests/wpt/metadata/css/filter-effects/animation/backdrop-filter-interpolation-001.html.ini +++ b/tests/wpt/metadata/css/filter-effects/animation/backdrop-filter-interpolation-001.html.ini @@ -41,3 +41,6 @@ [Animation between "hue-rotate(80deg) blur(6mm)" and "hue-rotate(100grad) blur(1cm)" at progress 0.5] expected: FAIL + [backdrop-filter interpolation] + expected: FAIL + diff --git a/tests/wpt/metadata/css/filter-effects/animation/backdrop-filter-interpolation-002.html.ini b/tests/wpt/metadata/css/filter-effects/animation/backdrop-filter-interpolation-002.html.ini index a037945f63f..f577004565d 100644 --- a/tests/wpt/metadata/css/filter-effects/animation/backdrop-filter-interpolation-002.html.ini +++ b/tests/wpt/metadata/css/filter-effects/animation/backdrop-filter-interpolation-002.html.ini @@ -56,3 +56,6 @@ [Animation between "none" and "opacity(0.5) hue-rotate(180deg)" at progress -0.5] expected: FAIL + [backdrop-filter interpolation] + expected: FAIL + diff --git a/tests/wpt/metadata/css/filter-effects/animation/backdrop-filter-interpolation-003.html.ini b/tests/wpt/metadata/css/filter-effects/animation/backdrop-filter-interpolation-003.html.ini index 623d90816b8..eabb55d0bca 100644 --- a/tests/wpt/metadata/css/filter-effects/animation/backdrop-filter-interpolation-003.html.ini +++ b/tests/wpt/metadata/css/filter-effects/animation/backdrop-filter-interpolation-003.html.ini @@ -170,3 +170,6 @@ ["none" and "sepia(1)" are valid backdrop-filter values] expected: FAIL + [backdrop-filter interpolation] + expected: FAIL + diff --git a/tests/wpt/metadata/css/filter-effects/animation/backdrop-filter-interpolation-004.html.ini b/tests/wpt/metadata/css/filter-effects/animation/backdrop-filter-interpolation-004.html.ini index cc5485ff019..564c9372100 100644 --- a/tests/wpt/metadata/css/filter-effects/animation/backdrop-filter-interpolation-004.html.ini +++ b/tests/wpt/metadata/css/filter-effects/animation/backdrop-filter-interpolation-004.html.ini @@ -179,3 +179,6 @@ ["grayscale(0)" and "grayscale()" are valid backdrop-filter values] expected: FAIL + [backdrop-filter interpolation] + expected: FAIL + diff --git a/tests/wpt/metadata/css/filter-effects/animation/filter-interpolation-001.html.ini b/tests/wpt/metadata/css/filter-effects/animation/filter-interpolation-001.html.ini index a42d2f65e10..2f20c669201 100644 --- a/tests/wpt/metadata/css/filter-effects/animation/filter-interpolation-001.html.ini +++ b/tests/wpt/metadata/css/filter-effects/animation/filter-interpolation-001.html.ini @@ -35,3 +35,6 @@ [Animation between "hue-rotate(80deg) blur(6mm)" and "hue-rotate(100grad) blur(1cm)" at progress 0.5] expected: FAIL + [filter interpolation] + expected: FAIL + diff --git a/tests/wpt/metadata/css/filter-effects/animation/filter-interpolation-002.html.ini b/tests/wpt/metadata/css/filter-effects/animation/filter-interpolation-002.html.ini index 00ded6318d9..e931a047283 100644 --- a/tests/wpt/metadata/css/filter-effects/animation/filter-interpolation-002.html.ini +++ b/tests/wpt/metadata/css/filter-effects/animation/filter-interpolation-002.html.ini @@ -47,3 +47,6 @@ [Animation between "none" and "opacity(0.5) hue-rotate(180deg)" at progress -0.5] expected: FAIL + [filter interpolation] + expected: FAIL + diff --git a/tests/wpt/metadata/css/filter-effects/animation/filter-interpolation-003.html.ini b/tests/wpt/metadata/css/filter-effects/animation/filter-interpolation-003.html.ini index 4cf2c13b76e..f31c629dda3 100644 --- a/tests/wpt/metadata/css/filter-effects/animation/filter-interpolation-003.html.ini +++ b/tests/wpt/metadata/css/filter-effects/animation/filter-interpolation-003.html.ini @@ -143,3 +143,6 @@ [Animation between "none" and "sepia(1)" at progress 1.5] expected: FAIL + [filter interpolation] + expected: FAIL + diff --git a/tests/wpt/metadata/css/filter-effects/animation/filter-interpolation-004.html.ini b/tests/wpt/metadata/css/filter-effects/animation/filter-interpolation-004.html.ini index 1cdaaaf6709..f3f3d56398b 100644 --- a/tests/wpt/metadata/css/filter-effects/animation/filter-interpolation-004.html.ini +++ b/tests/wpt/metadata/css/filter-effects/animation/filter-interpolation-004.html.ini @@ -152,3 +152,6 @@ [Animation between "hue-rotate()" and "hue-rotate(360deg)" at progress -1] expected: FAIL + [filter interpolation] + expected: FAIL + diff --git a/tests/wpt/metadata/fetch/content-type/response.window.js.ini b/tests/wpt/metadata/fetch/content-type/response.window.js.ini index a70942e359e..f950aa53ba3 100644 --- a/tests/wpt/metadata/fetch/content-type/response.window.js.ini +++ b/tests/wpt/metadata/fetch/content-type/response.window.js.ini @@ -318,3 +318,18 @@ [<iframe>: combined response Content-Type: text/html */*] expected: FAIL + [<iframe>: combined response Content-Type: text/html;" text/plain] + expected: FAIL + + [<iframe>: separate response Content-Type: text/html;" text/plain] + expected: FAIL + + [<iframe>: separate response Content-Type: text/plain */*] + expected: FAIL + + [<iframe>: combined response Content-Type: text/html;" \\" text/plain] + expected: FAIL + + [<iframe>: separate response Content-Type: text/plain */*;charset=gbk] + expected: FAIL + diff --git a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini new file mode 100644 index 00000000000..87b07c3e670 --- /dev/null +++ b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini @@ -0,0 +1,4 @@ +[traverse_the_history_1.html] + [Multiple history traversals from the same task] + expected: FAIL + diff --git a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_4.html.ini b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_4.html.ini new file mode 100644 index 00000000000..385376c7321 --- /dev/null +++ b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_4.html.ini @@ -0,0 +1,4 @@ +[traverse_the_history_4.html] + [Multiple history traversals, last would be aborted] + expected: FAIL + diff --git a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/creating_browsing_context_test_01.html.ini b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/creating_browsing_context_test_01.html.ini index 16fa2c5cfc1..dec4c579137 100644 --- a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/creating_browsing_context_test_01.html.ini +++ b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/creating_browsing_context_test_01.html.ini @@ -1,4 +1,5 @@ [creating_browsing_context_test_01.html] + expected: TIMEOUT [first argument: absolute url] - expected: FAIL + expected: TIMEOUT diff --git a/tests/wpt/metadata/html/semantics/forms/form-submission-0/form-submission-algorithm.html.ini b/tests/wpt/metadata/html/semantics/forms/form-submission-0/form-submission-algorithm.html.ini index 127392316de..702af61a3c4 100644 --- a/tests/wpt/metadata/html/semantics/forms/form-submission-0/form-submission-algorithm.html.ini +++ b/tests/wpt/metadata/html/semantics/forms/form-submission-0/form-submission-algorithm.html.ini @@ -1,7 +1,11 @@ [form-submission-algorithm.html] + expected: TIMEOUT [If form's firing submission events is true, then return; 'submit' event] expected: FAIL [If form's firing submission events is true, then return; 'invalid' event] expected: FAIL + [Cannot navigate (after constructing the entry list)] + expected: TIMEOUT + diff --git a/tests/wpt/metadata/html/syntax/parsing/DOMContentLoaded-defer.html.ini b/tests/wpt/metadata/html/syntax/parsing/DOMContentLoaded-defer.html.ini deleted file mode 100644 index a9677391662..00000000000 --- a/tests/wpt/metadata/html/syntax/parsing/DOMContentLoaded-defer.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[DOMContentLoaded-defer.html] - [The end: DOMContentLoaded and defer scripts] - expected: FAIL - diff --git a/tests/wpt/metadata/performance-timeline/not-clonable.html.ini b/tests/wpt/metadata/performance-timeline/not-clonable.html.ini new file mode 100644 index 00000000000..36b6b7a914a --- /dev/null +++ b/tests/wpt/metadata/performance-timeline/not-clonable.html.ini @@ -0,0 +1,4 @@ +[not-clonable.html] + [Test that a postMessage of a performance entry fails] + expected: FAIL + diff --git a/tests/wpt/metadata/performance-timeline/webtiming-resolution.any.js.ini b/tests/wpt/metadata/performance-timeline/webtiming-resolution.any.js.ini index 7725b118e9d..99a24216c88 100644 --- a/tests/wpt/metadata/performance-timeline/webtiming-resolution.any.js.ini +++ b/tests/wpt/metadata/performance-timeline/webtiming-resolution.any.js.ini @@ -12,6 +12,3 @@ [Verifies the resolution of entry.startTime is at least 5 microseconds.] expected: TIMEOUT - [Verifies the resolution of performance.now() is at least 5 microseconds.] - expected: FAIL - diff --git a/tests/wpt/metadata/resource-timing/resource_TAO_origin.htm.ini b/tests/wpt/metadata/resource-timing/resource_TAO_origin.htm.ini index 5c59982f790..5a549d938b6 100644 --- a/tests/wpt/metadata/resource-timing/resource_TAO_origin.htm.ini +++ b/tests/wpt/metadata/resource-timing/resource_TAO_origin.htm.ini @@ -11,6 +11,3 @@ [The iframe should have one resource timing entry.] expected: FAIL - [responseEnd should not be 0 in timing-allow cross-origin request.] - expected: FAIL - diff --git a/tests/wpt/metadata/resource-timing/resource_TAO_zero.htm.ini b/tests/wpt/metadata/resource-timing/resource_TAO_zero.htm.ini index aa36a14c6a6..494f0d4a752 100644 --- a/tests/wpt/metadata/resource-timing/resource_TAO_zero.htm.ini +++ b/tests/wpt/metadata/resource-timing/resource_TAO_zero.htm.ini @@ -20,6 +20,3 @@ [domainLookupStart should be 0 in cross-origin request.] expected: FAIL - [responseEnd should be greater than 0 in cross-origin request.] - expected: FAIL - diff --git a/tests/wpt/metadata/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-scaling.html.ini b/tests/wpt/metadata/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-scaling.html.ini index a56bad443a2..66bd350083b 100644 --- a/tests/wpt/metadata/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-scaling.html.ini +++ b/tests/wpt/metadata/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-scaling.html.ini @@ -1,5 +1,4 @@ [realtimeanalyser-fft-scaling.html] - expected: TIMEOUT [X 2048-point FFT peak position is not equal to 64. Got 0.] expected: FAIL diff --git a/tests/wpt/metadata/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini b/tests/wpt/metadata/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini index 2a05ceb67fa..492316c3ef8 100644 --- a/tests/wpt/metadata/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini +++ b/tests/wpt/metadata/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini @@ -200,3 +200,6 @@ [X Stitched sine-wave buffers at sample rate 43800 does not equal [0,0.06264832615852356,0.12505052983760834,0.18696144223213196,0.24813786149024963,0.308339387178421,0.36732959747314453,0.4248766601085663,0.480754554271698,0.5347436666488647,0.5866320133209229,0.6362156271934509,0.6832997798919678,0.7276994585990906,0.7692402601242065,0.8077589869499207...\] with an element-wise tolerance of {"absoluteThreshold":0.0038986,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[30\]\t9.4836157560348511e-1\t9.5236867666244507e-1\t4.0071010589599609e-3\t4.2075103446311962e-3\t3.8985999999999999e-3\n\t[31\]\t9.2646563053131104e-1\t9.3139332532882690e-1\t4.9276947975158691e-3\t5.2906700783754857e-3\t3.8985999999999999e-3\n\t[32\]\t9.0087991952896118e-1\t9.0675884485244751e-1\t5.8789253234863281e-3\t6.4834496590358351e-3\t3.8985999999999999e-3\n\t[33\]\t8.7170630693435669e-1\t8.7856203317642212e-1\t6.8557262420654297e-3\t7.8033490899654511e-3\t3.8985999999999999e-3\n\t[34\]\t8.3906102180480957e-1\t8.4691369533538818e-1\t7.8526735305786133e-3\t9.2721059699818163e-3\t3.8985999999999999e-3\n\t...and 31037 more errors.\n\tMax AbsError of 9.8276454210281372e-1 at index of 39267.\n\t[39267\]\t-4.4464776011506507e-25\t-9.8276454210281372e-1\t9.8276454210281372e-1\t1.0000000000000000e+0\t3.8985999999999999e-3\n\tMax RelError of 3.3137802965303198e+0 at index of 1253.\n\t[1253\]\t-4.3022233992815018e-2\t-9.9732093513011932e-3\t3.3049024641513824e-2\t3.3137802965303198e+0\t3.8985999999999999e-3\n] expected: FAIL + [X Stitched sine-wave buffers at sample rate 43800 does not equal [0,0.06264832615852356,0.12505052983760834,0.18696144223213196,0.24813786149024963,0.308339387178421,0.36732959747314453,0.4248766601085663,0.480754554271698,0.5347436666488647,0.5866320133209229,0.6362156271934509,0.6832997798919678,0.7276994585990906,0.7692402601242065,0.8077589869499207...\] with an element-wise tolerance of {"absoluteThreshold":0.0038986,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[30\]\t9.4836157560348511e-1\t9.5236867666244507e-1\t4.0071010589599609e-3\t4.2075103446311962e-3\t3.8985999999999999e-3\n\t[31\]\t9.2646563053131104e-1\t9.3139332532882690e-1\t4.9276947975158691e-3\t5.2906700783754857e-3\t3.8985999999999999e-3\n\t[32\]\t9.0087991952896118e-1\t9.0675884485244751e-1\t5.8789253234863281e-3\t6.4834496590358351e-3\t3.8985999999999999e-3\n\t[33\]\t8.7170630693435669e-1\t8.7856203317642212e-1\t6.8557262420654297e-3\t7.8033490899654511e-3\t3.8985999999999999e-3\n\t[34\]\t8.3906102180480957e-1\t8.4691369533538818e-1\t7.8526735305786133e-3\t9.2721059699818163e-3\t3.8985999999999999e-3\n\t...and 31037 more errors.\n\tMax AbsError of 9.8276454210281372e-1 at index of 39267.\n\t[39267\]\t-7.1855442733195153e-19\t-9.8276454210281372e-1\t9.8276454210281372e-1\t1.0000000000000000e+0\t3.8985999999999999e-3\n\tMax RelError of 3.3137802965303198e+0 at index of 1253.\n\t[1253\]\t-4.3022233992815018e-2\t-9.9732093513011932e-3\t3.3049024641513824e-2\t3.3137802965303198e+0\t3.8985999999999999e-3\n] + expected: FAIL + diff --git a/tests/wpt/metadata/webxr/xrBoundedReferenceSpace_updates.https.html.ini b/tests/wpt/metadata/webxr/xrBoundedReferenceSpace_updates.https.html.ini index 27f6c5ed7a2..6ff00c31bef 100644 --- a/tests/wpt/metadata/webxr/xrBoundedReferenceSpace_updates.https.html.ini +++ b/tests/wpt/metadata/webxr/xrBoundedReferenceSpace_updates.https.html.ini @@ -1,5 +1,5 @@ [xrBoundedReferenceSpace_updates.https.html] - expected: ERROR + expected: TIMEOUT ['XRBoundedReferenceSpace updates properly when the changes are applied] expected: TIMEOUT diff --git a/tests/wpt/metadata/webxr/xrInputSource_sameObject.https.html.ini b/tests/wpt/metadata/webxr/xrInputSource_sameObject.https.html.ini new file mode 100644 index 00000000000..980f9d31c32 --- /dev/null +++ b/tests/wpt/metadata/webxr/xrInputSource_sameObject.https.html.ini @@ -0,0 +1,4 @@ +[xrInputSource_sameObject.https.html] + [XRInputSource attributes meet [SameObject\] requirement] + expected: FAIL + diff --git a/tests/wpt/metadata/webxr/xrPose_transform_sameObject.https.html.ini b/tests/wpt/metadata/webxr/xrPose_transform_sameObject.https.html.ini new file mode 100644 index 00000000000..3e442625aa8 --- /dev/null +++ b/tests/wpt/metadata/webxr/xrPose_transform_sameObject.https.html.ini @@ -0,0 +1,4 @@ +[xrPose_transform_sameObject.https.html] + [XRPose.transform meets [SameObject\] requirement] + expected: FAIL + diff --git a/tests/wpt/metadata/webxr/xrSession_sameObject.https.html.ini b/tests/wpt/metadata/webxr/xrSession_sameObject.https.html.ini new file mode 100644 index 00000000000..09170ad4d6a --- /dev/null +++ b/tests/wpt/metadata/webxr/xrSession_sameObject.https.html.ini @@ -0,0 +1,4 @@ +[xrSession_sameObject.https.html] + [XRSession attributes meet [SameObject\] requirement] + expected: FAIL + diff --git a/tests/wpt/metadata/workers/WorkerGlobalScope-close.html.ini b/tests/wpt/metadata/workers/WorkerGlobalScope-close.html.ini new file mode 100644 index 00000000000..fe8654e447c --- /dev/null +++ b/tests/wpt/metadata/workers/WorkerGlobalScope-close.html.ini @@ -0,0 +1,4 @@ +[WorkerGlobalScope-close.html] + [Test sending a message after closing.] + expected: FAIL + diff --git a/tests/wpt/metadata/workers/baseurl/alpha/sharedworker-in-worker.html.ini b/tests/wpt/metadata/workers/baseurl/alpha/sharedworker-in-worker.html.ini index 333edb3a26e..650c91da4a6 100644 --- a/tests/wpt/metadata/workers/baseurl/alpha/sharedworker-in-worker.html.ini +++ b/tests/wpt/metadata/workers/baseurl/alpha/sharedworker-in-worker.html.ini @@ -1,4 +1,5 @@ [sharedworker-in-worker.html] + expected: ERROR [Base URL in workers: new SharedWorker()] expected: FAIL diff --git a/tests/wpt/mozilla/meta/css/transition_calc_implicit.html.ini b/tests/wpt/mozilla/meta/css/transition_calc_implicit.html.ini new file mode 100644 index 00000000000..dbea4f293ad --- /dev/null +++ b/tests/wpt/mozilla/meta/css/transition_calc_implicit.html.ini @@ -0,0 +1,2 @@ +[transition_calc_implicit.html] + expected: TIMEOUT diff --git a/tests/wpt/web-platform-tests/.azure-pipelines.yml b/tests/wpt/web-platform-tests/.azure-pipelines.yml index 4a4e9c7ff5e..5799d624b4e 100644 --- a/tests/wpt/web-platform-tests/.azure-pipelines.yml +++ b/tests/wpt/web-platform-tests/.azure-pipelines.yml @@ -242,11 +242,11 @@ jobs: # All `./wpt run` tests are run from epochs/* branches on a schedule. See # documentation at the top of this file for required setup. -- job: results_edge +- job: results_edge_dev displayName: 'all tests: Edge Dev' condition: | or(eq(variables['Build.Reason'], 'Schedule'), - and(eq(variables['Build.Reason'], 'Manual'), variables['run_all_edge'])) + and(eq(variables['Build.Reason'], 'Manual'), variables['run_all_edge_dev'])) # There are 12 agents in the pool, but use more jobs so that each takes <1h. strategy: parallel: 20 @@ -271,18 +271,18 @@ jobs: - task: PublishBuildArtifacts@1 displayName: 'Publish results' inputs: - artifactName: 'edge-results' + artifactName: 'edge-dev-results' - template: tools/ci/azure/cleanup_win10.yml - template: tools/ci/azure/fyi_hook.yml parameters: - dependsOn: results_edge - artifactName: edge-results + dependsOn: results_edge_dev + artifactName: edge-dev-results - job: results_edge_canary displayName: 'all tests: Edge Canary' condition: | or(eq(variables['Build.Reason'], 'Schedule'), - and(eq(variables['Build.Reason'], 'Manual'), variables['run_all_edge'])) + and(eq(variables['Build.Reason'], 'Manual'), variables['run_all_edge_canary'])) # There are 12 agents in the pool, but use more jobs so that each takes <1h. strategy: parallel: 20 diff --git a/tests/wpt/web-platform-tests/css/css-box/parsing/padding-computed.html b/tests/wpt/web-platform-tests/css/css-box/parsing/padding-computed.html new file mode 100644 index 00000000000..f1186c4530d --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-box/parsing/padding-computed.html @@ -0,0 +1,51 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS basic box model: getComputedStyle().padding</title> +<link rel="help" href="https://drafts.csswg.org/css-box-3/#propdef-padding"> +<link rel="help" href="https://drafts.csswg.org/cssom/#resolved-values"> +<meta name="assert" content="padding resolved value is an absolute length."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/computed-testcommon.js"></script> +<style> + #container { + will-change: transform; /* containing block for #target */ + width: 200px; + } + #parent { + width: 0px; + } + #target { + position: absolute; + font-size: 40px; + } +</style> +</head> +<body> +<div id="container"> + <div id="parent"> + <div id="target"></div> + </div> +</div> +<script> +test_computed_value("padding", "10px"); +test_computed_value("padding", "10px 20px 30px 40px"); + +test_computed_value("padding-top", "10px"); +test_computed_value("padding-right", "20px"); +test_computed_value("padding-bottom", "30px"); +test_computed_value("padding-left", "40px"); + +test_computed_value("padding", "20%", "40px"); +test_computed_value("padding", "10px 20% 30% 40px", "10px 40px 60px"); +test_computed_value("padding-right", "20%", "40px"); + +test_computed_value('padding-top', 'calc(10% - 40px)', '0px'); +test_computed_value('padding-right', 'calc(10% + 40px)', '60px'); +test_computed_value('padding-bottom', 'calc(10px - 0.5em)', '0px'); +test_computed_value('padding-left', 'calc(10px + 0.5em)', '30px'); +</script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-display/display-flow-root-list-item-001-ref.html b/tests/wpt/web-platform-tests/css/css-display/display-flow-root-list-item-001-ref.html new file mode 100644 index 00000000000..00bfbca26a6 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-display/display-flow-root-list-item-001-ref.html @@ -0,0 +1,53 @@ +<!DOCTYPE HTML> +<!-- + Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ +--> +<html><head> + <meta charset="utf-8"> + <title>Reference: display:flow-root list-item</title> + <link rel="author" title="Mats Palmgren" href=""> + <style type="text/css"> +html,body { + color:black; background-color:white; font:16px/1 monospace; padding:0; margin:0; +} + +body { padding-left: 100px; } + +.float { + float: left; + width: 20px; + height: 40px; + background: pink; +} + +.clearfix:after{content:".";display:block;height:0;clear:both;visibility:hidden;} + + </style> +</head> +<body> + +<div style="border:1px solid"> + <div style="margin: 40px 0"> + <div style="display:list-item">x</div> + </div> +</div> + +<div style="border:1px solid"> + <div style="display:list-item" class="float"></div> + <div class="clearfix"></div> +</div> + +<div style="border:1px solid"> + <div class="float"></div> + <div style="display:list-item; border:1px solid; margin-left:20px">x</div> +</div> + +<span> + <span style="display:list-item; background:grey; margin:20px 0 0 21px"><div style="padding:20px">x</div></span> +</span> + +<div style="display:list-item; border:3px solid; height:10px;"></div> + +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-display/display-flow-root-list-item-001.html b/tests/wpt/web-platform-tests/css/css-display/display-flow-root-list-item-001.html new file mode 100644 index 00000000000..6c5bece5864 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-display/display-flow-root-list-item-001.html @@ -0,0 +1,59 @@ +<!DOCTYPE HTML> +<!-- + Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ +--> +<html><head> + <meta charset="utf-8"> + <title>CSS Display Test: display:flow-root list-item</title> + <link rel="author" title="Mats Palmgren" href=""> + <link rel="help" href="https://drafts.csswg.org/css-display-3/#list-items"> + <link rel="match" href="display-flow-root-list-item-001-ref.html"> + <style type="text/css"> +html,body { + color:black; background-color:white; font:16px/1 monospace; padding:0; margin:0; +} + +body { padding-left: 100px; } + +.float { + float: left; + width: 20px; + height: 40px; + background: pink; +} + +.li { display: flow-root list-item; } + </style> +</head> +<body> + +<div style="border:1px solid"> + <!-- this tests that the flow-root margins don't collapse with its children. --> + <span class="li" style="margin: 20px 0"> + <div style="margin: 20px 0">x</div> + </span> +</div> + +<div style="border:1px solid"> + <!-- this tests that the flow-root grows to fit child floats --> + <span class="li"><div class="float"></div></span> +</div> + +<div style="border:1px solid; margin-bottom:20px"> + <!-- this tests that a float does not intrude into flow-root box --> + <div class="float"></div> + <span class="li" style="border:1px solid">x</span> +</div> + +<span> + <!-- this tests that a flow-root box is constructed also in the "ibsplit" case --> + <span class="li" style="background:grey;"><div style="margin:20px">x</div></span> +</span> + +<span class="li" style="border:3px solid; height:10px;"> + <!-- this tests that a flow-root fills the available width, and that 'height' applies --> +</span> + +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-inline/parsing/line-height-computed.html b/tests/wpt/web-platform-tests/css/css-inline/parsing/line-height-computed.html new file mode 100644 index 00000000000..dff6fc6702e --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-inline/parsing/line-height-computed.html @@ -0,0 +1,36 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Inline Layout: getComputedStyle().lineHeight</title> +<link rel="help" href="https://drafts.csswg.org/css-inline-3/#line-height-property"> +<meta name="assert" content="line-height computed value is normal or a length."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/computed-testcommon.js"></script> +<style> + #container { + font-size: 40px; + } +</style> +</head> +<body> +<div id="container"> + <div id="target"></div> +</div> +<script> +test_computed_value("line-height", "normal"); + +test_computed_value("line-height", "0", "0px"); +test_computed_value("line-height", "2", "80px"); +test_computed_value("line-height", "0px"); +test_computed_value("line-height", "10px"); +test_computed_value("line-height", "0%", "0px"); +test_computed_value("line-height", "200%", "80px"); +test_computed_value("line-height", "calc(200% + 10px)", "90px"); + +test_computed_value('line-height', 'calc(10px - 0.5em)', '0px'); +test_computed_value('line-height', 'calc(10px + 0.5em)', '30px'); +</script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-inline/parsing/line-height-invalid.html b/tests/wpt/web-platform-tests/css/css-inline/parsing/line-height-invalid.html new file mode 100644 index 00000000000..e7d4ae62460 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-inline/parsing/line-height-invalid.html @@ -0,0 +1,26 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Inline Layout: parsing line-height with invalid values</title> +<link rel="help" href="https://drafts.csswg.org/css-inline-3/#line-height-property"> +<meta name="assert" content="line-height supports only the grammar 'normal | <number> | <length-percentage>'."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/parsing-testcommon.js"></script> +</head> +<body> +<script> +test_invalid_value("line-height", "auto"); + +test_invalid_value("line-height", "-2"); +test_invalid_value("line-height", "-10px"); +test_invalid_value("line-height", "-200%"); + +test_invalid_value("line-height", "2 10px"); +test_invalid_value("line-height", "200% 3"); +test_invalid_value("line-height", "auto 10px"); +test_invalid_value("line-height", "3 auto"); +</script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-inline/parsing/line-height-valid.html b/tests/wpt/web-platform-tests/css/css-inline/parsing/line-height-valid.html new file mode 100644 index 00000000000..663e2638d8b --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-inline/parsing/line-height-valid.html @@ -0,0 +1,25 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Inline Layout: parsing line-height with valid values</title> +<link rel="help" href="https://drafts.csswg.org/css-inline-3/#line-height-property"> +<meta name="assert" content="line-height supports the full grammar 'normal | <number> | <length-percentage>'."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/parsing-testcommon.js"></script> +</head> +<body> +<script> +test_valid_value("line-height", "normal"); + +test_valid_value("line-height", "0"); +test_valid_value("line-height", "2"); +test_valid_value("line-height", "0px"); +test_valid_value("line-height", "10px"); +test_valid_value("line-height", "0%"); +test_valid_value("line-height", "200%"); +test_valid_value("line-height", "calc(200% + 10px)"); +</script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size-absolute-ref.html b/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size/absolute-ref.html index 416d57c43fa..416d57c43fa 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size-absolute-ref.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size/absolute-ref.html diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size-absolute.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size/absolute.https.html index bf81b21a4bb..7a726f6e00c 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size-absolute.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size/absolute.https.html @@ -1,7 +1,7 @@ <!DOCTYPE html> <html class=reftest-wait> <link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#interaction-sizing"> -<link rel="match" href="auto-block-size-absolute-ref.html"> +<link rel="match" href="absolute-ref.html"> <meta name="assert" content="This test checks that the absolute positioning respects the auto-block-size." /> <style> diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size-flex-ref.html b/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size/flex-ref.html index e71b104c742..e71b104c742 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size-flex-ref.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size/flex-ref.html diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size-flex.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size/flex.https.html index 5b152bb645f..96fe3c79a93 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size-flex.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size/flex.https.html @@ -1,7 +1,7 @@ <!DOCTYPE html> <html class=reftest-wait> <link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#interaction-sizing"> -<link rel="match" href="auto-block-size-flex-ref.html"> +<link rel="match" href="flex-ref.html"> <meta name="assert" content="This test checks that the flex layout respects the auto-block-size." /> <style> diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size-floats-ref.html b/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size/floats-ref.html index 368d3d8693f..368d3d8693f 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size-floats-ref.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size/floats-ref.html diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size-floats.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size/floats.https.html index 342c57b5300..b36f89da245 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size-floats.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size/floats.https.html @@ -1,7 +1,7 @@ <!DOCTYPE html> <html class=reftest-wait> <link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#interaction-sizing"> -<link rel="match" href="auto-block-size-floats-ref.html"> +<link rel="match" href="floats-ref.html"> <meta name="assert" content="This test checks that if the layout() is a float, the flow layout respects the auto-block-size." /> <style> diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size-inflow-ref.html b/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size/inflow-ref.html index 73f84811b18..73f84811b18 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size-inflow-ref.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size/inflow-ref.html diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size-inflow.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size/inflow.https.html index 7daef6e4c85..2239b27894c 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size-inflow.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size/inflow.https.html @@ -1,7 +1,7 @@ <!DOCTYPE html> <html class=reftest-wait> <link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#interaction-sizing"> -<link rel="match" href="auto-block-size-inflow-ref.html"> +<link rel="match" href="inflow-ref.html"> <meta name="assert" content="This test checks that min/max-block-size constraints are applied correctly to a layout()." /> <style> diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size-negative-ref.html b/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size/negative-ref.html index 665b5c6620b..665b5c6620b 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size-negative-ref.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size/negative-ref.html diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size-negative.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size/negative.https.html index 392edd125ae..a1a76d94aa3 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size-negative.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size/negative.https.html @@ -1,9 +1,8 @@ <!DOCTYPE html> <html class=reftest-wait> <link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#interaction-sizing"> -<link rel="match" href="auto-block-size-negative-ref.html"> +<link rel="match" href="negative-ref.html"> <meta name="assert" content="This test checks that auto-block-size is correctly clamped to zero." /> -<meta name="assert" content="TODO" /> <style> diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-block-size-htb-vrl.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-block-size-htb-vrl.https.html index 0da20ee8371..6ec8e4062fc 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-block-size-htb-vrl.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-block-size-htb-vrl.https.html @@ -61,5 +61,5 @@ </div> <script> -importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: '../support/layout-child-sizes-worklet.js'}); +importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/layout-child-sizes-worklet.js'}); </script> diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-block-size-invalid.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-block-size-invalid.https.html index dfbc812556f..32a0f11a4ec 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-block-size-invalid.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-block-size-invalid.https.html @@ -45,5 +45,5 @@ </div> <script> -importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: '../support/layout-child-sizes-worklet.js'}); +importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/layout-child-sizes-worklet.js'}); </script> diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-block-size-vrl-htb.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-block-size-vrl-htb.https.html index c8e84ae5170..536af3b5a46 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-block-size-vrl-htb.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-block-size-vrl-htb.https.html @@ -61,5 +61,5 @@ </div> <script> -importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: '../support/layout-child-sizes-worklet.js'}); +importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/layout-child-sizes-worklet.js'}); </script> diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-inline-size-htb-htb.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-inline-size-htb-htb.https.html index 94cf75fc93f..6205c01d104 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-inline-size-htb-htb.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-inline-size-htb-htb.https.html @@ -61,5 +61,5 @@ </div> <script> -importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: '../support/layout-child-sizes-worklet.js'}); +importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/layout-child-sizes-worklet.js'}); </script> diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-inline-size-invalid.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-inline-size-invalid.https.html index 136d13fa703..8bb18aaa4ba 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-inline-size-invalid.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-inline-size-invalid.https.html @@ -45,5 +45,5 @@ </div> <script> -importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: '../support/layout-child-sizes-worklet.js'}); +importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/layout-child-sizes-worklet.js'}); </script> diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-inline-size-vrl-vrl.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-inline-size-vrl-vrl.https.html index 392a6b51422..1b8d01f0247 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-inline-size-vrl-vrl.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-inline-size-vrl-vrl.https.html @@ -61,5 +61,5 @@ </div> <script> -importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: '../support/layout-child-sizes-worklet.js'}); +importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/layout-child-sizes-worklet.js'}); </script> diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-size-for-percentages-htb-htb.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-size-for-percentages-htb-htb.https.html index 960fb7d7dcf..9bf4d40ad61 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-size-for-percentages-htb-htb.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-size-for-percentages-htb-htb.https.html @@ -55,5 +55,5 @@ <!-- A replaced percentage min-width/min-height should resolve itself against the available size. --> <img class="child" style="width: 5px; min-width: 20%; height: 5px; min-height: 50%;" /> <script> -importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: '../support/layout-child-sizes-worklet.js'}); +importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/layout-child-sizes-worklet.js'}); </script> diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-size-for-percentages-htb-vrl.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-size-for-percentages-htb-vrl.https.html index 0e9b5570abe..eb104a180d7 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-size-for-percentages-htb-vrl.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-size-for-percentages-htb-vrl.https.html @@ -55,5 +55,5 @@ <!-- A replaced percentage min-width/min-height should resolve itself against the available size. --> <img class="child" style="width: 5px; min-width: 20%; height: 5px; min-height: 50%;" /> <script> -importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: '../support/layout-child-sizes-worklet.js'}); +importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/layout-child-sizes-worklet.js'}); </script> diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-size-for-percentages-invalid.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-size-for-percentages-invalid.https.html index 62efe992fb3..8bd969271e0 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-size-for-percentages-invalid.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-size-for-percentages-invalid.https.html @@ -45,5 +45,5 @@ <!-- For replaced elements, both axis should be resolved to 0px. --> <img class="child" style="--inline-size-expected: 0px; --block-size-expected: 0px; width: 100%; height: 100%;" /> <script> -importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: '../support/layout-child-sizes-worklet.js'}); +importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/layout-child-sizes-worklet.js'}); </script> diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-size-for-percentages-vrl-htb.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-size-for-percentages-vrl-htb.https.html index 1352ea91783..ce8ff95dd0d 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-size-for-percentages-vrl-htb.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-size-for-percentages-vrl-htb.https.html @@ -55,5 +55,5 @@ <!-- A replaced percentage min-width/min-height should resolve itself against the available size. --> <img class="child" style="width: 5px; min-width: 20%; height: 5px; min-height: 50%;" /> <script> -importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: '../support/layout-child-sizes-worklet.js'}); +importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/layout-child-sizes-worklet.js'}); </script> diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-size-for-percentages-vrl-vrl.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-size-for-percentages-vrl-vrl.https.html index 9c30c212fae..71c7355b9cd 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-size-for-percentages-vrl-vrl.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-size-for-percentages-vrl-vrl.https.html @@ -55,5 +55,5 @@ <!-- A replaced percentage min-width/min-height should resolve itself against the available size. --> <img class="child" style="width: 5px; min-width: 20%; height: 5px; min-height: 50%;" /> <script> -importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: '../support/layout-child-sizes-worklet.js'}); +importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/layout-child-sizes-worklet.js'}); </script> diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/fixed-block-size-vrl.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/fixed-block-size-vrl.https.html index dedcaa0ee83..631c5f82815 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/fixed-block-size-vrl.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/fixed-block-size-vrl.https.html @@ -56,5 +56,5 @@ </div> <script> -importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: '../support/layout-child-sizes-worklet.js'}); +importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/layout-child-sizes-worklet.js'}); </script> diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/fixed-block-size.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/fixed-block-size.https.html index eea540ca59f..737cc4da75b 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/fixed-block-size.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/fixed-block-size.https.html @@ -55,5 +55,5 @@ </div> <script> -importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: '../support/layout-child-sizes-worklet.js'}); +importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/layout-child-sizes-worklet.js'}); </script> diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/fixed-inline-size-vrl.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/fixed-inline-size-vrl.https.html index 22bd3e7c125..4fc3c2e77d9 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/fixed-inline-size-vrl.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/fixed-inline-size-vrl.https.html @@ -56,5 +56,5 @@ </div> <script> -importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: '../support/layout-child-sizes-worklet.js'}); +importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/layout-child-sizes-worklet.js'}); </script> diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/fixed-inline-size.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/fixed-inline-size.https.html index 0a05a46fe69..0fdf4aca3a7 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/fixed-inline-size.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/fixed-inline-size.https.html @@ -55,5 +55,5 @@ </div> <script> -importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: '../support/layout-child-sizes-worklet.js'}); +importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/layout-child-sizes-worklet.js'}); </script> diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/percentage-size-htb-htb.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/percentage-size-htb-htb.https.html index 99224c73f5b..84bda1ddf5a 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/percentage-size-htb-htb.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/percentage-size-htb-htb.https.html @@ -54,5 +54,5 @@ <!-- A replaced percentage min-height should resolve itself against the percentageBlockSize. --> <img class="child" style="height: 5px; min-height: 50%;" /> <script> -importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: '../support/layout-child-sizes-worklet.js'}); +importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/layout-child-sizes-worklet.js'}); </script> diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/percentage-size-htb-vrl.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/percentage-size-htb-vrl.https.html index 8116d5a9b08..98d285b015d 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/percentage-size-htb-vrl.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/percentage-size-htb-vrl.https.html @@ -54,5 +54,5 @@ <!-- A replaced percentage min-width should resolve itself against the percentageInlineSize. --> <img class="child" style="width: 5px; min-width: 50%;" /> <script> -importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: '../support/layout-child-sizes-worklet.js'}); +importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/layout-child-sizes-worklet.js'}); </script> diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/percentage-size-invalid.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/percentage-size-invalid.https.html index 932380a6163..04355355528 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/percentage-size-invalid.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/percentage-size-invalid.https.html @@ -43,5 +43,5 @@ <!-- A percentage shouldn't be resolved against an invalid percentageBlockSize. --> <img class="child" style="--inline-size-expected: 10px; --block-size-expected: 0px; height: 100%;" /> <script> -importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: '../support/layout-child-sizes-worklet.js'}); +importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/layout-child-sizes-worklet.js'}); </script> diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/percentage-size-quirks-mode.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/percentage-size-quirks-mode.https.html index 39a360d079d..527149b67a8 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/percentage-size-quirks-mode.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/percentage-size-quirks-mode.https.html @@ -51,5 +51,5 @@ </div> </div> <script> -importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: '../support/layout-child-sizes-worklet.js'}); +importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/layout-child-sizes-worklet.js'}); </script> diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/percentage-size-vrl-htb.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/percentage-size-vrl-htb.https.html index 70640ef0b29..2d3d496fa5f 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/percentage-size-vrl-htb.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/percentage-size-vrl-htb.https.html @@ -54,5 +54,5 @@ <!-- A replaced percentage min-height should resolve itself against the percentageInlineSize. --> <img class="child" style="height: 5px; min-height: 50%;" /> <script> -importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: '../support/layout-child-sizes-worklet.js'}); +importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/layout-child-sizes-worklet.js'}); </script> diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/percentage-size-vrl-vrl.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/percentage-size-vrl-vrl.https.html index 07132579621..577b98ad983 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/percentage-size-vrl-vrl.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/percentage-size-vrl-vrl.https.html @@ -54,5 +54,5 @@ <!-- A replaced percentage min-width should resolve itself against the percentageBlockSize. --> <img class="child" style="width: 5px; min-width: 50%;" /> <script> -importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: '../support/layout-child-sizes-worklet.js'}); +importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/layout-child-sizes-worklet.js'}); </script> diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/support/layout-child-sizes-worklet.js b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/support/layout-child-sizes-worklet.js index 5956c9a70c2..5956c9a70c2 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/support/layout-child-sizes-worklet.js +++ b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/support/layout-child-sizes-worklet.js diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-absolute-left-right-vrl.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-absolute-left-right-vrl.https.html index 4a376d7ae24..8e177dbf336 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-absolute-left-right-vrl.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-absolute-left-right-vrl.https.html @@ -1,7 +1,7 @@ <!DOCTYPE html> <html class=reftest-wait> <link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize"> -<link rel="match" href="green-square-ref.html"> +<link rel="match" href="../green-square-ref.html"> <meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." /> <style> body { diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-absolute-none.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-absolute-none.https.html index 7a695e0d8dc..7b10f11d7dd 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-absolute-none.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-absolute-none.https.html @@ -1,7 +1,7 @@ <!DOCTYPE html> <html class=reftest-wait> <link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize"> -<link rel="match" href="green-square-ref.html"> +<link rel="match" href="../green-square-ref.html"> <meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." /> <style> body { diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-absolute-top-bottom.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-absolute-top-bottom.https.html index 7cbee8295ce..73c29000cfd 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-absolute-top-bottom.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-absolute-top-bottom.https.html @@ -1,7 +1,7 @@ <!DOCTYPE html> <html class=reftest-wait> <link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize"> -<link rel="match" href="green-square-ref.html"> +<link rel="match" href="../green-square-ref.html"> <meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." /> <style> body { diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-block-none-vrl.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-block-none-vrl.https.html index 6f36abe73bc..704b66d64aa 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-block-none-vrl.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-block-none-vrl.https.html @@ -1,7 +1,7 @@ <!DOCTYPE html> <html class=reftest-wait> <link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize"> -<link rel="match" href="green-square-ref.html"> +<link rel="match" href="../green-square-ref.html"> <meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." /> <style> .test { diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-block-none.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-block-none.https.html index 4fd6441c0aa..6c023f51628 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-block-none.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-block-none.https.html @@ -1,7 +1,7 @@ <!DOCTYPE html> <html class=reftest-wait> <link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize"> -<link rel="match" href="green-square-ref.html"> +<link rel="match" href="../green-square-ref.html"> <meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." /> <style> .test { diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-fixed-max.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-fixed-max.https.html index accdd7c8b00..8af6afde269 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-fixed-max.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-fixed-max.https.html @@ -1,7 +1,7 @@ <!DOCTYPE html> <html class=reftest-wait> <link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize"> -<link rel="match" href="green-square-ref.html"> +<link rel="match" href="../green-square-ref.html"> <meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." /> <style> .test { diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-fixed-min.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-fixed-min.https.html index 845683dc6d5..4d76ed97850 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-fixed-min.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-fixed-min.https.html @@ -1,7 +1,7 @@ <!DOCTYPE html> <html class=reftest-wait> <link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize"> -<link rel="match" href="green-square-ref.html"> +<link rel="match" href="../green-square-ref.html"> <meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." /> <style> .test { diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-fixed-vrl.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-fixed-vrl.https.html index a319129a27d..bbc0a2fde87 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-fixed-vrl.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-fixed-vrl.https.html @@ -1,7 +1,7 @@ <!DOCTYPE html> <html class=reftest-wait> <link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize"> -<link rel="match" href="green-square-ref.html"> +<link rel="match" href="../green-square-ref.html"> <meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." /> <style> .test { diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-fixed.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-fixed.https.html index 646a514d18c..45376ac295c 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-fixed.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-fixed.https.html @@ -1,7 +1,7 @@ <!DOCTYPE html> <html class=reftest-wait> <link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize"> -<link rel="match" href="green-square-ref.html"> +<link rel="match" href="../green-square-ref.html"> <meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." /> <style> .test { diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-basis-vrl.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-flex-basis-vrl.https.html index bb12d15dbc7..25fc685a67b 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-basis-vrl.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-flex-basis-vrl.https.html @@ -1,7 +1,7 @@ <!DOCTYPE html> <html class=reftest-wait> <link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize"> -<link rel="match" href="green-square-ref.html"> +<link rel="match" href="../green-square-ref.html"> <meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." /> <style> body { diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-column-basis.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-flex-column-basis.https.html index 8435b021c97..8df99ee835b 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-column-basis.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-flex-column-basis.https.html @@ -1,7 +1,7 @@ <!DOCTYPE html> <html class=reftest-wait> <link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize"> -<link rel="match" href="green-square-ref.html"> +<link rel="match" href="../green-square-ref.html"> <meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." /> <style> body { diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-column-grow.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-flex-column-grow.https.html index 68a3c197643..da53fa86ad8 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-column-grow.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-flex-column-grow.https.html @@ -1,7 +1,7 @@ <!DOCTYPE html> <html class=reftest-wait> <link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize"> -<link rel="match" href="green-square-ref.html"> +<link rel="match" href="../green-square-ref.html"> <meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." /> <style> body { diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-column-none.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-flex-column-none.https.html index a0c416f5338..1d4249e9252 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-column-none.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-flex-column-none.https.html @@ -1,7 +1,7 @@ <!DOCTYPE html> <html class=reftest-wait> <link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize"> -<link rel="match" href="green-square-ref.html"> +<link rel="match" href="../green-square-ref.html"> <meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." /> <style> body { diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-column-stretch-vrl.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-flex-column-stretch-vrl.https.html index be448da4ec1..c71e202b0ce 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-column-stretch-vrl.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-flex-column-stretch-vrl.https.html @@ -1,7 +1,7 @@ <!DOCTYPE html> <html class=reftest-wait> <link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize"> -<link rel="match" href="green-square-ref.html"> +<link rel="match" href="../green-square-ref.html"> <meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." /> <style> body { diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-grow-vrl.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-flex-grow-vrl.https.html index d79445e16e8..f77b84910a5 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-grow-vrl.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-flex-grow-vrl.https.html @@ -1,7 +1,7 @@ <!DOCTYPE html> <html class=reftest-wait> <link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize"> -<link rel="match" href="green-square-ref.html"> +<link rel="match" href="../green-square-ref.html"> <meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." /> <style> body { diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-none.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-flex-none.https.html index f34a0d88a95..9ef11daccf7 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-none.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-flex-none.https.html @@ -1,7 +1,7 @@ <!DOCTYPE html> <html class=reftest-wait> <link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize"> -<link rel="match" href="green-square-ref.html"> +<link rel="match" href="../green-square-ref.html"> <meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." /> <style> body { diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-percentage-indefinite.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-flex-percentage-indefinite.https.html index ee8e27b38cb..111120673e7 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-percentage-indefinite.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-flex-percentage-indefinite.https.html @@ -1,7 +1,7 @@ <!DOCTYPE html> <html class=reftest-wait> <link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize"> -<link rel="match" href="green-square-ref.html"> +<link rel="match" href="../green-square-ref.html"> <meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." /> <style> body { diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-stretch-max.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-flex-stretch-max.https.html index bbf358e1129..c72ed3e04d8 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-stretch-max.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-flex-stretch-max.https.html @@ -1,7 +1,7 @@ <!DOCTYPE html> <html class=reftest-wait> <link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize"> -<link rel="match" href="green-square-ref.html"> +<link rel="match" href="../green-square-ref.html"> <meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." /> <style> body { diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-stretch.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-flex-stretch.https.html index 1b1e43879f1..cfaf38295f8 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-stretch.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-flex-stretch.https.html @@ -1,7 +1,7 @@ <!DOCTYPE html> <html class=reftest-wait> <link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize"> -<link rel="match" href="green-square-ref.html"> +<link rel="match" href="../green-square-ref.html"> <meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." /> <style> body { diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-grid-none.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-grid-none.https.html index 27b68a09611..5c7381523e5 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-grid-none.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-grid-none.https.html @@ -1,7 +1,7 @@ <!DOCTYPE html> <html class=reftest-wait> <link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize"> -<link rel="match" href="green-square-ref.html"> +<link rel="match" href="../green-square-ref.html"> <meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." /> <style> body { diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-grid-stretch-max.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-grid-stretch-max.https.html index 108c90db4f4..c738ad546d2 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-grid-stretch-max.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-grid-stretch-max.https.html @@ -1,7 +1,7 @@ <!DOCTYPE html> <html class=reftest-wait> <link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize"> -<link rel="match" href="green-square-ref.html"> +<link rel="match" href="../green-square-ref.html"> <meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." /> <style> body { diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-grid-stretch.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-grid-stretch.https.html index f93ad5be363..2e83f42c866 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-grid-stretch.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-grid-stretch.https.html @@ -1,7 +1,7 @@ <!DOCTYPE html> <html class=reftest-wait> <link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize"> -<link rel="match" href="green-square-ref.html"> +<link rel="match" href="../green-square-ref.html"> <meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." /> <style> body { diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-grid-vrl.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-grid-vrl.https.html index db82767f782..2c004cd9169 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-grid-vrl.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-grid-vrl.https.html @@ -1,7 +1,7 @@ <!DOCTYPE html> <html class=reftest-wait> <link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize"> -<link rel="match" href="green-square-ref.html"> +<link rel="match" href="../green-square-ref.html"> <meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." /> <style> body { diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-percentage-indefinite.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-percentage-indefinite.https.html index 94a20387442..ab02cb4b03f 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-percentage-indefinite.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-percentage-indefinite.https.html @@ -1,7 +1,7 @@ <!DOCTYPE html> <html class=reftest-wait> <link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize"> -<link rel="match" href="green-square-ref.html"> +<link rel="match" href="../green-square-ref.html"> <meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." /> <style> .test { diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-percentage-quirks-mode.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-percentage-quirks-mode.https.html index 9bd9044991c..285ce941b2c 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-percentage-quirks-mode.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-percentage-quirks-mode.https.html @@ -1,6 +1,6 @@ <html class=reftest-wait> <link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize"> -<link rel="match" href="green-square-ref.html"> +<link rel="match" href="../green-square-ref.html"> <meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." /> <style> body { diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-percentage-vrl.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-percentage-vrl.https.html index 8c7a8c5d3ea..870bc526f87 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-percentage-vrl.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-percentage-vrl.https.html @@ -1,7 +1,7 @@ <!DOCTYPE html> <html class=reftest-wait> <link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize"> -<link rel="match" href="green-square-ref.html"> +<link rel="match" href="../green-square-ref.html"> <meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." /> <style> body { diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-percentage.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-percentage.https.html index 693553e14e2..335556550d2 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-percentage.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-percentage.https.html @@ -1,7 +1,7 @@ <!DOCTYPE html> <html class=reftest-wait> <link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize"> -<link rel="match" href="green-square-ref.html"> +<link rel="match" href="../green-square-ref.html"> <meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." /> <style> body { diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-quirky-body.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-quirky-body.https.html index 7601e8b6bb4..150426d45c7 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-quirky-body.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-quirky-body.https.html @@ -1,7 +1,7 @@ <!DOCTYPE html> <html class=reftest-wait> <link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize"> -<link rel="match" href="green-square-ref.html"> +<link rel="match" href="../green-square-ref.html"> <meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." /> <style> iframe { border: none; width: 200px; height: 200px; } diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-inline-size-absolute-left-right.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-inline-size-absolute-left-right.https.html index 6b3662a16d4..3b81c4d13d4 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-inline-size-absolute-left-right.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-inline-size-absolute-left-right.https.html @@ -1,7 +1,7 @@ <!DOCTYPE html> <html class=reftest-wait> <link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedinlinesize"> -<link rel="match" href="constraints-fixed-inline-size-ref.html"> +<link rel="match" href="fixed-inline-size-ref.html"> <meta name="assert" content="This test checks that LayoutConstraints#fixedInlineSize is passed into the layout function correctly." /> <style> body { diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-inline-size-absolute-top-bottom-vrl.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-inline-size-absolute-top-bottom-vrl.https.html index 632a5dddfac..ec94e59a17d 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-inline-size-absolute-top-bottom-vrl.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-inline-size-absolute-top-bottom-vrl.https.html @@ -1,7 +1,7 @@ <!DOCTYPE html> <html class=reftest-wait> <link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedinlinesize"> -<link rel="match" href="constraints-fixed-inline-size-ref.html"> +<link rel="match" href="fixed-inline-size-ref.html"> <meta name="assert" content="This test checks that LayoutConstraints#fixedInlineSize is passed into the layout function correctly." /> <style> body { diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-inline-size-block-auto-avoid-floats-vlr.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-inline-size-block-auto-avoid-floats-vlr.https.html index a8f4dd31ac9..2758462bd33 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-inline-size-block-auto-avoid-floats-vlr.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-inline-size-block-auto-avoid-floats-vlr.https.html @@ -1,7 +1,7 @@ <!DOCTYPE html> <html class=reftest-wait> <link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedinlinesize"> -<link rel="match" href="constraints-fixed-inline-size-ref.html"> +<link rel="match" href="fixed-inline-size-ref.html"> <meta name="assert" content="This test checks that LayoutConstraints#fixedInlineSize is passed into the layout function correctly." /> <style> body { diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-inline-size-block-auto-avoid-floats.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-inline-size-block-auto-avoid-floats.https.html index 2eb6197c077..862b9ad3b28 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-inline-size-block-auto-avoid-floats.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-inline-size-block-auto-avoid-floats.https.html @@ -1,7 +1,7 @@ <!DOCTYPE html> <html class=reftest-wait> <link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedinlinesize"> -<link rel="match" href="constraints-fixed-inline-size-ref.html"> +<link rel="match" href="fixed-inline-size-ref.html"> <meta name="assert" content="This test checks that LayoutConstraints#fixedInlineSize is passed into the layout function correctly." /> <style> body { diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-inline-size-block-auto-vlr.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-inline-size-block-auto-vlr.https.html index 751ea5ef759..0c15fd12eed 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-inline-size-block-auto-vlr.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-inline-size-block-auto-vlr.https.html @@ -1,7 +1,7 @@ <!DOCTYPE html> <html class=reftest-wait> <link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedinlinesize"> -<link rel="match" href="constraints-fixed-inline-size-ref.html"> +<link rel="match" href="fixed-inline-size-ref.html"> <meta name="assert" content="This test checks that LayoutConstraints#fixedInlineSize is passed into the layout function correctly." /> <style> body { diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-inline-size-block-auto.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-inline-size-block-auto.https.html index 1458a8bbb79..c513c3d8441 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-inline-size-block-auto.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-inline-size-block-auto.https.html @@ -1,7 +1,7 @@ <!DOCTYPE html> <html class=reftest-wait> <link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedinlinesize"> -<link rel="match" href="constraints-fixed-inline-size-ref.html"> +<link rel="match" href="fixed-inline-size-ref.html"> <meta name="assert" content="This test checks that LayoutConstraints#fixedInlineSize is passed into the layout function correctly." /> <style> body { diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-inline-size-fixed-vrl.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-inline-size-fixed-vrl.https.html index 39ea818216d..93b0c110d97 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-inline-size-fixed-vrl.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-inline-size-fixed-vrl.https.html @@ -1,7 +1,7 @@ <!DOCTYPE html> <html class=reftest-wait> <link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedinlinesize"> -<link rel="match" href="constraints-fixed-inline-size-ref.html"> +<link rel="match" href="fixed-inline-size-ref.html"> <meta name="assert" content="This test checks that LayoutConstraints#fixedInlineSize is passed into the layout function correctly." /> <style> .test { diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-inline-size-fixed.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-inline-size-fixed.https.html index 6434d339196..d8e8062f83f 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-inline-size-fixed.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-inline-size-fixed.https.html @@ -1,7 +1,7 @@ <!DOCTYPE html> <html class=reftest-wait> <link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedinlinesize"> -<link rel="match" href="constraints-fixed-inline-size-ref.html"> +<link rel="match" href="fixed-inline-size-ref.html"> <meta name="assert" content="This test checks that LayoutConstraints#fixedInlineSize is passed into the layout function correctly." /> <style> .test { diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-inline-size-flex-grow-column-vrl.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-inline-size-flex-grow-column-vrl.https.html index 263d45e5b0b..b9159965a07 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-inline-size-flex-grow-column-vrl.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-inline-size-flex-grow-column-vrl.https.html @@ -1,7 +1,7 @@ <!DOCTYPE html> <html class=reftest-wait> <link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedinlinesize"> -<link rel="match" href="constraints-fixed-inline-size-ref.html"> +<link rel="match" href="fixed-inline-size-ref.html"> <meta name="assert" content="This test checks that LayoutConstraints#fixedInlineSize is passed into the layout function correctly." /> <style> body { diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-inline-size-flex-grow.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-inline-size-flex-grow.https.html index d2589e62e78..c2532c1460b 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-inline-size-flex-grow.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-inline-size-flex-grow.https.html @@ -1,7 +1,7 @@ <!DOCTYPE html> <html class=reftest-wait> <link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedinlinesize"> -<link rel="match" href="constraints-fixed-inline-size-ref.html"> +<link rel="match" href="fixed-inline-size-ref.html"> <meta name="assert" content="This test checks that LayoutConstraints#fixedInlineSize is passed into the layout function correctly." /> <style> body { diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-inline-size-grid.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-inline-size-grid.https.html index 94eca6b5967..45f9f491e7b 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-inline-size-grid.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-inline-size-grid.https.html @@ -1,7 +1,7 @@ <!DOCTYPE html> <html class=reftest-wait> <link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedinlinesize"> -<link rel="match" href="constraints-fixed-inline-size-ref.html"> +<link rel="match" href="fixed-inline-size-ref.html"> <meta name="assert" content="This test checks that LayoutConstraints#fixedInlineSize is passed into the layout function correctly." /> <style> body { diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-inline-size-percentage-vlr.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-inline-size-percentage-vlr.https.html index 0efabcb31ab..2e350437772 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-inline-size-percentage-vlr.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-inline-size-percentage-vlr.https.html @@ -1,7 +1,7 @@ <!DOCTYPE html> <html class=reftest-wait> <link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedinlinesize"> -<link rel="match" href="constraints-fixed-inline-size-ref.html"> +<link rel="match" href="fixed-inline-size-ref.html"> <meta name="assert" content="This test checks that LayoutConstraints#fixedInlineSize is passed into the layout function correctly." /> <style> body { diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-inline-size-percentage.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-inline-size-percentage.https.html index 4b5a5675ac0..c9041cf0eac 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-inline-size-percentage.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-inline-size-percentage.https.html @@ -1,7 +1,7 @@ <!DOCTYPE html> <html class=reftest-wait> <link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedinlinesize"> -<link rel="match" href="constraints-fixed-inline-size-ref.html"> +<link rel="match" href="fixed-inline-size-ref.html"> <meta name="assert" content="This test checks that LayoutConstraints#fixedInlineSize is passed into the layout function correctly." /> <style> body { diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-inline-size-ref.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-inline-size-ref.html index e5727c0e2d2..e5727c0e2d2 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-inline-size-ref.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-inline-size-ref.html diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/support/constraints-fixed-block-size-quirky-body-iframe.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/support/constraints-fixed-block-size-quirky-body-iframe.html index da770e6caf1..da770e6caf1 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/support/constraints-fixed-block-size-quirky-body-iframe.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/support/constraints-fixed-block-size-quirky-body-iframe.html diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/support/constraints-fixed-block-size.js b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/support/constraints-fixed-block-size.js index 25d73ef6156..25d73ef6156 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/support/constraints-fixed-block-size.js +++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/support/constraints-fixed-block-size.js diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/support/constraints-fixed-inline-size.js b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/support/constraints-fixed-inline-size.js index 3636f366547..3636f366547 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/support/constraints-fixed-inline-size.js +++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/support/constraints-fixed-inline-size.js diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/crash-multicol.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/crash-multicol.https.html index dbcbd183def..5f175100e55 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/crash-multicol.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/crash-multicol.https.html @@ -14,8 +14,15 @@ <div id="test"></div> +<script id="code" type="text/worklet"> +registerLayout('test', class { + async intrinsicSizes() {} + async layout() {} +}); +</script> + <script> promise_test(async function() { - await importWorklet(CSS.layoutWorklet, {url: 'support/layout-position-child-worklet.js'}); + await importWorklet(CSS.layoutWorklet, document.getElementById('code').textContent); }); </script> diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/fallback-layout-return.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/fallback-layout/bad-return.https.html index 4c90ae7d336..4c90ae7d336 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/fallback-layout-return.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/fallback-layout/bad-return.https.html diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/fallback-constructor-error.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/fallback-layout/constructor-error.https.html index 3f711af2e7a..3f711af2e7a 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/fallback-constructor-error.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/fallback-layout/constructor-error.https.html diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/fallback-layout-error.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/fallback-layout/error.https.html index 4c44f2168b2..4c44f2168b2 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/fallback-layout-error.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/fallback-layout/error.https.html diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/fallback-ref.html b/tests/wpt/web-platform-tests/css/css-layout-api/fallback-layout/fallback-ref.html index 63bb91e90ca..63bb91e90ca 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/fallback-ref.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/fallback-layout/fallback-ref.html diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/fallback-layout-invalid-child.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/fallback-layout/invalid-child.https.html index 567c3f7f745..567c3f7f745 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/fallback-layout-invalid-child.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/fallback-layout/invalid-child.https.html diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/fallback-layout-invalid-fragment.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/fallback-layout/invalid-fragment.https.html index 2e33e8761d3..2e33e8761d3 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/fallback-layout-invalid-fragment.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/fallback-layout/invalid-fragment.https.html diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/fallback-layout-no-promise.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/fallback-layout/no-promise.https.html index e7b22a4c5cd..e7b22a4c5cd 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/fallback-layout-no-promise.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/fallback-layout/no-promise.https.html diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/fallback-layout-unresolved-promise.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/fallback-layout/unresolved-promise.https.html index 369c56e4f94..369c56e4f94 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/fallback-layout-unresolved-promise.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/fallback-layout/unresolved-promise.https.html diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-absolute.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/layout-child/absolute.https.html index 26513f4fac7..7c47e38e7ad 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-absolute.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/layout-child/absolute.https.html @@ -1,7 +1,7 @@ <!DOCTYPE html> <html class=reftest-wait> <link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#layout-children"> -<link rel="match" href="green-square-ref.html"> +<link rel="match" href="../green-square-ref.html"> <meta name="assert" content="This test checks that absolute children don't appear in the children array." /> <style> diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-before-after.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/layout-child/before-after.https.html index 4923f26cf9d..373392ddfd1 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-before-after.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/layout-child/before-after.https.html @@ -1,7 +1,7 @@ <!DOCTYPE html> <html class=reftest-wait> <link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#layout-children"> -<link rel="match" href="green-square-ref.html"> +<link rel="match" href="../green-square-ref.html"> <meta name="assert" content="This test checks that boxes created by ::before/::after appear as children." /> <style> diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-fixed.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/layout-child/fixed.https.html index 264fc638d52..95d8852b7da 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-fixed.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/layout-child/fixed.https.html @@ -1,7 +1,7 @@ <!DOCTYPE html> <html class=reftest-wait> <link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#layout-children"> -<link rel="match" href="green-square-ref.html"> +<link rel="match" href="../green-square-ref.html"> <meta name="assert" content="This test checks that fixed children don't appear in the children array." /> <style> diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-float.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/layout-child/float.https.html index 6e40893e3b3..e8db261774b 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-float.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/layout-child/float.https.html @@ -1,7 +1,7 @@ <!DOCTYPE html> <html class=reftest-wait> <link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#layout-children"> -<link rel="match" href="green-square-ref.html"> +<link rel="match" href="../green-square-ref.html"> <meta name="assert" content="This test checks that float children appear in the children array." /> <style> diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-inflow.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/layout-child/inflow.https.html index 11f2b88aa1f..b43f1a7facd 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-inflow.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/layout-child/inflow.https.html @@ -1,7 +1,7 @@ <!DOCTYPE html> <html class=reftest-wait> <link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#layout-children"> -<link rel="match" href="green-square-ref.html"> +<link rel="match" href="../green-square-ref.html"> <meta name="assert" content="This test checks that regular inflow children appear as children." /> <style> diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-inlines-dynamic.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/layout-child/inlines-dynamic.https.html index 50052087f44..50052087f44 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-inlines-dynamic.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/layout-child/inlines-dynamic.https.html diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-inlines.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/layout-child/inlines.https.html index 811af3f40b2..dac7e0b26bc 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-inlines.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/layout-child/inlines.https.html @@ -1,7 +1,7 @@ <!DOCTYPE html> <html class=reftest-wait> <link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#layout-children"> -<link rel="match" href="green-square-ref.html"> +<link rel="match" href="../green-square-ref.html"> <meta name="assert" content="This test checks that inline children are correctly blockified or wrapped in anonymous boxes." /> <style> diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/support/layout-child-worklet.js b/tests/wpt/web-platform-tests/css/css-layout-api/layout-child/support/layout-child-worklet.js index 70d1b7e4572..70d1b7e4572 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/support/layout-child-worklet.js +++ b/tests/wpt/web-platform-tests/css/css-layout-api/layout-child/support/layout-child-worklet.js diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-text.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/layout-child/text.https.html index 40513f0acf3..090034fc186 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-text.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/layout-child/text.https.html @@ -1,7 +1,7 @@ <!DOCTYPE html> <html class=reftest-wait> <link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#layout-children"> -<link rel="match" href="green-square-ref.html"> +<link rel="match" href="../green-square-ref.html"> <meta name="assert" content="This test checks that text children are correctly blockified." /> <style> diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/position-fragment-htb-ltr.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/position-fragment/htb-ltr.https.html index b09cb7067d5..f60109ca574 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/position-fragment-htb-ltr.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/position-fragment/htb-ltr.https.html @@ -1,7 +1,7 @@ <!DOCTYPE html> <html class=reftest-wait> <link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#layoutfragment"> -<link rel="match" href="position-fragment-ref.html"> +<link rel="match" href="ref.html"> <meta name="assert" content="This test checks that child fragments get positioned correctly." /> <style> .test { diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/position-fragment-htb-rtl.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/position-fragment/htb-rtl.https.html index 2d65b8cb988..980a3cdc253 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/position-fragment-htb-rtl.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/position-fragment/htb-rtl.https.html @@ -1,7 +1,7 @@ <!DOCTYPE html> <html class=reftest-wait> <link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#layoutfragment"> -<link rel="match" href="position-fragment-ref.html"> +<link rel="match" href="ref.html"> <meta name="assert" content="This test checks that child fragments get positioned correctly." /> <style> .test { diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/position-fragment-ref.html b/tests/wpt/web-platform-tests/css/css-layout-api/position-fragment/ref.html index 4ce0a6e39de..4ce0a6e39de 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/position-fragment-ref.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/position-fragment/ref.html diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/support/layout-position-child-worklet.js b/tests/wpt/web-platform-tests/css/css-layout-api/position-fragment/support/layout-position-child-worklet.js index 7d5c494952d..7d5c494952d 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/support/layout-position-child-worklet.js +++ b/tests/wpt/web-platform-tests/css/css-layout-api/position-fragment/support/layout-position-child-worklet.js diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/position-fragment-vlr-ltr.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/position-fragment/vlr-ltr.https.html index 62a5980307d..d75a4af639f 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/position-fragment-vlr-ltr.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/position-fragment/vlr-ltr.https.html @@ -1,7 +1,7 @@ <!DOCTYPE html> <html class=reftest-wait> <link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#layoutfragment"> -<link rel="match" href="position-fragment-ref.html"> +<link rel="match" href="ref.html"> <meta name="assert" content="This test checks that child fragments get positioned correctly." /> <style> .test { diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/position-fragment-vlr-rtl.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/position-fragment/vlr-rtl.https.html index a9983b1eb20..a8ef6c699ca 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/position-fragment-vlr-rtl.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/position-fragment/vlr-rtl.https.html @@ -1,7 +1,7 @@ <!DOCTYPE html> <html class=reftest-wait> <link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#layoutfragment"> -<link rel="match" href="position-fragment-ref.html"> +<link rel="match" href="ref.html"> <meta name="assert" content="This test checks that child fragments get positioned correctly." /> <style> .test { diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/position-fragment-vrl-ltr.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/position-fragment/vrl-ltr.https.html index 090128562f8..21c9ce54d66 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/position-fragment-vrl-ltr.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/position-fragment/vrl-ltr.https.html @@ -1,7 +1,7 @@ <!DOCTYPE html> <html class=reftest-wait> <link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#layoutfragment"> -<link rel="match" href="position-fragment-ref.html"> +<link rel="match" href="ref.html"> <meta name="assert" content="This test checks that child fragments get positioned correctly." /> <style> .test { diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/position-fragment-vrl-rtl.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/position-fragment/vrl-rtl.https.html index e16f26b1d4f..777e725da99 100644 --- a/tests/wpt/web-platform-tests/css/css-layout-api/position-fragment-vrl-rtl.https.html +++ b/tests/wpt/web-platform-tests/css/css-layout-api/position-fragment/vrl-rtl.https.html @@ -1,7 +1,7 @@ <!DOCTYPE html> <html class=reftest-wait> <link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#layoutfragment"> -<link rel="match" href="position-fragment-ref.html"> +<link rel="match" href="ref.html"> <meta name="assert" content="This test checks that child fragments get positioned correctly." /> <style> .test { diff --git a/tests/wpt/web-platform-tests/css/css-lists/nested-list-with-list-style-type-none.html b/tests/wpt/web-platform-tests/css/css-lists/nested-list-with-list-style-type-none.html new file mode 100644 index 00000000000..e103113c3f4 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-lists/nested-list-with-list-style-type-none.html @@ -0,0 +1,24 @@ +<meta charset="utf-8"> +<title>CSS Lists: test the margin collapse of marker</title> +<link rel=help href="https://www.w3.org/TR/CSS22/generate.html#lists"> +<link rel="help" href="http://crbug.com/985298"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> + +<style> +li { + list-style-type:none; + list-style-image:url(images/white.gif); +} +</style> +<body> + <p>PASS if no crash or DCHECK failure in quirks mode.</p> + <ul> + <li> + <ul></ul> + </li> + </ul> + <script type="text/javascript"> + done(); + </script> +</body> diff --git a/tests/wpt/web-platform-tests/css/css-paint-api/color-custom-property-animation-ref.html b/tests/wpt/web-platform-tests/css/css-paint-api/color-custom-property-animation-ref.html new file mode 100644 index 00000000000..3439cd93645 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-paint-api/color-custom-property-animation-ref.html @@ -0,0 +1,12 @@ +<!DOCTYPE html> +<html> +<body> +<canvas id ="canvas" width="100" height="100"></canvas> +<script> +var canvas = document.getElementById('canvas'); +var context = canvas.getContext("2d"); +context.fillStyle = 'rgb(127, 127, 0)'; +context.fillRect(0, 0, 100, 100); +</script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-paint-api/color-custom-property-animation.https.html b/tests/wpt/web-platform-tests/css/css-paint-api/color-custom-property-animation.https.html new file mode 100644 index 00000000000..5cbfee89c45 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-paint-api/color-custom-property-animation.https.html @@ -0,0 +1,57 @@ +<!DOCTYPE html> +<html class="reftest-wait"> +<link rel="help" href="https://drafts.css-houdini.org/css-paint-api/"> +<link rel="match" href="color-custom-property-animation-ref.html"> +<style> +.container { + width: 100px; + height: 100px; + animation: expand 5s; + will-change: transform; +} +@keyframes expand { + 0% { --foo: rgb(255, 0, 0); } + 0.01% { --foo: rgb(127, 127, 0); } + 99% { --foo: rgb(127, 127, 0); } + 100% { --foo: rgb(0, 255, 0); } +} + +#canvas-geometry { + background-image: paint(geometry); +} +</style> +<script src="/common/reftest-wait.js"></script> +<script src="/common/worklet-reftest.js"></script> +<body> +<div id="canvas-geometry" class="container"></div> + +<script id="code" type="text/worklet"> +registerPaint('geometry', class { + static get inputProperties() { return ['--foo']; } + paint(ctx, geom, properties) { + ctx.fillStyle = properties.get('--foo').toString(); + ctx.fillRect(0, 0, 100, 100); + } +}); +</script> + +<script> +CSS.registerProperty({ + name: '--foo', + syntax: '<color>', + initialValue: 'rgb(0, 0, 0)', + inherits: false +}); +</script> + +<script> +// The test is designed to make sure that when the custom property animation is +// running on the compositor thread, we are getting the right value. +// The "importWorkletAndTerminateTestAfterAsyncPaint" has the logic to rAF +// two frames before taking a screenshot. So the animation is designed to +// be stable after two frames. That is, the 0.01% of 5s is much less than +// two frames, and thus after two frames, the value of --foo should be stable. +importWorkletAndTerminateTestAfterAsyncPaint(CSS.paintWorklet, document.getElementById('code').textContent); +</script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-position/animations/bottom-interpolation.html b/tests/wpt/web-platform-tests/css/css-position/animations/bottom-interpolation.html new file mode 100644 index 00000000000..272e79fc05b --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-position/animations/bottom-interpolation.html @@ -0,0 +1,78 @@ +<!DOCTYPE html> +<meta charset="UTF-8"> +<link rel="help" href="https://drafts.csswg.org/css-position-3/#propdef-bottom"> +<meta name="test" content="bottom supports animation as a length or percentage"> + +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/interpolation-testcommon.js"></script> + +<style> +.parent { + bottom: 30px; +} +.target { + position: relative; + width: 100px; + height: 100px; + background-color: black; + display: inline-block; + margin: 20px 5px 20px 0px; + bottom: 10px; +} +.expected { + background-color: green; +} +</style> + +<body></body> + +<script> +test_interpolation({ + property: 'bottom', + from: neutralKeyframe, + to: '20px', +}, [ + {at: -0.3, expect: '7px'}, + {at: 0, expect: '10px'}, + {at: 0.5, expect: '15px'}, + {at: 1, expect: '20px'}, + {at: 1.5, expect: '25px'}, +]); + +test_no_interpolation({ + property: 'bottom', + from: 'initial', + to: '20px', +}); + +test_interpolation({ + property: 'bottom', + from: 'inherit', + to: '20px', +}, [ + {at: -0.3, expect: '33px'}, + {at: 0, expect: '30px'}, + {at: 0.5, expect: '25px'}, + {at: 1, expect: '20px'}, + {at: 1.5, expect: '15px'}, +]); + +test_no_interpolation({ + property: 'bottom', + from: 'unset', + to: '20px', +}); + +test_interpolation({ + property: 'bottom', + from: '-10px', + to: '10px' +}, [ + {at: -0.3, expect: '-16px'}, + {at: 0, expect: '-10px'}, + {at: 0.5, expect: '0px'}, + {at: 1, expect: '10px'}, + {at: 1.5, expect: '20px'} +]); +</script> diff --git a/tests/wpt/web-platform-tests/css/css-position/animations/left-interpolation.html b/tests/wpt/web-platform-tests/css/css-position/animations/left-interpolation.html new file mode 100644 index 00000000000..33ed0b4ec3b --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-position/animations/left-interpolation.html @@ -0,0 +1,76 @@ +<!DOCTYPE html> +<meta charset="UTF-8"> +<link rel="help" href="https://drafts.csswg.org/css-position-3/#propdef-left"> +<meta name="test" content="left supports animation as a length or percentage"> + +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/interpolation-testcommon.js"></script> + +<style> +.parent { + position: relative; + left: 30px; +} +.target { + position: relative; + width: 10px; + height: 10px; + background-color: black; + left: 10px; +} +.expected { + background-color: green; +} +</style> +<body></body> + +<script> +test_interpolation({ + property: 'left', + from: neutralKeyframe, + to: '20px', +}, [ + {at: -0.3, expect: '7px'}, + {at: 0, expect: '10px'}, + {at: 0.5, expect: '15px'}, + {at: 1, expect: '20px'}, + {at: 1.5, expect: '25px'}, +]); + +test_no_interpolation({ + property: 'left', + from: 'initial', + to: '20px', +}); + +test_interpolation({ + property: 'left', + from: 'inherit', + to: '20px', +}, [ + {at: -0.3, expect: '33px'}, + {at: 0, expect: '30px'}, + {at: 0.5, expect: '25px'}, + {at: 1, expect: '20px'}, + {at: 1.5, expect: '15px'}, +]); + +test_no_interpolation({ + property: 'left', + from: 'unset', + to: '20px', +}); + +test_interpolation({ + property: 'left', + from: '-10px', + to: '10px' +}, [ + {at: -0.3, expect: '-16px'}, + {at: 0, expect: '-10px'}, + {at: 0.5, expect: '0px'}, + {at: 1, expect: '10px'}, + {at: 1.5, expect: '20px'} +]); +</script> diff --git a/tests/wpt/web-platform-tests/css/css-position/animations/right-interpolation.html b/tests/wpt/web-platform-tests/css/css-position/animations/right-interpolation.html new file mode 100644 index 00000000000..284d435e56e --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-position/animations/right-interpolation.html @@ -0,0 +1,77 @@ +<!DOCTYPE html> +<meta charset="UTF-8"> +<link rel="help" href="https://drafts.csswg.org/css-position-3/#propdef-right"> +<meta name="test" content="right supports animation as a length or percentage"> + +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/interpolation-testcommon.js"></script> + +<style> +.parent { + margin-left: 40px; + right: 30px; +} +.target { + position: relative; + width: 10px; + height: 10px; + background-color: black; + right: 10px; +} +.expected { + background-color: green; +} +</style> + +<body></body> + +<script> +test_interpolation({ + property: 'right', + from: neutralKeyframe, + to: '20px', +}, [ + {at: -0.3, expect: '7px'}, + {at: 0, expect: '10px'}, + {at: 0.5, expect: '15px'}, + {at: 1, expect: '20px'}, + {at: 1.5, expect: '25px'}, +]); + +test_no_interpolation({ + property: 'right', + from: 'initial', + to: '20px', +}); + +test_interpolation({ + property: 'right', + from: 'inherit', + to: '20px', +}, [ + {at: -0.3, expect: '33px'}, + {at: 0, expect: '30px'}, + {at: 0.5, expect: '25px'}, + {at: 1, expect: '20px'}, + {at: 1.5, expect: '15px'}, +]); + +test_no_interpolation({ + property: 'right', + from: 'unset', + to: '20px', +}); + +test_interpolation({ + property: 'right', + from: '-10px', + to: '10px' +}, [ + {at: -0.3, expect: '-16px'}, + {at: 0, expect: '-10px'}, + {at: 0.5, expect: '0px'}, + {at: 1, expect: '10px'}, + {at: 1.5, expect: '20px'} +]); +</script> diff --git a/tests/wpt/web-platform-tests/css/css-position/animations/top-interpolation.html b/tests/wpt/web-platform-tests/css/css-position/animations/top-interpolation.html new file mode 100644 index 00000000000..f5af530c387 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-position/animations/top-interpolation.html @@ -0,0 +1,79 @@ +<!DOCTYPE html> +<meta charset="UTF-8"> +<link rel="help" href="https://drafts.csswg.org/css-position-3/#propdef-top"> +<meta name="assert" content="top supports animation as a length or percentage"> + +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/interpolation-testcommon.js"></script> + +<style> +.parent { + top: 30px; + margin-bottom: 40px; +} +.target { + position: relative; + width: 10px; + height: 10px; + background-color: black; + display: inline-block; + top: 10px; +} +.expected { + background-color: green; + margin-right: 10px; +} +</style> + +<body></body> + +<script> +test_interpolation({ + property: 'top', + from: neutralKeyframe, + to: '20px', +}, [ + {at: -0.3, expect: '7px'}, + {at: 0, expect: '10px'}, + {at: 0.5, expect: '15px'}, + {at: 1, expect: '20px'}, + {at: 1.5, expect: '25px'}, +]); + +test_no_interpolation({ + property: 'top', + from: 'initial', + to: '20px', +}); + +test_interpolation({ + property: 'top', + from: 'inherit', + to: '20px', +}, [ + {at: -0.3, expect: '33px'}, + {at: 0, expect: '30px'}, + {at: 0.5, expect: '25px'}, + {at: 1, expect: '20px'}, + {at: 1.5, expect: '15px'}, +]); + +test_no_interpolation({ + property: 'top', + from: 'unset', + to: '20px', +}); + +test_interpolation({ + property: 'top', + from: '-10px', + to: '10px' +}, [ + {at: -0.3, expect: '-16px'}, + {at: 0, expect: '-10px'}, + {at: 0.5, expect: '0px'}, + {at: 1, expect: '10px'}, + {at: 1.5, expect: '20px'} +]); +</script> diff --git a/tests/wpt/web-platform-tests/css/css-sizing/animation/width-interpolation.html b/tests/wpt/web-platform-tests/css/css-sizing/animation/width-interpolation.html new file mode 100644 index 00000000000..33bc1b14c83 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-sizing/animation/width-interpolation.html @@ -0,0 +1,99 @@ +<!DOCTYPE html> +<meta charset="UTF-8"> +<title>width interpolation</title> +<link rel="help" href="https://drafts.csswg.org/css-sizing-3/#propdef-width"> +<meta name="assert" content="width supports animation by computed style."> + +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/interpolation-testcommon.js"></script> + +<style> +.parent { + width: 100px; + overflow: visible; +} +.target { + background-color: black; + width: 10px; + height: 10px; +} +.expected { + background-color: green; +} +</style> + +<body> + <template id="target-template"> + <div class="container"> + <div class="target"></div> + </div> + </template> +</body> + +<script> +test_interpolation({ + property: 'width', + from: neutralKeyframe, + to: '40px', +}, [ + {at: -0.3, expect: '1px'}, + {at: 0, expect: '10px'}, + {at: 0.3, expect: '19px'}, + {at: 0.6, expect: '28px'}, + {at: 1, expect: '40px'}, + {at: 1.5, expect: '55px'}, +]); + +test_no_interpolation({ + property: 'width', + from: 'initial', + to: '40px', +}); + +test_interpolation({ + property: 'width', + from: 'inherit', + to: '40px', +}, [ + {at: -0.3, expect: '118px'}, + {at: 0, expect: '100px'}, + {at: 0.3, expect: '82px'}, + {at: 0.6, expect: '64px'}, + {at: 1, expect: '40px'}, + {at: 1.5, expect: '10px'}, +]); + +test_no_interpolation({ + property: 'width', + from: 'unset', + to: '40px', +}); + +test_interpolation({ + property: 'width', + from: '0px', + to: '100px', +}, [ + {at: -0.3, expect: '0px'}, // CSS width can't be negative. + {at: 0, expect: '0px'}, + {at: 0.3, expect: '30px'}, + {at: 0.6, expect: '60px'}, + {at: 1, expect: '100px'}, + {at: 1.5, expect: '150px'} +]); + +test_interpolation({ + property: 'width', + from: '10px', + to: '100%' +}, [ + {at: -0.3, expect: '0px'}, // CSS width can't be negative. + {at: 0, expect: '10px'}, + {at: 0.3, expect: '37px'}, + {at: 0.6, expect: '64px'}, + {at: 1, expect: '100px'}, + {at: 1.5, expect: '145px'} +]); +</script> +</body> diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-skip-ink-sidewayslr-001-notref.html b/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-skip-ink-sidewayslr-001-notref.html new file mode 100644 index 00000000000..49cbf1530d7 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-skip-ink-sidewayslr-001-notref.html @@ -0,0 +1,18 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="utf-8"> + <title>Non-reference case for text-decoration-skip-ink</title> + <style> + div{ + text-decoration: green underline; + text-decoration-skip-ink: none; + writing-mode: sideways-lr; + } + </style> + </head> + <body> + <p>Test passes if p and g characters are skipped</p> + <div>ping pong</div> + </body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-skip-ink-sidewaysrl-001-notref.html b/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-skip-ink-sidewaysrl-001-notref.html new file mode 100644 index 00000000000..3882683f1db --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-skip-ink-sidewaysrl-001-notref.html @@ -0,0 +1,18 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="utf-8"> + <title>Non-reference case for text-decoration-skip-ink</title> + <style> + div{ + text-decoration: green underline; + text-decoration-skip-ink: none; + writing-mode: sideways-rl; + } + </style> + </head> + <body> + <p>Test passes if p and g characters are skipped</p> + <div>ping pong</div> + </body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-skip-ink-upright-001-notref.html b/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-skip-ink-upright-001-notref.html new file mode 100644 index 00000000000..a57eac2f2db --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-skip-ink-upright-001-notref.html @@ -0,0 +1,20 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="utf-8"> + <title>Non-reference case for text-decoration-skip-ink</title> + <style> + div{ + text-decoration-skip-ink: none; + text-decoration: green underline; + writing-mode: vertical-lr; + text-orientation: upright; + text-underline-offset: -0.5em; + } + </style> + </head> + <body> + <p>Test if underline skips the characters</p> + <div>ping pong</div> + </body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-skip-ink-upright-001-offset-notref.html b/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-skip-ink-upright-001-offset-notref.html new file mode 100644 index 00000000000..a0a2c1fbaeb --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-skip-ink-upright-001-offset-notref.html @@ -0,0 +1,20 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="utf-8"> + <title>Non-reference case for text-decoration-skip-ink</title> + <style> + div{ + text-decoration-skip-ink: auto; + text-decoration: green underline; + writing-mode: vertical-lr; + text-orientation: upright; + text-underline-offset: auto; + } + </style> + </head> + <body> + <p>Test if underline skips the characters</p> + <div>ping pong</div> + </body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-skip-ink-upright-002-notref.html b/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-skip-ink-upright-002-notref.html new file mode 100644 index 00000000000..80edf92bd91 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-skip-ink-upright-002-notref.html @@ -0,0 +1,23 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="utf-8"> + <title>Non-reference case for text-decoration-skip-ink</title> + <link rel="stylesheet" type="text/css" href="/fonts/ahem.css"> + <style> + div{ + font: 20px/1 Ahem; + text-decoration: green underline; + text-decoration-skip-ink: auto; + color: transparent; + text-underline-offset: auto; + writing-mode: vertical-rl; + text-orientation: upright; + } + </style> + </head> + <body> + <p>Test passes if no underline is visible</p> + <div>XXXX</div> + </body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-skip-ink-vertical-001-notref.html b/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-skip-ink-vertical-001-notref.html new file mode 100644 index 00000000000..0938ce60eac --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-skip-ink-vertical-001-notref.html @@ -0,0 +1,19 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="utf-8"> + <title>Non-reference case for text-decoration-skip-ink</title> + <style> + div{ + text-decoration: green underline; + text-decoration-skip-ink: none; + text-underline-offset: -0.2em; + writing-mode: vertical-lr; + } + </style> + </head> + <body> + <p>Test passes if p and g characters are skipped</p> + <div>ping pong</div> + </body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-skip-ink-vertical-001-offset-notref.html b/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-skip-ink-vertical-001-offset-notref.html new file mode 100644 index 00000000000..073fe6a951a --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-skip-ink-vertical-001-offset-notref.html @@ -0,0 +1,19 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="utf-8"> + <title>Non-reference case for text-decoration-skip-ink</title> + <style> + div{ + text-decoration: green underline; + text-decoration-skip-ink: auto; + text-underline-offset: auto; + writing-mode: vertical-lr; + } + </style> + </head> + <body> + <p>Test passes if p and g characters are skipped</p> + <div>ping pong</div> + </body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-skip-ink-vertical-002-notref.html b/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-skip-ink-vertical-002-notref.html new file mode 100644 index 00000000000..f7b71783b55 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-skip-ink-vertical-002-notref.html @@ -0,0 +1,22 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="utf-8"> + <title>Non-reference case for text-decoration-skip-ink</title> + <link rel="stylesheet" type="text/css" href="/fonts/ahem.css"> + <style> + div{ + font: 20px/1 Ahem; + color: transparent; + text-decoration-skip-ink: auto; + text-decoration: green underline; + text-underline-offset: auto; + writing-mode: vertical-lr; + } + </style> + </head> + <body> + <p>Test passes if no underline is visible</p> + <div>XXXX</div> + </body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-skip-ink-sidewayslr-001.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-skip-ink-sidewayslr-001.html new file mode 100644 index 00000000000..48d427e2382 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-skip-ink-sidewayslr-001.html @@ -0,0 +1,23 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="utf-8"> + <title>Test case for text-decoration-skip-ink</title> + <meta name="assert" content="text-decoration-skip-ink: descenders are skipped"> + <link rel="author" title="Charlie Marlow" href="cmarlow@mozilla.com"> + <link rel="author" title="Mozilla" href="https://www.mozilla.org"> + <link rel="help" href="https://drafts.csswg.org/css-text-decor-4/#text-decoration-skip-ink-property"> + <link rel="mismatch" href="reference/text-decoration-skip-ink-sidewayslr-001-notref.html"> + <style> + div{ + text-decoration: green underline; + text-decoration-skip-ink: auto; + writing-mode: sideways-lr; + } + </style> + </head> + <body> + <p>Test passes if p and g characters are skipped</p> + <div>ping pong</div> + </body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-skip-ink-sidewayslr-002.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-skip-ink-sidewayslr-002.html new file mode 100644 index 00000000000..c5ee3469ba5 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-skip-ink-sidewayslr-002.html @@ -0,0 +1,31 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="utf-8"> + <title>Test case for text-decoration-skip-ink</title> + <meta name="assert" content="text-decoration-skip-ink: no underline should be rendered for transparent Ahem text"> + <link rel="author" title="Charlie Marlow" href="cmarlow@mozilla.com"> + <link rel="author" title="Mozilla" href="https://www.mozilla.org"> + <link rel="help" href="https://drafts.csswg.org/css-text-decor-4/#text-decoration-skip-ink-property"> + <link rel="match" href="reference/text-decoration-skip-ink-002-ref.html"> + <link rel="stylesheet" type="text/css" href="/fonts/ahem.css"> + <style> + /* + No underline should be rendered for Ahem text + with skip-ink enabled + */ + div{ + font: 20px/1 Ahem; + color: transparent; + text-decoration-skip-ink: auto; + text-decoration: green underline; + text-underline-offset: -0.2em; + writing-mode: sideways-lr; + } + </style> + </head> + <body> + <p>Test passes if no underline is visible</p> + <div>XXXX</div> + </body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-skip-ink-sidewaysrl-001.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-skip-ink-sidewaysrl-001.html new file mode 100644 index 00000000000..3384215476e --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-skip-ink-sidewaysrl-001.html @@ -0,0 +1,23 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="utf-8"> + <title>Test case for text-decoration-skip-ink</title> + <meta name="assert" content="text-decoration-skip-ink: descenders are skipped"> + <link rel="author" title="Charlie Marlow" href="cmarlow@mozilla.com"> + <link rel="author" title="Mozilla" href="https://www.mozilla.org"> + <link rel="help" href="https://drafts.csswg.org/css-text-decor-4/#text-decoration-skip-ink-property"> + <link rel="mismatch" href="reference/text-decoration-skip-ink-sidewaysrl-001-notref.html"> + <style> + div{ + text-decoration: green underline; + text-decoration-skip-ink: auto; + writing-mode: sideways-rl; + } + </style> + </head> + <body> + <p>Test passes if p and g characters are skipped</p> + <div>ping pong</div> + </body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-skip-ink-sidewaysrl-002.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-skip-ink-sidewaysrl-002.html new file mode 100644 index 00000000000..94344307e35 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-skip-ink-sidewaysrl-002.html @@ -0,0 +1,31 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="utf-8"> + <title>Test case for text-decoration-skip-ink</title> + <meta name="assert" content="text-decoration-skip-ink: no underline should be rendered for transparent Ahem text"> + <link rel="author" title="Charlie Marlow" href="cmarlow@mozilla.com"> + <link rel="author" title="Mozilla" href="https://www.mozilla.org"> + <link rel="help" href="https://drafts.csswg.org/css-text-decor-4/#text-decoration-skip-ink-property"> + <link rel="match" href="reference/text-decoration-skip-ink-002-ref.html"> + <link rel="stylesheet" type="text/css" href="/fonts/ahem.css"> + <style> + /* + No underline should be rendered for Ahem text + with skip-ink enabled + */ + div{ + font: 20px/1 Ahem; + color: transparent; + text-decoration-skip-ink: auto; + text-decoration: green underline; + text-underline-offset: -0.2em; + writing-mode: sideways-rl; + } + </style> + </head> + <body> + <p>Test passes if no underline is visible</p> + <div>XXXX</div> + </body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-skip-ink-upright-001.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-skip-ink-upright-001.html new file mode 100644 index 00000000000..5d0d78c5d7e --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-skip-ink-upright-001.html @@ -0,0 +1,26 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="utf-8"> + <title>Test case for text-decoration-skip-ink</title> + <meta name="assert" content="text-decoration-skip-ink: descenders are skipped"> + <link rel="author" title="Charlie Marlow" href="cmarlow@mozilla.com"> + <link rel="author" title="Mozilla" href="https://www.mozilla.org"> + <link rel="help" href="https://drafts.csswg.org/css-text-decor-4/#text-decoration-skip-ink-property"> + <link rel="mismatch" href="reference/text-decoration-skip-ink-upright-001-notref.html"> + <link rel="mismatch" href="reference/text-decoration-skip-ink-upright-001-offset-notref.html"> + <style> + div{ + text-decoration-skip-ink: auto; + text-decoration: green underline; + writing-mode: vertical-lr; + text-orientation: upright; + text-underline-offset: -0.5em; + } + </style> + </head> + <body> + <p>Test if underline skips the characters</p> + <div>ping pong</div> + </body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-skip-ink-upright-002.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-skip-ink-upright-002.html new file mode 100644 index 00000000000..2e7d80ec2de --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-skip-ink-upright-002.html @@ -0,0 +1,29 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="utf-8"> + <title>Test case for text-decoration-skip-ink</title> + <meta name="assert" content="text-decoration-skip-ink: no underline should be rendered for transparent Ahem text"> + <link rel="author" title="Charlie Marlow" href="cmarlow@mozilla.com"> + <link rel="author" title="Mozilla" href="https://www.mozilla.org"> + <link rel="help" href="https://drafts.csswg.org/css-text-decor-4/#text-decoration-skip-ink-property"> + <link rel="match" href="reference/text-decoration-skip-ink-002-ref.html"> + <link rel="mismatch" href="reference/text-decoration-skip-ink-upright-002-notref.html"> + <link rel="stylesheet" type="text/css" href="/fonts/ahem.css"> + <style> + div{ + font: 20px/1 Ahem; + text-decoration: green underline; + text-decoration-skip-ink: auto; + color: transparent; + text-underline-offset: -0.5em; + writing-mode: vertical-rl; + text-orientation: upright; + } + </style> + </head> + <body> + <p>Test passes if no underline is visible</p> + <div>XXXX</div> + </body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-skip-ink-vertical-001.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-skip-ink-vertical-001.html new file mode 100644 index 00000000000..bf9054365e3 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-skip-ink-vertical-001.html @@ -0,0 +1,25 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="utf-8"> + <title>Test case for text-decoration-skip-ink</title> + <meta name="assert" content="text-decoration-skip-ink: descenders are skipped"> + <link rel="author" title="Charlie Marlow" href="cmarlow@mozilla.com"> + <link rel="author" title="Mozilla" href="https://www.mozilla.org"> + <link rel="help" href="https://drafts.csswg.org/css-text-decor-4/#text-decoration-skip-ink-property"> + <link rel="mismatch" href="reference/text-decoration-skip-ink-vertical-001-notref.html"> + <link rel="mismatch" href="reference/text-decoration-skip-ink-vertical-001-offset-notref.html"> + <style> + div{ + text-decoration: green underline; + text-decoration-skip-ink: auto; + text-underline-offset: -0.2em; + writing-mode: vertical-lr; + } + </style> + </head> + <body> + <p>Test passes if p and g characters are skipped</p> + <div>ping pong</div> + </body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-skip-ink-vertical-002.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-skip-ink-vertical-002.html new file mode 100644 index 00000000000..9cacc8c56fb --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-skip-ink-vertical-002.html @@ -0,0 +1,32 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="utf-8"> + <title>Test case for text-decoration-skip-ink</title> + <meta name="assert" content="text-decoration-skip-ink: no underline should be rendered for transparent Ahem text"> + <link rel="author" title="Charlie Marlow" href="cmarlow@mozilla.com"> + <link rel="author" title="Mozilla" href="https://www.mozilla.org"> + <link rel="help" href="https://drafts.csswg.org/css-text-decor-4/#text-decoration-skip-ink-property"> + <link rel="match" href="reference/text-decoration-skip-ink-002-ref.html"> + <link rel="mismatch" href="reference/text-decoration-skip-ink-vertical-002-notref.html"> + <link rel="stylesheet" type="text/css" href="/fonts/ahem.css"> + <style> + /* + No underline should be rendered for Ahem text + with skip-ink enabled + */ + div{ + font: 20px/1 Ahem; + color: transparent; + text-decoration-skip-ink: auto; + text-decoration: green underline; + text-underline-offset: -0.2em; + writing-mode: vertical-lr; + } + </style> + </head> + <body> + <p>Test passes if no underline is visible</p> + <div>XXXX</div> + </body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-transforms/animation/list-interpolation.html b/tests/wpt/web-platform-tests/css/css-transforms/animation/list-interpolation.html index 4755279d73c..85701e9efad 100644 --- a/tests/wpt/web-platform-tests/css/css-transforms/animation/list-interpolation.html +++ b/tests/wpt/web-platform-tests/css/css-transforms/animation/list-interpolation.html @@ -7,7 +7,7 @@ <meta name="assert" content="Interpolation of transform function lists is performed as follows"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> -<script src="resources/interpolation-testcommon.js"></script> +<script src="/css/support/interpolation-testcommon.js"></script> </head> <body> <script> diff --git a/tests/wpt/web-platform-tests/css/css-transforms/animation/matrix-interpolation.html b/tests/wpt/web-platform-tests/css/css-transforms/animation/matrix-interpolation.html index 4becea079d7..a326e7c92f2 100644 --- a/tests/wpt/web-platform-tests/css/css-transforms/animation/matrix-interpolation.html +++ b/tests/wpt/web-platform-tests/css/css-transforms/animation/matrix-interpolation.html @@ -5,7 +5,7 @@ <meta name="assert" content="When interpolating between two matrices, each matrix is decomposed into the corresponding translation, rotation, scale, skew and (for a 3D matrix) perspective values"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> -<script src="resources/interpolation-testcommon.js"></script> +<script src="/css/support/interpolation-testcommon.js"></script> <body> <script> // Test interpolation of quaternions when the dot product is -1. diff --git a/tests/wpt/web-platform-tests/css/css-transforms/animation/resources/interpolation-testcommon.js b/tests/wpt/web-platform-tests/css/css-transforms/animation/resources/interpolation-testcommon.js deleted file mode 100644 index 73ce9ceefb3..00000000000 --- a/tests/wpt/web-platform-tests/css/css-transforms/animation/resources/interpolation-testcommon.js +++ /dev/null @@ -1,79 +0,0 @@ -'use strict'; -function test_interpolation(settings, expectations, name) { - var message_prefix = name ? name + ': ' : ''; - // Returns a timing function that at 0.5 evaluates to progress. - function timingFunction(progress) { - if (progress === 0) - return 'steps(1, end)'; - if (progress === 1) - return 'steps(1, start)'; - var y = (8 * progress - 1) / 6; - return 'cubic-bezier(0, ' + y + ', 1, ' + y + ')'; - } - - function RoundMatrix(style) { - var matrixMatch = style.match(/^(matrix(3d)?)\(.+\)$/); - if (!!matrixMatch) { - var matrixType = matrixMatch[1]; - var matrixArgs = style.substr(matrixType.length); - var extractmatrix = function(matrixStr) { - var list = []; - var regex = /[+\-]?[0-9]+[.]?[0-9]*(e[+/-][0-9]+)?/g; - var match = undefined; - do { - match = regex.exec(matrixStr); - if (match) { - list.push(parseFloat(parseFloat(match[0]).toFixed(6))); - } - } while (match); - return list; - } - return matrixType + '(' + extractmatrix(matrixArgs).join(', ') + ')'; - } - return style; - } - - test(function(){ - assert_true(CSS.supports(settings.property, settings.from), 'Value "' + settings.from + '" is supported by ' + settings.property); - assert_true(CSS.supports(settings.property, settings.to), 'Value "' + settings.to + '" is supported by ' + settings.property); - }, message_prefix + '"' + settings.from + '" and "' + settings.to + '" are valid ' + settings.property + ' values'); - - for (var i = 0; i < expectations.length; ++i) { - var progress = expectations[i].at; - var expectation = expectations[i].expect; - var animationId = 'anim' + i; - var targetId = 'target' + i; - var referenceId = 'reference' + i; - - test(function(){ - assert_true(CSS.supports(settings.property, expectation), 'Value "' + expectation + '" is supported by ' + settings.property); - - var stylesheet = document.createElement('style'); - stylesheet.textContent = - '#' + targetId + ' {\n' + - ' animation: 2s ' + timingFunction(progress) + ' -1s paused ' + animationId + ';\n' + - '}\n' + - '@keyframes ' + animationId + ' {\n' + - ' 0% { ' + settings.property + ': ' + settings.from + '; }\n' + - ' 100% { ' + settings.property + ': ' + settings.to + '; }\n' + - '}\n' + - '#' + referenceId + ' {\n' + - ' ' + settings.property + ': ' + expectation + ';\n' + - '}\n'; - document.head.appendChild(stylesheet); - - var target = document.createElement('div'); - target.id = targetId; - document.body.appendChild(target); - - var reference = document.createElement('div'); - reference.id = referenceId; - document.body.appendChild(reference); - reference.style = ''; - - var observed = RoundMatrix(getComputedStyle(target)[settings.property]); - var expected = RoundMatrix(getComputedStyle(reference)[settings.property]); - assert_equals(observed, expected); - }, message_prefix + 'Animation between "' + settings.from + '" and "' + settings.to + '" at progress ' + progress); - } -} diff --git a/tests/wpt/web-platform-tests/css/css-transforms/animation/rotate-interpolation.html b/tests/wpt/web-platform-tests/css/css-transforms/animation/rotate-interpolation.html index ec96ba0b09b..911d8e38bd0 100644 --- a/tests/wpt/web-platform-tests/css/css-transforms/animation/rotate-interpolation.html +++ b/tests/wpt/web-platform-tests/css/css-transforms/animation/rotate-interpolation.html @@ -8,7 +8,7 @@ <meta name="assert" content="rotate supports animation."> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> - <script src="resources/interpolation-testcommon.js"></script> + <script src="/css/support/interpolation-testcommon.js"></script> </head> <body> <script> diff --git a/tests/wpt/web-platform-tests/css/css-transforms/animation/scale-interpolation.html b/tests/wpt/web-platform-tests/css/css-transforms/animation/scale-interpolation.html index 942b80a309d..146575c902c 100644 --- a/tests/wpt/web-platform-tests/css/css-transforms/animation/scale-interpolation.html +++ b/tests/wpt/web-platform-tests/css/css-transforms/animation/scale-interpolation.html @@ -8,7 +8,7 @@ <meta name="assert" content="scale supports animation."> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> - <script src="resources/interpolation-testcommon.js"></script> + <script src="/css/support/interpolation-testcommon.js"></script> </head> <body> <script> diff --git a/tests/wpt/web-platform-tests/css/css-transforms/animation/translate-interpolation.html b/tests/wpt/web-platform-tests/css/css-transforms/animation/translate-interpolation.html index d5d47f733ef..aed6c41cf64 100644 --- a/tests/wpt/web-platform-tests/css/css-transforms/animation/translate-interpolation.html +++ b/tests/wpt/web-platform-tests/css/css-transforms/animation/translate-interpolation.html @@ -8,7 +8,7 @@ <meta name="assert" content="translate supports <length> and <percentage> animation."> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> - <script src="resources/interpolation-testcommon.js"></script> + <script src="/css/support/interpolation-testcommon.js"></script> <style> body { width: 500px; diff --git a/tests/wpt/web-platform-tests/css/css-transitions/CSSTransition-effect.tentative.html b/tests/wpt/web-platform-tests/css/css-transitions/CSSTransition-effect.tentative.html index 41bd23eb531..a38bc21bde0 100644 --- a/tests/wpt/web-platform-tests/css/css-transitions/CSSTransition-effect.tentative.html +++ b/tests/wpt/web-platform-tests/css/css-transitions/CSSTransition-effect.tentative.html @@ -111,9 +111,10 @@ promise_test(async t => { // The transition needs to have a non-zero currentTime for the interruption // reversal logic to apply. - await singleFrame(); + while (getComputedStyle(div).left == '0px') { + await singleFrame(); + } assert_not_equals(transition.currentTime, 0); - assert_not_equals(getComputedStyle(div).left, '0px'); // Without yielding to the rendering loop, set the current transition's // effect to null and interrupt the transition. This should work correctly. diff --git a/tests/wpt/web-platform-tests/css/css-transitions/CSSTransition-startTime.tentative.html b/tests/wpt/web-platform-tests/css/css-transitions/CSSTransition-startTime.tentative.html index b6482f80474..4dbe8634192 100644 --- a/tests/wpt/web-platform-tests/css/css-transitions/CSSTransition-startTime.tentative.html +++ b/tests/wpt/web-platform-tests/css/css-transitions/CSSTransition-startTime.tentative.html @@ -40,7 +40,7 @@ promise_test(async t => { assert_equals(animations[0].startTime, animations[1].startTime, 'CSS transitions started together have the same start time'); - await waitForFrame(); + await waitForAnimationFrames(1); div.style.backgroundColor = 'green'; diff --git a/tests/wpt/web-platform-tests/css/css-transitions/properties-value-001.html b/tests/wpt/web-platform-tests/css/css-transitions/properties-value-001.html index a4d196a5647..1f6d49881bf 100644 --- a/tests/wpt/web-platform-tests/css/css-transitions/properties-value-001.html +++ b/tests/wpt/web-platform-tests/css/css-transitions/properties-value-001.html @@ -59,7 +59,7 @@ // tests = filterPropertyTests(tests, /^background-color/); // general transition-duration - var duration = '0.5s'; + var duration = '2s'; runParallelAsyncHarness({ // array of test data diff --git a/tests/wpt/web-platform-tests/css/css-transitions/properties-value-002.html b/tests/wpt/web-platform-tests/css/css-transitions/properties-value-002.html index a1f91682e0c..9c5d9afbb93 100644 --- a/tests/wpt/web-platform-tests/css/css-transitions/properties-value-002.html +++ b/tests/wpt/web-platform-tests/css/css-transitions/properties-value-002.html @@ -61,7 +61,7 @@ // tests = filterPropertyTests(tests, /^background-color/); // general transition-duration - var duration = '0.5s'; + var duration = '2s'; runParallelAsyncHarness({ // array of test data diff --git a/tests/wpt/web-platform-tests/css/css-transitions/properties-value-003.html b/tests/wpt/web-platform-tests/css/css-transitions/properties-value-003.html index 49c8dfbd786..4f6bbda53bc 100644 --- a/tests/wpt/web-platform-tests/css/css-transitions/properties-value-003.html +++ b/tests/wpt/web-platform-tests/css/css-transitions/properties-value-003.html @@ -63,7 +63,7 @@ // tests = filterPropertyTests(tests, /^background-color/); // general transition-duration - var duration = '0.5s'; + var duration = '2s'; runParallelAsyncHarness({ // array of test data diff --git a/tests/wpt/web-platform-tests/css/css-transitions/properties-value-auto-001.html b/tests/wpt/web-platform-tests/css/css-transitions/properties-value-auto-001.html index dd077f05f5d..6c932aa7cd6 100644 --- a/tests/wpt/web-platform-tests/css/css-transitions/properties-value-auto-001.html +++ b/tests/wpt/web-platform-tests/css/css-transitions/properties-value-auto-001.html @@ -61,7 +61,7 @@ // tests = filterPropertyTests(tests, /^background-color/); // general transition-duration - var duration = '0.5s'; + var duration = '2s'; runParallelAsyncHarness({ // array of test data @@ -69,7 +69,7 @@ // the number of tests to run in parallel testsPerSlice: 50, // milliseconds to wait before calling teardown and ending test - duration: parseFloat(duration) * 1000, + duration: parseFloat(duration) * 1200, // prepare individual test setup: function(data, options) { var styles = { diff --git a/tests/wpt/web-platform-tests/css/css-transitions/properties-value-implicit-001.html b/tests/wpt/web-platform-tests/css/css-transitions/properties-value-implicit-001.html index fe7664986b4..8500436c529 100644 --- a/tests/wpt/web-platform-tests/css/css-transitions/properties-value-implicit-001.html +++ b/tests/wpt/web-platform-tests/css/css-transitions/properties-value-implicit-001.html @@ -62,7 +62,7 @@ // tests = filterPropertyTests(tests, /^background-color/); // general transition-duration - var duration = '0.5s'; + var duration = '2s'; runParallelAsyncHarness({ // array of test data diff --git a/tests/wpt/web-platform-tests/css/css-transitions/properties-value-inherit-001.html b/tests/wpt/web-platform-tests/css/css-transitions/properties-value-inherit-001.html index 0e91c7101b2..abbdecdfae9 100644 --- a/tests/wpt/web-platform-tests/css/css-transitions/properties-value-inherit-001.html +++ b/tests/wpt/web-platform-tests/css/css-transitions/properties-value-inherit-001.html @@ -62,7 +62,7 @@ // tests = filterPropertyTests(tests, /^background-color/); // general transition-duration - var duration = '0.5s'; + var duration = '2s'; runParallelAsyncHarness({ // array of test data diff --git a/tests/wpt/web-platform-tests/css/css-transitions/properties-value-inherit-002.html b/tests/wpt/web-platform-tests/css/css-transitions/properties-value-inherit-002.html index 49ee3140f7b..9556cf7e23a 100644 --- a/tests/wpt/web-platform-tests/css/css-transitions/properties-value-inherit-002.html +++ b/tests/wpt/web-platform-tests/css/css-transitions/properties-value-inherit-002.html @@ -63,7 +63,7 @@ // tests = filterPropertyTests(tests, /^background-color/); // general transition-duration - var duration = '0.5s'; + var duration = '2s'; runParallelAsyncHarness({ // array of test data diff --git a/tests/wpt/web-platform-tests/css/css-transitions/properties-value-inherit-003.html b/tests/wpt/web-platform-tests/css/css-transitions/properties-value-inherit-003.html index 046ba43c41f..13a16132134 100644 --- a/tests/wpt/web-platform-tests/css/css-transitions/properties-value-inherit-003.html +++ b/tests/wpt/web-platform-tests/css/css-transitions/properties-value-inherit-003.html @@ -62,7 +62,7 @@ // tests = filterPropertyTests(tests, /^background-color/); // general transition-duration - var duration = '0.5s'; + var duration = '2s'; runParallelAsyncHarness({ // array of test data diff --git a/tests/wpt/web-platform-tests/css/css-transitions/pseudo-elements-001.html b/tests/wpt/web-platform-tests/css/css-transitions/pseudo-elements-001.html index ae9db1e5c63..146c533e235 100644 --- a/tests/wpt/web-platform-tests/css/css-transitions/pseudo-elements-001.html +++ b/tests/wpt/web-platform-tests/css/css-transitions/pseudo-elements-001.html @@ -84,7 +84,7 @@ ]; // general transition-duration - var duration = '0.5s'; + var duration = '2s'; runParallelAsyncHarness({ // array of test data diff --git a/tests/wpt/web-platform-tests/css/css-transitions/support/runParallelAsyncHarness.js b/tests/wpt/web-platform-tests/css/css-transitions/support/runParallelAsyncHarness.js index fa3b09c7d84..de9b7837900 100644 --- a/tests/wpt/web-platform-tests/css/css-transitions/support/runParallelAsyncHarness.js +++ b/tests/wpt/web-platform-tests/css/css-transitions/support/runParallelAsyncHarness.js @@ -113,8 +113,8 @@ root.runParallelAsyncHarness = function(options) { }); }); - // conclude test (possibly abort) - setTimeout(function() { + // conclude slice (possibly abort) + var concludeSlice = function() { tests.forEach(function(data) { // perform individual "done" test-case cases.forEach(function(name) { @@ -135,7 +135,10 @@ root.runParallelAsyncHarness = function(options) { // next test please, give the browser 50ms to do catch its breath setTimeout(runLoop, 50); - }, duration); + } + + // wait on RAF before cleanup to make sure all queued event handlers have run + setTimeout(function() {requestAnimationFrame(concludeSlice)},duration); } // allow DOMContentLoaded before actually doing something diff --git a/tests/wpt/web-platform-tests/css/css-transitions/transitions-animatable-properties-01.html b/tests/wpt/web-platform-tests/css/css-transitions/transitions-animatable-properties-01.html deleted file mode 100644 index 48a7d1e2e01..00000000000 --- a/tests/wpt/web-platform-tests/css/css-transitions/transitions-animatable-properties-01.html +++ /dev/null @@ -1,179 +0,0 @@ -<!DOCTYPE html> -<html> -<!-- Submitted from TestTWF Paris --> - <head> - <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type"> - <title> CSS Transitions: Animatable CSS properties </title> - <meta name="assert" content="Check that all animatable CSS properties are animatable and then accepted by the 'transition-property' property"> - <meta name="timeout" content="long"> - <link rel="author" title="Daniel Glazman" href="mailto:daniel.glazman@disruptive-innovations.com"> - <link rel="help" href="http://www.w3.org/TR/css3-transitions/#transitions"> - <link rel="help" href="http://www.w3.org/TR/css3-transitions/#animatable-properties"> - <link rel="reviewer" title="Alan Stearns" href="mailto:stearns@adobe.com"> - - <style type="text/css"> - - html, body { margin: 0px; padding: 0px; } - - .w50vw { width: 50vw; ) - .h50vh { height: 50vh; } - - .w50vm { width: 50vm; } - .h50vm { height: 50vm; } - </style> - - <script src="/resources/testharness.js" type="text/javascript"></script> - <script src="/resources/testharnessreport.js" type="text/javascript"></script> - - <style type="text/css" id="newStyles"></style> - </head> - <body> - <p>Check that all animatable CSS properties are animatable and - then accepted by the 'transition-property' property.<br> - </p> - - <p id="testP">THIS PROSE NEEDED FOR TEST ITSELF</p> - - <div id="log"></div><a href="transitions-animatable-properties-01.html" id="" title="transitions-animatable-properties-01">transitions-animatable-properties-01</a> - - <script type="text/javascript"> - var kANIMATABLE_CSS_PROPERTIES = [ - ["background-color", "white", "rgb(0, 128, 0)", "", false], - ["background-position", "0px 0px", "100% 100%", "", false], - ["border-color", "white", "rgb(0, 128, 0)", "", false], - ["border-bottom-color", "white", "rgb(0, 128, 0)", "", false], - ["border-bottom-width", "0px", "10px", "border-style: solid; border-color: black", false], - ["border-left-color", "white", "rgb(0, 128, 0)", "", false], - ["border-left-width", "0px", "10px", "border-style: solid; border-color: black", false], - ["border-right-color", "white", "rgb(0, 128, 0)", "", false], - ["border-right-width", "0px", "10px", "border-style: solid; border-color: black", false], - ["border-spacing", "0px", "10px 15px", "", false], - ["border-top-color", "white", "rgb(0, 128, 0)", "", false], - ["border-top-width", "0px", "10px", "border-style: solid; border-color: black", false], - ["bottom", "0px", "10px", "", false], - ["clip", "rect(0px, 0px, 10px, 10px)", "rect(10px, 10px, 20px, 20px)", "", false], - ["color", "white", "rgb(0, 128, 0)", "", false], - ["crop", "rect(0px, 0px, 10px, 10px)", "rect(10px 10px 20px 20px)", "", false], - ["font-size", "12pt", "32px", "", false], - ["font-weight", "400", "900", "", false], - ["height", "1em", "64px", "", false], - ["left", "0px", "10px", "", false], - ["letter-spacing", "1em", "64px", "", false], - ["line-height", "1em", "64px", "", false], - ["margin-bottom", "0px", "10px", "", false], - ["margin-left", "0px", "10px", "", false], - ["margin-right", "0px", "10px", "", false], - ["margin-top", "0px", "10px", "", false], - ["max-height", "0px", "10px", "", false], - ["max-width", "0px", "10px", "", false], - ["min-height", "0px", "10px", "", false], - ["min-width", "0px", "10px", "", false], - ["opacity", "0", "1", "", false], - ["outline-color", "white", "rgb(0, 128, 0)", "", false], - ["outline-offset", "0px", "10px", "", false], - ["outline-width", "0px", "10px", "outline-style: solid; outline-style: black", false], - ["padding-bottom", "0px", "10px", "", false], - ["padding-left", "0px", "10px", "", false], - ["padding-right", "0px", "10px", "", false], - ["padding-top", "0px", "10px", "", false], - ["right", "0px", "10px", "", false], - ["text-indent", "0px", "10px", "", false], - ["text-shadow", "orange 0 -2px", "rgb(0, 128, 0) 0px 2px 0px", "", false], - ["top", "0px", "10px", "", false], - ["vertical-align", "0px", "10px", "", false], - ["visibility", "visible", "hidden", "", true], - ["width", "0px", "10px", "", false], - ["word-spacing", "0px", "10px", "", false], - ["z-index", "1", "10", "", false] - ]; - - // page timeout - var kTIMEOUT = 3000000; - - var p = document.getElementById("testP"); - var style = document.getElementById("newStyles"); - - var testsIntermediate = []; - var testsEnd = []; - - setup({timeout: kTIMEOUT}); - - // create all the tests we need - for (var i = 0; i < kANIMATABLE_CSS_PROPERTIES.length; i++) { - testsIntermediate.push(async_test(kANIMATABLE_CSS_PROPERTIES[i][0] + " intermediate")); - testsEnd.push(async_test(kANIMATABLE_CSS_PROPERTIES[i][0] + " end")); - } - - // getComputedStyle helper - function gCS(aProperty) - { - return document.defaultView - .getComputedStyle(p, "") - .getPropertyValue(aProperty); - } - - function Scheduler(aIndex) - { - if (aIndex >= kANIMATABLE_CSS_PROPERTIES.length) // we're done here - return; - - var property = kANIMATABLE_CSS_PROPERTIES[aIndex][0]; - var startValue = kANIMATABLE_CSS_PROPERTIES[aIndex][1]; - var endValue = kANIMATABLE_CSS_PROPERTIES[aIndex][2]; - var extras = kANIMATABLE_CSS_PROPERTIES[aIndex][3]; - var discrete = kANIMATABLE_CSS_PROPERTIES[aIndex][4]; - - // create a style rule - var s = "#testP { "; - s += property + ": " + startValue + ";\n"; - s += "transition-property: " + property + ";\n"; - s += "transition-duration: 0.5s;\n"; - s += "transition-delay: 0s;\n"; - s += "transition-timing-function: linear;\n"; - s += extras; - s += "}"; - style.textContent = s; - - // flush styles - gCS(property); - - // set property to endValue - p.setAttribute("style", property + ": " + endValue + "; "); - - // test for intermediate value - setTimeout(function() - { - testsIntermediate[aIndex].step(function() - { - var cs = gCS(property); - if (discrete) { - assert_equals(cs, startValue); - } - else { - assert_true((cs != startValue) && (null != cs)); - } - }); - testsIntermediate[aIndex].done(); - }, 250); - - // test for final value - setTimeout(function() - { - testsEnd[aIndex].step(function() - { - var cs = gCS(property); - assert_equals(cs, endValue); - } - ); - testsEnd[aIndex].done(); - Scheduler(aIndex + 1); - }, 600); - - } - - // let's start - Scheduler(0); - - </script> - </body> -</html> diff --git a/tests/wpt/web-platform-tests/css/css-values/ex-unit-001.html b/tests/wpt/web-platform-tests/css/css-values/ex-unit-001.html index ad296b4174e..eff0dbe2ebd 100644 --- a/tests/wpt/web-platform-tests/css/css-values/ex-unit-001.html +++ b/tests/wpt/web-platform-tests/css/css-values/ex-unit-001.html @@ -10,7 +10,7 @@ <style> @font-face { font-family: foo; - src: local(Ahem); + src: url('/fonts/Ahem.ttf'); } @font-face { diff --git a/tests/wpt/web-platform-tests/css/css-values/minmax-angle-computed.html b/tests/wpt/web-platform-tests/css/css-values/minmax-angle-computed.html new file mode 100644 index 00000000000..84e598a8147 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-values/minmax-angle-computed.html @@ -0,0 +1,61 @@ +<!DOCTYPE html> +<link rel="help" href="https://drafts.csswg.org/css-values-4/#comp-func"> +<link rel="help" href="https://drafts.csswg.org/css-values-4/#angles"> +<link rel="help" href="https://drafts.csswg.org/css-values-4/#calc-type-checking"> +<link rel="author" title="Xiaocheng Hu" href="mailto:xiaochengh@chromium.org"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="../support/computed-testcommon.js"></script> +<div id="target"></div> +<div id="reference"></div> +<script> +function test_angle_equals(value, expected) { + const reference = document.getElementById('reference'); + reference.style.transform = ''; + reference.style.transform = `rotate(${expected})`; + const computed = getComputedStyle(reference).transform; + test_computed_value('transform', `rotate(${value})`, computed); +} + +// Identity tests +test_angle_equals('min(1deg)', '1deg'); +test_angle_equals('min(1grad)', '1grad'); +test_angle_equals('min(1rad)', '1rad'); +test_angle_equals('min(1turn)', '1turn'); +test_angle_equals('max(1deg)', '1deg'); +test_angle_equals('max(1grad)', '1grad'); +test_angle_equals('max(1rad)', '1rad'); +test_angle_equals('max(1turn)', '1turn'); + +// Comparisons between same units +test_angle_equals('min(1deg, 2deg)', '1deg'); +test_angle_equals('min(1grad, 2grad)', '1grad'); +test_angle_equals('min(1rad, 2rad)', '1rad'); +test_angle_equals('min(1turn, 2turn)', '1turn'); +test_angle_equals('max(1deg, 2deg)', '2deg'); +test_angle_equals('max(1grad, 2grad)', '2grad'); +test_angle_equals('max(1rad, 2rad)', '2rad'); +test_angle_equals('max(1turn, 2turn)', '2turn'); + +// Comparisons between different units +test_angle_equals('min(90deg, 0.26turn)', '90deg'); +test_angle_equals('min(1.57rad, 95deg)', '1.57rad'); +test_angle_equals('max(91deg, 0.25turn)', '91deg'); +test_angle_equals('max(1.58rad, 90deg)', '1.58rad'); + +// Nestings +test_angle_equals('min(270deg, max(0.25turn, 3.14rad))', '3.14rad'); +test_angle_equals('max(0.25turn, min(270deg, 3.14rad))', '3.14rad'); + +// General calculations +test_angle_equals('calc(min(90deg, 1.58rad) + 0.25turn)', '180deg'); +test_angle_equals('calc(min(90deg, 1.58rad) - 0.125turn)', '45deg'); +test_angle_equals('calc(min(90deg, 1.58rad) * 2', '180deg'); +test_angle_equals('calc(min(90deg, 1.58rad) / 2', '45deg'); +test_angle_equals('calc(max(90deg, 1.56rad) + 0.25turn)', '180deg'); +test_angle_equals('calc(max(90deg, 1.56rad) - 0.125turn)', '45deg'); +test_angle_equals('calc(max(90deg, 1.56rad) * 2', '180deg'); +test_angle_equals('calc(max(90deg, 1.56rad) / 2', '45deg'); +test_angle_equals('calc(min(90deg, 1.58rad) + max(0.25turn, 99grad))', '180deg'); +test_angle_equals('calc(min(90deg, 1.58rad) - max(0.25turn, 99grad))', '0deg'); +</script> diff --git a/tests/wpt/web-platform-tests/css/css-values/minmax-angle-invalid.html b/tests/wpt/web-platform-tests/css/css-values/minmax-angle-invalid.html new file mode 100644 index 00000000000..29dc15dfd96 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-values/minmax-angle-invalid.html @@ -0,0 +1,69 @@ +<!DOCTYPE html> +<link rel="help" href="https://drafts.csswg.org/css-values-4/#comp-func"> +<link rel="help" href="https://drafts.csswg.org/css-values-4/#angles"> +<link rel="help" href="https://drafts.csswg.org/css-values-4/#calc-type-checking"> +<link rel="author" title="Xiaocheng Hu" href="mailto:xiaochengh@chromium.org"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="../support/parsing-testcommon.js"></script> +<script> +function test_invalid_angle(value) { + test_invalid_value('transform', `rotate(${value})`); +} + +// Syntax checking +test_invalid_angle('min()'); +test_invalid_angle('min( )'); +test_invalid_angle('min(,)'); +test_invalid_angle('min(1dag)'); +test_invalid_angle('min(1deg, )'); +test_invalid_angle('min(, 1deg)'); +test_invalid_angle('min(1deg + )'); +test_invalid_angle('min(1deg - )'); +test_invalid_angle('min(1deg * )'); +test_invalid_angle('min(1deg / )'); +test_invalid_angle('min(1deg 2deg)'); +test_invalid_angle('min(1deg, , 2deg)'); +test_invalid_angle('max()'); +test_invalid_angle('max( )'); +test_invalid_angle('max(,)'); +test_invalid_angle('max(1dag)'); +test_invalid_angle('max(1deg, )'); +test_invalid_angle('max(, 1deg)'); +test_invalid_angle('max(1deg + )'); +test_invalid_angle('max(1deg - )'); +test_invalid_angle('max(1deg * )'); +test_invalid_angle('max(1deg / )'); +test_invalid_angle('max(1deg 2deg)'); +test_invalid_angle('max(1deg, , 2deg)'); + +// Type checking +test_invalid_angle('min(0)'); +test_invalid_angle('min(0%)'); +test_invalid_angle('min(0px)'); +test_invalid_angle('min(0s)'); +test_invalid_angle('min(0Hz)'); +test_invalid_angle('min(0dpi)'); +test_invalid_angle('min(0fr)'); +test_invalid_angle('min(1deg, 0)'); +test_invalid_angle('min(1deg, 0%)'); +test_invalid_angle('min(1deg, 0px)'); +test_invalid_angle('min(1deg, 0s)'); +test_invalid_angle('min(1deg, 0Hz)'); +test_invalid_angle('min(1deg, 0dpi)'); +test_invalid_angle('min(1deg, 0fr)'); +test_invalid_angle('max(0)'); +test_invalid_angle('max(0%)'); +test_invalid_angle('max(0px)'); +test_invalid_angle('max(0s)'); +test_invalid_angle('max(0Hz)'); +test_invalid_angle('max(0dpi)'); +test_invalid_angle('max(0fr)'); +test_invalid_angle('max(1deg, 0)'); +test_invalid_angle('max(1deg, 0%)'); +test_invalid_angle('max(1deg, 0px)'); +test_invalid_angle('max(1deg, 0s)'); +test_invalid_angle('max(1deg, 0Hz)'); +test_invalid_angle('max(1deg, 0dpi)'); +test_invalid_angle('max(1deg, 0fr)'); +</script> diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/available-size-006.html b/tests/wpt/web-platform-tests/css/css-writing-modes/available-size-006.html index e884f76f203..e197f8f322f 100644 --- a/tests/wpt/web-platform-tests/css/css-writing-modes/available-size-006.html +++ b/tests/wpt/web-platform-tests/css/css-writing-modes/available-size-006.html @@ -8,6 +8,7 @@ <meta name="flags" content=""> <style> body { margin-top: 0; margin-bottom: 0; } /* Shouldn't matter, but in some browsers does. -007 tests this aspect specifically. */ +:root { overflow: hidden; } div { writing-mode: vertical-rl; font-family: monospace; diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/available-size-007.html b/tests/wpt/web-platform-tests/css/css-writing-modes/available-size-007.html index c8cfea23b2e..bf3e8c5faad 100644 --- a/tests/wpt/web-platform-tests/css/css-writing-modes/available-size-007.html +++ b/tests/wpt/web-platform-tests/css/css-writing-modes/available-size-007.html @@ -13,6 +13,7 @@ div { font-size: 20px; position: relative; /* to be a container for #red*/ } +:root { overflow: hidden; } .spacer { /* using 5 spacers of 20vh each instead of a single large one, so that the line would wrap between spacers if it ends up being shorter thatn 100vh*/ diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/available-size-008.html b/tests/wpt/web-platform-tests/css/css-writing-modes/available-size-008.html index d38c9cbc1d8..786d8ec482a 100644 --- a/tests/wpt/web-platform-tests/css/css-writing-modes/available-size-008.html +++ b/tests/wpt/web-platform-tests/css/css-writing-modes/available-size-008.html @@ -14,6 +14,7 @@ div div { font-size: 20px; position: relative; /* to be a container for #red*/ } +:root { overflow: hidden; } .spacer { /* using 5 spacers of 20vh each instead of a single large one, so that the line would wrap between spacers if it ends up being shorter thatn 100vh*/ diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/available-size-009.html b/tests/wpt/web-platform-tests/css/css-writing-modes/available-size-009.html index 9d7a2c8288d..5e26975999e 100644 --- a/tests/wpt/web-platform-tests/css/css-writing-modes/available-size-009.html +++ b/tests/wpt/web-platform-tests/css/css-writing-modes/available-size-009.html @@ -8,6 +8,7 @@ <meta name="flags" content=""> <style> body { margin-top: 0; margin-bottom: 0; } /* Shouldn't matter, but in some browsers does. -007 tests this aspect specifically. */ +:root { overflow: hidden; } div { writing-mode: vertical-rl; font-family: monospace; diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/available-size-010.html b/tests/wpt/web-platform-tests/css/css-writing-modes/available-size-010.html index f6452cc957e..6745edd7953 100644 --- a/tests/wpt/web-platform-tests/css/css-writing-modes/available-size-010.html +++ b/tests/wpt/web-platform-tests/css/css-writing-modes/available-size-010.html @@ -8,6 +8,7 @@ <meta name="flags" content=""> <style> body { margin-top: 0; margin-bottom: 0; } /* Shouldn't matter, but in some browsers does. -007 tests this aspect specifically. */ +:root { overflow: hidden; } div { writing-mode: vertical-rl; font-family: monospace; diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/available-size-015.html b/tests/wpt/web-platform-tests/css/css-writing-modes/available-size-015.html index f7cb13b24e0..d23025a9949 100644 --- a/tests/wpt/web-platform-tests/css/css-writing-modes/available-size-015.html +++ b/tests/wpt/web-platform-tests/css/css-writing-modes/available-size-015.html @@ -8,6 +8,7 @@ <meta name="flags" content=""> <style> body { margin-top: 0; margin-bottom: 0; } /* Shouldn't matter, but in some browsers does. -007 tests this aspect specifically. */ +:root { overflow: hidden; } div { writing-mode: vertical-rl; font-family: monospace; diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/available-size-016.html b/tests/wpt/web-platform-tests/css/css-writing-modes/available-size-016.html index c3c388e2446..15038868b80 100644 --- a/tests/wpt/web-platform-tests/css/css-writing-modes/available-size-016.html +++ b/tests/wpt/web-platform-tests/css/css-writing-modes/available-size-016.html @@ -8,6 +8,7 @@ <meta name="flags" content=""> <style> body { margin-top: 0; margin-bottom: 0; } /* Shouldn't matter, but in some browsers does. -007 tests this aspect specifically. */ +:root { overflow: hidden; } div { writing-mode: vertical-rl; font-family: monospace; diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/available-size-019.html b/tests/wpt/web-platform-tests/css/css-writing-modes/available-size-019.html index a25a2f6f31e..b6fbfdf804f 100644 --- a/tests/wpt/web-platform-tests/css/css-writing-modes/available-size-019.html +++ b/tests/wpt/web-platform-tests/css/css-writing-modes/available-size-019.html @@ -8,6 +8,7 @@ <meta name="flags" content=""> <style> body { margin-top: 0; margin-bottom: 0; } /* Shouldn't matter, but in some browsers does. -007 tests this aspect specifically. */ +:root { overflow: hidden; } div { writing-mode: vertical-rl; font-family: monospace; diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/relpos-inline-overflowing-block-vrl.html b/tests/wpt/web-platform-tests/css/css-writing-modes/relpos-inline-overflowing-block-vrl.html index ea075c3f95e..fa09cf37cf5 100644 --- a/tests/wpt/web-platform-tests/css/css-writing-modes/relpos-inline-overflowing-block-vrl.html +++ b/tests/wpt/web-platform-tests/css/css-writing-modes/relpos-inline-overflowing-block-vrl.html @@ -7,6 +7,6 @@ <div style="position:relative; writing-mode:vertical-rl; width:100px; height:100px; background:green;"> <div style="position:absolute; right:0; top:0; width:0.5em; height:1em; background:red;"></div> <div style="width:200px;"> - <span style="position:relative; color:green; background:green;">XXX</span> + <span style="position:relative; color:green; background:green; display: inline-block">XXX</span> </div> </div> diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/sizing-orthog-htb-in-vlr-004-ref.xht b/tests/wpt/web-platform-tests/css/css-writing-modes/sizing-orthog-htb-in-vlr-004-ref.xht index 7bb0a0618e3..5f971974b8d 100644 --- a/tests/wpt/web-platform-tests/css/css-writing-modes/sizing-orthog-htb-in-vlr-004-ref.xht +++ b/tests/wpt/web-platform-tests/css/css-writing-modes/sizing-orthog-htb-in-vlr-004-ref.xht @@ -40,5 +40,8 @@ <div>01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 00</div> +<script> + document.documentElement.scrollLeft=document.documentElement.scrollWidth; +</script> </body> </html> diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/sizing-orthog-htb-in-vlr-004.xht b/tests/wpt/web-platform-tests/css/css-writing-modes/sizing-orthog-htb-in-vlr-004.xht index 2111a8b47d8..cd1529ce421 100644 --- a/tests/wpt/web-platform-tests/css/css-writing-modes/sizing-orthog-htb-in-vlr-004.xht +++ b/tests/wpt/web-platform-tests/css/css-writing-modes/sizing-orthog-htb-in-vlr-004.xht @@ -100,5 +100,8 @@ </div> +<script> + document.documentElement.scrollLeft=document.documentElement.scrollWidth; +</script> </body> </html> diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/sizing-orthog-htb-in-vrl-001-ref.xht b/tests/wpt/web-platform-tests/css/css-writing-modes/sizing-orthog-htb-in-vrl-001-ref.xht index c2a476eee87..297457f62c2 100644 --- a/tests/wpt/web-platform-tests/css/css-writing-modes/sizing-orthog-htb-in-vrl-001-ref.xht +++ b/tests/wpt/web-platform-tests/css/css-writing-modes/sizing-orthog-htb-in-vrl-001-ref.xht @@ -74,5 +74,8 @@ </table> +<script> + document.documentElement.scrollLeft=document.documentElement.scrollWidth; +</script> </body> </html> diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/support/mn+arabic.png b/tests/wpt/web-platform-tests/css/css-writing-modes/support/mn+arabic.png Binary files differnew file mode 100644 index 00000000000..d999c3d3096 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-writing-modes/support/mn+arabic.png diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/support/mn+latin.png b/tests/wpt/web-platform-tests/css/css-writing-modes/support/mn+latin.png Binary files differnew file mode 100644 index 00000000000..224297163c6 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-writing-modes/support/mn+latin.png diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/support/mn-orientation.png b/tests/wpt/web-platform-tests/css/css-writing-modes/support/mn-orientation.png Binary files differnew file mode 100644 index 00000000000..0167dfbde65 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-writing-modes/support/mn-orientation.png diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/support/mn_ar_wrap.png b/tests/wpt/web-platform-tests/css/css-writing-modes/support/mn_ar_wrap.png Binary files differnew file mode 100644 index 00000000000..c7d5ca5806e --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-writing-modes/support/mn_ar_wrap.png diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/support/mn_en_wrap.png b/tests/wpt/web-platform-tests/css/css-writing-modes/support/mn_en_wrap.png Binary files differnew file mode 100644 index 00000000000..e697c992bcb --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-writing-modes/support/mn_en_wrap.png diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/support/world.png b/tests/wpt/web-platform-tests/css/css-writing-modes/support/world.png Binary files differnew file mode 100644 index 00000000000..b56ada3ef1d --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-writing-modes/support/world.png diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/support/zh+arabic.png b/tests/wpt/web-platform-tests/css/css-writing-modes/support/zh+arabic.png Binary files differnew file mode 100644 index 00000000000..019debeae63 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-writing-modes/support/zh+arabic.png diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/support/zh+latin.png b/tests/wpt/web-platform-tests/css/css-writing-modes/support/zh+latin.png Binary files differnew file mode 100644 index 00000000000..8fa56d5b6c5 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-writing-modes/support/zh+latin.png diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/support/zh-orientation.png b/tests/wpt/web-platform-tests/css/css-writing-modes/support/zh-orientation.png Binary files differnew file mode 100644 index 00000000000..fa05cfe7977 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-writing-modes/support/zh-orientation.png diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/support/zh_ar_wrap.png b/tests/wpt/web-platform-tests/css/css-writing-modes/support/zh_ar_wrap.png Binary files differnew file mode 100644 index 00000000000..747e816e212 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-writing-modes/support/zh_ar_wrap.png diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/support/zh_en_wrap.png b/tests/wpt/web-platform-tests/css/css-writing-modes/support/zh_en_wrap.png Binary files differnew file mode 100644 index 00000000000..a3d65918639 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-writing-modes/support/zh_en_wrap.png diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/text-combine-upright-all-001-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/text-combine-upright-all-001-manual.html index c99faf4faee..32d7d48598a 100644 --- a/tests/wpt/web-platform-tests/css/css-writing-modes/text-combine-upright-all-001-manual.html +++ b/tests/wpt/web-platform-tests/css/css-writing-modes/text-combine-upright-all-001-manual.html @@ -9,7 +9,7 @@ <style type="text/css"> @font-face { font-family: "webfont"; - src: url("../../fonts/CSSTest/mplus-1p-regular.woff") format("woff"); + src: url("/fonts/CSSTest/mplus-1p-regular.woff") format("woff"); font-weight: normal; font-style: normal; } @@ -27,4 +27,4 @@ <p lang="ja"><span>今日</span>は<span>5</span>月<span>12</span>日です。<span>GI</span></p> </div> </body> -</html>
\ No newline at end of file +</html> diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/text-combine-upright-all-002-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/text-combine-upright-all-002-manual.html index be9f5822170..1ef4ec06c0d 100644 --- a/tests/wpt/web-platform-tests/css/css-writing-modes/text-combine-upright-all-002-manual.html +++ b/tests/wpt/web-platform-tests/css/css-writing-modes/text-combine-upright-all-002-manual.html @@ -9,7 +9,7 @@ <style type="text/css"> @font-face { font-family: "webfont"; - src: url("../../fonts/CSSTest/mplus-1p-regular.woff") format("woff"); + src: url("/fonts/CSSTest/mplus-1p-regular.woff") format("woff"); font-weight: normal; font-style: normal; } @@ -27,4 +27,4 @@ <p lang="ja"><span>W3C</span>会議は<span>2016</span>年<span>5</span>月<span>12</span>日です。<span>242</span>日目です。</p> </div> </body> -</html>
\ No newline at end of file +</html> diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/text-combine-upright-digits-001-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/text-combine-upright-digits-001-manual.html index 75c14eb42d8..76a1798e486 100644 --- a/tests/wpt/web-platform-tests/css/css-writing-modes/text-combine-upright-digits-001-manual.html +++ b/tests/wpt/web-platform-tests/css/css-writing-modes/text-combine-upright-digits-001-manual.html @@ -4,12 +4,12 @@ <meta charset="utf-8"/> <title>text-combine-upright:digits</title> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"/> -<link rel="help" href="https://drafts.csswg.org/css-writing-modes-3/#text-combine-upright"/> +<link rel="help" href="https://drafts.csswg.org/css-writing-modes-4/#text-combine-upright"/> <meta name="assert" content="text-combine-upright:digits will display two-digit numbers horizontally, but not others."/> <style type="text/css"> @font-face { font-family: "webfont"; - src: url("../../fonts/CSSTest/mplus-1p-regular.woff") format("woff"); + src: url("/fonts/CSSTest/mplus-1p-regular.woff") format("woff"); font-weight: normal; font-style: normal; } @@ -26,4 +26,4 @@ <p lang="ja">今日は2016年5月12日です。242日目です。</p> </div> </body> -</html>
\ No newline at end of file +</html> diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/text-combine-upright-digits-002-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/text-combine-upright-digits-002-manual.html index 9d46e56f937..1977d070e85 100644 --- a/tests/wpt/web-platform-tests/css/css-writing-modes/text-combine-upright-digits-002-manual.html +++ b/tests/wpt/web-platform-tests/css/css-writing-modes/text-combine-upright-digits-002-manual.html @@ -4,12 +4,12 @@ <meta charset="utf-8"/> <title>text-combine-upright:digits 2</title> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"/> -<link rel="help" href="https://drafts.csswg.org/css-writing-modes-3/#text-combine-upright"/> +<link rel="help" href="https://drafts.csswg.org/css-writing-modes-4/#text-combine-upright"/> <meta name="assert" content="text-combine-upright:digits 2 will display two-digit numbers horizontally, but not others."/> <style type="text/css"> @font-face { font-family: "webfont"; - src: url("../../fonts/CSSTest/mplus-1p-regular.woff") format("woff"); + src: url("/fonts/CSSTest/mplus-1p-regular.woff") format("woff"); font-weight: normal; font-style: normal; } @@ -26,4 +26,4 @@ <p lang="ja">今日は2016年5月12日です。242日目です。</p> </div> </body> -</html>
\ No newline at end of file +</html> diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/text-combine-upright-digits-004-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/text-combine-upright-digits-004-manual.html index 9fe84ee3436..b681a8a9a10 100644 --- a/tests/wpt/web-platform-tests/css/css-writing-modes/text-combine-upright-digits-004-manual.html +++ b/tests/wpt/web-platform-tests/css/css-writing-modes/text-combine-upright-digits-004-manual.html @@ -4,12 +4,12 @@ <meta charset="utf-8"/> <title>text-combine-upright:digits 4</title> <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"/> -<link rel="help" href="https://drafts.csswg.org/css-writing-modes-3/#text-combine-upright"/> +<link rel="help" href="https://drafts.csswg.org/css-writing-modes-4/#text-combine-upright"/> <meta name="assert" content="text-combine-upright:digits 4 will display all numbers up to four digits long horizontally."/> <style type="text/css"> @font-face { font-family: "webfont"; - src: url("../../fonts/CSSTest/mplus-1p-regular.woff") format("woff"); + src: url("/fonts/CSSTest/mplus-1p-regular.woff") format("woff"); font-weight: normal; font-style: normal; } @@ -26,4 +26,4 @@ <p lang="ja">今日は2016年5月12日です。242日目です。</p> </div> </body> -</html>
\ No newline at end of file +</html> diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-001-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-001-manual.html index 31186029dec..ac5adb13f4e 100644 --- a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-001-manual.html +++ b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-001-manual.html @@ -9,7 +9,7 @@ <style type="text/css"> @font-face { font-family: 'webfont'; - src: url('../../fonts/noto/NotoSansMongolian-regular.woff2') format('woff2'); + src: url('/fonts/noto/NotoSansMongolian-regular.woff2') format('woff2'); font-weight: normal; font-style: normal; } @@ -27,4 +27,4 @@ <span lang="mn">ᠮᠤᠩᠭᠤᠯ ᠤᠯᠤᠰ</span> </div> </body> -</html>
\ No newline at end of file +</html> diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-002-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-002-manual.html index bb53c939e84..588d56d02cc 100644 --- a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-002-manual.html +++ b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-002-manual.html @@ -9,7 +9,7 @@ <style type="text/css"> @font-face { font-family: 'webfont'; - src: url('../../fonts/noto/NotoSansMongolian-regular.woff2') format('woff2'); + src: url('/fonts/noto/NotoSansMongolian-regular.woff2') format('woff2'); font-weight: normal; font-style: normal; } @@ -28,4 +28,4 @@ <span lang="mn">ᠴᠤᠢᠵᠤᠩᠵᠠᠪ ᠪᠠᠭᠰᠢ ᠶᠢᠨ <span id="end">ᠦᠭᠦᠯᠡᠯ</span></span> </div> </body> -</html>
\ No newline at end of file +</html> diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-003-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-003-manual.html index 1aaf29d2e6d..00921299069 100644 --- a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-003-manual.html +++ b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-003-manual.html @@ -9,7 +9,7 @@ <style type="text/css"> @font-face { font-family: 'webfont'; - src: url('../../fonts/noto/NotoSansMongolian-regular.woff2') format('woff2'); + src: url('/fonts/noto/NotoSansMongolian-regular.woff2') format('woff2'); font-weight: normal; font-style: normal; } @@ -27,4 +27,4 @@ <span lang="mn">ᠴᠤᠢᠵᠤᠩᠵᠠᠪ</span> </div> </body> -</html>
\ No newline at end of file +</html> diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-005-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-005-manual.html index 2bbdca59998..cd7b313add1 100644 --- a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-005-manual.html +++ b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-005-manual.html @@ -9,7 +9,7 @@ <style type="text/css"> @font-face { font-family: 'webfont'; - src: url('../../fonts/noto/NotoSansMongolian-regular.woff2') format('woff2'); + src: url('/fonts/noto/NotoSansMongolian-regular.woff2') format('woff2'); font-weight: normal; font-style: normal; } @@ -25,4 +25,4 @@ <div class="test" lang="mn">ᠮᠤᠩᠭᠤᠯ ᠤᠯᠤᠰ</div> <div class="ref"><img src="support/mn-orientation.png" alt="ref image"/></div> </body> -</html>
\ No newline at end of file +</html> diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-006-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-006-manual.html index 0ceb4a74bb9..bc09501eada 100644 --- a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-006-manual.html +++ b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-006-manual.html @@ -9,7 +9,7 @@ <style type="text/css"> @font-face { font-family: 'webfont'; - src: url('../../fonts/noto/NotoSansMongolian-regular.woff2') format('woff2'); + src: url('/fonts/noto/NotoSansMongolian-regular.woff2') format('woff2'); font-weight: normal; font-style: normal; } @@ -25,4 +25,4 @@ <div class="test" lang="mn">ᠮᠤᠩᠭᠤᠯ ᠤᠯᠤᠰ</div> <div class="ref"><img src="support/mn-orientation.png" alt="ref image"/></div> </body> -</html>
\ No newline at end of file +</html> diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-007-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-007-manual.html index 8317c5c8efd..2e725addd3d 100644 --- a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-007-manual.html +++ b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-007-manual.html @@ -9,7 +9,7 @@ <style type="text/css"> @font-face { font-family: 'webfont'; - src: url('../../fonts/noto/NotoSansMongolian-regular.woff2') format('woff2'); + src: url('/fonts/noto/NotoSansMongolian-regular.woff2') format('woff2'); font-weight: normal; font-style: normal; } @@ -26,4 +26,4 @@ span[lang=en] { color: black; } <div class="test" lang="mn">ᠮᠤᠩᠭᠤᠯ <span lang="en">W3C i18n</span> ᠤᠯᠤᠰ</div> <div class="ref"><img src="support/mn+latin.png" alt="ref image"/></div> </body> -</html>
\ No newline at end of file +</html> diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-008-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-008-manual.html index 21abffa9194..30a32998901 100644 --- a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-008-manual.html +++ b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-008-manual.html @@ -9,7 +9,7 @@ <style type="text/css"> @font-face { font-family: 'webfont'; - src: url('../../fonts/noto/NotoSansMongolian-regular.woff2') format('woff2'); + src: url('/fonts/noto/NotoSansMongolian-regular.woff2') format('woff2'); font-weight: normal; font-style: normal; } @@ -26,4 +26,4 @@ span[lang=ar] { color: black; } <div class="test" lang="mn">ᠮᠤᠩᠭᠤᠯ <span lang="ar">نشاط التدويل</span> ᠤᠯᠤᠰ</div> <div class="ref"><img src="support/mn+arabic.png" alt="ref image"/></div> </body> -</html>
\ No newline at end of file +</html> diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-009-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-009-manual.html index ba2ca64828f..287036dafea 100644 --- a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-009-manual.html +++ b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-009-manual.html @@ -9,7 +9,7 @@ <style type="text/css"> @font-face { font-family: 'webfont'; - src: url('../../fonts/noto/NotoSansMongolian-regular.woff2') format('woff2'); + src: url('/fonts/noto/NotoSansMongolian-regular.woff2') format('woff2'); font-weight: normal; font-style: normal; } @@ -26,4 +26,4 @@ span[lang=ar] { color: black; } <div class="test" lang="mn">ᠮᠤᠩᠭᠤᠯ <span lang="ar">نشاط التدويل</span> ᠤᠯᠤᠰ</div> <div class="ref"><img src="support/mn+arabic.png" alt="ref image"/></div> </body> -</html>
\ No newline at end of file +</html> diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-010-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-010-manual.html index 4dc9430b8da..8f5baee8fff 100644 --- a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-010-manual.html +++ b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-010-manual.html @@ -9,7 +9,7 @@ <style type="text/css"> @font-face { font-family: 'webfont'; - src: url('../../fonts/noto/NotoSansMongolian-regular.woff2') format('woff2'); + src: url('/fonts/noto/NotoSansMongolian-regular.woff2') format('woff2'); font-weight: normal; font-style: normal; } @@ -26,4 +26,4 @@ span[lang=ar] { color: black; } <div class="test" lang="mn">ᠮᠤᠩᠭᠤᠯ <span lang="ar">نشاط التدويل</span> ᠤᠯᠤᠰ</div> <div class="ref"><img src="support/mn+arabic.png" alt="ref image"/></div> </body> -</html>
\ No newline at end of file +</html> diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-012-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-012-manual.html index ebf773c5559..78ba92258af 100644 --- a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-012-manual.html +++ b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-012-manual.html @@ -9,7 +9,7 @@ <style type="text/css"> @font-face { font-family: 'webfont'; - src: url('../../fonts/noto/NotoSansMongolian-regular.woff2') format('woff2'); + src: url('/fonts/noto/NotoSansMongolian-regular.woff2') format('woff2'); font-weight: normal; font-style: normal; } @@ -32,4 +32,4 @@ function setMargin (height) { <div id="test" class="test" lang="mn">ᠮᠤᠩᠭᠤᠯ <span lang="en">W3C i18n</span> ᠤᠯᠤᠰ</div> <div class="ref"><img src="support/mn_en_wrap.png" alt="ref image"/></div> </body> -</html>
\ No newline at end of file +</html> diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-014-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-014-manual.html index 656f78759db..0bcdb1f87b7 100644 --- a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-014-manual.html +++ b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-014-manual.html @@ -9,7 +9,7 @@ <style type="text/css"> @font-face { font-family: 'webfont'; - src: url('../../fonts/noto/NotoSansMongolian-regular.woff2') format('woff2'); + src: url('/fonts/noto/NotoSansMongolian-regular.woff2') format('woff2'); font-weight: normal; font-style: normal; } @@ -32,4 +32,4 @@ function setMargin (height) { <div id="test" class="test" lang="mn">ᠮᠤᠩᠭᠤᠯ <span lang="ar">نشاط التدويل</span> ᠤᠯᠤᠰ</div> <div class="ref"><img src="support/mn_ar_wrap.png" alt="ref image"/></div> </body> -</html>
\ No newline at end of file +</html> diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-015-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-015-manual.html index a8fe0055395..c7c080e77d9 100644 --- a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-015-manual.html +++ b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-015-manual.html @@ -9,7 +9,7 @@ <style type="text/css"> @font-face { font-family: 'webfont'; - src: url('../../fonts/noto/NotoSansMongolian-regular.woff2') format('woff2'); + src: url('/fonts/noto/NotoSansMongolian-regular.woff2') format('woff2'); font-weight: normal; font-style: normal; } @@ -22,6 +22,6 @@ </head> <body> <p class="instructions">Test passes if the text is vertical and the world map has north at the top.</p> -<div id="test" class="test" lang="mn">ᠮᠤᠩᠭᠤᠯ <img src="support/world.gif" alt="ref image"/> ᠤᠯᠤᠰ</div> +<div id="test" class="test" lang="mn">ᠮᠤᠩᠭᠤᠯ <img src="support/world.png" alt="ref image"/> ᠤᠯᠤᠰ</div> </body> -</html>
\ No newline at end of file +</html> diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-forms-001-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-forms-001-manual.html index 02e0dd8da0d..a3878d148b2 100644 --- a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-forms-001-manual.html +++ b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-forms-001-manual.html @@ -9,7 +9,7 @@ <style type="text/css"> @font-face { font-family: 'webfont'; - src: url('../../fonts/noto/NotoSansMongolian-regular.woff2') format('woff2'); + src: url('/fonts/noto/NotoSansMongolian-regular.woff2') format('woff2'); font-weight: normal; font-style: normal; } @@ -26,4 +26,4 @@ input { font-family: webfont; font-size: 34px; } <input type="text" value="ᠮᠤᠩᠭᠤᠯ W3C i18n ᠤᠯᠤᠰ" /> </div> </body> -</html>
\ No newline at end of file +</html> diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-forms-002-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-forms-002-manual.html index b89ea1addb3..751057dc77c 100644 --- a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-forms-002-manual.html +++ b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-forms-002-manual.html @@ -9,7 +9,7 @@ <style type="text/css"> @font-face { font-family: 'webfont'; - src: url('../../fonts/noto/NotoSansMongolian-regular.woff2') format('woff2'); + src: url('/fonts/noto/NotoSansMongolian-regular.woff2') format('woff2'); font-weight: normal; font-style: normal; } @@ -26,4 +26,4 @@ input { font-family: webfont; font-size: 34px; } <input type="text" placeholder="ᠮᠤᠩᠭᠤᠯ W3C i18n ᠤᠯᠤᠰ" /> </div> </body> -</html>
\ No newline at end of file +</html> diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-forms-003-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-forms-003-manual.html index bfd90f8438f..bf3d839ec40 100644 --- a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-forms-003-manual.html +++ b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-forms-003-manual.html @@ -9,7 +9,7 @@ <style type="text/css"> @font-face { font-family: 'webfont'; - src: url('../../fonts/noto/NotoSansMongolian-regular.woff2') format('woff2'); + src: url('/fonts/noto/NotoSansMongolian-regular.woff2') format('woff2'); font-weight: normal; font-style: normal; } @@ -26,4 +26,4 @@ textarea { font-family: webfont; font-size: 34px; } <textarea rows="3">ᠮᠤᠩᠭᠤᠯ W3C i18n ᠤᠯᠤᠰ</textarea> </div> </body> -</html>
\ No newline at end of file +</html> diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-forms-004-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-forms-004-manual.html index fd44a2b6ed7..91f991f5285 100644 --- a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-forms-004-manual.html +++ b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-forms-004-manual.html @@ -9,7 +9,7 @@ <style type="text/css"> @font-face { font-family: 'webfont'; - src: url('../../fonts/noto/NotoSansMongolian-regular.woff2') format('woff2'); + src: url('/fonts/noto/NotoSansMongolian-regular.woff2') format('woff2'); font-weight: normal; font-style: normal; } @@ -26,4 +26,4 @@ textarea { font-family: webfont; font-size: 34px; } <textarea rows="3" placeholder="ᠮᠤᠩᠭᠤᠯ W3C i18n ᠤᠯᠤᠰ"></textarea> </div> </body> -</html>
\ No newline at end of file +</html> diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-forms-005-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-forms-005-manual.html index 0ef619a636f..361f9dbec22 100644 --- a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-forms-005-manual.html +++ b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-forms-005-manual.html @@ -9,7 +9,7 @@ <style type="text/css"> @font-face { font-family: 'webfont'; - src: url('../../fonts/noto/NotoSansMongolian-regular.woff2') format('woff2'); + src: url('/fonts/noto/NotoSansMongolian-regular.woff2') format('woff2'); font-weight: normal; font-style: normal; } @@ -31,4 +31,4 @@ select { font-family: webfont; font-size: 24px; } </select> </div> </body> -</html>
\ No newline at end of file +</html> diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-forms-006-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-forms-006-manual.html index 16162c2a3cd..78416009a17 100644 --- a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-forms-006-manual.html +++ b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-forms-006-manual.html @@ -6,10 +6,11 @@ <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"/> <link rel="help" href="https://drafts.csswg.org/css-writing-modes-3/#block-flow"/> <meta name="assert" content="writing-mode:vertical-lr will display selection options vertically."/> +<meta name="flags" content="should"/> <style type="text/css"> @font-face { font-family: 'webfont'; - src: url('../../fonts/noto/NotoSansMongolian-regular.woff2') format('woff2'); + src: url('/fonts/noto/NotoSansMongolian-regular.woff2') format('woff2'); font-weight: normal; font-style: normal; } @@ -31,4 +32,4 @@ select { font-family: webfont; font-size: 24px; } </select> </div> </body> -</html>
\ No newline at end of file +</html> diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-table-001-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-table-001-manual.html index 21bd590863b..f323ed008cf 100644 --- a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-table-001-manual.html +++ b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-table-001-manual.html @@ -9,7 +9,7 @@ <style type="text/css"> @font-face { font-family: 'webfont'; - src: url('../../fonts/noto/NotoSansMongolian-regular.woff2') format('woff2'); + src: url('/fonts/noto/NotoSansMongolian-regular.woff2') format('woff2'); font-weight: normal; font-style: normal; } @@ -30,4 +30,4 @@ </tbody></table> </div> </body> -</html>
\ No newline at end of file +</html> diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-001-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-001-manual.html index a4f995f4b7f..8cea8b8b831 100644 --- a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-001-manual.html +++ b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-001-manual.html @@ -9,7 +9,7 @@ <style type="text/css"> @font-face { font-family: "webfont"; - src: url("../../fonts/mplus-1p-regular.woff") format("woff"); + src: url("/fonts/mplus-1p-regular.woff") format("woff"); font-weight: normal; font-style: normal; } @@ -27,4 +27,4 @@ <span lang="zh-hans">国际化活动万维网联盟</span> </div> </body> -</html>
\ No newline at end of file +</html> diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-002-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-002-manual.html index 7c7bcfbcdc6..086f77e8b4f 100644 --- a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-002-manual.html +++ b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-002-manual.html @@ -9,7 +9,7 @@ <style type="text/css"> @font-face { font-family: "webfont"; - src: url("../../fonts/mplus-1p-regular.woff") format("woff"); + src: url("/fonts/mplus-1p-regular.woff") format("woff"); font-weight: normal; font-style: normal; } @@ -28,4 +28,4 @@ <span lang="zh-hans">国际化活动万维网联盟国际化活动万维<span id="end">网联盟</span></span> </div> </body> -</html>
\ No newline at end of file +</html> diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-003-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-003-manual.html index 64fcb66b133..a0129a3d1b2 100644 --- a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-003-manual.html +++ b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-003-manual.html @@ -9,7 +9,7 @@ <style type="text/css"> @font-face { font-family: "webfont"; - src: url("../../fonts/mplus-1p-regular.woff") format("woff"); + src: url("/fonts/mplus-1p-regular.woff") format("woff"); font-weight: normal; font-style: normal; } @@ -27,4 +27,4 @@ <span lang="zh-hans">国际化活动万维网联盟</span> </div> </body> -</html>
\ No newline at end of file +</html> diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-005-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-005-manual.html index c6462f2fe1a..835ddaac799 100644 --- a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-005-manual.html +++ b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-005-manual.html @@ -7,13 +7,7 @@ <link rel="help" href="https://drafts.csswg.org/css-writing-modes-3/#block-flow"/> <meta name="assert" content="By default, writing-mode:vertical-rl will display chinese characters upright."/> <style type="text/css"> -@font-face { - font-family: "webfont"; - src: url("../../fonts/mplus-1p-regular.woff") format("woff"); - font-weight: normal; - font-style: normal; - } -.test, .ref { font-family: webfont, serif; font-size: 24px; float: left; margin-right: 30px; } +.test, .ref { font-size: 24px; float: left; margin-right: 30px; } </style> <!-- this is the test --> <style type="text/css"> @@ -22,7 +16,7 @@ </head> <body> <p class="instructions" dir="ltr">Test passes if the text is vertical and the Chinese characters are oriented the same way as on the blue background.</p> -<div class="test" lang="mn">国际化活动万维网联盟</div> +<div class="test" lang="zh">国际化活动万维网联盟</div> <div class="ref"><img src="support/zh-orientation.png" alt="ref image"/></div> </body> -</html>
\ No newline at end of file +</html> diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-007-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-007-manual.html index 3427f74990c..5574a100eaf 100644 --- a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-007-manual.html +++ b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-007-manual.html @@ -7,13 +7,7 @@ <link rel="help" href="https://drafts.csswg.org/css-writing-modes-3/#block-flow"/> <meta name="assert" content="writing-mode:vertical-lr will display Latin characters rotated 90° right by default."/> <style type="text/css"> -@font-face { - font-family: "webfont"; - src: url("../../fonts/mplus-1p-regular.woff") format("woff"); - font-weight: normal; - font-style: normal; - } -.test { font-family: webfont, serif; font-size: 24px; float: left; margin-right: 30px; color: #ccc; } +.test { font-size: 24px; float: left; margin-right: 30px; color: #ccc; } span[lang=en] { color: black; } </style> <!-- this is the test --> @@ -26,4 +20,4 @@ span[lang=en] { color: black; } <div class="test" lang="zh-hans">国际化活动<span lang="en">W3C i18n</span>万维网联盟</div> <div class="ref"><img src="support/zh+latin.png" alt="ref image"/></div> </body> -</html>
\ No newline at end of file +</html> diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-008-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-008-manual.html index 7d2a3bb6a7b..7401d6e78cd 100644 --- a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-008-manual.html +++ b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-008-manual.html @@ -7,13 +7,7 @@ <link rel="help" href="https://drafts.csswg.org/css-writing-modes-3/#block-flow"/> <meta name="assert" content="By default, writing-mode:vertical-lr will display Arabic characters rotated 90° right."/> <style type="text/css"> -@font-face { - font-family: "webfont"; - src: url("../../fonts/mplus-1p-regular.woff") format("woff"); - font-weight: normal; - font-style: normal; - } -.test, .ref { font-family: webfont, serif; font-size: 24px; float: left; margin-right: 30px; color: #ccc; } +.test, .ref { font-size: 24px; float: left; margin-right: 30px; color: #ccc; } span[lang=ar] { color: black; } </style> <!-- this is the test --> @@ -26,4 +20,4 @@ span[lang=ar] { color: black; } <div class="test" lang="zh-hans">国际化活动<span lang="ar">نشاط التدويل</span>万维网联盟</div> <div class="ref"><img src="support/zh+arabic.png" alt="ref image"/></div> </body> -</html>
\ No newline at end of file +</html> diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-009-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-009-manual.html index 6dff8d7efbe..0486ac6f5ef 100644 --- a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-009-manual.html +++ b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-009-manual.html @@ -7,13 +7,7 @@ <link rel="help" href="https://drafts.csswg.org/css-writing-modes-3/#block-flow"/> <meta name="assert" content="By default, writing-mode:vertical-lr will display Arabic characters progressing up the page."/> <style type="text/css"> -@font-face { - font-family: "webfont"; - src: url("../../fonts/mplus-1p-regular.woff") format("woff"); - font-weight: normal; - font-style: normal; - } -.test, .ref { font-family: webfont, serif; font-size: 24px; float: left; margin-right: 30px; color: #ccc; } +.test, .ref { font-size: 24px; float: left; margin-right: 30px; color: #ccc; } span[lang=ar] { color: black; } </style> <!-- this is the test --> @@ -26,4 +20,4 @@ span[lang=ar] { color: black; } <div class="test" lang="zh-hans">国际化活动<span lang="ar">نشاط التدويل</span>万维网联盟</div> <div class="ref"><img src="support/zh+arabic.png" alt="ref image"/></div> </body> -</html>
\ No newline at end of file +</html> diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-010-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-010-manual.html index e81a579c75a..05f8de14ac2 100644 --- a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-010-manual.html +++ b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-010-manual.html @@ -7,13 +7,7 @@ <link rel="help" href="https://drafts.csswg.org/css-writing-modes-3/#block-flow"/> <meta name="assert" content="By default, writing-mode:vertical-lr will display Arabic characters using cursive joining."/> <style type="text/css"> -@font-face { - font-family: "webfont"; - src: url("../../fonts/mplus-1p-regular.woff") format("woff"); - font-weight: normal; - font-style: normal; - } -.test, .ref { font-family: webfont, serif; font-size: 24px; float: left; margin-right: 30px; color: #ccc; } +.test, .ref { font-size: 24px; float: left; margin-right: 30px; color: #ccc; } span[lang=ar] { color: black; } </style> <!-- this is the test --> @@ -26,4 +20,4 @@ span[lang=ar] { color: black; } <div class="test" lang="zh-hans">国际化活动<span lang="ar">نشاط التدويل</span>万维网联盟</div> <div class="ref"><img src="support/zh+arabic.png" alt="ref image"/></div> </body> -</html>
\ No newline at end of file +</html> diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-012-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-012-manual.html index a53ec5c14f4..71907e822a3 100644 --- a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-012-manual.html +++ b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-012-manual.html @@ -7,13 +7,7 @@ <link rel="help" href="https://drafts.csswg.org/css-writing-modes-3/#block-flow"/> <meta name="assert" content="By default, writing-mode:vertical-rl will wrap Latin text across a line break such that the first word in memory is on the right."/> <style type="text/css"> -@font-face { - font-family: "webfont"; - src: url("../../fonts/mplus-1p-regular.woff") format("woff"); - font-weight: normal; - font-style: normal; - } -.test, .ref { font-family: webfont, serif; font-size: 24px; float: left; margin-right: 30px; height: 250px; color: #ccc; } +.test, .ref { font-size: 24px; float: left; margin-right: 30px; height: 200px; color: #ccc; } span[lang=en] { color: black; } </style> <!-- this is the test --> @@ -28,8 +22,8 @@ function setMargin (height) { </head> <body> <p class="instructions">Test passes if the two Latin words on the left are displayed in the same relative positions around a line break as on the blue background.</p> -<p class="instructions">Use this control to set the line length, if necessary: <input type="text" value="250" style="width: 30px; text-align:right;" onChange="setMargin(this.value);"/>px</p> +<p class="instructions">Use this control to set the line length, if necessary: <input type="text" value="200" style="width: 30px; text-align:right;" onChange="setMargin(this.value);"/>px</p> <div id="test" class="test" lang="zh-hans">国际化活动<span lang="en">W3C i18n</span>万维网联盟</div> <div class="ref"><img src="support/zh_en_wrap.png" alt="ref image"/></div> </body> -</html>
\ No newline at end of file +</html> diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-014-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-014-manual.html index bf3424fd043..2dcf570916f 100644 --- a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-014-manual.html +++ b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-014-manual.html @@ -7,13 +7,7 @@ <link rel="help" href="https://drafts.csswg.org/css-writing-modes-3/#block-flow"/> <meta name="assert" content="By default, writing-mode:vertical-rl will arrange Arabic text across a line break such that the first word in memory is on the right-hand side of the line break."/> <style type="text/css"> -@font-face { - font-family: "webfont"; - src: url("../../fonts/mplus-1p-regular.woff") format("woff"); - font-weight: normal; - font-style: normal; - } -.test, .ref { font-family: webfont, serif; font-size: 24px; float: left; margin-right: 30px; height: 200px; color: #ccc; } +.test, .ref { font-size: 24px; float: left; margin-right: 30px; height: 200px; color: #ccc; } span[lang=ar] { color: black; } </style> <!-- this is the test --> @@ -32,4 +26,4 @@ function setMargin (height) { <div id="test" class="test" lang="zh-hans">国际化活动<span lang="ar">نشاط التدويل</span>万维网联盟</div> <div class="ref"><img src="support/zh_ar_wrap.png" alt="ref image"/></div> </body> -</html>
\ No newline at end of file +</html> diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-015-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-015-manual.html index cfcdf2f51b7..e1a6f023a86 100644 --- a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-015-manual.html +++ b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-015-manual.html @@ -9,7 +9,7 @@ <style type="text/css"> @font-face { font-family: "webfont"; - src: url("../../fonts/mplus-1p-regular.woff") format("woff"); + src: url("/fonts/mplus-1p-regular.woff") format("woff"); font-weight: normal; font-style: normal; } @@ -22,6 +22,6 @@ </head> <body> <p class="instructions">Test passes if the text is vertical and the world map has north at the top.</p> -<div id="test" class="test" lang="zh-hans">国际化活动<img src="support/world.gif" alt="ref image"/>万维网联盟</div> +<div id="test" class="test" lang="zh-hans">国际化活动<img src="support/world.png" alt="ref image"/>万维网联盟</div> </body> -</html>
\ No newline at end of file +</html> diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-forms-001-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-forms-001-manual.html index 0548cb96828..20dea4fbc36 100644 --- a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-forms-001-manual.html +++ b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-forms-001-manual.html @@ -9,7 +9,7 @@ <style type="text/css"> @font-face { font-family: "webfont"; - src: url("../../fonts/mplus-1p-regular.woff") format("woff"); + src: url("/fonts/mplus-1p-regular.woff") format("woff"); font-weight: normal; font-style: normal; } @@ -26,4 +26,4 @@ input { font-family: webfont; font-size: 34px; } <input type="text" value="国际化活动W3C i18n万维网联盟" /> </div> </body> -</html>
\ No newline at end of file +</html> diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-forms-002-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-forms-002-manual.html index 3de4c72c3ff..5d7db3e2a38 100644 --- a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-forms-002-manual.html +++ b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-forms-002-manual.html @@ -9,7 +9,7 @@ <style type="text/css"> @font-face { font-family: "webfont"; - src: url("../../fonts/mplus-1p-regular.woff") format("woff"); + src: url("/fonts/mplus-1p-regular.woff") format("woff"); font-weight: normal; font-style: normal; } @@ -26,4 +26,4 @@ input { font-family: webfont; font-size: 34px; } <input type="text" placeholder="国际化活动W3C i18n万维网联盟" /> </div> </body> -</html>
\ No newline at end of file +</html> diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-forms-003-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-forms-003-manual.html index e07502e4fce..3dfe1d61bf5 100644 --- a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-forms-003-manual.html +++ b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-forms-003-manual.html @@ -9,7 +9,7 @@ <style type="text/css"> @font-face { font-family: "webfont"; - src: url("../../fonts/mplus-1p-regular.woff") format("woff"); + src: url("/fonts/mplus-1p-regular.woff") format("woff"); font-weight: normal; font-style: normal; } @@ -26,4 +26,4 @@ textarea { font-family: webfont; font-size: 34px; } <textarea rows="3">国际化活动W3C i18n万维网联盟</textarea> </div> </body> -</html>
\ No newline at end of file +</html> diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-forms-004-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-forms-004-manual.html index 42bef3494f9..074603d5811 100644 --- a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-forms-004-manual.html +++ b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-forms-004-manual.html @@ -9,7 +9,7 @@ <style type="text/css"> @font-face { font-family: "webfont"; - src: url("../../fonts/mplus-1p-regular.woff") format("woff"); + src: url("/fonts/mplus-1p-regular.woff") format("woff"); font-weight: normal; font-style: normal; } @@ -26,4 +26,4 @@ textarea { font-family: webfont; font-size: 34px; } <textarea rows="3" placeholder="国际化活动W3C i18n万维网联盟"></textarea> </div> </body> -</html>
\ No newline at end of file +</html> diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-forms-005-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-forms-005-manual.html index 7177c316d71..2ce63cd5664 100644 --- a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-forms-005-manual.html +++ b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-forms-005-manual.html @@ -9,7 +9,7 @@ <style type="text/css"> @font-face { font-family: "webfont"; - src: url("../../fonts/mplus-1p-regular.woff") format("woff"); + src: url("/fonts/mplus-1p-regular.woff") format("woff"); font-weight: normal; font-style: normal; } @@ -31,4 +31,4 @@ select { font-family: webfont; font-size: 24px; } </select> </div> </body> -</html>
\ No newline at end of file +</html> diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-forms-006-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-forms-006-manual.html index 2ed6bc99828..8d03c4dfcb2 100644 --- a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-forms-006-manual.html +++ b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-forms-006-manual.html @@ -6,10 +6,11 @@ <link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"/> <link rel="help" href="https://drafts.csswg.org/css-writing-modes-3/#block-flow"/> <meta name="assert" content="writing-mode:vertical-rl will display selection options vertically."/> +<meta name="flags" content="should"/> <style type="text/css"> @font-face { font-family: "webfont"; - src: url("../../fonts/mplus-1p-regular.woff") format("woff"); + src: url("/fonts/mplus-1p-regular.woff") format("woff"); font-weight: normal; font-style: normal; } @@ -31,4 +32,4 @@ select { font-family: webfont; font-size: 24px; } </select> </div> </body> -</html>
\ No newline at end of file +</html> diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-table-001-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-table-001-manual.html index 1705beb7915..d3bc9664524 100644 --- a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-table-001-manual.html +++ b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-table-001-manual.html @@ -9,7 +9,7 @@ <style type="text/css"> @font-face { font-family: "webfont"; - src: url("../../fonts/mplus-1p-regular.woff") format("woff"); + src: url("/fonts/mplus-1p-regular.woff") format("woff"); font-weight: normal; font-style: normal; } @@ -30,4 +30,4 @@ </tbody></table> </div> </body> -</html>
\ No newline at end of file +</html> diff --git a/tests/wpt/web-platform-tests/css/selectors/of-type-selectors-ref.xhtml b/tests/wpt/web-platform-tests/css/selectors/of-type-selectors-ref.xhtml index af883c97ecf..ae866213df0 100644 --- a/tests/wpt/web-platform-tests/css/selectors/of-type-selectors-ref.xhtml +++ b/tests/wpt/web-platform-tests/css/selectors/of-type-selectors-ref.xhtml @@ -26,5 +26,12 @@ div > *|* { <p class="green">This line should have a green background.</p> <p class="green">This line should have a green background.</p> </div> +<div> +<p class="green">This line should have a green background.</p> +<p class="yellow">This line should have a yellow background.</p> +<p class="yellow">This line should have a yellow background.</p> +<p class="green">This line should have a green background.</p> +<p class="green">This line should have a green background.</p> +</div> </body> </html> diff --git a/tests/wpt/web-platform-tests/css/selectors/of-type-selectors.xhtml b/tests/wpt/web-platform-tests/css/selectors/of-type-selectors.xhtml index 18fead9b1cc..73ec208b8f2 100644 --- a/tests/wpt/web-platform-tests/css/selectors/of-type-selectors.xhtml +++ b/tests/wpt/web-platform-tests/css/selectors/of-type-selectors.xhtml @@ -15,13 +15,23 @@ div > *|* { border: thin solid; margin: 1em; } -div > *|*:first-of-type { +.first-of-type > *|*:first-of-type { + background: lime; +} +.nth-of-type > *|*:nth-of-type(1) { background: lime; } </style> </head> <body> -<div> +<div class="first-of-type"> +<p>This line should have a green background.</p> +<p>This line should have a yellow background.</p> +<html:p>This line should have a yellow background.</html:p> +<p xmlns="http://www.example.com/ns">This line should have a green background.</p> +<p xmlns="">This line should have a green background.</p> +</div> +<div class="nth-of-type"> <p>This line should have a green background.</p> <p>This line should have a yellow background.</p> <html:p>This line should have a yellow background.</html:p> diff --git a/tests/wpt/web-platform-tests/css/support/interpolation-testcommon.js b/tests/wpt/web-platform-tests/css/support/interpolation-testcommon.js index 9bc71ff9d32..62f40790dbd 100644 --- a/tests/wpt/web-platform-tests/css/support/interpolation-testcommon.js +++ b/tests/wpt/web-platform-tests/css/support/interpolation-testcommon.js @@ -1,66 +1,320 @@ 'use strict'; -function test_interpolation(settings, expectations) { - // Returns a timing function that at 0.5 evaluates to progress. - function timingFunction(progress) { - if (progress === 0) +(function() { + var interpolationTests = []; + var cssAnimationsData = { + sharedStyle: null, + nextID: 0, + }; + var expectNoInterpolation = {}; + var neutralKeyframe = {}; + function isNeutralKeyframe(keyframe) { + return keyframe === neutralKeyframe; + } + + // For all the CSS interpolation methods, we set the animation duration very + // very long so that any advancement in time that does happen is irrelevant + // in terms of the progress value. In particular, the animation duration is + // 2e9s which is ~63 years. + // We then set the delay to be *negative* half the duration, so we are + // immediately at the halfway point of the animation. Finally, we using an + // easing function that maps halfway (0.5) to whatever progress we actually + // want. + var cssAnimationsInterpolation = { + name: 'CSS Animations', + supportsProperty: function() {return true;}, + supportsValue: function() {return true;}, + setup: function() {}, + nonInterpolationExpectations: function(from, to) { + return expectFlip(from, to, 0.5); + }, + interpolate: function(property, from, to, at, target) { + var id = cssAnimationsData.nextID++; + if (!cssAnimationsData.sharedStyle) { + cssAnimationsData.sharedStyle = createElement(document.body, 'style'); + } + cssAnimationsData.sharedStyle.textContent += '' + + '@keyframes animation' + id + ' {' + + (isNeutralKeyframe(from) ? '' : `from {${property}:${from};}`) + + (isNeutralKeyframe(to) ? '' : `to {${property}:${to};}`) + + '}'; + target.style.animationName = 'animation' + id; + target.style.animationDuration = '2e9s'; + target.style.animationDelay = '-1e9s'; + target.style.animationTimingFunction = createEasing(at); + }, + }; + + var cssTransitionsInterpolation = { + name: 'CSS Transitions', + supportsProperty: function() {return true;}, + supportsValue: function() {return true;}, + setup: function(property, from, target) { + target.style.setProperty(property, isNeutralKeyframe(from) ? '' : from); + }, + nonInterpolationExpectations: function(from, to) { + return expectFlip(from, to, -Infinity); + }, + interpolate: function(property, from, to, at, target) { + // Force a style recalc on target to set the 'from' value. + getComputedStyle(target).left; + target.style.transitionDuration = '2e9s'; + target.style.transitionDelay = '-1e9s'; + target.style.transitionTimingFunction = createEasing(at); + target.style.transitionProperty = property; + target.style.setProperty(property, isNeutralKeyframe(to) ? '' : to); + }, + }; + + var cssTransitionAllInterpolation = { + name: 'CSS Transitions with transition: all', + // The 'all' value doesn't cover custom properties. + supportsProperty: function(property) {return property.indexOf('--') !== 0;}, + supportsValue: function() {return true;}, + setup: function(property, from, target) { + target.style.setProperty(property, isNeutralKeyframe(from) ? '' : from); + }, + nonInterpolationExpectations: function(from, to) { + return expectFlip(from, to, -Infinity); + }, + interpolate: function(property, from, to, at, target) { + // Force a style recalc on target to set the 'from' value. + getComputedStyle(target).left; + target.style.transitionDuration = '2e9s'; + target.style.transitionDelay = '-1e9s'; + target.style.transitionTimingFunction = createEasing(at); + target.style.transitionProperty = 'all'; + target.style.setProperty(property, isNeutralKeyframe(to) ? '' : to); + }, + }; + + var webAnimationsInterpolation = { + name: 'Web Animations', + supportsProperty: function(property) {return true;}, + supportsValue: function(value) {return value !== '';}, + setup: function() {}, + nonInterpolationExpectations: function(from, to) { + return expectFlip(from, to, 0.5); + }, + interpolate: function(property, from, to, at, target) { + this.interpolateComposite(property, from, 'replace', to, 'replace', at, target); + }, + interpolateComposite: function(property, from, fromComposite, to, toComposite, at, target) { + // Convert standard properties to camelCase. + if (!property.startsWith('--')) { + for (var i = property.length - 2; i > 0; --i) { + if (property[i] === '-') { + property = property.substring(0, i) + property[i + 1].toUpperCase() + property.substring(i + 2); + } + } + if (property === 'offset') + property = 'cssOffset'; + } + var keyframes = []; + if (!isNeutralKeyframe(from)) { + keyframes.push({ + offset: 0, + composite: fromComposite, + [property]: from, + }); + } + if (!isNeutralKeyframe(to)) { + keyframes.push({ + offset: 1, + composite: toComposite, + [property]: to, + }); + } + var animation = target.animate(keyframes, { + fill: 'forwards', + duration: 1, + easing: createEasing(at), + }); + animation.pause(); + animation.currentTime = 0.5; + }, + }; + + function expectFlip(from, to, flipAt) { + return [-0.3, 0, 0.3, 0.5, 0.6, 1, 1.5].map(function(at) { + return { + at: at, + expect: at < flipAt ? from : to + }; + }); + } + + // Constructs a timing function which produces 'y' at x = 0.5 + function createEasing(y) { + if (y == 0) { return 'steps(1, end)'; - if (progress === 1) + } + if (y == 1) { return 'steps(1, start)'; - var y = (8 * progress - 1) / 6; - return 'cubic-bezier(0, ' + y + ', 1, ' + y + ')'; + } + if (y == 0.5) { + return 'steps(2, end)'; + } + // Approximate using a bezier. + var b = (8 * y - 1) / 6; + return 'cubic-bezier(0, ' + b + ', 1, ' + b + ')'; + } + + function createElement(parent, tag, text) { + var element = document.createElement(tag || 'div'); + element.textContent = text || ''; + parent.appendChild(element); + return element; + } + + function createTargetContainer(parent, className) { + var targetContainer = createElement(parent); + targetContainer.classList.add('container'); + var template = document.querySelector('#target-template'); + if (template) { + targetContainer.appendChild(template.content.cloneNode(true)); + } + var target = targetContainer.querySelector('.target') || targetContainer; + target.classList.add('target', className); + target.parentElement.classList.add('parent'); + targetContainer.target = target; + return targetContainer; + } + + function roundNumbers(value) { + return value. + // Round numbers to two decimal places. + replace(/-?\d*\.\d+(e-?\d+)?/g, function(n) { + return (parseFloat(n).toFixed(2)). + replace(/\.\d+/, function(m) { + return m.replace(/0+$/, ''); + }). + replace(/\.$/, ''). + replace(/^-0$/, '0'); + }); + } + + var anchor = document.createElement('a'); + function sanitizeUrls(value) { + var matches = value.match(/url\("([^#][^\)]*)"\)/g); + if (matches !== null) { + for (var i = 0; i < matches.length; ++i) { + var url = /url\("([^#][^\)]*)"\)/g.exec(matches[i])[1]; + anchor.href = url; + anchor.pathname = '...' + anchor.pathname.substring(anchor.pathname.lastIndexOf('/')); + value = value.replace(matches[i], 'url(' + anchor.href + ')'); + } + } + return value; + } + + function normalizeValue(value) { + return roundNumbers(sanitizeUrls(value)). + // Place whitespace between tokens. + replace(/([\w\d.]+|[^\s])/g, '$1 '). + replace(/\s+/g, ' '); + } + + function stringify(text) { + if (!text.includes("'")) { + return `'${text}'`; + } + return `"${text.replace('"', '\\"')}"`; + } + + function keyframeText(keyframe) { + return isNeutralKeyframe(keyframe) ? 'neutral' : `[${keyframe}]`; + } + + function keyframeCode(keyframe) { + return isNeutralKeyframe(keyframe) ? 'neutralKeyframe' : `${stringify(keyframe)}`; + } + + function createInterpolationTestTargets(interpolationMethod, interpolationMethodContainer, interpolationTest) { + var property = interpolationTest.options.property; + var from = interpolationTest.options.from; + var to = interpolationTest.options.to; + if ((interpolationTest.options.method && interpolationTest.options.method != interpolationMethod.name) + || !interpolationMethod.supportsProperty(property) + || !interpolationMethod.supportsValue(from) + || !interpolationMethod.supportsValue(to)) { + return; + } + var testText = `${interpolationMethod.name}: property <${property}> from ${keyframeText(from)} to ${keyframeText(to)}`; + var testContainer = createElement(interpolationMethodContainer, 'div'); + createElement(testContainer); + var expectations = interpolationTest.expectations; + if (expectations === expectNoInterpolation) { + expectations = interpolationMethod.nonInterpolationExpectations(from, to); + } + return expectations.map(function(expectation) { + var actualTargetContainer = createTargetContainer(testContainer, 'actual'); + var expectedTargetContainer = createTargetContainer(testContainer, 'expected'); + if (!isNeutralKeyframe(expectation.expect)) { + expectedTargetContainer.target.style.setProperty(property, expectation.expect); + } + var target = actualTargetContainer.target; + interpolationMethod.setup(property, from, target); + target.interpolate = function() { + interpolationMethod.interpolate(property, from, to, expectation.at, target); + }; + target.measure = function() { + var expectedValue = getComputedStyle(expectedTargetContainer.target).getPropertyValue(property); + test(function() { + if (from && from !== neutralKeyframe) { + assert_true(CSS.supports(property, from), '\'from\' value should be supported'); + } + if (to && to !== neutralKeyframe) { + assert_true(CSS.supports(property, to), '\'to\' value should be supported'); + } + if (typeof underlying !== 'undefined') { + assert_true(CSS.supports(property, underlying), '\'underlying\' value should be supported'); + } + + assert_equals( + normalizeValue(getComputedStyle(target).getPropertyValue(property)), + normalizeValue(expectedValue)); + }, `${testText} at (${expectation.at}) should be [${sanitizeUrls(expectedValue)}]`); + }; + return target; + }); + } + + function createTestTargets(interpolationMethods, interpolationTests, container) { + var targets = []; + for (var interpolationMethod of interpolationMethods) { + var interpolationMethodContainer = createElement(container); + for (var interpolationTest of interpolationTests) { + [].push.apply(targets, createInterpolationTestTargets(interpolationMethod, interpolationMethodContainer, interpolationTest)); + } + } + return targets; + } + + function test_no_interpolation(options) { + test_interpolation(options, expectNoInterpolation); } - test(function(){ - assert_true(CSS.supports(settings.property, settings.from), 'From value "' + settings.from + '" is supported by ' + settings.property); - assert_true(CSS.supports(settings.property, settings.to), 'To value "' + settings.to + '" is supported by ' + settings.property); - }, '"' + settings.from + '" and "' + settings.to + '" are valid ' + settings.property + ' values'); - - for (var i = 0; i < expectations.length; ++i) { - var progress = expectations[i].at; - var expectation = expectations[i].expect; - var animationId = 'anim' + i; - var targetId = 'target' + i; - var referenceId = 'reference' + i; - test(function(){ - assert_true(CSS.supports(settings.property, expectation), 'Expectation value "' + expectation + '" is supported by ' + settings.property); - - var stylesheet = document.createElement('style'); - stylesheet.textContent = - '#' + targetId + ' {\n' + - ' animation: 2s ' + timingFunction(progress) + ' -1s paused ' + animationId + ';\n' + - '}\n' + - '@keyframes ' + animationId + ' {\n' + - ' 0% { ' + settings.property + ': ' + settings.from + '; }\n' + - ' 100% { ' + settings.property + ': ' + settings.to + '; }\n' + - '}\n' + - '#' + referenceId + ' {\n' + - ' ' + settings.property + ': ' + expectation + ';\n' + - '}\n'; - document.head.appendChild(stylesheet); - - var target = document.createElement('div'); - target.id = targetId; - document.body.appendChild(target); - - var reference = document.createElement('div'); - reference.id = referenceId; - document.body.appendChild(reference); - reference.style = ''; - - assert_equals(getComputedStyle(target)[settings.property], getComputedStyle(reference)[settings.property]); - }, (settings.test_prefix ? settings.test_prefix : "") + - 'Animation between "' + settings.from + '" and "' + settings.to + - '" at progress ' + progress); + function test_interpolation(options, expectations) { + interpolationTests.push({options, expectations}); + var interpolationMethods = [ + cssTransitionsInterpolation, + cssTransitionAllInterpolation, + cssAnimationsInterpolation, + webAnimationsInterpolation, + ]; + var container = createElement(document.body); + var targets = createTestTargets(interpolationMethods, interpolationTests, container); + // Separate interpolation and measurement into different phases to avoid O(n^2) of the number of targets. + for (var target of targets) { + target.interpolate(); + } + for (var target of targets) { + target.measure(); + } + container.remove(); + interpolationTests = []; } -} - -function test_no_interpolation(settings) { - var expectatFrom = [-1, 0, 0.4].map(function (progress) { - return {at: progress, expect: settings.from}; - }); - var expectatTo = [0.6, 1, 2].map(function (progress) { - return {at: progress, expect: settings.to}; - }); - - test_interpolation(settings, expectatFrom.concat(expectatTo)); -} + window.test_interpolation = test_interpolation; + window.test_no_interpolation = test_no_interpolation; + window.neutralKeyframe = neutralKeyframe; +})(); diff --git a/tests/wpt/web-platform-tests/feature-policy/reporting/oversized-images-reporting.html b/tests/wpt/web-platform-tests/feature-policy/reporting/oversized-images-reporting.html new file mode 100644 index 00000000000..baa866d0a1c --- /dev/null +++ b/tests/wpt/web-platform-tests/feature-policy/reporting/oversized-images-reporting.html @@ -0,0 +1,30 @@ +<!DOCTYPE html> +<html> + <head> + <script src='/resources/testharness.js'></script> + <script src='/resources/testharnessreport.js'></script> + </head> + <body> + <img src="./oversized.jpg" alt="oversized image" width="50" height="50"> + <script> + async_test(t => { + new ReportingObserver( + t.step_func_done((reports, _) => { + assert_greater_than(reports.length, 0); + const report = reports[0]; + assert_equals(report.type, "feature-policy-violation"); + assert_equals(report.url, document.location.href); + const rbody = report.body; + assert_equals(rbody.featureId, "oversized-images"); + assert_equals(rbody.sourceFile, document.getElementsByTagName('img')[0].src); + assert_equals(rbody.lineNumber, null); + assert_equals(rbody.columnNumber, null); + }), + {types: ['feature-policy-violation'], buffered: true} + ).observe(); + }, + "oversized-images Report Format") + </script> + </body> +</html> + diff --git a/tests/wpt/web-platform-tests/feature-policy/reporting/oversized-images-reporting.html.headers b/tests/wpt/web-platform-tests/feature-policy/reporting/oversized-images-reporting.html.headers new file mode 100644 index 00000000000..02bcbb92a86 --- /dev/null +++ b/tests/wpt/web-platform-tests/feature-policy/reporting/oversized-images-reporting.html.headers @@ -0,0 +1 @@ +Feature-Policy: oversized-images 'none' diff --git a/tests/wpt/web-platform-tests/feature-policy/reporting/oversized.jpg b/tests/wpt/web-platform-tests/feature-policy/reporting/oversized.jpg Binary files differnew file mode 100644 index 00000000000..497ed770bfb --- /dev/null +++ b/tests/wpt/web-platform-tests/feature-policy/reporting/oversized.jpg diff --git a/tests/wpt/web-platform-tests/feature-policy/reporting/unoptimized-lossy-images-reporting.html b/tests/wpt/web-platform-tests/feature-policy/reporting/unoptimized-lossy-images-reporting.html index 62a5469f8ca..8dcf110dd2b 100644 --- a/tests/wpt/web-platform-tests/feature-policy/reporting/unoptimized-lossy-images-reporting.html +++ b/tests/wpt/web-platform-tests/feature-policy/reporting/unoptimized-lossy-images-reporting.html @@ -13,6 +13,9 @@ var check_report_format = (reports, observer) => { assert_equals(report.url, document.location.href); assert_equals(report.body.featureId, "unoptimized-lossy-images"); assert_equals(report.body.disposition, "enforce"); + assert_equals(report.body.sourceFile, document.getElementsByTagName('img')[0].src); + assert_equals(report.body.lineNumber, null); + assert_equals(report.body.columnNumber, null); }; async_test(t => { diff --git a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/coep-navigate-popup.https.html b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/coep-navigate-popup.https.html index 717122b4b2f..21320a61b2e 100644 --- a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/coep-navigate-popup.https.html +++ b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/coep-navigate-popup.https.html @@ -1,5 +1,6 @@ <!doctype html> <title>Cross-Origin-Opener-Policy and Cross-Origin-Embedder-Policy: a navigating popup</title> +<meta content=timeout value=long> <script src=/resources/testharness.js></script> <script src=/resources/testharnessreport.js></script> <script src="/common/get-host-info.sub.js"></script> diff --git a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/resources/common.js b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/resources/common.js index b60093f1c62..c5d3c6c1084 100644 --- a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/resources/common.js +++ b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/resources/common.js @@ -29,7 +29,7 @@ function run_coop_tests(documentCOOPValueTitle, testArray) { for (const test of tests) { async_test(t => { coop_test(t, test[0], test[1], - `${mainTest}_to_${test[0].name}_${test[1].replace(/ /g,"-")}`, + `${documentCOOPValueTitle}_to_${test[0].name}_${test[1].replace(/ /g,"-")}`, test[2]); }, `${documentCOOPValueTitle} document opening popup to ${test[0].origin} with COOP: "${test[1]}"`); } diff --git a/tests/wpt/web-platform-tests/html/rendering/replaced-elements/the-select-element/select-1-block-size-001-2.html b/tests/wpt/web-platform-tests/html/rendering/replaced-elements/the-select-element/select-1-block-size-001-2.html deleted file mode 100644 index 5f03a761dc8..00000000000 --- a/tests/wpt/web-platform-tests/html/rendering/replaced-elements/the-select-element/select-1-block-size-001-2.html +++ /dev/null @@ -1,29 +0,0 @@ -<!doctype html> -<title>Select block size when line-height is specified</title> -<!-- - FIXME: This is just a copy of select-1-block-size-001.html, but if I move the - <link rel="match"> in this file to select-1-block-size-001-ref.html (which is - the "right" way to do this), fuzzy annotations do not work. ---> -<link rel="author" title="Emilio Cobos Álvarez" href="mailto:emilio@crisal.io"> -<link rel="author" title="Mozilla" href="https://mozilla.org"> -<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1571764"> -<link rel="match" href="select-1-block-size-001-ref-2.html"> -<style> -select { - -webkit-appearance: none; - appearance: none; - - background: black; - color: black; - - line-height: 100px; - width: 100px; - - border: 0; - border-radius: 0; - padding: 0; -} -</style> -<select></select> -<select><option>A</option></select> diff --git a/tests/wpt/web-platform-tests/html/rendering/replaced-elements/the-select-element/select-1-block-size-001-ref.html b/tests/wpt/web-platform-tests/html/rendering/replaced-elements/the-select-element/select-1-block-size-001-ref.html index ad504846dfa..3834281dd83 100644 --- a/tests/wpt/web-platform-tests/html/rendering/replaced-elements/the-select-element/select-1-block-size-001-ref.html +++ b/tests/wpt/web-platform-tests/html/rendering/replaced-elements/the-select-element/select-1-block-size-001-ref.html @@ -3,6 +3,7 @@ <link rel="author" title="Emilio Cobos Álvarez" href="mailto:emilio@crisal.io"> <link rel="author" title="Mozilla" href="https://mozilla.org"> <link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1571764"> +<link rel="match" href="select-1-block-size-001-ref-2.html"> <style> button { -webkit-appearance: none; diff --git a/tests/wpt/web-platform-tests/infrastructure/assumptions/document-fonts-ready.html b/tests/wpt/web-platform-tests/infrastructure/assumptions/document-fonts-ready.html new file mode 100644 index 00000000000..9fb0137025b --- /dev/null +++ b/tests/wpt/web-platform-tests/infrastructure/assumptions/document-fonts-ready.html @@ -0,0 +1,32 @@ +<!DOCTYPE HTML> +<title>document.fonts.ready resolves after layout depending on loaded fonts</title> +<link rel="help" href="https://drafts.csswg.org/css-font-loading/#fontfaceset-pending-on-the-environment"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" /> +<style> + #foo { + font: 100px/1 Ahem; + } +</style> +<div id="log"></div> +<span id="foo">X</span> +<script> + // The purpose of this test is to ensure that testharness.js tests can use + // `document.fonts.ready` to wait for a web font to load, without having to + // wait for the window load event before or requestAnimationFrame after. + // + // The spec says that a FontFaceSet is "pending on the environment" if "the + // document has pending layout operations which might cause the user agent to + // request a font, or which depend on recently-loaded fonts", and both are + // assumed to hold true in this test. + async_test(t => { + assert_equals(document.fonts.size, 1, 'one font is pending'); + document.fonts.ready.then(t.step_func_done(() => { + const span = document.getElementById('foo'); + const rect = span.getBoundingClientRect(); + // If Ahem has loaded, the X will be 100px wide. + assert_equals(rect.width, 100, 'span is 100px wide'); + })); + }); +</script> diff --git a/tests/wpt/web-platform-tests/interfaces/webrtc-stats.idl b/tests/wpt/web-platform-tests/interfaces/webrtc-stats.idl index e92533a226e..87b079c00ab 100644 --- a/tests/wpt/web-platform-tests/interfaces/webrtc-stats.idl +++ b/tests/wpt/web-platform-tests/interfaces/webrtc-stats.idl @@ -40,7 +40,6 @@ dictionary RTCCodecStats : RTCStats { unsigned long clockRate; unsigned long channels; DOMString sdpFmtpLine; - DOMString implementation; }; enum RTCCodecType { @@ -104,6 +103,7 @@ dictionary RTCInboundRtpStreamStats : RTCReceivedRtpStreamStats { unsigned long framesDropped; unsigned long partialFramesLost; unsigned long fullFramesLost; + DOMString decoderImplementation; }; dictionary RTCRemoteInboundRtpStreamStats : RTCReceivedRtpStreamStats { @@ -150,6 +150,7 @@ dictionary RTCOutboundRtpStreamStats : RTCSentRtpStreamStats { unsigned long firCount; unsigned long pliCount; unsigned long sliCount; + DOMString encoderImplementation; }; enum RTCQualityLimitationReason { @@ -343,6 +344,10 @@ dictionary RTCStunServerConnectionStats : RTCStats { double totalRoundTripTime; }; +partial dictionary RTCCodecStats { + DOMString implementation; +}; + partial dictionary RTCIceCandidateStats { boolean isRemote; }; diff --git a/tests/wpt/web-platform-tests/interfaces/webxr.idl b/tests/wpt/web-platform-tests/interfaces/webxr.idl index ec4b76d9ba8..3febf83ebe3 100644 --- a/tests/wpt/web-platform-tests/interfaces/webxr.idl +++ b/tests/wpt/web-platform-tests/interfaces/webxr.idl @@ -22,14 +22,8 @@ enum XRSessionMode { }; dictionary XRSessionInit { - sequence<DOMString> requiredFeatures; - sequence<DOMString> optionalFeatures; -}; - -enum XREnvironmentBlendMode { - "opaque", - "additive", - "alpha-blend", + sequence<any> requiredFeatures; + sequence<any> optionalFeatures; }; enum XRVisibilityState { @@ -40,7 +34,6 @@ enum XRVisibilityState { [SecureContext, Exposed=Window] interface XRSession : EventTarget { // Attributes - readonly attribute XREnvironmentBlendMode environmentBlendMode; readonly attribute XRVisibilityState visibilityState; [SameObject] readonly attribute XRRenderState renderState; [SameObject] readonly attribute XRInputSourceArray inputSources; diff --git a/tests/wpt/web-platform-tests/intersection-observer/cross-origin-iframe.html b/tests/wpt/web-platform-tests/intersection-observer/cross-origin-iframe.sub.html index bdd6d3f529a..d444237f6b9 100644 --- a/tests/wpt/web-platform-tests/intersection-observer/cross-origin-iframe.html +++ b/tests/wpt/web-platform-tests/intersection-observer/cross-origin-iframe.sub.html @@ -21,7 +21,7 @@ iframe { </style> <div class="spacer"></div> -<iframe src="resources/cross-origin-subframe.html" sandbox="allow-scripts"></iframe> +<iframe src="http://{{hosts[alt][]}}:{{ports[http][0]}}/intersection-observer/resources/cross-origin-subframe.html" sandbox="allow-scripts"></iframe> <div class="spacer"></div> <script> diff --git a/tests/wpt/web-platform-tests/intersection-observer/resources/cross-origin-subframe.html b/tests/wpt/web-platform-tests/intersection-observer/resources/cross-origin-subframe.html index 0cc117cb3a6..4305ed1719b 100644 --- a/tests/wpt/web-platform-tests/intersection-observer/resources/cross-origin-subframe.html +++ b/tests/wpt/web-platform-tests/intersection-observer/resources/cross-origin-subframe.html @@ -1,12 +1,14 @@ <!DOCTYPE html> <div style="height: 200px; width: 100px;"></div> <div id="target" style="background-color: green; width:100px; height:100px"></div> +<div id="empty-target" style="width: 100px"></div> <div style="height: 200px; width: 100px;"></div> <script> var port; var entries = []; -var target = document.getElementById('target'); +var target = document.getElementById("target"); +var emptyTarget = document.getElementById("empty-target"); var scroller = document.scrollingElement; var nextStep; @@ -26,19 +28,11 @@ function entryToJson(entry) { boundingClientRect: clientRectToJson(entry.boundingClientRect), intersectionRect: clientRectToJson(entry.intersectionRect), rootBounds: clientRectToJson(entry.rootBounds), + isIntersecting: entry.isIntersecting, target: entry.target.id }; } -function coordinatesToClientRectJson(top, right, bottom, left) { - return { - top: top, - right: right, - bottom: bottom, - left: left - }; -} - // Note that we never use RAF in this code, because this frame might get render-throttled. // Instead of RAF-ing, we just post an empty message to the parent window, which will // RAF when it is received, and then send us a message to cause the next step to run. @@ -48,15 +42,23 @@ var observer = new IntersectionObserver(function(changes) { entries = entries.concat(changes) }, { rootMargin: "7px" }); observer.observe(target); +observer.observe(emptyTarget); function step0() { entries = entries.concat(observer.takeRecords()); nextStep = step1; var expected = [{ - boundingClientRect: coordinatesToClientRectJson(8, 208, 108, 308), - intersectionRect: coordinatesToClientRectJson(0, 0, 0, 0), + boundingClientRect: [8, 108, 208, 308], + intersectionRect: [0, 0, 0, 0], rootBounds: "null", + isIntersecting: false, target: target.id + }, { + boundingClientRect: [8, 108, 308, 308], + intersectionRect: [0, 0, 0, 0], + rootBounds: "null", + isIntersecting: false, + target: emptyTarget.id }]; port.postMessage({ actual: entries.map(entryToJson), @@ -83,10 +85,17 @@ function step1() { function step2() { entries = entries.concat(observer.takeRecords()); var expected = [{ - boundingClientRect: coordinatesToClientRectJson(-42, 108, 58, 8), - intersectionRect: coordinatesToClientRectJson(0, 108, 58, 8), + boundingClientRect: [8, 108, -42, 58], + intersectionRect: [8, 108, 0, 58], rootBounds: "null", + isIntersecting: true, target: target.id + }, { + boundingClientRect: [8, 108, 58, 58], + intersectionRect: [8, 108, 58, 58], + rootBounds: "null", + isIntersecting: true, + target: emptyTarget.id }]; port.postMessage({ actual: entries.map(entryToJson), @@ -101,10 +110,17 @@ function step2() { function step3() { entries = entries.concat(observer.takeRecords()); var expected = [{ - boundingClientRect: coordinatesToClientRectJson(-42, 108, 58, 8), - intersectionRect: coordinatesToClientRectJson(0, 0, 0, 0), + boundingClientRect: [8, 108, -42, 58], + intersectionRect: [0, 0, 0, 0], rootBounds: "null", + isIntersecting: false, target: target.id + }, { + boundingClientRect: [8, 108, 58, 58], + intersectionRect: [0, 0, 0, 0], + rootBounds: "null", + isIntersecting: false, + target: emptyTarget.id }]; port.postMessage({ actual: entries.map(entryToJson), diff --git a/tests/wpt/web-platform-tests/intersection-observer/resources/intersection-observer-test-utils.js b/tests/wpt/web-platform-tests/intersection-observer/resources/intersection-observer-test-utils.js index 44f794b0883..7db26d72df5 100644 --- a/tests/wpt/web-platform-tests/intersection-observer/resources/intersection-observer-test-utils.js +++ b/tests/wpt/web-platform-tests/intersection-observer/resources/intersection-observer-test-utils.js @@ -178,6 +178,7 @@ function checkJsonEntry(actual, expected) { assert_equals(expected.rootBounds, 'null', 'rootBounds is null'); else checkRect(actual.rootBounds, expected.rootBounds, 'entry.rootBounds'); + assert_equals(actual.isIntersecting, expected.isIntersecting); assert_equals(actual.target, expected.target); } diff --git a/tests/wpt/web-platform-tests/performance-timeline/not-clonable.html b/tests/wpt/web-platform-tests/performance-timeline/not-clonable.html new file mode 100644 index 00000000000..d651776e5f4 --- /dev/null +++ b/tests/wpt/web-platform-tests/performance-timeline/not-clonable.html @@ -0,0 +1,10 @@ +<!doctype html> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script> + const t = async_test("Test that a postMessage of a performance entry fails"); + addEventListener("message", t.step_func_done(e => { + assert_equals(e.data, "PASS"); + })); +</script> +<iframe src="resources/postmessage-entry.html"></iframe> diff --git a/tests/wpt/web-platform-tests/performance-timeline/resources/postmessage-entry.html b/tests/wpt/web-platform-tests/performance-timeline/resources/postmessage-entry.html new file mode 100644 index 00000000000..ef5be73395b --- /dev/null +++ b/tests/wpt/web-platform-tests/performance-timeline/resources/postmessage-entry.html @@ -0,0 +1,17 @@ +<!doctype html> +<script> +addEventListener("load", () => { + const entry = performance.getEntriesByType("navigation")[0]; + try { + window.top.postMessage(entry, "*"); + } catch(error) { + if (error.name == "DataCloneError") { + window.top.postMessage("PASS", "*"); + } else { + window.top.postMessage("FAIL - Wrong exception name: " + error.name, "*"); + } + } + window.top.postMessage("FAIL - No exception thrown", "*"); +}); + +</script> diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/worker-interception.https.html b/tests/wpt/web-platform-tests/service-workers/service-worker/worker-interception.https.html index 204638a44af..302a214ac61 100644 --- a/tests/wpt/web-platform-tests/service-workers/service-worker/worker-interception.https.html +++ b/tests/wpt/web-platform-tests/service-workers/service-worker/worker-interception.https.html @@ -7,6 +7,8 @@ <body> <script> +// ========== Worker main resource interception tests ========== + async function setup_service_worker(t, service_worker_url, scope) { const r = await service_worker_unregister_and_register( t, service_worker_url, scope); @@ -14,8 +16,6 @@ async function setup_service_worker(t, service_worker_url, scope) { await wait_for_state(t, r.installing, 'activated'); } -// ========== Worker main resource interception tests ========== - promise_test(async t => { const worker_url = 'resources/dummy-synthesized-worker.js?dedicated'; const service_worker_url = 'resources/dummy-worker-interceptor.js'; @@ -126,6 +126,15 @@ promise_test(async t => { // ========== Worker subresource interception tests ========== +const scope_for_subresource_interception = 'resources/load_worker.js'; + +promise_test(async t => { + const service_worker_url = 'resources/worker-load-interceptor.js'; + const r = await service_worker_unregister_and_register( + t, service_worker_url, scope_for_subresource_interception); + await wait_for_state(t, r.installing, 'activated'); +}, 'Register a service worker for worker subresource interception tests.'); + // Do not call this function multiple times without waiting for the promise // resolution because this sets new event handlers on |worker|. // TODO(nhiroki): To isolate multiple function calls, use MessagePort instead of @@ -147,58 +156,33 @@ async function request_on_worker(worker, resource_type) { assert_equals(data, 'This load was successfully intercepted.'); } -// TODO(nhiroki): For optimization, register a service worker just once in an -// initial promise test. +async function subresource_test(worker) { + await request_on_worker(worker, 'xhr'); + await request_on_worker(worker, 'fetch'); + await request_on_worker(worker, 'importScripts'); +} -function dedicated_worker_subresource_test(worker_url, scope, description) { - promise_test(async t => { - const service_worker_url = 'resources/worker-load-interceptor.js'; - await setup_service_worker(t, service_worker_url, scope); - const worker = new Worker(worker_url); +promise_test(async t => { + await subresource_test(new Worker('resources/load_worker.js')); +}, 'Requests on a dedicated worker controlled by a service worker.'); - await request_on_worker(worker, 'xhr'); - await request_on_worker(worker, 'fetch'); - await request_on_worker(worker, 'importScripts'); - }, description); -} +promise_test(async t => { + await subresource_test(new SharedWorker('resources/load_worker.js')); +}, 'Requests on a shared worker controlled by a service worker.'); -function shared_worker_subresource_test(worker_url, scope, description) { - promise_test(async t => { - const service_worker_url = 'resources/worker-load-interceptor.js'; - await setup_service_worker(t, service_worker_url, scope); - const worker = new SharedWorker(worker_url); +promise_test(async t => { + await subresource_test(new Worker('resources/nested_load_worker.js')); +}, 'Requests on a dedicated worker nested in a dedicated worker and ' + + 'controlled by a service worker'); - await request_on_worker(worker, 'xhr'); - await request_on_worker(worker, 'fetch'); - await request_on_worker(worker, 'importScripts'); - }, description); -} +promise_test(async t => { + await subresource_test(new SharedWorker('resources/nested_load_worker.js')); +}, 'Requests on a dedicated worker nested in a shared worker and controlled ' + + 'by a service worker'); -dedicated_worker_subresource_test( - 'resources/load_worker.js?dedicated', - 'resources/load_worker.js?dedicated', - 'Requests on a dedicated worker controlled by a service worker.'); - -shared_worker_subresource_test( - 'resources/load_worker.js?shared', - 'resources/load_worker.js?shared', - 'Requests on a shared worker controlled by a service worker.'); - -dedicated_worker_subresource_test( - 'resources/nested_load_worker.js?dedicated', - // TODO(nhiroki): This scope is wrong. This should be - // 'resources/load_worker.js?dedicated'. - 'resources/nested_load_worker.js?dedicated', - 'Requests on a dedicated worker nested in a dedicated worker and ' + - 'controlled by a service worker'); - -shared_worker_subresource_test( - 'resources/nested_load_worker.js?shared', - // TODO(nhiroki): This scope is wrong. This should be - // 'resources/load_worker.js?shared'. - 'resources/nested_load_worker.js?shared', - 'Requests on a dedicated worker nested in a shared worker and controlled ' + - 'by a service worker'); +promise_test(async t => { + await service_worker_unregister(t, scope_for_subresource_interception); +}, 'Unregister a service worker for subresource interception tests.'); </script> </body> diff --git a/tests/wpt/web-platform-tests/shadow-dom/directionality-002-ref.html b/tests/wpt/web-platform-tests/shadow-dom/directionality-002-ref.html new file mode 100644 index 00000000000..454b2fecabc --- /dev/null +++ b/tests/wpt/web-platform-tests/shadow-dom/directionality-002-ref.html @@ -0,0 +1,6 @@ +<!doctype html> +<title>CSS Test Reference</title> +<link rel="author" title="Emilio Cobos Álvarez" href="mailto:emilio@crisal.io"> +<link rel="author" title="Mozilla" href="https://mozilla.org"> +<body dir="rtl"> +<div style="width: 100px; height: 100px; background: green"></div> diff --git a/tests/wpt/web-platform-tests/shadow-dom/directionality-002.tentative.html b/tests/wpt/web-platform-tests/shadow-dom/directionality-002.tentative.html new file mode 100644 index 00000000000..7ff036194ba --- /dev/null +++ b/tests/wpt/web-platform-tests/shadow-dom/directionality-002.tentative.html @@ -0,0 +1,25 @@ +<!doctype html> +<title>Directionality is properly computed for slotted children</title> +<link rel="author" title="Emilio Cobos Álvarez" href="mailto:emilio@crisal.io"> +<link rel="author" title="Mozilla" href="https://mozilla.org"> +<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1562425"> +<link rel="match" href="directionality-002-ref.html"> +<style> + .slotted { + width: 100px; + height: 100px; + background: red; + } + .slotted:dir(rtl) { + background: green; + } +</style> +<body dir="rtl"> +<script> + let root = document.createElement("div") + let slotted = document.createElement("div"); + slotted.className = "slotted"; + root.appendChild(slotted); + root.attachShadow({ mode: "open" }).appendChild(document.createElement("slot")); + document.body.appendChild(root); +</script> diff --git a/tests/wpt/web-platform-tests/svg/animations/correct-events-for-short-animations-with-syncbases.html b/tests/wpt/web-platform-tests/svg/animations/correct-events-for-short-animations-with-syncbases.html new file mode 100644 index 00000000000..19e7eef8c1c --- /dev/null +++ b/tests/wpt/web-platform-tests/svg/animations/correct-events-for-short-animations-with-syncbases.html @@ -0,0 +1,52 @@ +<!DOCTYPE html> + +<meta charset="utf-8"> +<title>Correct events for short animations with syncbases</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<link rel="author" title="Edvard Thörnros" href="mailto:edvardt@opera.com"> +<link rel="help" href="https://svgwg.org/specs/animations/#TimingAttributes"> + +<svg viewBox="0 0 250 50" xmlns="http://www.w3.org/2000/svg"> + <g id="a" opacity="0"> + <animate attributeName="opacity" from="0" to="1" begin="0ms;last.end+100ms" dur="10ms" fill="freeze" + id="first"/> + <animate attributeName="opacity" from="1" to="0" begin="last.end" dur="10ms" fill="freeze"/> + <rect x="0" y="0" width="50" height="50" fill="#AA0"/> + </g> + <g id="b" opacity="0"> + <animate attributeName="opacity" from="1" to="1" begin="first.end+10ms" dur="10ms" fill="freeze" + id="last" onend="onend_filling()"/> + <animate attributeName="opacity" from="1" to="0" begin="last.end+1ms" dur="10ms" fill="freeze" + onbegin="onend_clearing()"/> + <rect x="50" y="0" width="50" height="50" fill="#AA0"/> + </g> +</svg> +<script> + let onend_clearing = null; + let onend_filling = null; + + async_test(t => { + let svg = document.querySelector("svg"); + // Deliberate no a + let b = document.querySelector("#b"); + let passed = false; + let triggers = 0; + let filling_steps = 0; + let runs = 3; // Issue 379751 broke after 2 cycles, hence this is a 3. + onend_filling = t.step_func(() => { + filling_steps++; + if (filling_steps < (runs + 1)) return; + svg.pauseAnimations(); + assert_unreached("Fired too many onend events."); + }); + onend_clearing = t.step_func(() => { + triggers++; + if (triggers != runs) return; + svg.pauseAnimations(); + // We don't check the first element, since it might have started fading in + assert_not_equals(window.getComputedStyle(b, null).opacity, "1"); + t.done(); + }); + }); +</script> diff --git a/tests/wpt/web-platform-tests/svg/animations/scripted/paced-value-animation-overwrites-keyTimes.html b/tests/wpt/web-platform-tests/svg/animations/scripted/paced-value-animation-overwrites-keyTimes.html new file mode 100644 index 00000000000..56f67dc5ed1 --- /dev/null +++ b/tests/wpt/web-platform-tests/svg/animations/scripted/paced-value-animation-overwrites-keyTimes.html @@ -0,0 +1,37 @@ +<!doctype html> +<title>Paced value animation doesn't overwrite keyTimes</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> + +<meta charset="utf-8"> +<link rel="author" title="Edvard Thörnros" href="mailto:edvardt@opera.com"> +<link rel="help" href="https://www.w3.org/TR/SMIL20/animation.html#animationNS-animateMotionElement"> +<link rel="bug" href="https://bugs.chromium.org/p/chromium/issues/detail?id=231525&hotlist_id=5524&sort=%20rank%20-ID"> + +<svg id="svg" xmlns="http://www.w3.org/2000/svg" width="500" height="500"> + <rect x="151" y="1" width="98" height="98" fill="red"/> + <rect id="rect" x="0" y="0" width="100" height="100" fill="green"> + <animate id="animate1" attributeName="x" dur="10s" calcMode="paced" values="100; 150; 200;" keyTimes="0; 0.2; 1"/> + </rect> +</svg> + +<script> + async_test(function(t) { + window.onload = t.step_func(function() { + let svg = document.getElementById('svg'); + let animate1 = document.getElementById('animate1'); + let rect = document.getElementById('rect'); + t.step_timeout(function() { + // animate1's keyTimes should not be affected by starting with calcMode=paced + animate1.setAttribute('calcMode', 'linear'); + svg.pauseAnimations(); + svg.setCurrentTime(2); + window.requestAnimationFrame(t.step_func(function() { + window.requestAnimationFrame(t.step_func_done(function() { + assert_approx_equals(rect.x.animVal.value, 150, 5); + })); + })); + }, 10); + }); + }); +</script> diff --git a/tests/wpt/web-platform-tests/svg/text/parsing/text-anchor-computed.svg b/tests/wpt/web-platform-tests/svg/text/parsing/text-anchor-computed.svg new file mode 100644 index 00000000000..e11b23fc231 --- /dev/null +++ b/tests/wpt/web-platform-tests/svg/text/parsing/text-anchor-computed.svg @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<svg xmlns="http://www.w3.org/2000/svg" + xmlns:h="http://www.w3.org/1999/xhtml" + width="800px" height="800px"> + <title>SVG Text: getComputedStyle().textAnchor</title> + <metadata> + <h:link rel="help" href="https://svgwg.org/svg2-draft/text.html#TextAnchorProperty"/> + <h:meta name="assert" content="text-anchor computed value is the specified keyword."/> + </metadata> + <text id="target"></text> + <h:script src="/resources/testharness.js"/> + <h:script src="/resources/testharnessreport.js"/> + <h:script src="/css/support/computed-testcommon.js"/> + <script><![CDATA[ + +test_computed_value("text-anchor", "start"); +test_computed_value("text-anchor", "middle"); +test_computed_value("text-anchor", "end"); + + ]]></script> +</svg> diff --git a/tests/wpt/web-platform-tests/tools/ci/tests/test_update_pr_preview.py b/tests/wpt/web-platform-tests/tools/ci/tests/test_update_pr_preview.py index 3202a1a2df6..056add73a92 100644 --- a/tests/wpt/web-platform-tests/tools/ci/tests/test_update_pr_preview.py +++ b/tests/wpt/web-platform-tests/tools/ci/tests/test_update_pr_preview.py @@ -6,12 +6,9 @@ except ImportError: import json import os import subprocess -import sys import tempfile import threading -import pytest - subject = os.path.join( os.path.dirname(os.path.abspath(__file__)), '..', 'update_pr_preview.py' ) @@ -74,7 +71,12 @@ def assert_fail(returncode): def run(event_data, responses=None): - event_data_file = tempfile.mkstemp()[1] + fd, event_data_file = tempfile.mkstemp(text=True) + handle = os.fdopen(fd, 'w') + try: + json.dump(event_data, handle) + finally: + handle.close() env = { 'GITHUB_EVENT_PATH': event_data_file, 'GITHUB_REPOSITORY': 'test-org/test-repo' @@ -85,9 +87,6 @@ def run(event_data, responses=None): threading.Thread(target=lambda: server.serve_forever()).start() try: - with open(event_data_file, 'w') as handle: - json.dump(event_data, handle) - child = subprocess.Popen( ['python', subject, 'http://{}:{}'.format(test_host, test_port)], env=env @@ -174,8 +173,6 @@ def default_data(action): } -@pytest.mark.xfail(sys.platform == "win32", - reason="https://github.com/web-platform-tests/wpt/issues/18255") def test_close_active_with_label(): event_data = default_data('closed') event_data['pull_request']['closed_at'] = '2019-07-05' @@ -191,8 +188,6 @@ def test_close_active_with_label(): assert Requests.delete_ref_labeled not in requests -@pytest.mark.xfail(sys.platform == "win32", - reason="https://github.com/web-platform-tests/wpt/issues/18255") def test_close_active_with_label_error(): event_data = default_data('closed') event_data['pull_request']['closed_at'] = '2019-07-05' @@ -208,8 +203,6 @@ def test_close_active_with_label_error(): assert_fail(returncode) -@pytest.mark.xfail(sys.platform == "win32", - reason="https://github.com/web-platform-tests/wpt/issues/18255") def test_close_active_without_label(): event_data = default_data('closed') event_data['pull_request']['closed_at'] = '2019-07-05' @@ -220,8 +213,6 @@ def test_close_active_without_label(): assert [Requests.delete_ref_open] == requests -@pytest.mark.xfail(sys.platform == "win32", - reason="https://github.com/web-platform-tests/wpt/issues/18255") def test_open_with_label(): event_data = default_data('opened') event_data['pull_request']['labels'].append( @@ -235,8 +226,6 @@ def test_open_with_label(): assert Requests.update_ref_labeled in requests -@pytest.mark.xfail(sys.platform == "win32", - reason="https://github.com/web-platform-tests/wpt/issues/18255") def test_open_without_label_for_collaborator(): event_data = default_data('opened') responses = { @@ -253,8 +242,6 @@ def test_open_without_label_for_collaborator(): assert Requests.create_ref_labeled in requests -@pytest.mark.xfail(sys.platform == "win32", - reason="https://github.com/web-platform-tests/wpt/issues/18255") def test_open_without_label_for_non_collaborator(): event_data = default_data('opened') responses = { @@ -267,8 +254,6 @@ def test_open_without_label_for_non_collaborator(): assert [Requests.read_collaborator] == requests -@pytest.mark.xfail(sys.platform == "win32", - reason="https://github.com/web-platform-tests/wpt/issues/18255") def test_add_unrelated_label(): event_data = default_data('labeled') event_data['label'] = {'name': 'foobar'} @@ -280,8 +265,6 @@ def test_add_unrelated_label(): assert len(requests) == 0 -@pytest.mark.xfail(sys.platform == "win32", - reason="https://github.com/web-platform-tests/wpt/issues/18255") def test_add_active_label(): event_data = default_data('labeled') event_data['label'] = {'name': 'pull-request-has-preview'} @@ -300,8 +283,6 @@ def test_add_active_label(): assert Requests.create_ref_labeled in requests -@pytest.mark.xfail(sys.platform == "win32", - reason="https://github.com/web-platform-tests/wpt/issues/18255") def test_add_active_label_to_closed(): event_data = default_data('labeled') event_data['pull_request']['closed_at'] = '2019-07-05' @@ -321,8 +302,6 @@ def test_add_active_label_to_closed(): assert Requests.create_ref_labeled in requests -@pytest.mark.xfail(sys.platform == "win32", - reason="https://github.com/web-platform-tests/wpt/issues/18255") def test_remove_unrelated_label(): event_data = default_data('unlabeled') event_data['label'] = {'name': 'foobar'} @@ -333,8 +312,6 @@ def test_remove_unrelated_label(): assert len(requests) == 0 -@pytest.mark.xfail(sys.platform == "win32", - reason="https://github.com/web-platform-tests/wpt/issues/18255") def test_remove_active_label(): event_data = default_data('unlabeled') event_data['label'] = {'name': 'pull-request-has-preview'} @@ -349,8 +326,6 @@ def test_remove_active_label(): assert Requests.delete_ref_open not in requests -@pytest.mark.xfail(sys.platform == "win32", - reason="https://github.com/web-platform-tests/wpt/issues/18255") def test_remove_active_label_from_closed(): event_data = default_data('unlabeled') event_data['pull_request']['closed_at'] = '2019-07-05' @@ -366,8 +341,6 @@ def test_remove_active_label_from_closed(): assert Requests.delete_ref_open not in requests -@pytest.mark.xfail(sys.platform == "win32", - reason="https://github.com/web-platform-tests/wpt/issues/18255") def test_synchronize_without_label(): event_data = default_data('synchronize') @@ -377,8 +350,6 @@ def test_synchronize_without_label(): assert len(requests) == 0 -@pytest.mark.xfail(sys.platform == "win32", - reason="https://github.com/web-platform-tests/wpt/issues/18255") def test_synchronize_with_label(): event_data = default_data('synchronize') event_data['pull_request']['labels'].append( @@ -392,8 +363,6 @@ def test_synchronize_with_label(): assert Requests.update_ref_labeled in requests -@pytest.mark.xfail(sys.platform == "win32", - reason="https://github.com/web-platform-tests/wpt/issues/18255") def test_unrecognized_action(): event_data = default_data('assigned') diff --git a/tests/wpt/web-platform-tests/web-nfc/NDEFMessage_constructor.https.html b/tests/wpt/web-platform-tests/web-nfc/NDEFMessage_constructor.https.html index 5be4571493a..24d5046f483 100644 --- a/tests/wpt/web-platform-tests/web-nfc/NDEFMessage_constructor.https.html +++ b/tests/wpt/web-platform-tests/web-nfc/NDEFMessage_constructor.https.html @@ -23,9 +23,13 @@ assert_equals(message.records.length, 1, 'one text record'); assert_equals(message.records[0].recordType, 'text', 'messageType'); assert_equals(message.records[0].mediaType, 'text/plain', 'mediaType'); - assert_true(typeof message.records[0].data() === 'string'); - assert_equals(message.records[0].data(), test_text_data, - 'data() contains the same text content'); + assert_true(typeof message.records[0].toText() === 'string'); + assert_equals(message.records[0].toText(), test_text_data, + 'toText() contains the same text content'); + assert_equals(message.records[0].toArrayBuffer(), null, + 'toArrayBuffer() returns null'); + assert_equals(message.records[0].toJSON(), undefined, + 'toJSON() returns undefined'); }, 'NDEFMessage constructor with a text record'); </script> diff --git a/tests/wpt/web-platform-tests/web-nfc/NDEFRecord_constructor.https.html b/tests/wpt/web-platform-tests/web-nfc/NDEFRecord_constructor.https.html index e2e2c455072..2264815780b 100644 --- a/tests/wpt/web-platform-tests/web-nfc/NDEFRecord_constructor.https.html +++ b/tests/wpt/web-platform-tests/web-nfc/NDEFRecord_constructor.https.html @@ -15,7 +15,9 @@ const record = new NDEFRecord(null); assert_equals(record.recordType.length, 0, 'empty recordType'); assert_equals(record.mediaType.length, 0, 'empty mediaType'); - assert_equals(record.data(), null, 'null data'); + assert_equals(record.toText().length, 0, 'toText() gets an empty string'); + assert_equals(record.toArrayBuffer(), null, 'toArrayBuffer() returns null'); + assert_equals(record.toJSON(), undefined, 'toJSON() returns undefined'); }, 'NDEFRecord constructor with null init dict'); test(() => { @@ -27,27 +29,28 @@ assert_equals(record.recordType, 'opaque', 'recordType'); assert_equals(record.mediaType, 'application/octet-stream', 'mediaType'); - const data_1 = record.data(); + const data_1 = record.toArrayBuffer(); assert_true(data_1 instanceof ArrayBuffer); - assert_not_equals(data_1, buffer, 'data() returns a new object'); + assert_not_equals(data_1, buffer, 'toArrayBuffer() returns a new object'); assert_array_equals(new Uint8Array(data_1), original_data, - 'data() has the same content with the original buffer'); + 'toArrayBuffer() has the same content with the original buffer'); - const data_2 = record.data(); + const data_2 = record.toArrayBuffer(); assert_true(data_2 instanceof ArrayBuffer); - assert_not_equals(data_2, data_1, 'data() again returns another new object'); + assert_not_equals(data_2, data_1, + 'toArrayBuffer() again returns another new object'); assert_array_equals(new Uint8Array(data_2), original_data, - 'data() has the same content with the original buffer'); + 'toArrayBuffer() has the same content with the original buffer'); buffer_view.set([4, 3, 2, 1]); - const data_3 = record.data(); + const data_3 = record.toArrayBuffer(); assert_true(data_3 instanceof ArrayBuffer); assert_array_equals(new Uint8Array(data_1), original_data, - 'Modifying the original buffer does not affect data() content'); + 'Modifying the original buffer does not affect toArrayBuffer() content'); assert_array_equals(new Uint8Array(data_2), original_data, - 'Modifying the original buffer does not affect data() content'); + 'Modifying the original buffer does not affect toArrayBuffer() content'); assert_array_equals(new Uint8Array(data_3), original_data, - 'Modifying the original buffer does not affect data() content'); + 'Modifying the original buffer does not affect toArrayBuffer() content'); }, 'NDEFRecord constructor with opaque data'); test(() => { @@ -55,17 +58,18 @@ assert_equals(record.recordType, 'json', 'recordType'); assert_equals(record.mediaType, 'application/json', 'mediaType'); - const data_1 = record.data(); + const data_1 = record.toJSON(); assert_true(typeof data_1 === 'object'); - assert_not_equals(data_1, test_json_data, 'data() returns a new object'); + assert_not_equals(data_1, test_json_data, 'toJSON() returns a new object'); assert_object_equals(data_1, test_json_data, - 'data() has the same content with the original dictionary'); + 'toJSON() has the same content with the original dictionary'); - const data_2 = record.data(); + const data_2 = record.toJSON(); assert_true(typeof data_2 === 'object'); - assert_not_equals(data_2, data_1, 'data() again returns another new object'); + assert_not_equals(data_2, data_1, + 'toJSON() again returns another new object'); assert_object_equals(data_2, test_json_data, - 'data() has the same content with the original dictionary'); + 'toJSON() has the same content with the original dictionary'); }, 'NDEFRecord constructor with json data'); </script> diff --git a/tests/wpt/web-platform-tests/web-nfc/NFCReadingEvent_constructor.https.html b/tests/wpt/web-platform-tests/web-nfc/NFCReadingEvent_constructor.https.html index c2f9cef6e50..20585176b7f 100644 --- a/tests/wpt/web-platform-tests/web-nfc/NFCReadingEvent_constructor.https.html +++ b/tests/wpt/web-platform-tests/web-nfc/NFCReadingEvent_constructor.https.html @@ -34,7 +34,7 @@ const event = new NFCReadingEvent('type', {serialNumber: '', message: message}); assert_equals(event.type, 'type', 'type'); assert_equals(event.serialNumber, '', 'serialNumber'); - assertWebNDEFMessagesEqual(event.message, message); + assertWebNDEFMessagesEqual(event.message, new NDEFMessage(message)); }, 'NFCReadingEvent constructor with valid parameters'); </script> diff --git a/tests/wpt/web-platform-tests/web-nfc/resources/nfc-helpers.js b/tests/wpt/web-platform-tests/web-nfc/resources/nfc-helpers.js index fc72fa2de89..76c878ae094 100644 --- a/tests/wpt/web-platform-tests/web-nfc/resources/nfc-helpers.js +++ b/tests/wpt/web-platform-tests/web-nfc/resources/nfc-helpers.js @@ -136,27 +136,39 @@ function assertNDEFMessagesEqual(providedMessage, receivedMessage) { compareNDEFRecords(provided.records[i], receivedMessage.data[i]); } -// Used to compare two WebNFC messages, one that is provided to mock NFC -// service and another that is received from NFCWriter.onreading() EventHandler. -function assertWebNDEFMessagesEqual(a, b) { - if (b.url) assert_equals(a.url, b.url); - assert_equals(a.records.length, b.records.length); - for(let i in a.records) { - let recordA = a.records[i]; - let recordB = b.records[i]; - assert_equals(recordA.recordType, recordB.recordType); - assert_equals(recordA.mediaType, recordB.mediaType); - if (recordA.data() == null) { - assert_true(recordB.data == null); - } else if (recordA.data() instanceof ArrayBuffer) { - assert_array_equals(new Uint8Array(recordA.data()), - new Uint8Array(recordB.data)); - } else if (typeof recordA.data() === 'object') { - assert_object_equals(recordA.data(), recordB.data); - } else if (typeof recordA.data() === 'number' - || typeof recordA.data() === 'string') { - assert_true(recordA.data() == recordB.data); +// Used to compare two NDEFMessage, one that is received from +// NFCWriter.onreading() EventHandler and another that is provided to mock NFC +// service. +function assertWebNDEFMessagesEqual(message, expectedMessage) { + if (expectedMessage.url) + assert_equals(message.url, expectedMessage.url); + + assert_equals(message.records.length, expectedMessage.records.length); + + for(let i in message.records) { + let record = message.records[i]; + let expectedRecord = expectedMessage.records[i]; + assert_equals(record.recordType, expectedRecord.recordType); + assert_equals(record.mediaType, expectedRecord.mediaType); + + // Compares record data + assert_equals(record.toText(), expectedRecord.toText()); + assert_array_equals(new Uint8Array(record.toArrayBuffer()), + new Uint8Array(expectedRecord.toArrayBuffer())); + let json; + try { + json = record.toJSON(); + } catch (e) { + } + let expectedJson; + try { + expectedJson = expectedRecord.toJSON(); + } catch (e) { } + if (json === undefined) + assert_equals(expectedJson, undefined); + else + assert_object_equals(json, expectedJson); } } @@ -176,7 +188,7 @@ function testNFCReaderOptions(message, readOptions, unmatchedReadOptions, desc) const promise = readerWatcher.wait_for("reading").then(event => { reader1.stop(); reader2.stop(); - assertWebNDEFMessagesEqual(event.message, message); + assertWebNDEFMessagesEqual(event.message, new NDEFMessage(message)); }); // NFCReader#start() asynchronously dispatches the onreading event. reader2.start(); @@ -192,7 +204,7 @@ function testReadingMultiMessages(message, readOptions, unmatchedMessage, const promise = readerWatcher.wait_for("reading").then(event => { reader.stop(); - assertWebNDEFMessagesEqual(event.message, message); + assertWebNDEFMessagesEqual(event.message, new NDEFMessage(message)); }); // NFCReader#start() asynchronously dispatches the onreading event. reader.start(); diff --git a/tests/wpt/web-platform-tests/webgpu/cts.html b/tests/wpt/web-platform-tests/webgpu/cts.html new file mode 100644 index 00000000000..661060fcd7b --- /dev/null +++ b/tests/wpt/web-platform-tests/webgpu/cts.html @@ -0,0 +1,34 @@ +<!-- + This test suite is built from the TypeScript sources at: + https://github.com/gpuweb/cts +--> +<!doctype html> +<title>WebGPU CTS</title> +<meta charset=utf-8> +<link rel="help" href="https://gpuweb.github.io/gpuweb/"> + +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<style> +#results { + font-family: monospace; + width: 100%; + height: 15em; +} +</style> + +<textarea id=results></textarea> +<script type=module src="runtime/wpt.js"></script> + +<meta name="variant" content="?q=cts:buffers/create_mapped:"> +<meta name="variant" content="?q=cts:buffers/map:"> +<meta name="variant" content="?q=cts:buffers/map_detach:"> +<meta name="variant" content="?q=cts:buffers/map_oom:"> +<meta name="variant" content="?q=cts:canvas/context_creation:"> +<meta name="variant" content="?q=cts:command_buffer/basic:"> +<meta name="variant" content="?q=cts:command_buffer/compute/basic:"> +<meta name="variant" content="?q=cts:command_buffer/copies:"> +<meta name="variant" content="?q=cts:command_buffer/render/basic:"> +<meta name="variant" content="?q=cts:command_buffer/render/rendering:"> +<meta name="variant" content="?q=cts:examples:"> +<meta name="variant" content="?q=cts:fences:"> diff --git a/tests/wpt/web-platform-tests/webgpu/framework/allowed_characters.js b/tests/wpt/web-platform-tests/webgpu/framework/allowed_characters.js new file mode 100644 index 00000000000..f49e19641d9 --- /dev/null +++ b/tests/wpt/web-platform-tests/webgpu/framework/allowed_characters.js @@ -0,0 +1,7 @@ +/** +* AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts +**/ + +// It may be OK to add more allowed characters here. +export const allowedTestNameCharacters = 'a-zA-Z0-9/_ '; +//# sourceMappingURL=allowed_characters.js.map
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/webgpu/framework/collect_garbage.js b/tests/wpt/web-platform-tests/webgpu/framework/collect_garbage.js new file mode 100644 index 00000000000..5589fa7deb3 --- /dev/null +++ b/tests/wpt/web-platform-tests/webgpu/framework/collect_garbage.js @@ -0,0 +1,48 @@ +/** +* AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts +**/ + +export function attemptGarbageCollection() { + const w = window; + + if (w.GCController) { + w.GCController.collect(); + return; + } + + if (w.opera && w.opera.collect) { + w.opera.collect(); + return; + } + + try { + w.QueryInterface(Components.interfaces.nsIInterfaceRequestor).getInterface(Components.interfaces.nsIDOMWindowUtils).garbageCollect(); + return; + } catch (e) {} + + if (w.gc) { + w.gc(); + return; + } + + if (w.CollectGarbage) { + w.CollectGarbage(); + return; + } + + let i; + + function gcRec(n) { + if (n < 1) return; + let temp = { + i: 'ab' + i + i / 100000 + }; + temp = temp + 'foo'; + gcRec(n - 1); + } + + for (i = 0; i < 1000; i++) { + gcRec(10); + } +} +//# sourceMappingURL=collect_garbage.js.map
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/webgpu/framework/fixture.js b/tests/wpt/web-platform-tests/webgpu/framework/fixture.js new file mode 100644 index 00000000000..d77ede708f0 --- /dev/null +++ b/tests/wpt/web-platform-tests/webgpu/framework/fixture.js @@ -0,0 +1,105 @@ +/** +* AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts +**/ + +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + +// A Fixture is a class used to instantiate each test case at run time. +// A new instance of the Fixture is created for every single test case +// (i.e. every time the test function is run). +export class Fixture { + constructor(rec, params) { + _defineProperty(this, "params", void 0); + + _defineProperty(this, "rec", void 0); + + _defineProperty(this, "numOutstandingAsyncExpectations", 0); + + this.rec = rec; + this.params = params; + } // This has to be a member function instead of an async `createFixture` function, because + // we need to be able to ergonomically override it in subclasses. + + + async init() {} + + log(msg) { + this.rec.log(msg); + } + + finalize() { + if (this.numOutstandingAsyncExpectations !== 0) { + throw new Error('there were outstanding asynchronous expectations (e.g. shouldReject) at the end of the test'); + } + } + + warn(msg) { + this.rec.warn(msg); + } + + fail(msg) { + this.rec.fail(msg); + } + + ok(msg) { + const m = msg ? ': ' + msg : ''; + this.log('OK' + m); + } + + async asyncExpectation(fn) { + this.numOutstandingAsyncExpectations++; + await fn(); + this.numOutstandingAsyncExpectations--; + } + + expectErrorValue(expectedName, ex, m) { + if (!(ex instanceof Error)) { + this.fail('THREW NON-ERROR'); + return; + } + + const actualName = ex.name; + + if (actualName !== expectedName) { + this.fail(`THREW ${actualName} INSTEAD OF ${expectedName}${m}`); + } else { + this.ok(`threw ${actualName}${m}`); + } + } + + async shouldReject(expectedName, p, msg) { + this.asyncExpectation(async () => { + const m = msg ? ': ' + msg : ''; + + try { + await p; + this.fail('DID NOT THROW' + m); + } catch (ex) { + this.expectErrorValue(expectedName, ex, m); + } + }); + } + + shouldThrow(expectedName, fn, msg) { + const m = msg ? ': ' + msg : ''; + + try { + fn(); + this.fail('DID NOT THROW' + m); + } catch (ex) { + this.expectErrorValue(expectedName, ex, m); + } + } + + expect(cond, msg) { + if (cond) { + this.ok(msg); + } else { + this.rec.fail(msg); + } + + return cond; + } + +} +//# sourceMappingURL=fixture.js.map
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/webgpu/framework/gpu/implementation.js b/tests/wpt/web-platform-tests/webgpu/framework/gpu/implementation.js new file mode 100644 index 00000000000..726eeab4eed --- /dev/null +++ b/tests/wpt/web-platform-tests/webgpu/framework/gpu/implementation.js @@ -0,0 +1,19 @@ +/** +* AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts +**/ + +/// <reference types="@webgpu/types" /> +let impl = undefined; +export function getGPU() { + if (impl) { + return impl; + } + + if (typeof navigator === 'undefined' || navigator.gpu === undefined) { + throw new Error('No WebGPU implementation found'); + } + + impl = navigator.gpu; + return impl; +} +//# sourceMappingURL=implementation.js.map
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/webgpu/framework/id.js b/tests/wpt/web-platform-tests/webgpu/framework/id.js new file mode 100644 index 00000000000..8e5db2c7d7f --- /dev/null +++ b/tests/wpt/web-platform-tests/webgpu/framework/id.js @@ -0,0 +1,4 @@ +/** +* AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts +**/ +//# sourceMappingURL=id.js.map
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/webgpu/framework/index.js b/tests/wpt/web-platform-tests/webgpu/framework/index.js new file mode 100644 index 00000000000..93ee2096399 --- /dev/null +++ b/tests/wpt/web-platform-tests/webgpu/framework/index.js @@ -0,0 +1,9 @@ +/** +* AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts +**/ + +export * from './fixture.js'; +export * from './params/index.js'; +export * from './test_group.js'; +export * from './util/index.js'; +//# sourceMappingURL=index.js.map
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/webgpu/framework/listing.js b/tests/wpt/web-platform-tests/webgpu/framework/listing.js new file mode 100644 index 00000000000..856afa99c36 --- /dev/null +++ b/tests/wpt/web-platform-tests/webgpu/framework/listing.js @@ -0,0 +1,4 @@ +/** +* AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts +**/ +//# sourceMappingURL=listing.js.map
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/webgpu/framework/loader.js b/tests/wpt/web-platform-tests/webgpu/framework/loader.js new file mode 100644 index 00000000000..c9cd20f307c --- /dev/null +++ b/tests/wpt/web-platform-tests/webgpu/framework/loader.js @@ -0,0 +1,52 @@ +/** +* AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts +**/ + +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + +import { loadFilter } from './test_filter/index.js'; + +function* concat(lists) { + for (const specs of lists) { + yield* specs; + } +} + +class DefaultTestFileLoader { + async listing(suite) { + return (await import(`../suites/${suite}/index.js`)).listing; + } + + import(path) { + return import('../suites/' + path); + } + +} + +export class TestLoader { + constructor(fileLoader = new DefaultTestFileLoader()) { + _defineProperty(this, "fileLoader", void 0); + + this.fileLoader = fileLoader; + } // TODO: Test + + + async loadTestsFromQuery(query) { + return this.loadTests(new URLSearchParams(query).getAll('q')); + } // TODO: Test + // TODO: Probably should actually not exist at all, just use queries on cmd line too. + + + async loadTestsFromCmdLine(filters) { + // In actual URL queries (?q=...), + represents a space. But decodeURIComponent doesn't do this, + // so do it manually. (+ is used over %20 for readability.) (See also encodeSelectively.) + return this.loadTests(filters.map(f => decodeURIComponent(f.replace(/\+/g, '%20')))); + } + + async loadTests(filters) { + const loads = filters.map(f => loadFilter(this.fileLoader, f)); + return concat((await Promise.all(loads))); + } + +} +//# sourceMappingURL=loader.js.map
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/webgpu/framework/logger.js b/tests/wpt/web-platform-tests/webgpu/framework/logger.js new file mode 100644 index 00000000000..8aa332c571a --- /dev/null +++ b/tests/wpt/web-platform-tests/webgpu/framework/logger.js @@ -0,0 +1,121 @@ +/** +* AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts +**/ + +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + +import { makeQueryString } from './url_query.js'; +import { getStackTrace, now } from './util/index.js'; +import { version } from './version.js'; +export class Logger { + constructor() { + _defineProperty(this, "results", []); + } + + record(spec) { + const result = { + spec: makeQueryString(spec), + cases: [] + }; + this.results.push(result); + return [new TestSpecRecorder(result), result]; + } + + asJSON(space) { + return JSON.stringify({ + version, + results: this.results + }, undefined, space); + } + +} +export class TestSpecRecorder { + constructor(result) { + _defineProperty(this, "result", void 0); + + this.result = result; + } + + record(test, params) { + const result = { + test, + params, + status: 'running', + timems: -1 + }; + this.result.cases.push(result); + return [new TestCaseRecorder(result), result]; + } + +} +export class TestCaseRecorder { + constructor(result) { + _defineProperty(this, "result", void 0); + + _defineProperty(this, "failed", false); + + _defineProperty(this, "warned", false); + + _defineProperty(this, "startTime", -1); + + _defineProperty(this, "logs", []); + + this.result = result; + } + + start() { + this.startTime = now(); + this.logs = []; + this.failed = false; + this.warned = false; + } + + finish() { + if (this.startTime < 0) { + throw new Error('finish() before start()'); + } + + const endTime = now(); // Round to next microsecond to avoid storing useless .xxxx00000000000002 in results. + + this.result.timems = Math.ceil((endTime - this.startTime) * 1000) / 1000; + this.result.status = this.failed ? 'fail' : this.warned ? 'warn' : 'pass'; + this.result.logs = this.logs; + } + + log(msg) { + this.logs.push(msg); + } + + warn(msg) { + this.warned = true; + let m = 'WARN'; + + if (msg) { + m += ': ' + msg; + } + + m += ' ' + getStackTrace(new Error()); + this.log(m); + } + + fail(msg) { + this.failed = true; + let m = 'FAIL'; + + if (msg) { + m += ': ' + msg; + } + + m += ' ' + getStackTrace(new Error()); + this.log(m); + } + + threw(e) { + this.failed = true; + let m = 'EXCEPTION'; + m += ' ' + getStackTrace(e); + this.log(m); + } + +} +//# sourceMappingURL=logger.js.map
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/webgpu/framework/params/combine.js b/tests/wpt/web-platform-tests/webgpu/framework/params/combine.js new file mode 100644 index 00000000000..d85e81dc885 --- /dev/null +++ b/tests/wpt/web-platform-tests/webgpu/framework/params/combine.js @@ -0,0 +1,58 @@ +/** +* AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts +**/ + +let _Symbol$iterator; + +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + +export function pcombine(params) { + return new PCombine(params); +} + +function merge(a, b) { + for (const key of Object.keys(a)) { + if (b.hasOwnProperty(key)) { + throw new Error('Duplicate key: ' + key); + } + } + + return { ...a, + ...b + }; +} + +function* cartesian(iters) { + if (iters.length === 0) { + return; + } + + if (iters.length === 1) { + yield* iters[0]; + return; + } + + const [as, ...rest] = iters; + + for (const a of as) { + for (const b of cartesian(rest)) { + yield merge(a, b); + } + } +} + +_Symbol$iterator = Symbol.iterator; + +class PCombine { + constructor(params) { + _defineProperty(this, "params", void 0); + + this.params = params; + } + + [_Symbol$iterator]() { + return cartesian(this.params); + } + +} +//# sourceMappingURL=combine.js.map
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/webgpu/framework/params/exclude.js b/tests/wpt/web-platform-tests/webgpu/framework/params/exclude.js new file mode 100644 index 00000000000..23bc6ee0f69 --- /dev/null +++ b/tests/wpt/web-platform-tests/webgpu/framework/params/exclude.js @@ -0,0 +1,34 @@ +/** +* AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts +**/ + +let _Symbol$iterator; + +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + +import { paramsEquals } from './index.js'; +export function pexclude(params, exclude) { + return new PExclude(params, exclude); +} +_Symbol$iterator = Symbol.iterator; + +class PExclude { + constructor(cases, exclude) { + _defineProperty(this, "cases", void 0); + + _defineProperty(this, "exclude", void 0); + + this.cases = cases; + this.exclude = Array.from(exclude); + } + + *[_Symbol$iterator]() { + for (const p of this.cases) { + if (this.exclude.every(e => !paramsEquals(p, e))) { + yield p; + } + } + } + +} +//# sourceMappingURL=exclude.js.map
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/webgpu/framework/params/filter.js b/tests/wpt/web-platform-tests/webgpu/framework/params/filter.js new file mode 100644 index 00000000000..6a5d99e765f --- /dev/null +++ b/tests/wpt/web-platform-tests/webgpu/framework/params/filter.js @@ -0,0 +1,33 @@ +/** +* AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts +**/ + +let _Symbol$iterator; + +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + +export function pfilter(cases, pred) { + return new PFilter(cases, pred); +} +_Symbol$iterator = Symbol.iterator; + +class PFilter { + constructor(cases, pred) { + _defineProperty(this, "cases", void 0); + + _defineProperty(this, "pred", void 0); + + this.cases = cases; + this.pred = pred; + } + + *[_Symbol$iterator]() { + for (const p of this.cases) { + if (this.pred(p)) { + yield p; + } + } + } + +} +//# sourceMappingURL=filter.js.map
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/webgpu/framework/params/index.js b/tests/wpt/web-platform-tests/webgpu/framework/params/index.js new file mode 100644 index 00000000000..5d89da54f5b --- /dev/null +++ b/tests/wpt/web-platform-tests/webgpu/framework/params/index.js @@ -0,0 +1,54 @@ +/** +* AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts +**/ + +export * from './combine.js'; +export * from './filter.js'; +export * from './options.js'; +export * from './exclude.js'; +export function paramsEquals(x, y) { + if (x === y) { + return true; + } + + if (x === null || y === null) { + return false; + } + + for (const xk of Object.keys(x)) { + if (!y.hasOwnProperty(xk)) { + return false; + } + + if (x[xk] !== y[xk]) { + return false; + } + } + + for (const yk of Object.keys(y)) { + if (!x.hasOwnProperty(yk)) { + return false; + } + } + + return true; +} +export function paramsSupersets(sup, sub) { + if (sub === null) { + return true; + } + + if (sup === null) { + // && sub !== undefined + return false; + } + + for (const k of Object.keys(sub)) { + if (!sup.hasOwnProperty(k) || sup[k] !== sub[k]) { + return false; + } + } + + return true; +} +//# sourceMappingURL=index.js.map
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/webgpu/framework/params/options.js b/tests/wpt/web-platform-tests/webgpu/framework/params/options.js new file mode 100644 index 00000000000..6906863880c --- /dev/null +++ b/tests/wpt/web-platform-tests/webgpu/framework/params/options.js @@ -0,0 +1,36 @@ +/** +* AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts +**/ + +let _Symbol$iterator; + +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + +export function poptions(name, values) { + return new POptions(name, values); +} +export function pbool(name) { + return new POptions(name, [false, true]); +} +_Symbol$iterator = Symbol.iterator; + +class POptions { + constructor(name, values) { + _defineProperty(this, "name", void 0); + + _defineProperty(this, "values", void 0); + + this.name = name; + this.values = values; + } + + *[_Symbol$iterator]() { + for (const value of this.values) { + yield { + [this.name]: value + }; + } + } + +} +//# sourceMappingURL=options.js.map
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/webgpu/framework/test_filter/filter_by_group.js b/tests/wpt/web-platform-tests/webgpu/framework/test_filter/filter_by_group.js new file mode 100644 index 00000000000..3036e21bd63 --- /dev/null +++ b/tests/wpt/web-platform-tests/webgpu/framework/test_filter/filter_by_group.js @@ -0,0 +1,49 @@ +/** +* AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts +**/ + +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + +export class FilterByGroup { + constructor(suite, groupPrefix) { + _defineProperty(this, "suite", void 0); + + _defineProperty(this, "groupPrefix", void 0); + + this.suite = suite; + this.groupPrefix = groupPrefix; + } + + matches(spec, testcase) { + throw new Error('unimplemented'); + } + + async iterate(loader) { + const specs = await loader.listing(this.suite); + const entries = []; + const suite = this.suite; + + for (const { + path, + description + } of specs) { + if (path.startsWith(this.groupPrefix)) { + const isReadme = path === '' || path.endsWith('/'); + const spec = isReadme ? { + description + } : await loader.import(`${suite}/${path}.spec.js`); + entries.push({ + id: { + suite, + path + }, + spec + }); + } + } + + return entries; + } + +} +//# sourceMappingURL=filter_by_group.js.map
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/webgpu/framework/test_filter/filter_one_file.js b/tests/wpt/web-platform-tests/webgpu/framework/test_filter/filter_one_file.js new file mode 100644 index 00000000000..6a998db0de9 --- /dev/null +++ b/tests/wpt/web-platform-tests/webgpu/framework/test_filter/filter_one_file.js @@ -0,0 +1,102 @@ +/** +* AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts +**/ + +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + +import { paramsEquals, paramsSupersets } from '../params/index.js'; + +class FilterOneFile { + constructor(specId) { + _defineProperty(this, "specId", void 0); + + this.specId = specId; + } + + async iterate(loader) { + const spec = await loader.import(`${this.specId.suite}/${this.specId.path}.spec.js`); + return [{ + id: this.specId, + spec: { + description: spec.description, + g: this.getCases(spec) + } + }]; + } + +} + +function filterTestGroup(group, filter) { + return { + *iterate(log) { + for (const rc of group.iterate(log)) { + if (filter(rc.id)) { + yield rc; + } + } + } + + }; +} + +export class FilterByTestMatch extends FilterOneFile { + constructor(specId, testPrefix) { + super(specId); + + _defineProperty(this, "testPrefix", void 0); + + this.testPrefix = testPrefix; + } + + getCases(spec) { + return filterTestGroup(spec.g, testcase => testcase.test.startsWith(this.testPrefix)); + } + + matches(spec, testcase) { + throw new Error('unimplemented'); + } + +} +export class FilterByParamsMatch extends FilterOneFile { + constructor(specId, test, params) { + super(specId); + + _defineProperty(this, "test", void 0); + + _defineProperty(this, "params", void 0); + + this.test = test; + this.params = params; + } + + getCases(spec) { + return filterTestGroup(spec.g, testcase => testcase.test === this.test && paramsSupersets(testcase.params, this.params)); + } + + matches(spec, testcase) { + throw new Error('unimplemented'); + } + +} +export class FilterByParamsExact extends FilterOneFile { + constructor(specId, test, params) { + super(specId); + + _defineProperty(this, "test", void 0); + + _defineProperty(this, "params", void 0); + + this.test = test; + this.params = params; + } + + getCases(spec) { + return filterTestGroup(spec.g, testcase => testcase.test === this.test && paramsEquals(testcase.params, this.params)); + } + + matches(spec, testcase) { + throw new Error('unimplemented'); + } + +} +//# sourceMappingURL=filter_one_file.js.map
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/webgpu/framework/test_filter/index.js b/tests/wpt/web-platform-tests/webgpu/framework/test_filter/index.js new file mode 100644 index 00000000000..1a9dbcad487 --- /dev/null +++ b/tests/wpt/web-platform-tests/webgpu/framework/test_filter/index.js @@ -0,0 +1,6 @@ +/** +* AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts +**/ + +export { loadFilter } from './load_filter.js'; // Result of iterating a test filter. Contains a loaded spec (.spec.ts) file and its id. +//# sourceMappingURL=index.js.map
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/webgpu/framework/test_filter/internal.js b/tests/wpt/web-platform-tests/webgpu/framework/test_filter/internal.js new file mode 100644 index 00000000000..ae55718f3b3 --- /dev/null +++ b/tests/wpt/web-platform-tests/webgpu/framework/test_filter/internal.js @@ -0,0 +1,4 @@ +/** +* AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts +**/ +//# sourceMappingURL=internal.js.map
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/webgpu/framework/test_filter/load_filter.js b/tests/wpt/web-platform-tests/webgpu/framework/test_filter/load_filter.js new file mode 100644 index 00000000000..03d475eb4b8 --- /dev/null +++ b/tests/wpt/web-platform-tests/webgpu/framework/test_filter/load_filter.js @@ -0,0 +1,71 @@ +/** +* AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts +**/ + +import { allowedTestNameCharacters } from '../allowed_characters.js'; +import { FilterByGroup } from './filter_by_group.js'; +import { FilterByParamsExact, FilterByParamsMatch, FilterByTestMatch } from './filter_one_file.js'; +// Each filter is of one of the forms below (urlencoded). +export async function loadFilter(loader, filter) { + const i1 = filter.indexOf(':'); + + if (i1 === -1) { + throw new Error('Test queries must fully specify their suite name (e.g. "cts:")'); + } + + const suite = filter.substring(0, i1); + const i2 = filter.indexOf(':', i1 + 1); + + if (i2 === -1) { + // - cts: + // - cts:buf + // - cts:buffers/ + // - cts:buffers/map + const groupPrefix = filter.substring(i1 + 1); + return new FilterByGroup(suite, groupPrefix).iterate(loader); + } + + const path = filter.substring(i1 + 1, i2); + const endOfTestName = new RegExp('[^' + allowedTestNameCharacters + ']'); + const i3sub = filter.substring(i2 + 1).search(endOfTestName); + + if (i3sub === -1) { + // - cts:buffers/mapWriteAsync: + // - cts:buffers/mapWriteAsync:b + const testPrefix = filter.substring(i2 + 1); + return new FilterByTestMatch({ + suite, + path + }, testPrefix).iterate(loader); + } + + const i3 = i2 + 1 + i3sub; + const test = filter.substring(i2 + 1, i3); + const token = filter.charAt(i3); + let params = null; + + if (i3 + 1 < filter.length) { + params = JSON.parse(filter.substring(i3 + 1)); + } + + if (token === '~') { + // - cts:buffers/mapWriteAsync:basic~ + // - cts:buffers/mapWriteAsync:basic~{} + // - cts:buffers/mapWriteAsync:basic~{filter:"params"} + return new FilterByParamsMatch({ + suite, + path + }, test, params).iterate(loader); + } else if (token === '=') { + // - cts:buffers/mapWriteAsync:basic= + // - cts:buffers/mapWriteAsync:basic={} + // - cts:buffers/mapWriteAsync:basic={exact:"params"} + return new FilterByParamsExact({ + suite, + path + }, test, params).iterate(loader); + } else { + throw new Error("invalid character after test name; must be '~' or '='"); + } +} +//# sourceMappingURL=load_filter.js.map
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/webgpu/framework/test_group.js b/tests/wpt/web-platform-tests/webgpu/framework/test_group.js new file mode 100644 index 00000000000..c9cafb37b67 --- /dev/null +++ b/tests/wpt/web-platform-tests/webgpu/framework/test_group.js @@ -0,0 +1,134 @@ +/** +* AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts +**/ + +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + +import { allowedTestNameCharacters } from './allowed_characters.js'; +import { paramsEquals } from './params/index.js'; +const validNames = new RegExp('^[' + allowedTestNameCharacters + ']+$'); +export class TestGroup { + constructor(fixture) { + _defineProperty(this, "fixture", void 0); + + _defineProperty(this, "seen", new Set()); + + _defineProperty(this, "tests", []); + + this.fixture = fixture; + } + + *iterate(log) { + for (const test of this.tests) { + yield* test.iterate(log); + } + } + + checkName(name) { + if (!validNames.test(name)) { + throw new Error(`Invalid test name ${name}; must match [${validNames}]+`); + } + + if (name !== decodeURIComponent(name)) { + // Shouldn't happen due to the rule above. Just makes sure that treated + // unencoded strings as encoded strings is OK. + throw new Error(`Not decodeURIComponent-idempotent: ${name} !== ${decodeURIComponent(name)}`); + } + + if (this.seen.has(name)) { + throw new Error('Duplicate test name'); + } + + this.seen.add(name); + } // TODO: This could take a fixture, too, to override the one for the group. + + + test(name, fn) { + this.checkName(name); + const test = new Test(name, this.fixture, fn); + this.tests.push(test); + return test; + } + +} // This test is created when it's inserted, but may be parameterized afterward (.params()). + +class Test { + constructor(name, fixture, fn) { + _defineProperty(this, "name", void 0); + + _defineProperty(this, "fixture", void 0); + + _defineProperty(this, "fn", void 0); + + _defineProperty(this, "cases", null); + + this.name = name; + this.fixture = fixture; + this.fn = fn; + } + + params(specs) { + if (this.cases !== null) { + throw new Error('test case is already parameterized'); + } + + const cases = Array.from(specs); + const seen = []; // This is n^2. + + for (const spec of cases) { + if (seen.some(x => paramsEquals(x, spec))) { + throw new Error('Duplicate test case params'); + } + + seen.push(spec); + } + + this.cases = cases; + } + + *iterate(rec) { + for (const params of this.cases || [null]) { + yield new RunCaseSpecific(rec, { + test: this.name, + params + }, this.fixture, this.fn); + } + } + +} + +class RunCaseSpecific { + constructor(recorder, id, fixture, fn) { + _defineProperty(this, "id", void 0); + + _defineProperty(this, "recorder", void 0); + + _defineProperty(this, "fixture", void 0); + + _defineProperty(this, "fn", void 0); + + this.recorder = recorder; + this.id = id; + this.fixture = fixture; + this.fn = fn; + } + + async run() { + const [rec, res] = this.recorder.record(this.id.test, this.id.params); + rec.start(); + + try { + const inst = new this.fixture(rec, this.id.params || {}); + await inst.init(); + await this.fn(inst); + inst.finalize(); + } catch (e) { + rec.threw(e); + } + + rec.finish(); + return res; + } + +} +//# sourceMappingURL=test_group.js.map
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/webgpu/framework/url_query.js b/tests/wpt/web-platform-tests/webgpu/framework/url_query.js new file mode 100644 index 00000000000..b2651390439 --- /dev/null +++ b/tests/wpt/web-platform-tests/webgpu/framework/url_query.js @@ -0,0 +1,32 @@ +/** +* AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts +**/ + +export function encodeSelectively(s) { + let ret = encodeURIComponent(s); + ret = ret.replace(/%20/g, '+'); // Encode space with + (equivalent but more readable) + + ret = ret.replace(/%22/g, '"'); + ret = ret.replace(/%2C/g, ','); + ret = ret.replace(/%2F/g, '/'); + ret = ret.replace(/%3A/g, ':'); + ret = ret.replace(/%3D/g, '='); + ret = ret.replace(/%7B/g, '{'); + ret = ret.replace(/%7D/g, '}'); + return ret; +} +export function makeQueryString(spec, testcase) { + let s = spec.suite + ':'; + s += spec.path + ':'; + + if (testcase !== undefined) { + s += testcase.test + '='; + + if (testcase.params) { + s += JSON.stringify(testcase.params); + } + } + + return encodeSelectively(s); +} +//# sourceMappingURL=url_query.js.map
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/webgpu/framework/util/index.js b/tests/wpt/web-platform-tests/webgpu/framework/util/index.js new file mode 100644 index 00000000000..8d0fe0e5b48 --- /dev/null +++ b/tests/wpt/web-platform-tests/webgpu/framework/util/index.js @@ -0,0 +1,27 @@ +/** +* AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts +**/ + +export * from './stack.js'; // performance.now() is available in all browsers, but not in scope by default in Node. + +const perf = typeof performance !== 'undefined' ? performance : require('perf_hooks').performance; +export function now() { + return perf.now(); +} +export function objectEquals(x, y) { + if (typeof x !== 'object' || typeof y !== 'object') return x === y; + if (x === null || y === null) return x === y; + if (x.constructor !== y.constructor) return false; + if (x instanceof Function) return x === y; + if (x instanceof RegExp) return x === y; + if (x === y || x.valueOf() === y.valueOf()) return true; + if (Array.isArray(x) && Array.isArray(y) && x.length !== y.length) return false; + if (x instanceof Date) return false; + if (!(x instanceof Object)) return false; + if (!(y instanceof Object)) return false; + const x1 = x; + const y1 = y; + const p = Object.keys(x); + return Object.keys(y).every(i => p.indexOf(i) !== -1) && p.every(i => objectEquals(x1[i], y1[i])); +} +//# sourceMappingURL=index.js.map
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/webgpu/framework/util/stack.js b/tests/wpt/web-platform-tests/webgpu/framework/util/stack.js new file mode 100644 index 00000000000..ae99ac904a1 --- /dev/null +++ b/tests/wpt/web-platform-tests/webgpu/framework/util/stack.js @@ -0,0 +1,94 @@ +/** +* AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts +**/ + +// Takes a stack trace, and extracts only the first continuous range of lines +// containing '/suites/', which should provide only the useful part of the stack +// to the caller (for logging). +export function getStackTrace(e) { + if (!e.stack) { + return ''; + } + + const parts = e.stack.split('\n'); + const stack = []; + let found = false; + const suitesRegex = /[\/\\]suites[\/\\]/; + + for (let i = 0; i < parts.length; ++i) { + const part = parts[i].trim(); + const isSuites = suitesRegex.test(part); + + if (found && !isSuites) { + break; + } + + if (isSuites) { + found = true; + } + + stack.push(part); + } + + return stack.join('\n'); +} // *** Examples *** +// +// Node fail() +// > Error: +// > at CaseRecorder.fail (/Users/kainino/src/cts-experiment/src/framework/logger.ts:99:30) +// > at RunCaseSpecific.exports.g.test.t [as fn] (/Users/kainino/src/cts-experiment/src/suites/unittests/logger.spec.ts:80:7) +// x at RunCaseSpecific.run (/Users/kainino/src/cts-experiment/src/framework/test_group.ts:121:18) +// x at processTicksAndRejections (internal/process/task_queues.js:86:5) +// +// Node throw +// > Error: hello +// > at RunCaseSpecific.g.test.t [as fn] (/Users/kainino/src/cts-experiment/src/suites/unittests/test_group.spec.ts:51:11) +// x at RunCaseSpecific.run (/Users/kainino/src/cts-experiment/src/framework/test_group.ts:121:18) +// x at processTicksAndRejections (internal/process/task_queues.js:86:5) +// +// Firefox fail() +// > fail@http://localhost:8080/out/framework/logger.js:104:30 +// > expect@http://localhost:8080/out/framework/default_fixture.js:59:16 +// > @http://localhost:8080/out/suites/unittests/util.spec.js:35:5 +// x run@http://localhost:8080/out/framework/test_group.js:119:18 +// +// Firefox throw +// > @http://localhost:8080/out/suites/unittests/test_group.spec.js:48:11 +// x run@http://localhost:8080/out/framework/test_group.js:119:18 +// +// Safari fail() +// > fail@http://localhost:8080/out/framework/logger.js:104:39 +// > expect@http://localhost:8080/out/framework/default_fixture.js:59:20 +// > http://localhost:8080/out/suites/unittests/util.spec.js:35:11 +// x http://localhost:8080/out/framework/test_group.js:119:20 +// x asyncFunctionResume@[native code] +// x [native code] +// x promiseReactionJob@[native code] +// +// Safari throw +// > http://localhost:8080/out/suites/unittests/test_group.spec.js:48:20 +// x http://localhost:8080/out/framework/test_group.js:119:20 +// x asyncFunctionResume@[native code] +// x [native code] +// x promiseReactionJob@[native code] +// +// Chrome fail() +// x Error +// x at CaseRecorder.fail (http://localhost:8080/out/framework/logger.js:104:30) +// x at DefaultFixture.expect (http://localhost:8080/out/framework/default_fixture.js:59:16) +// > at RunCaseSpecific.fn (http://localhost:8080/out/suites/unittests/util.spec.js:35:5) +// x at RunCaseSpecific.run (http://localhost:8080/out/framework/test_group.js:119:18) +// x at async runCase (http://localhost:8080/out/runtime/standalone.js:37:17) +// x at async http://localhost:8080/out/runtime/standalone.js:102:7 +// +// Chrome throw +// x Error: hello +// > at RunCaseSpecific.fn (http://localhost:8080/out/suites/unittests/test_group.spec.js:48:11) +// x at RunCaseSpecific.run (http://localhost:8080/out/framework/test_group.js:119:18)" +// x at async Promise.all (index 0) +// x at async TestGroupTest.run (http://localhost:8080/out/suites/unittests/test_group_test.js:6:5) +// x at async RunCaseSpecific.fn (http://localhost:8080/out/suites/unittests/test_group.spec.js:53:15) +// x at async RunCaseSpecific.run (http://localhost:8080/out/framework/test_group.js:119:7) +// x at async runCase (http://localhost:8080/out/runtime/standalone.js:37:17) +// x at async http://localhost:8080/out/runtime/standalone.js:102:7 +//# sourceMappingURL=stack.js.map
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/webgpu/framework/version.js b/tests/wpt/web-platform-tests/webgpu/framework/version.js new file mode 100644 index 00000000000..b9ec1b4f9f3 --- /dev/null +++ b/tests/wpt/web-platform-tests/webgpu/framework/version.js @@ -0,0 +1,3 @@ +// AUTO-GENERATED - DO NOT EDIT. See tools/gen_version. + +export const version = '84ef21bec576c9272e64e08727dbdf75a2b0e9d8'; diff --git a/tests/wpt/web-platform-tests/webgpu/runtime/wpt.js b/tests/wpt/web-platform-tests/webgpu/runtime/wpt.js new file mode 100644 index 00000000000..d11499f1e8c --- /dev/null +++ b/tests/wpt/web-platform-tests/webgpu/runtime/wpt.js @@ -0,0 +1,42 @@ +/** +* AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts +**/ + +import { TestLoader } from '../framework/loader.js'; +import { Logger } from '../framework/logger.js'; +import { makeQueryString } from '../framework/url_query.js'; + +(async () => { + const loader = new TestLoader(); + const files = await loader.loadTestsFromQuery(window.location.search); + const log = new Logger(); + const running = []; + + for (const f of files) { + if (!('g' in f.spec)) { + continue; + } + + const [rec] = log.record(f.id); // TODO: don't run all tests all at once + + for (const t of f.spec.g.iterate(rec)) { + const run = t.run(); + running.push(run); // Note: apparently, async_tests must ALL be added within the same task. + + async_test(async function () { + const r = await run; + this.step(() => { + if (r.status === 'fail') { + throw (r.logs || []).join('\n'); + } + }); + this.done(); + }, makeQueryString(f.id, t.id)); + } + } + + await Promise.all(running); + const resultsElem = document.getElementById('results'); + resultsElem.textContent = log.asJSON(2); +})(); +//# sourceMappingURL=wpt.js.map
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/webgpu/suites/cts/buffers/create_mapped.spec.js b/tests/wpt/web-platform-tests/webgpu/suites/cts/buffers/create_mapped.spec.js new file mode 100644 index 00000000000..30a6638889a --- /dev/null +++ b/tests/wpt/web-platform-tests/webgpu/suites/cts/buffers/create_mapped.spec.js @@ -0,0 +1,27 @@ +/** +* AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts +**/ + +export const description = ``; +import { TestGroup, pbool, pcombine, poptions } from '../../../framework/index.js'; +import { MappingTest } from './mapping_test.js'; +export const g = new TestGroup(MappingTest); +g.test('createBufferMapped', async t => { + const size = t.params.size; + const [buffer, arrayBuffer] = t.device.createBufferMapped({ + size, + usage: GPUBufferUsage.COPY_SRC | (t.params.mappable ? GPUBufferUsage.MAP_WRITE : 0) + }); + await t.checkMapWrite(buffer, arrayBuffer, size); +}).params(pcombine([poptions('size', [12, 512 * 1024]), // +pbool('mappable')])); +g.test('createBufferMappedAsync', async t => { + const size = t.params.size; + const [buffer, arrayBuffer] = await t.device.createBufferMappedAsync({ + size, + usage: GPUBufferUsage.COPY_SRC | (t.params.mappable ? GPUBufferUsage.MAP_WRITE : 0) + }); + await t.checkMapWrite(buffer, arrayBuffer, size); +}).params(pcombine([poptions('size', [12, 512 * 1024]), // +pbool('mappable')])); +//# sourceMappingURL=create_mapped.spec.js.map
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/webgpu/suites/cts/buffers/map.spec.js b/tests/wpt/web-platform-tests/webgpu/suites/cts/buffers/map.spec.js new file mode 100644 index 00000000000..dfc79ac5d1e --- /dev/null +++ b/tests/wpt/web-platform-tests/webgpu/suites/cts/buffers/map.spec.js @@ -0,0 +1,53 @@ +/** +* AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts +**/ + +export const description = ``; +import { TestGroup, pbool, pcombine, poptions } from '../../../framework/index.js'; +import { MappingTest } from './mapping_test.js'; +export const g = new TestGroup(MappingTest); +g.test('mapWriteAsync', async t => { + const size = t.params.size; + const buffer = t.device.createBuffer({ + size, + usage: GPUBufferUsage.COPY_SRC | GPUBufferUsage.MAP_WRITE + }); + const arrayBuffer = await buffer.mapWriteAsync(); + await t.checkMapWrite(buffer, arrayBuffer, size); +}).params(poptions('size', [12, 512 * 1024])); +g.test('mapReadAsync', async t => { + const size = t.params.size; + const [buffer, init] = t.device.createBufferMapped({ + size, + usage: GPUBufferUsage.COPY_DST | GPUBufferUsage.MAP_READ + }); + const expected = new Uint32Array(new ArrayBuffer(size)); + const data = new Uint32Array(init); + + for (let i = 0; i < data.length; ++i) { + data[i] = expected[i] = i + 1; + } + + buffer.unmap(); + const actual = new Uint8Array((await buffer.mapReadAsync())); + t.expectBuffer(actual, new Uint8Array(expected.buffer)); +}).params(poptions('size', [12, 512 * 1024])); +g.test('createBufferMapped', async t => { + const size = t.params.size; + const [buffer, arrayBuffer] = t.device.createBufferMapped({ + size, + usage: GPUBufferUsage.COPY_SRC | (t.params.mappable ? GPUBufferUsage.MAP_WRITE : 0) + }); + await t.checkMapWrite(buffer, arrayBuffer, size); +}).params(pcombine([poptions('size', [12, 512 * 1024]), // +pbool('mappable')])); +g.test('createBufferMappedAsync', async t => { + const size = t.params.size; + const [buffer, arrayBuffer] = await t.device.createBufferMappedAsync({ + size, + usage: GPUBufferUsage.COPY_SRC | (t.params.mappable ? GPUBufferUsage.MAP_WRITE : 0) + }); + await t.checkMapWrite(buffer, arrayBuffer, size); +}).params(pcombine([poptions('size', [12, 512 * 1024]), // +pbool('mappable')])); +//# sourceMappingURL=map.spec.js.map
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/webgpu/suites/cts/buffers/map_detach.spec.js b/tests/wpt/web-platform-tests/webgpu/suites/cts/buffers/map_detach.spec.js new file mode 100644 index 00000000000..afaab08606b --- /dev/null +++ b/tests/wpt/web-platform-tests/webgpu/suites/cts/buffers/map_detach.spec.js @@ -0,0 +1,83 @@ +/** +* AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts +**/ + +export const description = ``; +import { TestGroup, pbool, pcombine } from '../../../framework/index.js'; +import { GPUTest } from '../gpu_test.js'; + +class F extends GPUTest { + checkDetach(buffer, arrayBuffer, unmap, destroy) { + const view = new Uint8Array(arrayBuffer); + this.expect(arrayBuffer.byteLength === 4); + this.expect(view.length === 4); + if (unmap) buffer.unmap(); + if (destroy) buffer.destroy(); + this.expect(arrayBuffer.byteLength === 0, 'ArrayBuffer should be detached'); + this.expect(view.byteLength === 0, 'ArrayBufferView should be detached'); + } + +} + +export const g = new TestGroup(F); +g.test('mapWriteAsync', async t => { + const buffer = t.device.createBuffer({ + size: 4, + usage: GPUBufferUsage.MAP_WRITE + }); + const arrayBuffer = await buffer.mapWriteAsync(); + t.checkDetach(buffer, arrayBuffer, t.params.unmap, t.params.destroy); +}).params([{ + unmap: true, + destroy: false +}, // +{ + unmap: false, + destroy: true +}, { + unmap: true, + destroy: true +}]); +g.test('mapReadAsync', async t => { + const buffer = t.device.createBuffer({ + size: 4, + usage: GPUBufferUsage.MAP_READ + }); + const arrayBuffer = await buffer.mapReadAsync(); + t.checkDetach(buffer, arrayBuffer, t.params.unmap, t.params.destroy); +}).params([{ + unmap: true, + destroy: false +}, // +{ + unmap: false, + destroy: true +}, { + unmap: true, + destroy: true +}]); +g.test('create mapped', async t => { + const desc = { + size: 4, + usage: GPUBufferUsage.MAP_WRITE + }; + const [buffer, arrayBuffer] = t.params.async ? await t.device.createBufferMappedAsync(desc) : t.device.createBufferMapped(desc); + const view = new Uint8Array(arrayBuffer); + t.expect(arrayBuffer.byteLength === 4); + t.expect(view.length === 4); + if (t.params.unmap) buffer.unmap(); + if (t.params.destroy) buffer.destroy(); + t.expect(arrayBuffer.byteLength === 0, 'ArrayBuffer should be detached'); + t.expect(view.byteLength === 0, 'ArrayBufferView should be detached'); +}).params(pcombine([pbool('async'), // +[{ + unmap: true, + destroy: false +}, { + unmap: false, + destroy: true +}, { + unmap: true, + destroy: true +}]])); +//# sourceMappingURL=map_detach.spec.js.map
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/webgpu/suites/cts/buffers/map_oom.spec.js b/tests/wpt/web-platform-tests/webgpu/suites/cts/buffers/map_oom.spec.js new file mode 100644 index 00000000000..f39021ca9a1 --- /dev/null +++ b/tests/wpt/web-platform-tests/webgpu/suites/cts/buffers/map_oom.spec.js @@ -0,0 +1,33 @@ +/** +* AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts +**/ + +export const description = ``; +import { TestGroup } from '../../../framework/index.js'; +import { GPUTest } from '../gpu_test.js'; + +function getBufferDesc() { + return { + size: Number.MAX_SAFE_INTEGER, + usage: GPUBufferUsage.MAP_WRITE + }; +} + +export const g = new TestGroup(GPUTest); +g.test('mapWriteAsync', async t => { + const buffer = t.device.createBuffer(getBufferDesc()); + await t.shouldReject('RangeError', buffer.mapWriteAsync()); +}); +g.test('mapReadAsync', async t => { + const buffer = t.device.createBuffer(getBufferDesc()); + await t.shouldReject('RangeError', buffer.mapReadAsync()); +}); +g.test('createBufferMapped', async t => { + await t.shouldThrow('RangeError', () => { + t.device.createBufferMapped(getBufferDesc()); + }); +}); +g.test('createBufferAsync', async t => { + await t.shouldReject('RangeError', t.device.createBufferMappedAsync(getBufferDesc())); +}); +//# sourceMappingURL=map_oom.spec.js.map
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/webgpu/suites/cts/buffers/mapping_test.js b/tests/wpt/web-platform-tests/webgpu/suites/cts/buffers/mapping_test.js new file mode 100644 index 00000000000..1baa6ffc351 --- /dev/null +++ b/tests/wpt/web-platform-tests/webgpu/suites/cts/buffers/mapping_test.js @@ -0,0 +1,39 @@ +/** +* AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts +**/ + +import { GPUTest } from '../gpu_test.js'; +export class MappingTest extends GPUTest { + checkMapWrite(buffer, mappedContents, size) { + this.checkMapWriteZeroed(mappedContents, size); + const mappedView = new Uint32Array(mappedContents); + const expected = new Uint32Array(new ArrayBuffer(size)); + this.expect(mappedView.byteLength === size); + + for (let i = 0; i < mappedView.length; ++i) { + mappedView[i] = expected[i] = i + 1; + } + + buffer.unmap(); + return this.expectContents(buffer, expected); + } + + checkMapWriteZeroed(arrayBuffer, expectedSize) { + this.expect(arrayBuffer.byteLength === expectedSize); + const view = new Uint8Array(arrayBuffer); + this.expectZero(view); + } + + expectZero(actual) { + const size = actual.byteLength; + + for (let i = 0; i < size; ++i) { + if (actual[i] !== 0) { + this.fail(`at [${i}], expected zero, got ${actual[i]}`); + break; + } + } + } + +} +//# sourceMappingURL=mapping_test.js.map
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/webgpu/suites/cts/canvas/context_creation.spec.js b/tests/wpt/web-platform-tests/webgpu/suites/cts/canvas/context_creation.spec.js new file mode 100644 index 00000000000..b0b2c48b418 --- /dev/null +++ b/tests/wpt/web-platform-tests/webgpu/suites/cts/canvas/context_creation.spec.js @@ -0,0 +1,18 @@ +/** +* AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts +**/ + +export const description = ``; +import { TestGroup } from '../../../framework/index.js'; +import { GPUTest } from '../gpu_test.js'; // TODO: doesn't need to use GPUTest + +export const g = new TestGroup(GPUTest); +g.test('getContext returns GPUCanvasContext', async t => { + const canvas = document.createElement('canvas'); + canvas.width = 10; + canvas.height = 10; // TODO: fix types so these aren't necessary + + const ctx = canvas.getContext('gpupresent'); + t.expect(ctx instanceof window.GPUCanvasContext); +}); +//# sourceMappingURL=context_creation.spec.js.map
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/webgpu/suites/cts/command_buffer/basic.spec.js b/tests/wpt/web-platform-tests/webgpu/suites/cts/command_buffer/basic.spec.js new file mode 100644 index 00000000000..137e428bd9d --- /dev/null +++ b/tests/wpt/web-platform-tests/webgpu/suites/cts/command_buffer/basic.spec.js @@ -0,0 +1,16 @@ +/** +* AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts +**/ + +export const description = ` +Basic tests. +`; +import { TestGroup } from '../../../framework/index.js'; +import { GPUTest } from '../gpu_test.js'; +export const g = new TestGroup(GPUTest); +g.test('empty', async t => { + const encoder = t.device.createCommandEncoder({}); + const cmd = encoder.finish(); + t.device.getQueue().submit([cmd]); // TODO: test that submit() succeeded. +}); +//# sourceMappingURL=basic.spec.js.map
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/webgpu/suites/cts/command_buffer/compute/basic.spec.js b/tests/wpt/web-platform-tests/webgpu/suites/cts/command_buffer/compute/basic.spec.js new file mode 100644 index 00000000000..56754d5f39e --- /dev/null +++ b/tests/wpt/web-platform-tests/webgpu/suites/cts/command_buffer/compute/basic.spec.js @@ -0,0 +1,90 @@ +/** +* AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts +**/ + +export const description = ` +Basic command buffer compute tests. +`; +import { TestGroup } from '../../../../framework/index.js'; +import { GPUTest } from '../../gpu_test.js'; +export const g = new TestGroup(GPUTest); +g.test('memcpy', async t => { + const data = new Uint32Array([0x01020304]); + const src = t.device.createBuffer({ + size: 4, + usage: GPUBufferUsage.COPY_DST | GPUBufferUsage.STORAGE + }); + const dst = t.device.createBuffer({ + size: 4, + usage: GPUBufferUsage.COPY_SRC | GPUBufferUsage.STORAGE + }); + src.setSubData(0, data); + const bgl = t.device.createBindGroupLayout({ + bindings: [{ + binding: 0, + visibility: 4, + type: 'storage-buffer' + }, { + binding: 1, + visibility: 4, + type: 'storage-buffer' + }] + }); + const bg = t.device.createBindGroup({ + bindings: [{ + binding: 0, + resource: { + buffer: src, + offset: 0, + size: 4 + } + }, { + binding: 1, + resource: { + buffer: dst, + offset: 0, + size: 4 + } + }], + layout: bgl + }); + const module = t.device.createShaderModule({ + code: + /* GLSL( + * 'compute', + * `#version 310 es + * layout(std140, set = 0, binding = 0) buffer Src { + * int value; + * } src; + * layout(std140, set = 0, binding = 1) buffer Dst { + * int value; + * } dst; + * + * void main() { + * dst.value = src.value; + * } + * ` + * ) + */ + new Uint32Array([119734787, 66304, 524295, 18, 0, 131089, 1, 393227, 1, 1280527431, 1685353262, 808793134, 0, 196622, 0, 1, 327695, 5, 4, 1852399981, 0, 393232, 4, 17, 1, 1, 1, 196611, 1, 310, 262149, 4, 1852399981, 0, 196613, 7, 7631684, 327686, 7, 0, 1970037110, 101, 196613, 9, 7631716, 196613, 11, 6517331, 327686, 11, 0, 1970037110, 101, 196613, 13, 6517363, 327752, 7, 0, 35, 0, 196679, 7, 2, 262215, 9, 34, 0, 262215, 9, 33, 1, 327752, 11, 0, 35, 0, 196679, 11, 2, 262215, 13, 34, 0, 262215, 13, 33, 0, 131091, 2, 196641, 3, 2, 262165, 6, 32, 1, 196638, 7, 6, 262176, 8, 12, 7, 262203, 8, 9, 12, 262187, 6, 10, 0, 196638, 11, 6, 262176, 12, 12, 11, 262203, 12, 13, 12, 262176, 14, 12, 6, 327734, 2, 4, 0, 3, 131320, 5, 327745, 14, 15, 13, 10, 262205, 6, 16, 15, 327745, 14, 17, 9, 10, 196670, 17, 16, 65789, 65592]) + }); + const pl = t.device.createPipelineLayout({ + bindGroupLayouts: [bgl] + }); + const pipeline = t.device.createComputePipeline({ + computeStage: { + module, + entryPoint: 'main' + }, + layout: pl + }); + const encoder = t.device.createCommandEncoder({}); + const pass = encoder.beginComputePass(); + pass.setPipeline(pipeline); + pass.setBindGroup(0, bg); + pass.dispatch(1, 1, 1); + pass.endPass(); + t.device.getQueue().submit([encoder.finish()]); + await t.expectContents(dst, data); +}); +//# sourceMappingURL=basic.spec.js.map
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/webgpu/suites/cts/command_buffer/copies.spec.js b/tests/wpt/web-platform-tests/webgpu/suites/cts/command_buffer/copies.spec.js new file mode 100644 index 00000000000..9bf78db8454 --- /dev/null +++ b/tests/wpt/web-platform-tests/webgpu/suites/cts/command_buffer/copies.spec.js @@ -0,0 +1,169 @@ +/** +* AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts +**/ + +export const description = ` +copy{Buffer,Texture}To{Buffer,Texture} tests. +`; +import { TestGroup } from '../../../framework/index.js'; +import { GPUTest } from '../gpu_test.js'; +export const g = new TestGroup(GPUTest); +g.test('b2b', async t => { + const data = new Uint32Array([0x01020304]); + const [src, map] = t.device.createBufferMapped({ + size: 4, + usage: GPUBufferUsage.COPY_SRC | GPUBufferUsage.COPY_DST + }); + new Uint32Array(map).set(data); + src.unmap(); + const dst = t.device.createBuffer({ + size: 4, + usage: GPUBufferUsage.COPY_SRC | GPUBufferUsage.COPY_DST + }); + const encoder = t.device.createCommandEncoder({}); + encoder.copyBufferToBuffer(src, 0, dst, 0, 4); + t.device.getQueue().submit([encoder.finish()]); + await t.expectContents(dst, data); +}); +g.test('b2t2b', async t => { + const data = new Uint32Array([0x01020304]); + const [src, map] = t.device.createBufferMapped({ + size: 4, + usage: GPUBufferUsage.COPY_SRC | GPUBufferUsage.COPY_DST + }); + new Uint32Array(map).set(data); + src.unmap(); + const dst = t.device.createBuffer({ + size: 4, + usage: GPUBufferUsage.COPY_SRC | GPUBufferUsage.COPY_DST + }); + const mid = t.device.createTexture({ + size: { + width: 1, + height: 1, + depth: 1 + }, + format: 'rgba8uint', + usage: GPUTextureUsage.COPY_SRC | GPUTextureUsage.COPY_DST + }); + const encoder = t.device.createCommandEncoder({}); + encoder.copyBufferToTexture({ + buffer: src, + rowPitch: 256, + imageHeight: 1 + }, { + texture: mid, + mipLevel: 0, + origin: { + x: 0, + y: 0, + z: 0 + } + }, { + width: 1, + height: 1, + depth: 1 + }); + encoder.copyTextureToBuffer({ + texture: mid, + mipLevel: 0, + origin: { + x: 0, + y: 0, + z: 0 + } + }, { + buffer: dst, + rowPitch: 256, + imageHeight: 1 + }, { + width: 1, + height: 1, + depth: 1 + }); + t.device.getQueue().submit([encoder.finish()]); + await t.expectContents(dst, data); +}); +g.test('b2t2t2b', async t => { + const data = new Uint32Array([0x01020304]); + const [src, map] = t.device.createBufferMapped({ + size: 4, + usage: GPUBufferUsage.COPY_SRC | GPUBufferUsage.COPY_DST + }); + new Uint32Array(map).set(data); + src.unmap(); + const dst = t.device.createBuffer({ + size: 4, + usage: GPUBufferUsage.COPY_SRC | GPUBufferUsage.COPY_DST + }); + const midDesc = { + size: { + width: 1, + height: 1, + depth: 1 + }, + format: 'rgba8uint', + usage: GPUTextureUsage.COPY_SRC | GPUTextureUsage.COPY_DST + }; + const mid1 = t.device.createTexture(midDesc); + const mid2 = t.device.createTexture(midDesc); + const encoder = t.device.createCommandEncoder({}); + encoder.copyBufferToTexture({ + buffer: src, + rowPitch: 256, + imageHeight: 1 + }, { + texture: mid1, + mipLevel: 0, + origin: { + x: 0, + y: 0, + z: 0 + } + }, { + width: 1, + height: 1, + depth: 1 + }); + encoder.copyTextureToTexture({ + texture: mid1, + mipLevel: 0, + origin: { + x: 0, + y: 0, + z: 0 + } + }, { + texture: mid2, + mipLevel: 0, + origin: { + x: 0, + y: 0, + z: 0 + } + }, { + width: 1, + height: 1, + depth: 1 + }); + encoder.copyTextureToBuffer({ + texture: mid2, + mipLevel: 0, + origin: { + x: 0, + y: 0, + z: 0 + } + }, { + buffer: dst, + rowPitch: 256, + imageHeight: 1 + }, { + width: 1, + height: 1, + depth: 1 + }); + t.device.getQueue().submit([encoder.finish()]); + await t.expectContents(dst, data); +}); +//# sourceMappingURL=copies.spec.js.map
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/webgpu/suites/cts/command_buffer/render/basic.spec.js b/tests/wpt/web-platform-tests/webgpu/suites/cts/command_buffer/render/basic.spec.js new file mode 100644 index 00000000000..bb201dbe846 --- /dev/null +++ b/tests/wpt/web-platform-tests/webgpu/suites/cts/command_buffer/render/basic.spec.js @@ -0,0 +1,60 @@ +/** +* AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts +**/ + +export const description = ` +Basic command buffer rendering tests. +`; +import { TestGroup } from '../../../../framework/index.js'; +import { GPUTest } from '../../gpu_test.js'; +export const g = new TestGroup(GPUTest); +g.test('clear', async t => { + const dst = t.device.createBuffer({ + size: 4, + usage: GPUBufferUsage.COPY_SRC | GPUBufferUsage.COPY_DST + }); + const colorAttachment = t.device.createTexture({ + format: 'rgba8unorm', + size: { + width: 1, + height: 1, + depth: 1 + }, + usage: GPUTextureUsage.COPY_SRC | GPUTextureUsage.OUTPUT_ATTACHMENT + }); + const colorAttachmentView = colorAttachment.createDefaultView(); + const encoder = t.device.createCommandEncoder({}); + const pass = encoder.beginRenderPass({ + colorAttachments: [{ + attachment: colorAttachmentView, + loadValue: { + r: 0.0, + g: 1.0, + b: 0.0, + a: 1.0 + }, + storeOp: 'store' + }] + }); + pass.endPass(); + encoder.copyTextureToBuffer({ + texture: colorAttachment, + mipLevel: 0, + origin: { + x: 0, + y: 0, + z: 0 + } + }, { + buffer: dst, + rowPitch: 256, + imageHeight: 1 + }, { + width: 1, + height: 1, + depth: 1 + }); + t.device.getQueue().submit([encoder.finish()]); + await t.expectContents(dst, new Uint8Array([0x00, 0xff, 0x00, 0xff])); +}); +//# sourceMappingURL=basic.spec.js.map
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/webgpu/suites/cts/command_buffer/render/rendering.spec.js b/tests/wpt/web-platform-tests/webgpu/suites/cts/command_buffer/render/rendering.spec.js new file mode 100644 index 00000000000..762285d1bcc --- /dev/null +++ b/tests/wpt/web-platform-tests/webgpu/suites/cts/command_buffer/render/rendering.spec.js @@ -0,0 +1,117 @@ +/** +* AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts +**/ + +export const description = ``; +import { TestGroup } from '../../../../framework/index.js'; +import { GPUTest } from '../../gpu_test.js'; +export const g = new TestGroup(GPUTest); +g.test('fullscreen quad', async t => { + const dst = t.device.createBuffer({ + size: 4, + usage: GPUBufferUsage.COPY_SRC | GPUBufferUsage.COPY_DST + }); + const colorAttachment = t.device.createTexture({ + format: 'rgba8unorm', + size: { + width: 1, + height: 1, + depth: 1 + }, + usage: GPUTextureUsage.COPY_SRC | GPUTextureUsage.OUTPUT_ATTACHMENT + }); + const colorAttachmentView = colorAttachment.createDefaultView(); + const vertexModule = t.device.createShaderModule({ + code: + /* GLSL( + * 'vertex', + * `#version 310 es + * void main() { + * const vec2 pos[3] = vec2[3]( + * vec2(-1.f, -3.f), vec2(3.f, 1.f), vec2(-1.f, 1.f)); + * gl_Position = vec4(pos[gl_VertexIndex], 0.f, 1.f); + * } + * ` + * ) + */ + new Uint32Array([119734787, 66304, 524295, 39, 0, 131089, 1, 393227, 1, 1280527431, 1685353262, 808793134, 0, 196622, 0, 1, 458767, 0, 4, 1852399981, 0, 10, 26, 196611, 1, 310, 262149, 4, 1852399981, 0, 393221, 8, 1348430951, 1700164197, 2019914866, 0, 393222, 8, 0, 1348430951, 1953067887, 7237481, 458758, 8, 1, 1348430951, 1953393007, 1702521171, 0, 196613, 10, 0, 393221, 26, 1449094247, 1702130277, 1684949368, 30821, 327685, 29, 1701080681, 1818386808, 101, 327752, 8, 0, 11, 0, 327752, 8, 1, 11, 1, 196679, 8, 2, 262215, 26, 11, 42, 131091, 2, 196641, 3, 2, 196630, 6, 32, 262167, 7, 6, 4, 262174, 8, 7, 6, 262176, 9, 3, 8, 262203, 9, 10, 3, 262165, 11, 32, 1, 262187, 11, 12, 0, 262167, 13, 6, 2, 262165, 14, 32, 0, 262187, 14, 15, 3, 262172, 16, 13, 15, 262187, 6, 17, 3212836864, 262187, 6, 18, 3225419776, 327724, 13, 19, 17, 18, 262187, 6, 20, 1077936128, 262187, 6, 21, 1065353216, 327724, 13, 22, 20, 21, 327724, 13, 23, 17, 21, 393260, 16, 24, 19, 22, 23, 262176, 25, 1, 11, 262203, 25, 26, 1, 262176, 28, 7, 16, 262176, 30, 7, 13, 262187, 6, 33, 0, 262176, 37, 3, 7, 327734, 2, 4, 0, 3, 131320, 5, 262203, 28, 29, 7, 262205, 11, 27, 26, 196670, 29, 24, 327745, 30, 31, 29, 27, 262205, 13, 32, 31, 327761, 6, 34, 32, 0, 327761, 6, 35, 32, 1, 458832, 7, 36, 34, 35, 33, 21, 327745, 37, 38, 10, 12, 196670, 38, 36, 65789, 65592]) + }); + const fragmentModule = t.device.createShaderModule({ + code: + /* GLSL( + * 'fragment', + * `#version 310 es + * precision mediump float; + * layout(location = 0) out vec4 fragColor; + * void main() { + * fragColor = vec4(0.0, 1.0, 0.0, 1.0); + * } + * ` + * ) + */ + new Uint32Array([119734787, 66304, 524295, 13, 0, 131089, 1, 393227, 1, 1280527431, 1685353262, 808793134, 0, 196622, 0, 1, 393231, 4, 4, 1852399981, 0, 9, 196624, 4, 7, 196611, 1, 310, 262149, 4, 1852399981, 0, 327685, 9, 1734439526, 1869377347, 114, 196679, 9, 0, 262215, 9, 30, 0, 131091, 2, 196641, 3, 2, 196630, 6, 32, 262167, 7, 6, 4, 262176, 8, 3, 7, 262203, 8, 9, 3, 262187, 6, 10, 0, 262187, 6, 11, 1065353216, 458796, 7, 12, 10, 11, 10, 11, 327734, 2, 4, 0, 3, 131320, 5, 196670, 9, 12, 65789, 65592]) + }); + const pl = t.device.createPipelineLayout({ + bindGroupLayouts: [] + }); + const pipeline = t.device.createRenderPipeline({ + vertexStage: { + module: vertexModule, + entryPoint: 'main' + }, + fragmentStage: { + module: fragmentModule, + entryPoint: 'main' + }, + layout: pl, + primitiveTopology: 'triangle-list', + rasterizationState: { + frontFace: 'ccw' + }, + colorStates: [{ + format: 'rgba8unorm', + alphaBlend: {}, + colorBlend: {} + }], + vertexInput: { + indexFormat: 'uint16', + vertexBuffers: [] + } + }); + const encoder = t.device.createCommandEncoder({}); + const pass = encoder.beginRenderPass({ + colorAttachments: [{ + attachment: colorAttachmentView, + storeOp: 'store', + loadValue: { + r: 1.0, + g: 0.0, + b: 0.0, + a: 1.0 + } + }] + }); + pass.setPipeline(pipeline); + pass.draw(3, 1, 0, 0); + pass.endPass(); + encoder.copyTextureToBuffer({ + texture: colorAttachment, + mipLevel: 0, + origin: { + x: 0, + y: 0, + z: 0 + } + }, { + buffer: dst, + rowPitch: 256, + imageHeight: 1 + }, { + width: 1, + height: 1, + depth: 1 + }); + t.device.getQueue().submit([encoder.finish()]); + await t.expectContents(dst, new Uint8Array([0x00, 0xff, 0x00, 0xff])); +}); +//# sourceMappingURL=rendering.spec.js.map
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/webgpu/suites/cts/examples.spec.js b/tests/wpt/web-platform-tests/webgpu/suites/cts/examples.spec.js new file mode 100644 index 00000000000..ad86e73b191 --- /dev/null +++ b/tests/wpt/web-platform-tests/webgpu/suites/cts/examples.spec.js @@ -0,0 +1,71 @@ +/** +* AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts +**/ + +export const description = ` +Examples of writing CTS tests with various features. +`; +import { TestGroup } from '../../framework/index.js'; +import { GPUTest } from './gpu_test.js'; // To run these tests in the standalone runner, run `grunt build` or `grunt pre` then open: +// - http://localhost:8080/?runnow=1&q=cts:examples: +// To run in WPT, copy/symlink the out-wpt/ directory as the webgpu/ directory in WPT, then open: +// - (wpt server url)/webgpu/cts.html?q=cts:examples: +// +// Tests here can be run individually or in groups: +// - ?q=cts:examples:basic/async= +// - ?q=cts:examples:basic/ +// - ?q=cts:examples: + +export const g = new TestGroup(GPUTest); +g.test('basic', t => { + t.expect(true); + t.expect(true, 'true should be true'); + t.shouldThrow( // The expected '.name' of the thrown error. + 'TypeError', // This function is run inline inside shouldThrow, and is expected to throw. + () => { + throw new TypeError(); + }, // Log message. + 'function should throw Error'); +}); +g.test('basic/async', async t => { + // shouldReject must be awaited to ensure it can wait for the promise before the test ends. + await t.shouldReject( // The expected '.name' of the thrown error. + 'TypeError', // Promise expected to reject. + Promise.reject(new TypeError()), // Log message. + 'Promise.reject should reject'); // Promise can also be an IIFE. + + await t.shouldReject('TypeError', (async () => { + throw new TypeError(); + })(), 'Promise.reject should reject'); +}); +g.test('basic/params', t => { + t.expect(t.params.x + t.params.y === t.params.result); +}).params([{ + x: 2, + y: 4, + result: 6 +}, // (blank comment to enforce newlines on autoformat) +{ + x: -10, + y: 18, + result: 8 +}]); +g.test('gpu/async', async t => { + const fence = t.queue.createFence(); + t.queue.signal(fence, 2); + await fence.onCompletion(1); + t.expect(fence.getCompletedValue() === 2); +}); +g.test('gpu/buffers', async t => { + const data = new Uint32Array([0, 1234, 0]); + const [src, map] = t.device.createBufferMapped({ + size: 12, + usage: GPUBufferUsage.COPY_SRC | GPUBufferUsage.COPY_DST + }); + new Uint32Array(map).set(data); + src.unmap(); // Use the expectContents helper to check the actual contents of a GPUBuffer. + // Like shouldReject, it must be awaited. + + await t.expectContents(src, data); +}); +//# sourceMappingURL=examples.spec.js.map
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/webgpu/suites/cts/fences.spec.js b/tests/wpt/web-platform-tests/webgpu/suites/cts/fences.spec.js new file mode 100644 index 00000000000..d9f8ce57678 --- /dev/null +++ b/tests/wpt/web-platform-tests/webgpu/suites/cts/fences.spec.js @@ -0,0 +1,126 @@ +/** +* AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts +**/ + +export const description = ``; +import { attemptGarbageCollection } from '../../framework/collect_garbage.js'; +import { TestGroup } from '../../framework/index.js'; +import { GPUTest } from './gpu_test.js'; +export const g = new TestGroup(GPUTest); +g.test('initial/no descriptor', t => { + const fence = t.queue.createFence(); + t.expect(fence.getCompletedValue() === 0); +}); +g.test('initial/empty descriptor', t => { + const fence = t.queue.createFence({}); + t.expect(fence.getCompletedValue() === 0); +}); +g.test('initial/descriptor with initialValue', t => { + const fence = t.queue.createFence({ + initialValue: 2 + }); + t.expect(fence.getCompletedValue() === 2); +}); // Promise resolves when onCompletion value is less than signal value. + +g.test('wait/less than signaled', async t => { + const fence = t.queue.createFence(); + t.queue.signal(fence, 2); + await fence.onCompletion(1); + t.expect(fence.getCompletedValue() === 2); +}); // Promise resolves when onCompletion value is equal to signal value. + +g.test('wait/equal to signaled', async t => { + const fence = t.queue.createFence(); + t.queue.signal(fence, 2); + await fence.onCompletion(2); + t.expect(fence.getCompletedValue() === 2); +}); // Test it is illegal to wait on a value greater than the signaled value. + +g.test('wait/greater than signaled', async t => { + const fence = t.queue.createFence(); + t.queue.signal(fence, 2); + const promise = fence.onCompletion(3); + await t.shouldReject('OperationError', promise); +}); // Promise resolves when signal is called multiple times. + +g.test('wait/signaled multiple times', async t => { + const fence = t.queue.createFence(); + t.queue.signal(fence, 1); + t.queue.signal(fence, 2); + await fence.onCompletion(2); + t.expect(fence.getCompletedValue() === 2); +}); // Promise resolves if fence has already completed. + +g.test('wait/already completed', async t => { + const fence = t.queue.createFence(); + t.queue.signal(fence, 2); // Wait for value to update. + + while (fence.getCompletedValue() < 2) { + await new Promise(resolve => { + requestAnimationFrame(resolve); + }); + } + + t.expect(fence.getCompletedValue() === 2); + await fence.onCompletion(2); + t.expect(fence.getCompletedValue() === 2); +}); // Test it is illegal to wait on a fence without signaling the value. + +g.test('wait/without signal', async t => { + const fence = t.queue.createFence(); + const promise = fence.onCompletion(2); + await t.shouldReject('OperationError', promise); +}); // Test it is illegal to wait on a fence before it is signaled. + +g.test('wait/before signaled', async t => { + const fence = t.queue.createFence(); + const promise = fence.onCompletion(2); + t.queue.signal(fence, 2); + await t.shouldReject('OperationError', promise); +}); // Test many calls to signal and wait on fence values one at a time. + +g.test('wait/many/serially', async t => { + const fence = t.queue.createFence(); + + for (let i = 1; i <= 20; ++i) { + t.queue.signal(fence, i); + await fence.onCompletion(i); + t.expect(fence.getCompletedValue() === i); + } +}); // Test many calls to signal and wait on all fence values. + +g.test('wait/many/parallel', async t => { + const fence = t.queue.createFence(); + const promises = []; + + for (let i = 1; i <= 20; ++i) { + t.queue.signal(fence, i); + promises.push(fence.onCompletion(i).then(() => { + t.expect(fence.getCompletedValue() >= i); + })); + } + + await Promise.all(promises); + t.expect(fence.getCompletedValue() === 20); +}); // Test dropping references to the fence and onCompletion promise does not crash. + +g.test('drop/fence and promise', t => { + { + const fence = t.queue.createFence(); + t.queue.signal(fence, 2); + fence.onCompletion(2); + } + attemptGarbageCollection(); +}); // Test dropping references to the fence and holding the promise does not crash. + +g.test('drop/promise', async t => { + let promise; + { + const fence = t.queue.createFence(); + t.queue.signal(fence, 2); + promise = fence.onCompletion(2); + } + attemptGarbageCollection(); + await promise; +}); +//# sourceMappingURL=fences.spec.js.map
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/webgpu/suites/cts/gpu_test.js b/tests/wpt/web-platform-tests/webgpu/suites/cts/gpu_test.js new file mode 100644 index 00000000000..a67ce4ab0ba --- /dev/null +++ b/tests/wpt/web-platform-tests/webgpu/suites/cts/gpu_test.js @@ -0,0 +1,75 @@ +/** +* AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts +**/ + +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + +import { getGPU } from '../../framework/gpu/implementation.js'; +import { Fixture } from '../../framework/index.js'; // TODO: Should this gain some functionality currently only in UnitTest? + +export class GPUTest extends Fixture { + constructor(...args) { + super(...args); + + _defineProperty(this, "device", undefined); + + _defineProperty(this, "queue", undefined); + } + + async init() { + super.init(); + const gpu = getGPU(); + const adapter = await gpu.requestAdapter(); + this.device = await adapter.requestDevice({}); + this.queue = this.device.getQueue(); + } // TODO: add an expectContents for textures, which logs data: uris on failure + + + expectContents(src, expected) { + return this.asyncExpectation(async () => { + const exp = new Uint8Array(expected.buffer, expected.byteOffset, expected.byteLength); + const size = expected.buffer.byteLength; + const dst = this.device.createBuffer({ + size: expected.buffer.byteLength, + usage: GPUBufferUsage.MAP_READ | GPUBufferUsage.COPY_DST + }); + const c = this.device.createCommandEncoder({}); + c.copyBufferToBuffer(src, 0, dst, 0, size); + this.queue.submit([c.finish()]); + const actual = new Uint8Array((await dst.mapReadAsync())); + this.expectBuffer(actual, exp); + }); + } + + expectBuffer(actual, exp) { + const size = exp.byteLength; + + if (actual.byteLength !== size) { + this.rec.fail('size mismatch'); + return; + } + + let failedPixels = 0; + + for (let i = 0; i < size; ++i) { + if (actual[i] !== exp[i]) { + if (failedPixels > 4) { + this.rec.fail('... and more'); + break; + } + + failedPixels++; + this.rec.fail(`at [${i}], expected ${exp[i]}, got ${actual[i]}`); + } + } + + if (size <= 256 && failedPixels > 0) { + const expHex = Array.from(exp).map(x => x.toString(16).padStart(2, '0')).join(''); + const actHex = Array.from(actual).map(x => x.toString(16).padStart(2, '0')).join(''); + this.rec.log('EXPECT: ' + expHex); + this.rec.log('ACTUAL: ' + actHex); + } + } + +} +//# sourceMappingURL=gpu_test.js.map
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/webgpu/suites/cts/index.js b/tests/wpt/web-platform-tests/webgpu/suites/cts/index.js new file mode 100644 index 00000000000..cb2a592697f --- /dev/null +++ b/tests/wpt/web-platform-tests/webgpu/suites/cts/index.js @@ -0,0 +1,52 @@ +// AUTO-GENERATED - DO NOT EDIT. See src/tools/gen.ts. + +export const listing = [ + { + "path": "buffers/create_mapped", + "description": "" + }, + { + "path": "buffers/map", + "description": "" + }, + { + "path": "buffers/map_detach", + "description": "" + }, + { + "path": "buffers/map_oom", + "description": "" + }, + { + "path": "canvas/context_creation", + "description": "" + }, + { + "path": "command_buffer/basic", + "description": "Basic tests." + }, + { + "path": "command_buffer/compute/basic", + "description": "Basic command buffer compute tests." + }, + { + "path": "command_buffer/copies", + "description": "copy{Buffer,Texture}To{Buffer,Texture} tests." + }, + { + "path": "command_buffer/render/basic", + "description": "Basic command buffer rendering tests." + }, + { + "path": "command_buffer/render/rendering", + "description": "" + }, + { + "path": "examples", + "description": "Examples of writing CTS tests with various features." + }, + { + "path": "fences", + "description": "" + } +]; diff --git a/tests/wpt/web-platform-tests/webxr/events_input_sources_change.https.html b/tests/wpt/web-platform-tests/webxr/events_input_sources_change.https.html index bc2b2a95e40..107cc9b544e 100644 --- a/tests/wpt/web-platform-tests/webxr/events_input_sources_change.https.html +++ b/tests/wpt/web-platform-tests/webxr/events_input_sources_change.https.html @@ -24,6 +24,7 @@ let testFunction = function(session, fakeDeviceController, t) { t.step(() => { inputChangeEvents++; assert_equals(event.session, session); + validateSameObject(event); // The first change event should be adding our controller. if (inputChangeEvents === 1) { @@ -69,6 +70,23 @@ let testFunction = function(session, fakeDeviceController, t) { }); } + // Verifies that the same object is returned each time attributes are accessed + // on an XRInputSourcesChangeEvent, as required by the spec. + function validateSameObject(event) { + let eventSession = event.session; + let added = event.added; + let removed = event.removed; + + t.step(() => { + assert_equals(eventSession, event.session, + "XRInputSourcesChangeEvent.session returns the same object."); + assert_equals(added, event.added, + "XRInputSourcesChangeEvent.added returns the same object."); + assert_equals(removed, event.removed, + "XRInputSourcesChangeEvent.removed returns the same object."); + }); + } + session.addEventListener('inputsourceschange', onInputSourcesChange, false); // Create our input source and immediately toggle the primary input so that diff --git a/tests/wpt/web-platform-tests/webxr/events_referenceSpace_reset.https.html b/tests/wpt/web-platform-tests/webxr/events_referenceSpace_reset.https.html index f15ffc52a88..3a931168fd3 100644 --- a/tests/wpt/web-platform-tests/webxr/events_referenceSpace_reset.https.html +++ b/tests/wpt/web-platform-tests/webxr/events_referenceSpace_reset.https.html @@ -21,7 +21,19 @@ let testFunction = function(session, fakeDeviceController, t) { let eventWatcher = new EventWatcher( t, refSpace, ["reset", "watcherdone"]); refSpace.addEventListener("reset", (event) => { - assert_equals(event.referenceSpace, refSpace); + t.step(() => { + assert_equals(event.referenceSpace, refSpace); + + // Also make sure the same objects are returned each time these + // attributes are accessed. + let eventRefSpace = event.referenceSpace; + let transform = event.transform; + assert_equals(eventRefSpace, event.referenceSpace, + "XRReferenceSpaceEvent.referenceSpace returns the same object."); + assert_equals(transform, event.transform, + "XRReferenceSpaceEvent.transform returns the same object."); + }); + refSpace.dispatchEvent(watcherDone); }, false); return eventWatcher.wait_for(["reset", "watcherdone"]); @@ -38,6 +50,8 @@ let testFunction = function(session, fakeDeviceController, t) { xr_session_promise_test( immersiveTestName, testFunction, fakeDeviceInitParams, 'immersive-vr'); xr_session_promise_test( - nonImmersiveTestName, testFunction, fakeDeviceInitParams, 'inline'); + nonImmersiveTestName, testFunction, fakeDeviceInitParams, 'inline', { + requiredFeatures: ['local'], + }); </script> diff --git a/tests/wpt/web-platform-tests/webxr/events_session_select.https.html b/tests/wpt/web-platform-tests/webxr/events_session_select.https.html index b74d5ea02db..396d6b23939 100644 --- a/tests/wpt/web-platform-tests/webxr/events_session_select.https.html +++ b/tests/wpt/web-platform-tests/webxr/events_session_select.https.html @@ -38,6 +38,7 @@ let testFunction = function(session, fakeDeviceController, t) { let input_sources = session.inputSources; assert_equals(event.frame.session, session); assert_equals(event.inputSource, input_sources[0]); + validateSameObject(event); tryCallingFrameMethods(event.frame); }); } @@ -47,6 +48,7 @@ let testFunction = function(session, fakeDeviceController, t) { let input_sources = session.inputSources; assert_equals(event.frame.session, session); assert_equals(event.inputSource, input_sources[0]); + validateSameObject(event); tryCallingFrameMethods(event.frame); }); session.dispatchEvent(watcherDone); @@ -57,10 +59,24 @@ let testFunction = function(session, fakeDeviceController, t) { let input_sources = session.inputSources; assert_equals(event.frame.session, session); assert_equals(event.inputSource, input_sources[0]); + validateSameObject(event); tryCallingFrameMethods(event.frame); }); } + // Verifies that the same object is returned each time attributes are accessed + // on an XRInputSoruceEvent, as required by the spec. + function validateSameObject(event) { + let frame = event.frame; + let source = event.inputSource; + t.step(() => { + assert_equals(frame, event.frame, + "XRInputSourceEvent.frame returns the same object."); + assert_equals(source, event.inputSource, + "XRInputSourceEvent.inputSource returns the same object."); + }); + } + session.addEventListener("selectstart", onSessionSelectStart, false); session.addEventListener("selectend", onSessionSelectEnd, false); session.addEventListener("select", onSessionSelect, false); diff --git a/tests/wpt/web-platform-tests/webxr/navigator_xr_sameObject.https.html b/tests/wpt/web-platform-tests/webxr/navigator_xr_sameObject.https.html new file mode 100644 index 00000000000..56cd65c4e42 --- /dev/null +++ b/tests/wpt/web-platform-tests/webxr/navigator_xr_sameObject.https.html @@ -0,0 +1,33 @@ +<!DOCTYPE html> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="resources/webxr_util.js"></script> +<script src="resources/webxr_test_constants.js"></script> +<canvas id="webgl-canvas"></canvas> + +<script> +let testName = "Navigator.xr meets [SameObject] requirement"; + +let testFunction = function(session, fakeDeviceController, t) { + let xr = navigator.xr; + + return new Promise((resolve) => { + // Make sure the navigator.xr object is the same on each frame. + session.requestAnimationFrame((time, xrFrame) => { + t.step(() => { + assert_equals(navigator.xr, xr, "navigator.xr returns the same object"); + }); + session.requestAnimationFrame((time, xrFrame) => { + t.step(() => { + assert_equals(navigator.xr, xr, + "naivgator.xr returns the same object"); + }); + resolve(); + }); + }); + }); +}; + +xr_session_promise_test( + testName, testFunction, TRACKED_IMMERSIVE_DEVICE, 'immersive-vr'); +</script> diff --git a/tests/wpt/web-platform-tests/webxr/xrBoundedReferenceSpace_updates.https.html b/tests/wpt/web-platform-tests/webxr/xrBoundedReferenceSpace_updates.https.html index 2f84d645367..1d7ad93695a 100644 --- a/tests/wpt/web-platform-tests/webxr/xrBoundedReferenceSpace_updates.https.html +++ b/tests/wpt/web-platform-tests/webxr/xrBoundedReferenceSpace_updates.https.html @@ -58,6 +58,6 @@ let testFunction = function(session, fakeDeviceController, t) { }); }; -xr_session_promise_test(testName, testFunction, fakeDeviceInitParams, 'immersive-vr'); +xr_session_promise_test(testName, testFunction, fakeDeviceInitParams, 'immersive-vr', { 'requiredFeatures': ['bounded-floor'] }); </script> diff --git a/tests/wpt/web-platform-tests/webxr/xrFrame_getPose.https.html b/tests/wpt/web-platform-tests/webxr/xrFrame_getPose.https.html index 8795a0a9737..71ca78abb48 100644 --- a/tests/wpt/web-platform-tests/webxr/xrFrame_getPose.https.html +++ b/tests/wpt/web-platform-tests/webxr/xrFrame_getPose.https.html @@ -77,6 +77,6 @@ let testFunction = function(session, fakeDeviceController, t) { xr_session_promise_test(immersiveTestName, testFunction, fakeDeviceInitParams, 'immersive-vr'); xr_session_promise_test(nonImmersiveTestName, testFunction, - fakeDeviceInitParams, 'inline'); + fakeDeviceInitParams, 'inline', { 'requiredFeatures': ['local'] }); </script> diff --git a/tests/wpt/web-platform-tests/webxr/xrFrame_lifetime.https.html b/tests/wpt/web-platform-tests/webxr/xrFrame_lifetime.https.html index c7af792c7bb..2d706d24848 100644 --- a/tests/wpt/web-platform-tests/webxr/xrFrame_lifetime.https.html +++ b/tests/wpt/web-platform-tests/webxr/xrFrame_lifetime.https.html @@ -52,7 +52,7 @@ xr_session_promise_test(immersiveTestName, testFunction, fakeDeviceInitParams, 'immersive-vr'); xr_session_promise_test(nonImmersiveTestName, testFunction, - fakeDeviceInitParams, 'inline'); + fakeDeviceInitParams, 'inline', { 'requiredFeatures': ['local'] }); </script> </body> diff --git a/tests/wpt/web-platform-tests/webxr/xrFrame_session_sameObject.https.html b/tests/wpt/web-platform-tests/webxr/xrFrame_session_sameObject.https.html new file mode 100644 index 00000000000..cbbef68713b --- /dev/null +++ b/tests/wpt/web-platform-tests/webxr/xrFrame_session_sameObject.https.html @@ -0,0 +1,26 @@ +<!DOCTYPE html> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="resources/webxr_util.js"></script> +<script src="resources/webxr_test_constants.js"></script> +<canvas id="webgl-canvas"></canvas> + +<script> +let testName = "XRFrame.session meets [SameObject] requirement"; + +let testFunction = function(session, fakeDeviceController, t) { + return new Promise((resolve) => { + session.requestAnimationFrame((time, xrFrame) => { + let session = xrFrame.session; + t.step(() => { + assert_equals(session, xrFrame.session, + "XRFrame.session returns the same object."); + }); + resolve(); + }); + }); +}; + +xr_session_promise_test( + testName, testFunction, TRACKED_IMMERSIVE_DEVICE, 'immersive-vr'); +</script> diff --git a/tests/wpt/web-platform-tests/webxr/xrInputSource_sameObject.https.html b/tests/wpt/web-platform-tests/webxr/xrInputSource_sameObject.https.html new file mode 100644 index 00000000000..78240de2f90 --- /dev/null +++ b/tests/wpt/web-platform-tests/webxr/xrInputSource_sameObject.https.html @@ -0,0 +1,63 @@ +<!DOCTYPE html> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="resources/webxr_util.js"></script> +<script src="resources/webxr_test_constants.js"></script> +<canvas id="webgl-canvas"></canvas> + +<script> +let testName = "XRInputSource attributes meet [SameObject] requirement"; + +let testFunction = function(session, fakeDeviceController, t) { + return new Promise((resolve) => { + let input_source = fakeDeviceController.simulateInputSourceConnection({ + handedness: "right", + targetRayMode: "tracked-pointer", + pointerOrigin: VALID_POINTER_TRANSFORM, + gripOrigin: VALID_GRIP_TRANSFORM, + profiles: ["foo", "bar"] + }); + + session.requestAnimationFrame((time, xrFrame) => { + let source = session.inputSources[0]; + let targetRaySpace = source.targetRaySpace; + let gripSpace = source.gripSpace; + let profiles = source.profiles; + + t.step(() => { + assert_not_equals(targetRaySpace, null, + "target ray space must not be null"); + assert_not_equals(gripSpace, null, "grip space must not be null"); + + // Make sure [SameObject] attributes actually have the same object + // returned each time they are accessed. + assert_equals(targetRaySpace, source.targetRaySpace, + "XRInputSource.targetRaySpace returns the same object."); + assert_equals(gripSpace, source.gripSpace, + "XRInputSource.gripSpace returns the same object."); + assert_equals(profiles, source.profiles, + "XRInputSource.profiles returns the same object."); + }); + + session.requestAnimationFrame((time, xrFrame) => { + // Make sure the attributes still return the same object on the next + // frame when nothing has happened that would cause the input source + // to be recreated. + t.step(() => { + assert_equals(targetRaySpace, source.targetRaySpace, + "XRInputSource.targetRaySpace returns the same object each frame."); + assert_equals(gripSpace, source.gripSpace, + "XRInputSource.gripSpace returns the same object each frame."); + assert_equals(profiles, source.profiles, + "XRInputSource.profiles returns the same object each frame."); + }); + + resolve(); + }); + }); + }); +}; + +xr_session_promise_test( + testName, testFunction, TRACKED_IMMERSIVE_DEVICE, 'immersive-vr'); +</script> diff --git a/tests/wpt/web-platform-tests/webxr/xrPose_transform_sameObject.https.html b/tests/wpt/web-platform-tests/webxr/xrPose_transform_sameObject.https.html new file mode 100644 index 00000000000..79eed4cdec4 --- /dev/null +++ b/tests/wpt/web-platform-tests/webxr/xrPose_transform_sameObject.https.html @@ -0,0 +1,43 @@ +<!DOCTYPE html> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="resources/webxr_util.js"></script> +<script src="resources/webxr_test_constants.js"></script> +<canvas id="webgl-canvas"></canvas> + +<script> +let testName = "XRPose.transform meets [SameObject] requirement"; + +let testFunction = function(session, fakeDeviceController, t) { + return new Promise((resolve) => { + let input_source = fakeDeviceController.simulateInputSourceConnection({ + handedness: "right", + targetRayMode: "tracked-pointer", + pointerOrigin: VALID_POINTER_TRANSFORM, + gripOrigin: VALID_GRIP_TRANSFORM, + profiles: [] + }); + + session.requestReferenceSpace('local').then((referenceSpace) => { + session.requestAnimationFrame((time, xrFrame) => { + let source = session.inputSources[0]; + let input_pose = xrFrame.getPose(source.targetRaySpace, referenceSpace); + + // Make sure that the transform attribute is the same object each time + // we access it. This verifies that the XRPose does *not* do something + // spec-noncompliant such as creating and returning a new + // XRRigidTransform object each time the attribute is accessed. + let transform = input_pose.transform; + t.step(() => { + assert_equals(transform, input_pose.transform, + "XRPose.transform returns the same object."); + }); + resolve(); + }); + }); + }); +}; + +xr_session_promise_test( + testName, testFunction, TRACKED_IMMERSIVE_DEVICE, 'immersive-vr'); +</script> diff --git a/tests/wpt/web-platform-tests/webxr/xrReferenceSpace_originOffsetBounded.https.html b/tests/wpt/web-platform-tests/webxr/xrReferenceSpace_originOffsetBounded.https.html index ae1767ba74e..d0f91a4630d 100644 --- a/tests/wpt/web-platform-tests/webxr/xrReferenceSpace_originOffsetBounded.https.html +++ b/tests/wpt/web-platform-tests/webxr/xrReferenceSpace_originOffsetBounded.https.html @@ -239,6 +239,6 @@ function testFunction(session, fakeDeviceController, t) { }; xr_session_promise_test( - testName, testFunction, fakeDeviceInitParams, 'immersive-vr'); + testName, testFunction, fakeDeviceInitParams, 'immersive-vr', { 'requiredFeatures': ['bounded-floor'] }); </script> diff --git a/tests/wpt/web-platform-tests/webxr/xrRigidTransform_sameObject.https.html b/tests/wpt/web-platform-tests/webxr/xrRigidTransform_sameObject.https.html new file mode 100644 index 00000000000..d014fe6fb56 --- /dev/null +++ b/tests/wpt/web-platform-tests/webxr/xrRigidTransform_sameObject.https.html @@ -0,0 +1,38 @@ +<!DOCTYPE html> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="resources/webxr_util.js"></script> +<script src="resources/webxr_test_constants.js"></script> +<canvas id="webgl-canvas"></canvas> +<script> + +let testName = "XRRigidTransform position and orientation meet [SameObject] requirements"; + +// xrRigidTransform_inverse.https.html already checks [SameObject] requirement +// for XRRigidTransform.inverse. It's in a separate test because there are +// additional constraints around how the inverse attribute should work besides +// just [SameObject]. + +let testFunction = + (session, fakeDeviceController, t) => new Promise((resolve, reject) => { + + let transform = new XRRigidTransform( + { x: -9.0, y: 8.0, z: -7.0 }, + { x: 6.0, y: -5.0, z: 4.0, w: 3.0 }); + + let position = transform.position; + let orientation = transform.orientation; + t.step(() => { + assert_equals(position, transform.position, + "XRRigidTransform.position returns the same object."); + assert_equals(orientation, transform.orientation, + "XRRigidTransform.orientation returns the same object."); + }); + + resolve(); +}); + +xr_session_promise_test(testName, testFunction, TRACKED_IMMERSIVE_DEVICE, + 'immersive-vr'); + +</script> diff --git a/tests/wpt/web-platform-tests/webxr/xrSession_end.https.html b/tests/wpt/web-platform-tests/webxr/xrSession_end.https.html index b91a5b977ca..e8c078ead9b 100644 --- a/tests/wpt/web-platform-tests/webxr/xrSession_end.https.html +++ b/tests/wpt/web-platform-tests/webxr/xrSession_end.https.html @@ -19,6 +19,11 @@ function onSessionEnd(event) { t.step( () => { assert_equals(event.session, session); + + let eventSession = event.session; + assert_equals(eventSession, event.session, + "XRSessionEvent.session returns the same object."); + session.dispatchEvent(watcherDone); }); } diff --git a/tests/wpt/web-platform-tests/webxr/xrSession_requestAnimationFrame_getViewerPose.https.html b/tests/wpt/web-platform-tests/webxr/xrSession_requestAnimationFrame_getViewerPose.https.html index bdb5edda566..9ddc36e95b3 100644 --- a/tests/wpt/web-platform-tests/webxr/xrSession_requestAnimationFrame_getViewerPose.https.html +++ b/tests/wpt/web-platform-tests/webxr/xrSession_requestAnimationFrame_getViewerPose.https.html @@ -68,7 +68,7 @@ }; xr_session_promise_test(nonImmersiveTestName, testFunction, - fakeDeviceInitParams, 'inline'); + fakeDeviceInitParams, 'inline', { 'requiredFeatures': ['local'] }); xr_session_promise_test(immersiveTestName, testFunction, fakeDeviceInitParams, 'immersive-vr'); diff --git a/tests/wpt/web-platform-tests/webxr/xrSession_requestAnimationFrame_timestamp.https.html b/tests/wpt/web-platform-tests/webxr/xrSession_requestAnimationFrame_timestamp.https.html index daa786b3686..2796be9987b 100644 --- a/tests/wpt/web-platform-tests/webxr/xrSession_requestAnimationFrame_timestamp.https.html +++ b/tests/wpt/web-platform-tests/webxr/xrSession_requestAnimationFrame_timestamp.https.html @@ -15,7 +15,7 @@ let nonImmersiveTestName = "XRFrame getViewerPose updates on the next frame for let fakeDeviceInitParams = TRACKED_IMMERSIVE_DEVICE; let testFunction = function(session, fakeDeviceController, t) { - return session.requestReferenceSpace('local') + return session.requestReferenceSpace('viewer') .then((referenceSpace) => new Promise((resolve, reject) => { let counter = 0; let windowFrameTime = 0; diff --git a/tests/wpt/web-platform-tests/webxr/xrSession_sameObject.https.html b/tests/wpt/web-platform-tests/webxr/xrSession_sameObject.https.html new file mode 100644 index 00000000000..837fa0a008d --- /dev/null +++ b/tests/wpt/web-platform-tests/webxr/xrSession_sameObject.https.html @@ -0,0 +1,67 @@ +<!DOCTYPE html> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="resources/webxr_util.js"></script> +<script src="resources/webxr_test_constants.js"></script> +<canvas id="webgl-canvas"></canvas> + +<script> +let testName = "XRSession attributes meet [SameObject] requirement"; + +let testFunction = function(session, fakeDeviceController, t) { + return new Promise((resolve) => { + let input_source = fakeDeviceController.simulateInputSourceConnection({ + handedness: "right", + targetRayMode: "tracked-pointer", + pointerOrigin: VALID_POINTER_TRANSFORM, + gripOrigin: VALID_GRIP_TRANSFORM, + profiles: ["foo", "bar"] + }); + + session.requestAnimationFrame((time, xrFrame) => { + let renderState = session.renderState; + let sources = session.inputSources; + + t.step(() => { + assert_not_equals(renderState, null, "renderState must not be null."); + assert_not_equals(sources, null, "inputSources must not be null."); + + // Make sure [SameObject] attributes actually have the same object + // returned each time they are accessed. + assert_equals(renderState, session.renderState, + "XRSession.renderState returns the same object."); + assert_equals(sources, session.inputSources, + "XRSession.inputSources returns the same object."); + }); + + session.requestAnimationFrame((time, xrFrame) => { + t.step(() => { + // Make sure the attributes still return the same object on the next + // frame. + assert_equals(renderState, session.renderState, + "XRSession.renderState returns the same object."); + assert_equals(sources, session.inputSources, + "XRSession.inputSources returns the same object."); + }); + + // Even though changing handedness on the input source should cause that + // source to be re-created, it should not cause the entire + // XRInputSourceArray object on XRSession to be re-created. + input_source.setHandedness("left"); + session.requestAnimationFrame((time, xrFrame) => { + t.step(() => { + assert_equals(renderState, session.renderState, + "XRSession.renderState returns the same object."); + assert_equals(sources, session.inputSources, + "XRSession.inputSources returns the same object."); + }); + resolve(); + }); + }); + }); + }); +}; + +xr_session_promise_test( + testName, testFunction, TRACKED_IMMERSIVE_DEVICE, 'immersive-vr'); +</script> diff --git a/tests/wpt/web-platform-tests/webxr/xrStationaryReferenceSpace_floorlevel_updates.https.html b/tests/wpt/web-platform-tests/webxr/xrStationaryReferenceSpace_floorlevel_updates.https.html index aa3c1b85c5d..3f33cf354b8 100644 --- a/tests/wpt/web-platform-tests/webxr/xrStationaryReferenceSpace_floorlevel_updates.https.html +++ b/tests/wpt/web-platform-tests/webxr/xrStationaryReferenceSpace_floorlevel_updates.https.html @@ -64,7 +64,7 @@ let testFunction = function(session, fakeDeviceController, t) { })); }; -xr_session_promise_test(immersiveTestName, testFunction, fakeDeviceInitParams, 'immersive-vr'); -xr_session_promise_test(nonImmersiveTestName, testFunction, fakeDeviceInitParams, 'inline'); +xr_session_promise_test(immersiveTestName, testFunction, fakeDeviceInitParams, 'immersive-vr', { 'requiredFeatures': ['local-floor'] }); +xr_session_promise_test(nonImmersiveTestName, testFunction, fakeDeviceInitParams, 'inline', { 'requiredFeatures': ['local-floor'] }); </script> diff --git a/tests/wpt/web-platform-tests/webxr/xrView_sameObject.https.html b/tests/wpt/web-platform-tests/webxr/xrView_sameObject.https.html new file mode 100644 index 00000000000..1213bcb1f11 --- /dev/null +++ b/tests/wpt/web-platform-tests/webxr/xrView_sameObject.https.html @@ -0,0 +1,38 @@ +<!DOCTYPE html> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="resources/webxr_util.js"></script> +<script src="resources/webxr_test_constants.js"></script> +<canvas id="webgl-canvas"></canvas> + +<script> +let testName = "XRView attributes meet [SameObject] requirement"; + +let testFunction = function(session, fakeDeviceController, t) { + return new Promise((resolve) => { + session.requestReferenceSpace('local').then((referenceSpace) => { + session.requestAnimationFrame((time, xrFrame) => { + // Make sure that the projectionMatrix and transform attributes on + // XRView always return the same object. + let viewerPose = xrFrame.getViewerPose(referenceSpace); + let view = viewerPose.views[0]; + + let transform = view.transform; + let projectionMatrix = view.projectionMatrix; + + t.step(() => { + assert_equals(transform, view.transform, + "XRView.transform returns the same object."); + assert_equals(projectionMatrix, view.projectionMatrix, + "XRView.projectionMatrix returns the same object."); + }); + + resolve(); + }); + }); + }); +}; + +xr_session_promise_test( + testName, testFunction, TRACKED_IMMERSIVE_DEVICE, 'immersive-vr'); +</script> diff --git a/tests/wpt/web-platform-tests/webxr/xrViewerPose_views_sameObject.https.html b/tests/wpt/web-platform-tests/webxr/xrViewerPose_views_sameObject.https.html new file mode 100644 index 00000000000..ec1ee6964f0 --- /dev/null +++ b/tests/wpt/web-platform-tests/webxr/xrViewerPose_views_sameObject.https.html @@ -0,0 +1,34 @@ +<!DOCTYPE html> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="resources/webxr_util.js"></script> +<script src="resources/webxr_test_constants.js"></script> +<canvas id="webgl-canvas"></canvas> + +<script> +let testName = "XRViewerPose.views meets [SameObject] requirement"; + +let testFunction = function(session, fakeDeviceController, t) { + return new Promise((resolve) => { + session.requestReferenceSpace('local').then((referenceSpace) => { + session.requestAnimationFrame((time, xrFrame) => { + // Make sure that the views attribute is the same object each time we + // access it. This verifies that XRViewerPose does *not* do something + // spec-noncompliant such as creating and returning a new XRView array + // each time the attribute is accessed. + let viewerPose = xrFrame.getViewerPose(referenceSpace); + let views = viewerPose.views; + t.step(() => { + assert_equals(viewerPose.views, views, + "XRViewerPose.views returns the same object."); + }); + + resolve(); + }); + }); + }); +}; + +xr_session_promise_test( + testName, testFunction, TRACKED_IMMERSIVE_DEVICE, 'immersive-vr'); +</script> diff --git a/tests/wpt/web-platform-tests/webxr/xrWebGLLayer_framebuffer_sameObject.https.html b/tests/wpt/web-platform-tests/webxr/xrWebGLLayer_framebuffer_sameObject.https.html new file mode 100644 index 00000000000..b0f637863b6 --- /dev/null +++ b/tests/wpt/web-platform-tests/webxr/xrWebGLLayer_framebuffer_sameObject.https.html @@ -0,0 +1,26 @@ +<!DOCTYPE html> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="resources/webxr_util.js"></script> +<script src="resources/webxr_test_constants.js"></script> +<canvas /> + +<script> + +let testName = "XRWebGLLayer.framebuffer meets [SameObject] requirement"; + +let testFunction = + (session, fakeDeviceController, t, sessionObjects) => new Promise((resolve, reject) => { + let layer = new XRWebGLLayer(session, sessionObjects.gl, {}); + let framebuffer = layer.framebuffer; + t.step(() => { + assert_equals(framebuffer, layer.framebuffer, + "XRWebGLLayer.framebuffer returns the same object."); + }); + resolve(); +}); + +xr_session_promise_test( + testName, testFunction, TRACKED_IMMERSIVE_DEVICE, 'immersive-vr'); + +</script> |