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,16 +251963,34 @@ "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/constraints/support/constraints-fixed-block-size-quirky-body-iframe.html": [ + [] + ], + "css/css-layout-api/constraints/support/constraints-fixed-block-size.js": [ + [] + ], + "css/css-layout-api/constraints/support/constraints-fixed-inline-size.js": [ + [] + ], + "css/css-layout-api/fallback-layout/fallback-ref.html": [ [] ], "css/css-layout-api/green-square-ref.html": [ [] ], - "css/css-layout-api/position-fragment-ref.html": [ + "css/css-layout-api/layout-child/support/layout-child-worklet.js": [ + [] + ], + "css/css-layout-api/position-fragment/ref.html": [ + [] + ], + "css/css-layout-api/position-fragment/support/layout-position-child-worklet.js": [ [] ], "css/css-layout-api/style-map-multi-ref.html": [ @@ -251830,24 +251999,6 @@ "css/css-layout-api/style-map-ref.html": [ [] ], - "css/css-layout-api/support/constraints-fixed-block-size-quirky-body-iframe.html": [ - [] - ], - "css/css-layout-api/support/constraints-fixed-block-size.js": [ - [] - ], - "css/css-layout-api/support/constraints-fixed-inline-size.js": [ - [] - ], - "css/css-layout-api/support/layout-child-sizes-worklet.js": [ - [] - ], - "css/css-layout-api/support/layout-child-worklet.js": [ - [] - ], - "css/css-layout-api/support/layout-position-child-worklet.js": [ - [] - ], "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": [ - "3f711af2e7ae955ded29895bc64eb52cac7f487e", - "reftest" - ], - "css/css-layout-api/fallback-layout-error.https.html": [ - "4c44f2168b2fb1e5c1071f40a355ea9a79714730", - "reftest" - ], - "css/css-layout-api/fallback-layout-invalid-child.https.html": [ - "567c3f7f74590eb8fcb9defd724533738f36023f", - "reftest" - ], - "css/css-layout-api/fallback-layout-invalid-fragment.https.html": [ - "2e33e8761d32118154ced40882a095d30001c0fc", - "reftest" - ], - "css/css-layout-api/fallback-layout-no-promise.https.html": [ - "e7b22a4c5cd21a892799e4f711704bcdc6d57ce3", - "reftest" - ], - "css/css-layout-api/fallback-layout-return.https.html": [ + "css/css-layout-api/fallback-layout/bad-return.https.html": [ "4c90ae7d336682c948a237937c01475a6fa4cdae", "reftest" ], - "css/css-layout-api/fallback-layout-unresolved-promise.https.html": [ - "369c56e4f9483537cf531fc1f20aea6f93fea88b", + "css/css-layout-api/fallback-layout/constructor-error.https.html": [ + "3f711af2e7ae955ded29895bc64eb52cac7f487e", "reftest" ], - "css/css-layout-api/fallback-ref.html": [ + "css/css-layout-api/fallback-layout/error.https.html": [ + "4c44f2168b2fb1e5c1071f40a355ea9a79714730", + "reftest" + ], + "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": [ + "2e33e8761d32118154ced40882a095d30001c0fc", + "reftest" + ], + "css/css-layout-api/fallback-layout/no-promise.https.html": [ + "e7b22a4c5cd21a892799e4f711704bcdc6d57ce3", + "reftest" + ], + "css/css-layout-api/fallback-layout/unresolved-promise.https.html": [ + "369c56e4f9483537cf531fc1f20aea6f93fea88b", + "reftest" + ], "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 @@ [ +
+ + + 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 @@ + + 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 @@ 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 @@ + +CSS Test Reference + + + +
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 @@ + +Directionality is properly computed for slotted children + + + + + + + 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 @@ + + + +Correct events for short animations with syncbases + + + + + + + + + + + + + + + + + + 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 @@ + +Paced value animation doesn't overwrite keyTimes + + + + + + + + + + + + + + + + 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 @@ + + + SVG Text: getComputedStyle().textAnchor + + + + + + + + + + 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'); 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'); 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'); 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 @@ + + +WebGPU CTS + + + + + + + + + + + + + + + + + + + + + + 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 +**/ + +/// +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'], + }); 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 @@ + + + + + + + + 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'] }); 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'] }); 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'] }); 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 @@ + + + + + + + + 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 @@ + + + + + + + + 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 @@ + + + + + + + + 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'] }); 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 @@ + + + + + + + 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 @@ + + + + + + + + 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'] }); 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 @@ + + + + + + + + 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 @@ + + + + + + + + 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 @@ + + + + + + + +