diff --git a/tests/wpt/metadata-layout-2020/css/css-backgrounds/color-mix-currentcolor-background-repaint-parent.html.ini b/tests/wpt/metadata-layout-2020/css/css-backgrounds/color-mix-currentcolor-background-repaint-parent.html.ini new file mode 100644 index 00000000000..58e4780d677 --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/css-backgrounds/color-mix-currentcolor-background-repaint-parent.html.ini @@ -0,0 +1,2 @@ +[color-mix-currentcolor-background-repaint-parent.html] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/css-backgrounds/color-mix-currentcolor-background-repaint.html.ini b/tests/wpt/metadata-layout-2020/css/css-backgrounds/color-mix-currentcolor-background-repaint.html.ini new file mode 100644 index 00000000000..ae7e0461e5b --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/css-backgrounds/color-mix-currentcolor-background-repaint.html.ini @@ -0,0 +1,2 @@ +[color-mix-currentcolor-background-repaint.html] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/css-backgrounds/color-mix-currentcolor-outline-repaint-parent.html.ini b/tests/wpt/metadata-layout-2020/css/css-backgrounds/color-mix-currentcolor-outline-repaint-parent.html.ini new file mode 100644 index 00000000000..a6f5e206966 --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/css-backgrounds/color-mix-currentcolor-outline-repaint-parent.html.ini @@ -0,0 +1,2 @@ +[color-mix-currentcolor-outline-repaint-parent.html] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/css-backgrounds/color-mix-currentcolor-outline-repaint.html.ini b/tests/wpt/metadata-layout-2020/css/css-backgrounds/color-mix-currentcolor-outline-repaint.html.ini new file mode 100644 index 00000000000..e7b7f5a85d4 --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/css-backgrounds/color-mix-currentcolor-outline-repaint.html.ini @@ -0,0 +1,2 @@ +[color-mix-currentcolor-outline-repaint.html] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-color/parsing/gamut-mapping.html.ini b/tests/wpt/metadata-layout-2020/css/css-color/parsing/color-mix-out-of-gamut.html.ini similarity index 80% rename from tests/wpt/metadata/css/css-color/parsing/gamut-mapping.html.ini rename to tests/wpt/metadata-layout-2020/css/css-color/parsing/color-mix-out-of-gamut.html.ini index a83221e93e7..f1ebf996f5f 100644 --- a/tests/wpt/metadata/css/css-color/parsing/gamut-mapping.html.ini +++ b/tests/wpt/metadata-layout-2020/css/css-color/parsing/color-mix-out-of-gamut.html.ini @@ -1,4 +1,4 @@ -[gamut-mapping.html] +[color-mix-out-of-gamut.html] [Property color value 'color-mix(in hsl, color(display-p3 0 1 0) 100%, rgb(0, 0, 0) 0%)'] expected: FAIL @@ -14,13 +14,13 @@ [Property color value 'color-mix(in hsl, lch(0 116 334) 100%, rgb(0, 0, 0) 0%)'] expected: FAIL - [Property color value 'color-mix(in hsl, oklab(100 0.365 -0.16) 100%, rgb(0, 0, 0) 0%)'] + [Property color value 'color-mix(in hsl, oklab(1 0.365 -0.16) 100%, rgb(0, 0, 0) 0%)'] expected: FAIL [Property color value 'color-mix(in hsl, oklab(0 0.365 -0.16) 100%, rgb(0, 0, 0) 0%)'] expected: FAIL - [Property color value 'color-mix(in hsl, oklch(100 0.399 336.3) 100%, rgb(0, 0, 0) 0%)'] + [Property color value 'color-mix(in hsl, oklch(1 0.399 336.3) 100%, rgb(0, 0, 0) 0%)'] expected: FAIL [Property color value 'color-mix(in hsl, oklch(0 0.399 336.3) 100%, rgb(0, 0, 0) 0%)'] @@ -41,26 +41,14 @@ [Property color value 'color-mix(in hwb, lch(0 116 334) 100%, rgb(0, 0, 0) 0%)'] expected: FAIL - [Property color value 'color-mix(in hwb, oklab(100 0.365 -0.16) 100%, rgb(0, 0, 0) 0%)'] + [Property color value 'color-mix(in hwb, oklab(1 0.365 -0.16) 100%, rgb(0, 0, 0) 0%)'] expected: FAIL [Property color value 'color-mix(in hwb, oklab(0 0.365 -0.16) 100%, rgb(0, 0, 0) 0%)'] expected: FAIL - [Property color value 'color-mix(in hwb, oklch(100 0.399 336.3) 100%, rgb(0, 0, 0) 0%)'] + [Property color value 'color-mix(in hwb, oklch(1 0.399 336.3) 100%, rgb(0, 0, 0) 0%)'] expected: FAIL [Property color value 'color-mix(in hwb, oklch(0 0.399 336.3) 100%, rgb(0, 0, 0) 0%)'] expected: FAIL - - [Property color value 'color-mix(in hsl, oklab(1 0.365 -0.16) 100%, rgb(0, 0, 0) 0%)'] - expected: FAIL - - [Property color value 'color-mix(in hsl, oklch(1 0.399 336.3) 100%, rgb(0, 0, 0) 0%)'] - expected: FAIL - - [Property color value 'color-mix(in hwb, oklab(1 0.365 -0.16) 100%, rgb(0, 0, 0) 0%)'] - expected: FAIL - - [Property color value 'color-mix(in hwb, oklch(1 0.399 336.3) 100%, rgb(0, 0, 0) 0%)'] - expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/css-flexbox/percentage-padding-004.html.ini b/tests/wpt/metadata-layout-2020/css/css-flexbox/percentage-padding-004.html.ini new file mode 100644 index 00000000000..e025cd0107b --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/css-flexbox/percentage-padding-004.html.ini @@ -0,0 +1,2 @@ +[percentage-padding-004.html] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/css-position/overlay/animation/overlay-interpolation.html.ini b/tests/wpt/metadata-layout-2020/css/css-position/overlay/animation/overlay-interpolation.html.ini new file mode 100644 index 00000000000..0327458e15a --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/css-position/overlay/animation/overlay-interpolation.html.ini @@ -0,0 +1,264 @@ +[overlay-interpolation.html] + [CSS Transitions: property from [auto\] to [none\] at (-1) should be [auto\]] + expected: FAIL + + [CSS Transitions: property from [auto\] to [none\] at (0) should be [auto\]] + expected: FAIL + + [CSS Transitions: property from [auto\] to [none\] at (0.1) should be [auto\]] + expected: FAIL + + [CSS Transitions: property from [auto\] to [none\] at (0.9) should be [auto\]] + expected: FAIL + + [CSS Transitions: property from [auto\] to [none\] at (1) should be [none\]] + expected: FAIL + + [CSS Transitions: property from [auto\] to [none\] at (1.5) should be [none\]] + expected: FAIL + + [CSS Transitions with transition: all: property from [auto\] to [none\] at (-1) should be [none\]] + expected: FAIL + + [CSS Transitions with transition: all: property from [auto\] to [none\] at (0) should be [none\]] + expected: FAIL + + [CSS Transitions with transition: all: property from [auto\] to [none\] at (0.1) should be [none\]] + expected: FAIL + + [CSS Transitions with transition: all: property from [auto\] to [none\] at (0.9) should be [none\]] + expected: FAIL + + [CSS Transitions with transition: all: property from [auto\] to [none\] at (1) should be [none\]] + expected: FAIL + + [CSS Transitions with transition: all: property from [auto\] to [none\] at (1.5) should be [none\]] + expected: FAIL + + [CSS Animations: property from [auto\] to [none\] at (-1) should be [auto\]] + expected: FAIL + + [CSS Animations: property from [auto\] to [none\] at (0) should be [auto\]] + expected: FAIL + + [CSS Animations: property from [auto\] to [none\] at (0.1) should be [auto\]] + expected: FAIL + + [CSS Animations: property from [auto\] to [none\] at (0.9) should be [auto\]] + expected: FAIL + + [CSS Animations: property from [auto\] to [none\] at (1) should be [none\]] + expected: FAIL + + [CSS Animations: property from [auto\] to [none\] at (1.5) should be [none\]] + expected: FAIL + + [Web Animations: property from [auto\] to [none\] at (-1) should be [auto\]] + expected: FAIL + + [Web Animations: property from [auto\] to [none\] at (0) should be [auto\]] + expected: FAIL + + [Web Animations: property from [auto\] to [none\] at (0.1) should be [auto\]] + expected: FAIL + + [Web Animations: property from [auto\] to [none\] at (0.9) should be [auto\]] + expected: FAIL + + [Web Animations: property from [auto\] to [none\] at (1) should be [none\]] + expected: FAIL + + [Web Animations: property from [auto\] to [none\] at (1.5) should be [none\]] + expected: FAIL + + [CSS Transitions: property from [none\] to [auto\] at (-1) should be [none\]] + expected: FAIL + + [CSS Transitions: property from [none\] to [auto\] at (0) should be [none\]] + expected: FAIL + + [CSS Transitions: property from [none\] to [auto\] at (0.1) should be [auto\]] + expected: FAIL + + [CSS Transitions: property from [none\] to [auto\] at (0.9) should be [auto\]] + expected: FAIL + + [CSS Transitions: property from [none\] to [auto\] at (1) should be [auto\]] + expected: FAIL + + [CSS Transitions: property from [none\] to [auto\] at (1.5) should be [auto\]] + expected: FAIL + + [CSS Transitions with transition: all: property from [none\] to [auto\] at (-1) should be [auto\]] + expected: FAIL + + [CSS Transitions with transition: all: property from [none\] to [auto\] at (0) should be [auto\]] + expected: FAIL + + [CSS Transitions with transition: all: property from [none\] to [auto\] at (0.1) should be [auto\]] + expected: FAIL + + [CSS Transitions with transition: all: property from [none\] to [auto\] at (0.9) should be [auto\]] + expected: FAIL + + [CSS Transitions with transition: all: property from [none\] to [auto\] at (1) should be [auto\]] + expected: FAIL + + [CSS Transitions with transition: all: property from [none\] to [auto\] at (1.5) should be [auto\]] + expected: FAIL + + [CSS Animations: property from [none\] to [auto\] at (-1) should be [none\]] + expected: FAIL + + [CSS Animations: property from [none\] to [auto\] at (0) should be [none\]] + expected: FAIL + + [CSS Animations: property from [none\] to [auto\] at (0.1) should be [auto\]] + expected: FAIL + + [CSS Animations: property from [none\] to [auto\] at (0.9) should be [auto\]] + expected: FAIL + + [CSS Animations: property from [none\] to [auto\] at (1) should be [auto\]] + expected: FAIL + + [CSS Animations: property from [none\] to [auto\] at (1.5) should be [auto\]] + expected: FAIL + + [Web Animations: property from [none\] to [auto\] at (-1) should be [none\]] + expected: FAIL + + [Web Animations: property from [none\] to [auto\] at (0) should be [none\]] + expected: FAIL + + [Web Animations: property from [none\] to [auto\] at (0.1) should be [auto\]] + expected: FAIL + + [Web Animations: property from [none\] to [auto\] at (0.9) should be [auto\]] + expected: FAIL + + [Web Animations: property from [none\] to [auto\] at (1) should be [auto\]] + expected: FAIL + + [Web Animations: property from [none\] to [auto\] at (1.5) should be [auto\]] + expected: FAIL + + [CSS Transitions: property from [auto\] to [auto\] at (-1) should be [auto\]] + expected: FAIL + + [CSS Transitions: property from [auto\] to [auto\] at (0) should be [auto\]] + expected: FAIL + + [CSS Transitions: property from [auto\] to [auto\] at (0.5) should be [auto\]] + expected: FAIL + + [CSS Transitions: property from [auto\] to [auto\] at (1) should be [auto\]] + expected: FAIL + + [CSS Transitions: property from [auto\] to [auto\] at (1.5) should be [auto\]] + expected: FAIL + + [CSS Transitions with transition: all: property from [auto\] to [auto\] at (-1) should be [auto\]] + expected: FAIL + + [CSS Transitions with transition: all: property from [auto\] to [auto\] at (0) should be [auto\]] + expected: FAIL + + [CSS Transitions with transition: all: property from [auto\] to [auto\] at (0.5) should be [auto\]] + expected: FAIL + + [CSS Transitions with transition: all: property from [auto\] to [auto\] at (1) should be [auto\]] + expected: FAIL + + [CSS Transitions with transition: all: property from [auto\] to [auto\] at (1.5) should be [auto\]] + expected: FAIL + + [CSS Animations: property from [auto\] to [auto\] at (-1) should be [auto\]] + expected: FAIL + + [CSS Animations: property from [auto\] to [auto\] at (0) should be [auto\]] + expected: FAIL + + [CSS Animations: property from [auto\] to [auto\] at (0.5) should be [auto\]] + expected: FAIL + + [CSS Animations: property from [auto\] to [auto\] at (1) should be [auto\]] + expected: FAIL + + [CSS Animations: property from [auto\] to [auto\] at (1.5) should be [auto\]] + expected: FAIL + + [Web Animations: property from [auto\] to [auto\] at (-1) should be [auto\]] + expected: FAIL + + [Web Animations: property from [auto\] to [auto\] at (0) should be [auto\]] + expected: FAIL + + [Web Animations: property from [auto\] to [auto\] at (0.5) should be [auto\]] + expected: FAIL + + [Web Animations: property from [auto\] to [auto\] at (1) should be [auto\]] + expected: FAIL + + [Web Animations: property from [auto\] to [auto\] at (1.5) should be [auto\]] + expected: FAIL + + [CSS Transitions: property from [none\] to [none\] at (-1) should be [none\]] + expected: FAIL + + [CSS Transitions: property from [none\] to [none\] at (0) should be [none\]] + expected: FAIL + + [CSS Transitions: property from [none\] to [none\] at (0.5) should be [none\]] + expected: FAIL + + [CSS Transitions: property from [none\] to [none\] at (1) should be [none\]] + expected: FAIL + + [CSS Transitions: property from [none\] to [none\] at (1.5) should be [none\]] + expected: FAIL + + [CSS Transitions with transition: all: property from [none\] to [none\] at (-1) should be [none\]] + expected: FAIL + + [CSS Transitions with transition: all: property from [none\] to [none\] at (0) should be [none\]] + expected: FAIL + + [CSS Transitions with transition: all: property from [none\] to [none\] at (0.5) should be [none\]] + expected: FAIL + + [CSS Transitions with transition: all: property from [none\] to [none\] at (1) should be [none\]] + expected: FAIL + + [CSS Transitions with transition: all: property from [none\] to [none\] at (1.5) should be [none\]] + expected: FAIL + + [CSS Animations: property from [none\] to [none\] at (-1) should be [none\]] + expected: FAIL + + [CSS Animations: property from [none\] to [none\] at (0) should be [none\]] + expected: FAIL + + [CSS Animations: property from [none\] to [none\] at (0.5) should be [none\]] + expected: FAIL + + [CSS Animations: property from [none\] to [none\] at (1) should be [none\]] + expected: FAIL + + [CSS Animations: property from [none\] to [none\] at (1.5) should be [none\]] + expected: FAIL + + [Web Animations: property from [none\] to [none\] at (-1) should be [none\]] + expected: FAIL + + [Web Animations: property from [none\] to [none\] at (0) should be [none\]] + expected: FAIL + + [Web Animations: property from [none\] to [none\] at (0.5) should be [none\]] + expected: FAIL + + [Web Animations: property from [none\] to [none\] at (1) should be [none\]] + expected: FAIL + + [Web Animations: property from [none\] to [none\] at (1.5) should be [none\]] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/cssom/idlharness.html.ini b/tests/wpt/metadata-layout-2020/css/cssom/idlharness.html.ini index bf09731b3cd..68f7b709026 100644 --- a/tests/wpt/metadata-layout-2020/css/cssom/idlharness.html.ini +++ b/tests/wpt/metadata-layout-2020/css/cssom/idlharness.html.ini @@ -490,3 +490,15 @@ [ShadowRoot interface: attribute adoptedStyleSheets] expected: FAIL + + [CSSImportRule interface: attribute layerName] + expected: FAIL + + [CSSImportRule interface: attribute supportsText] + expected: FAIL + + [CSSImportRule interface: sheet.cssRules[0\] must inherit property "layerName" with the proper type] + expected: FAIL + + [CSSImportRule interface: sheet.cssRules[0\] must inherit property "supportsText" with the proper type] + expected: FAIL diff --git a/tests/wpt/metadata/FileAPI/reading-data-section/filereader_readAsDataURL.any.js.ini b/tests/wpt/metadata/FileAPI/reading-data-section/filereader_readAsDataURL.any.js.ini index dd073891148..07f0769fafe 100644 --- a/tests/wpt/metadata/FileAPI/reading-data-section/filereader_readAsDataURL.any.js.ini +++ b/tests/wpt/metadata/FileAPI/reading-data-section/filereader_readAsDataURL.any.js.ini @@ -2,7 +2,13 @@ [readAsDataURL result for Blob with unspecified MIME type] expected: FAIL + [readAsDataURL result for empty Blob] + expected: FAIL + [filereader_readAsDataURL.any.html] [readAsDataURL result for Blob with unspecified MIME type] expected: FAIL + + [readAsDataURL result for empty Blob] + expected: FAIL diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json index 7df803243c2..b8872017d44 100644 --- a/tests/wpt/metadata/MANIFEST.json +++ b/tests/wpt/metadata/MANIFEST.json @@ -1884,6 +1884,13 @@ {} ] ], + "font-features-two-stylesheets-crash.html": [ + "0e6490974c27afe7aff29a22418107890eef45e2", + [ + null, + {} + ] + ], "infinite-size-crash.html": [ "d44cf4a37e26a772a4742a825a7422b795dfc9ee", [ @@ -5593,6 +5600,26 @@ ] } } + }, + "webappapis": { + "scripting": { + "reporterror-in-detached-window-crash.html": [ + "33662caa4d1d1f207daab615d4d1a2796d12d8a5", + [ + null, + {} + ] + ] + }, + "structured-clone": { + "structured-clone-detached-window-crash.html": [ + "75971023d2d79f17ec7f952fd6accf1473780d1f", + [ + null, + {} + ] + ] + } } }, "infrastructure": { @@ -8678,6 +8705,27 @@ {} ] ], + "aria-braillelabel-manual.html": [ + "a0668e8a5016777fb7bde8d2b986cada68fe23cd", + [ + null, + {} + ] + ], + "aria-brailleroledescription-manual.html": [ + "e509c88159bb86033094b8d4f1a5242ef23cd6be", + [ + null, + {} + ] + ], + "aria-brailleroledescription_is_empty-manual.html": [ + "6d24fe641e272011cd2508f3c98dc8651a1335e5", + [ + null, + {} + ] + ], "aria-busy_false-manual.html": [ "70a25082c69a82fcc5bbb09d83a6265e8b982fcf", [ @@ -9120,7 +9168,7 @@ ] ], "aria-keyshortcuts-manual.html": [ - "cbc474343d80e358dbc97a62e0f713d4f1e2af1c", + "5d071cb82df48c3a490342bda761f73c84c94293", [ null, {} @@ -9519,7 +9567,7 @@ ] ], "blockquote-manual.html": [ - "97ae290c4025345c87542c21514c5501a336c8c9", + "13d6859ec0716a45d6e26f6c10492bf346f42f5a", [ null, {} @@ -9554,7 +9602,7 @@ ] ], "caption-manual.html": [ - "00afda60ebf1d48549cd14be8c0db4ad81edb69e", + "68a1af8553db42bd72da7fdac9d0aa32b59713d8", [ null, {} @@ -9624,7 +9672,7 @@ ] ], "deletion-manual.html": [ - "4aed1d3e64b67715e2479fa432c28c3b95c1a476", + "4f6b0d7feb76d4fc21f6cf18c74b8adf849e6a9d", [ null, {} @@ -9834,7 +9882,7 @@ ] ], "insertion-manual.html": [ - "86210664ce7b95881d6bc85a2720235a715d43bc", + "7b5fd8098512174207ed5118d84392a42fc9d780", [ null, {} @@ -9896,6 +9944,13 @@ {} ] ], + "mark-manual.html": [ + "8373fa133da91bc635082589a6b8e3e974256abd", + [ + null, + {} + ] + ], "marquee-manual.html": [ "2c0e9a938561250443055871cc19fa399c6a1fc4", [ @@ -9938,15 +9993,8 @@ {} ] ], - "menuitem_not_owned_by_or_child_of_group-manual.html": [ - "abb582f52014560b756af3dd4530d49595f2e7a8", - [ - null, - {} - ] - ], - "menuitem_owned_by_or_child_of_group-manual.html": [ - "c2c3d7ce4b8d039389569532c188b97cf4faec04", + "menuitem-manual.html": [ + "49c3cacbe82d769482d5178100623cec81840828", [ null, {} @@ -9974,7 +10022,7 @@ ] ], "meter-manual.html": [ - "8010322a62c0721c08692ddd8234e8ca22f38c5d", + "74c8ba807379177dc05ba3f36d5f9bdee36d7bfc", [ null, {} @@ -10037,7 +10085,7 @@ ] ], "paragraph-manual.html": [ - "56a26c8c01a4736e1e2c78436a6d2105bbfb7fce", + "b79f61e0c6ecb7749a8e5fd4d99c086bb14b4469", [ null, {} @@ -10218,6 +10266,13 @@ {} ] ], + "suggestion-manual.html": [ + "f31bcab8defbb01a592ef78403a0645c72fabb03", + [ + null, + {} + ] + ], "superscript-manual.html": [ "5863f9b188ed893c9cddc9f5b80829674fd5f4f1", [ @@ -10289,7 +10344,7 @@ ] ], "time-manual.html": [ - "864cde1df18d5f2e12297545864f44c384b9294f", + "542015953b7760d386f6d2c25650305eb214963c", [ null, {} @@ -30237,7 +30292,7 @@ "css": { "printing": { "animation-timeline-none-with-progress-print.tentative.html": [ - "3939a1df48d7dfab5abc21a824d5d28af1163368", + "c37c1b95ef531a206a52bdfda1f76694d6ace066", [ null, [ @@ -30292,7 +30347,7 @@ ] ], "scroll-timeline-specified-scroller-print.html": [ - "05fab3e46ad22d01d26d5fe5ba90edb4dab798f3", + "dd4add49b0f0946cfbd5e4889c20ce21086af4d7", [ null, [ @@ -59517,6 +59572,19 @@ {} ] ], + "float-in-nested-multicol-001.html": [ + "8e1a257e389d0fdc6a4a69f63b81f32378a7b944", + [ + null, + [ + [ + "/css/reference/blank.html", + "!=" + ] + ], + {} + ] + ], "float-no-content-beside-001.html": [ "f073453ecaf5a884ed11606d05b1b5066f2e50e3", [ @@ -128295,7 +128363,7 @@ {} ] ], - "anchor-scroll-basics.tentative.html": [ + "anchor-scroll-001.html": [ "fa42e33d9266a41e803f427f4bec729a4636a858", [ null, @@ -137100,6 +137168,32 @@ {} ] ], + "color-mix-currentcolor-background-repaint-parent.html": [ + "44399c198862837fcf5f25e9af0cb83c8e62f9cf", + [ + null, + [ + [ + "/css/reference/ref-filled-green-100px-square.xht", + "==" + ] + ], + {} + ] + ], + "color-mix-currentcolor-background-repaint.html": [ + "a8f742b6c53effac1e23491fc5a3843c90a82129", + [ + null, + [ + [ + "/css/reference/ref-filled-green-100px-square.xht", + "==" + ] + ], + {} + ] + ], "color-mix-currentcolor-border-repaint-parent.html": [ "5182dd8d0fbd968bff3931a0a32884d7aa4cf6f2", [ @@ -137126,6 +137220,32 @@ {} ] ], + "color-mix-currentcolor-outline-repaint-parent.html": [ + "0d434b1d351e9853426fe99d7f889649eaceda10", + [ + null, + [ + [ + "/css/reference/ref-filled-green-100px-square.xht", + "==" + ] + ], + {} + ] + ], + "color-mix-currentcolor-outline-repaint.html": [ + "8892d818f9bbda92b02404347586d5c953d4793c", + [ + null, + [ + [ + "/css/reference/ref-filled-green-100px-square.xht", + "==" + ] + ], + {} + ] + ], "css-border-radius-001.html": [ "8b0e2e9a36c67393f0497b174784c5245cee1d7c", [ @@ -153504,6 +153624,19 @@ {} ] ], + "at-supports-selector-file-selector-button.html": [ + "a51e503ef696fc0075234747a709ab8190fcf6d1", + [ + null, + [ + [ + "/css/css-conditional/at-supports-001-ref.html", + "==" + ] + ], + {} + ] + ], "css-supports-001.xht": [ "9221309d45fd637e613a1c11519a09fa105a4830", [ @@ -177033,6 +177166,19 @@ {} ] ], + "percentage-padding-004.html": [ + "ca96e546cc86e6a0c0db1a9884653cdecfab7409", + [ + null, + [ + [ + "/css/reference/ref-filled-green-100px-square.xht", + "==" + ] + ], + {} + ] + ], "percentage-size-subitems-001.html": [ "70f3953052a3a770c6cd15ee169607a00fc452b0", [ @@ -190424,6 +190570,19 @@ {} ] ], + "orthogonal-writing-mode-006.html": [ + "95d124322891aeb89d323fc5425725b32143ccf1", + [ + null, + [ + [ + "/css/css-grid/subgrid/orthogonal-writing-mode-006-ref.html", + "==" + ] + ], + {} + ] + ], "parent-repeat-auto-fit-001.html": [ "8ecbccbea64320054f940d9c2e2d31dd028daa14", [ @@ -190683,6 +190842,19 @@ ], {} ] + ], + "writing-directions-002.html": [ + "078d5808b04ad21ce4ed0814691d2842ccd8bc57", + [ + null, + [ + [ + "/css/css-grid/subgrid/writing-directions-002-ref.html", + "==" + ] + ], + {} + ] ] }, "table-grid-item-dynamic-001.html": [ @@ -308059,6 +308231,97 @@ {} ] ], + "2d.layer.render-opportunities.createImageBitmap.html": [ + "4ffcaa3e3c0defe2355eb9c2d8a6886a5c2e097a", + [ + null, + [ + [ + "/html/canvas/element/layers/2d.layer.render-opportunities.createImageBitmap-expected.html", + "==" + ] + ], + {} + ] + ], + "2d.layer.render-opportunities.drawImage.html": [ + "4eb0b6f721b974e013e18fabc9d283ce2b13d20c", + [ + null, + [ + [ + "/html/canvas/element/layers/2d.layer.render-opportunities.drawImage-expected.html", + "==" + ] + ], + {} + ] + ], + "2d.layer.render-opportunities.getImageData.html": [ + "3cf514a03f4f626133733245ce297e2def1d3252", + [ + null, + [ + [ + "/html/canvas/element/layers/2d.layer.render-opportunities.getImageData-expected.html", + "==" + ] + ], + {} + ] + ], + "2d.layer.render-opportunities.putImageData.html": [ + "8da3dafbb7c1d1c16eb357be595bf6c29f7b4a90", + [ + null, + [ + [ + "/html/canvas/element/layers/2d.layer.render-opportunities.putImageData-expected.html", + "==" + ] + ], + {} + ] + ], + "2d.layer.render-opportunities.requestAnimationFrame.html": [ + "889ff5ba09cdf89ec31cc4fbb2d6fb2475a8c552", + [ + null, + [ + [ + "/html/canvas/element/layers/2d.layer.render-opportunities.requestAnimationFrame-expected.html", + "==" + ] + ], + {} + ] + ], + "2d.layer.render-opportunities.toBlob.html": [ + "908730424a8de315866b819f4f7b3a393a3c0abc", + [ + null, + [ + [ + "/html/canvas/element/layers/2d.layer.render-opportunities.toBlob-expected.html", + "==" + ] + ], + {} + ] + ], + "2d.layer.render-opportunities.toDataURL.html": [ + "152f66a12b3d7d1d94c752a364f5ec9adaeb0269", + [ + null, + [ + [ + "/html/canvas/element/layers/2d.layer.render-opportunities.toDataURL-expected.html", + "==" + ] + ], + {} + ] + ], "2d.layer.restore-style.html": [ "2537f409d6d99e0175667725ffedd5c384071864", [ @@ -308116,6 +308379,19 @@ ] } ] + ], + "2d.layer.unclosed.html": [ + "788889ee7ef1ca5fe1b33dd011dafa10e9d141df", + [ + null, + [ + [ + "/html/canvas/element/layers/2d.layer.unclosed-expected.html", + "==" + ] + ], + {} + ] ] }, "manual": { @@ -309103,7 +309379,7 @@ "offscreen": { "filters": { "2d.filter.canvasFilterObject.dropShadow.tentative.html": [ - "55f2d2c24b5e712180a7dd78f2cc21f2e7b2dddd", + "18af95c1eebf7b52265943e020416d39d020b555", [ null, [ @@ -309116,7 +309392,7 @@ ] ], "2d.filter.canvasFilterObject.dropShadow.tentative.w.html": [ - "633d202012c4ad6d9dcf61a9776cb375905163f0", + "b94424dd9962c16c76533205c59b6ac18eea2707", [ null, [ @@ -309131,7 +309407,7 @@ }, "layers": { "2d.layer.endlayer.alone.html": [ - "f088c89aa7cb1c678c16bc2f317385254f645007", + "6a0e5cce71719615966c649a1623ed98e27637b6", [ null, [ @@ -309144,7 +309420,7 @@ ] ], "2d.layer.endlayer.alone.w.html": [ - "96c8011550665865f7684aec66c887053ee98ee2", + "ddb2671aaabf37d51b6f4167e8bd16bd2fb88998", [ null, [ @@ -309157,7 +309433,7 @@ ] ], "2d.layer.endlayer.unmatched.html": [ - "a87c7364cfa1069df8269d79aa71a565d951369a", + "b204c49e5eb1d67dd4785b3cd2fc68afb2f90542", [ null, [ @@ -309170,7 +309446,7 @@ ] ], "2d.layer.endlayer.unmatched.w.html": [ - "9507809a528426755f2aa0a3a41c7235b4cfe127", + "2e1cb62c32a94ef4965b7cefdd5489055595acf7", [ null, [ @@ -309183,7 +309459,7 @@ ] ], "2d.layer.global-states.alpha.blending.html": [ - "bb7dd933372556976d06a0f4aac312ccf3874e94", + "71414b4b3790b97ad4947418c4ab9b1b04abcb57", [ null, [ @@ -309196,7 +309472,7 @@ ] ], "2d.layer.global-states.alpha.blending.shadow.html": [ - "70b32e43395d65654062d7471fe1cd7e77906964", + "551df36b15e450b2dee9a11b1933b7498aee7601", [ null, [ @@ -309209,7 +309485,7 @@ ] ], "2d.layer.global-states.alpha.blending.shadow.w.html": [ - "45932d4cd5d182e47a6d588485ed1bde32f266c7", + "6851a4a8468c83939879849ab99484f7603d0222", [ null, [ @@ -309222,7 +309498,7 @@ ] ], "2d.layer.global-states.alpha.blending.w.html": [ - "ff33fc450529c74a612c663b83d40e5a9df584ef", + "618480c813fdd19049284ead5e1ec8f636b1d4c6", [ null, [ @@ -309235,7 +309511,7 @@ ] ], "2d.layer.global-states.alpha.composite.html": [ - "21582189b1d800e96fed5317f92c23090092b0a7", + "94fed5752df2b618e2b34b4ca8a931b024bc1044", [ null, [ @@ -309248,7 +309524,7 @@ ] ], "2d.layer.global-states.alpha.composite.shadow.html": [ - "bb3d886b54fb0ea2f836a991ab88200101269880", + "841742ef1e7fcbd796952d1888d6654db7f543ab", [ null, [ @@ -309261,7 +309537,7 @@ ] ], "2d.layer.global-states.alpha.composite.shadow.w.html": [ - "592f92921b8b6fb97d833c0f2fad37efba7bf52e", + "ef44257c0ad3d57efbe222badd43cc3142115fb0", [ null, [ @@ -309274,7 +309550,7 @@ ] ], "2d.layer.global-states.alpha.composite.w.html": [ - "2359e92790fa03dc25a3fdb4b1a2a9ff74e8415a", + "d7d2b7a21e28596a4b031ee771dff98dc7ce063b", [ null, [ @@ -309287,7 +309563,7 @@ ] ], "2d.layer.global-states.alpha.html": [ - "67a8ae60249f12d79bb424abcec7258da5ce199b", + "63a264e6819fd67841f69bf240da0dcc7dd2a562", [ null, [ @@ -309300,7 +309576,7 @@ ] ], "2d.layer.global-states.alpha.shadow.html": [ - "a67f5872f78f204248ebd6dd5cea041f1a72d24a", + "daa788cd1505083bfcb5e9a2d7b38df84092758b", [ null, [ @@ -309313,7 +309589,7 @@ ] ], "2d.layer.global-states.alpha.shadow.w.html": [ - "35df72aabcd888df0e7b51e118aa931bd4db4a6f", + "f75db3d249068e56a1f44287dee5cbc592a40bba", [ null, [ @@ -309326,7 +309602,7 @@ ] ], "2d.layer.global-states.alpha.w.html": [ - "2db6b64738cb94c675146e298111e63763f1777e", + "694f31e208b3276a0c30c7dc4eb4750e48386f6a", [ null, [ @@ -309339,7 +309615,7 @@ ] ], "2d.layer.global-states.blending.html": [ - "6bcfd2854a607bbaddba85d8c07b4ebb01126dbf", + "6a36bb4ba101ce5e91f0279c95a728e94d808912", [ null, [ @@ -309352,7 +309628,7 @@ ] ], "2d.layer.global-states.blending.shadow.html": [ - "f1e9b7d23a31ae4b3b50cad0bc0d6a16b64f9640", + "9ad87aa0cd2bf7822fbcbda30b26db279bf33a06", [ null, [ @@ -309365,7 +309641,7 @@ ] ], "2d.layer.global-states.blending.shadow.w.html": [ - "1d22e94f6f9e7a9cbb025f9ba2ef246f90a24d85", + "dc52e9e9251329199814103d18923c659c59265f", [ null, [ @@ -309378,7 +309654,7 @@ ] ], "2d.layer.global-states.blending.w.html": [ - "227c72b80ac676eaa38277e78a8479d432bb8c2a", + "8964e97713cd9eea2cdef3904194b3f461fb4be7", [ null, [ @@ -309391,7 +309667,7 @@ ] ], "2d.layer.global-states.composite.html": [ - "9d4d1dce8a422ffc5125ece855e54ff9ee8aeb60", + "84fb4b3d95a199c82d6b556af8a13cce374877ef", [ null, [ @@ -309404,7 +309680,7 @@ ] ], "2d.layer.global-states.composite.shadow.html": [ - "9ad39065c6a32facdbcd0b2cbf1b4383e1447757", + "2e0883f5af81035a80d24ae4ed471ee7f5717051", [ null, [ @@ -309417,7 +309693,7 @@ ] ], "2d.layer.global-states.composite.shadow.w.html": [ - "b45c9d3aadc678748d6982ca904b8e40e3e720fc", + "66d44050581365e7a23943101a2cf55adaf85dfe", [ null, [ @@ -309430,7 +309706,7 @@ ] ], "2d.layer.global-states.composite.w.html": [ - "66493889b20c5c7412cae395e40761b1597ec6c8", + "b695871fcdcfc55469ae9f29983bff485edd76b8", [ null, [ @@ -309443,7 +309719,7 @@ ] ], "2d.layer.global-states.filter.alpha.blending.html": [ - "37d0e3dd1c5543e400cc3a087fcc7437330c4149", + "bf483ccc9259c0ea7edb9ee0ba365190e227da93", [ null, [ @@ -309456,7 +309732,7 @@ ] ], "2d.layer.global-states.filter.alpha.blending.shadow.html": [ - "93278cb5aa380fb59c953a2f3d4c9c4460e05e98", + "d914a70867fa8899c8cd2ec81d2130e10f84d98f", [ null, [ @@ -309469,7 +309745,7 @@ ] ], "2d.layer.global-states.filter.alpha.blending.shadow.w.html": [ - "783693f2c1430e558d23b332d2e6b260bd325134", + "a1acd0d083a4889f95c09e05dc660643ed9c0fd3", [ null, [ @@ -309482,7 +309758,7 @@ ] ], "2d.layer.global-states.filter.alpha.blending.w.html": [ - "53533e4ece628306624a49e871ef9c5b4667ceea", + "47503d5478bb9605f03776c03cf6f6ca057f36a9", [ null, [ @@ -309495,7 +309771,7 @@ ] ], "2d.layer.global-states.filter.alpha.composite.html": [ - "f0af85f8f51fa31982720f87ef4092d88870a29d", + "7d4f8ecda52d36836f8ed2ed0db5ab4889a05dc0", [ null, [ @@ -309508,7 +309784,7 @@ ] ], "2d.layer.global-states.filter.alpha.composite.shadow.html": [ - "46cd28b6c2b8b08875eb4621b283d2d994b26b5f", + "f75bd251ac4378b0dace8e77a2cd1932a3c0c485", [ null, [ @@ -309521,7 +309797,7 @@ ] ], "2d.layer.global-states.filter.alpha.composite.shadow.w.html": [ - "044b75927b399edc9601c3c52159f628fb688073", + "783a04cafbf837b4dc30e2eea562426e2fcd5de9", [ null, [ @@ -309534,7 +309810,7 @@ ] ], "2d.layer.global-states.filter.alpha.composite.w.html": [ - "be25ca66b169c6d873cfbfcac8ad28ba3ec36b22", + "ed8af9a0f1dff1efbf32076bc5d9e90effef3fdf", [ null, [ @@ -309547,7 +309823,7 @@ ] ], "2d.layer.global-states.filter.alpha.html": [ - "6567094376b6a31b375cfa08e6fe4e99991163fb", + "4f8954f978c2971a0b168adbd83092f63427a999", [ null, [ @@ -309560,7 +309836,7 @@ ] ], "2d.layer.global-states.filter.alpha.shadow.html": [ - "3059bf306cd76531ca094ca4fea104af64b54b96", + "0cfa86a0125fcf17661190dc7d1b7621a8008998", [ null, [ @@ -309573,7 +309849,7 @@ ] ], "2d.layer.global-states.filter.alpha.shadow.w.html": [ - "a481073ccfc59b244c0af2ad11b88f3de6e74b2b", + "015fe946338aa0ee4dd76a093a08eae22bb76e08", [ null, [ @@ -309586,7 +309862,7 @@ ] ], "2d.layer.global-states.filter.alpha.w.html": [ - "b5d81078899bcdd88adf63e62a9c52a87ba66262", + "4334fd6c1b067acaf3d2e9fbac52d35d54852f82", [ null, [ @@ -309599,7 +309875,7 @@ ] ], "2d.layer.global-states.filter.blending.html": [ - "a574e82932871d2ffb023962c4d32712cd766a65", + "7f3d1a2cb3c73488cdeda5752de4d53fe582acaf", [ null, [ @@ -309612,7 +309888,7 @@ ] ], "2d.layer.global-states.filter.blending.shadow.html": [ - "4bdf80337f8a93087c2530b6690dbd7b3e84d63e", + "9b9862e57ffa9022f80d9aa6e5ef38fef117e58d", [ null, [ @@ -309625,7 +309901,7 @@ ] ], "2d.layer.global-states.filter.blending.shadow.w.html": [ - "23cd4e834b04f23cca1dafee2659e24000a972ff", + "1d7e74b64eb53aee1139a399e47f685ee2dfe226", [ null, [ @@ -309638,7 +309914,7 @@ ] ], "2d.layer.global-states.filter.blending.w.html": [ - "bd7a51d89877bb871c8532870549e5e47b3d4794", + "f5ccee1d858b5931063c7f9fde4d2a0a713136fc", [ null, [ @@ -309651,7 +309927,7 @@ ] ], "2d.layer.global-states.filter.composite.html": [ - "663a953a29e2725f46b3a00acb711e150ae7d517", + "2e8272b2bfa963d25937e14c4892b0e764a7deed", [ null, [ @@ -309664,7 +309940,7 @@ ] ], "2d.layer.global-states.filter.composite.shadow.html": [ - "52ad8646f01c2f58cad4e68ad116987cdd765a47", + "077041a29400d15a867258a6c895309c2d592539", [ null, [ @@ -309677,7 +309953,7 @@ ] ], "2d.layer.global-states.filter.composite.shadow.w.html": [ - "bf7139edce6c23f2891d1fecb33ed4a9be622cdb", + "b162354da44529283e62056500ff0d0e9e008b12", [ null, [ @@ -309690,7 +309966,7 @@ ] ], "2d.layer.global-states.filter.composite.w.html": [ - "1f30d1e5644f373683def54c618abd3f19a33aef", + "b4158392660152977a246cb84593f253bbc15ecd", [ null, [ @@ -309703,7 +309979,7 @@ ] ], "2d.layer.global-states.filter.no-global-states.html": [ - "0619faa944ffea351f61b7cd4841b933895868a1", + "ccae63a26ab5682ad02897017d6e8dc3c1302b59", [ null, [ @@ -309716,7 +309992,7 @@ ] ], "2d.layer.global-states.filter.no-global-states.w.html": [ - "3a7168382006be4f6fbc4bd324b87532b578084f", + "6ce768ad2678c701e6c53503d6eac169287639fe", [ null, [ @@ -309729,7 +310005,7 @@ ] ], "2d.layer.global-states.filter.shadow.html": [ - "69120c105e5d17f1d5c6cbd1aa8a3d3a30948e0b", + "9a20e39fd5a22853717fbb91faab13e5eea12ca5", [ null, [ @@ -309742,7 +310018,7 @@ ] ], "2d.layer.global-states.filter.shadow.w.html": [ - "8a770b2911e58e78b66a528bd92c25edb963af05", + "26bdf7558762db5139631eee06dcaf4865b19b05", [ null, [ @@ -309755,7 +310031,7 @@ ] ], "2d.layer.global-states.no-global-states.html": [ - "022736c7b5b46c6eba7b22615cc166eaacf7accb", + "c8a98153816c1ae5f3064e75b7609b95264ce030", [ null, [ @@ -309768,7 +310044,7 @@ ] ], "2d.layer.global-states.no-global-states.w.html": [ - "80ed4e4503d02b12b4c4b6e657935cd451510868", + "db03a3fd0c3c9f820fe5889b27483a4d8f070727", [ null, [ @@ -309781,7 +310057,7 @@ ] ], "2d.layer.global-states.shadow.html": [ - "6402dc5760751d92a0642a1fd55285068fee7106", + "41a832c516e6bb7ff03dd7d802c6965c9ad41ca5", [ null, [ @@ -309794,7 +310070,7 @@ ] ], "2d.layer.global-states.shadow.w.html": [ - "e41e7aee4641bf6d32f5465c622daef21ffb5691", + "7b78f4b739ad8644a7082367bf67b673c951a1c1", [ null, [ @@ -309807,7 +310083,7 @@ ] ], "2d.layer.nested.html": [ - "0c168493c2143cd68e2a21fedbd64a2438e0a6a5", + "9e5b7d5826c17ee5a6c52bbd53a1cbc2b70081e3", [ null, [ @@ -309820,7 +310096,7 @@ ] ], "2d.layer.nested.w.html": [ - "3b81691e06ba27bc1f8f57e14af117ee72677523", + "99e73906096bd8f7f0fb81ddf5aea70853ad05e5", [ null, [ @@ -309832,8 +310108,164 @@ {} ] ], + "2d.layer.render-opportunities.convertToBlob.html": [ + "c1a139a3de8db540284dd7100f11232ccc9aed10", + [ + null, + [ + [ + "/html/canvas/offscreen/layers/2d.layer.render-opportunities.convertToBlob-expected.html", + "==" + ] + ], + {} + ] + ], + "2d.layer.render-opportunities.convertToBlob.w.html": [ + "404fef3ad6a597ed99a1a66be6e3ff5264644d02", + [ + null, + [ + [ + "/html/canvas/offscreen/layers/2d.layer.render-opportunities.convertToBlob-expected.html", + "==" + ] + ], + {} + ] + ], + "2d.layer.render-opportunities.createImageBitmap.html": [ + "876b027170edc6d2021dd233299b4256c73b9a92", + [ + null, + [ + [ + "/html/canvas/offscreen/layers/2d.layer.render-opportunities.createImageBitmap-expected.html", + "==" + ] + ], + {} + ] + ], + "2d.layer.render-opportunities.createImageBitmap.w.html": [ + "9a89492e399222bc9252ec92c3336098dc07e070", + [ + null, + [ + [ + "/html/canvas/offscreen/layers/2d.layer.render-opportunities.createImageBitmap-expected.html", + "==" + ] + ], + {} + ] + ], + "2d.layer.render-opportunities.drawImage.html": [ + "dd178206073801c5e0eafda4abc39f25ef4bac71", + [ + null, + [ + [ + "/html/canvas/offscreen/layers/2d.layer.render-opportunities.drawImage-expected.html", + "==" + ] + ], + {} + ] + ], + "2d.layer.render-opportunities.drawImage.w.html": [ + "80fbfbd272ed7ee29497f6a6989a94113c07f5ca", + [ + null, + [ + [ + "/html/canvas/offscreen/layers/2d.layer.render-opportunities.drawImage-expected.html", + "==" + ] + ], + {} + ] + ], + "2d.layer.render-opportunities.getImageData.html": [ + "b6f3c1b5626ffb0f7e75eaadea73651baf3b48de", + [ + null, + [ + [ + "/html/canvas/offscreen/layers/2d.layer.render-opportunities.getImageData-expected.html", + "==" + ] + ], + {} + ] + ], + "2d.layer.render-opportunities.getImageData.w.html": [ + "187eb0fce96bff4c105ce154c1b101a24b3095f1", + [ + null, + [ + [ + "/html/canvas/offscreen/layers/2d.layer.render-opportunities.getImageData-expected.html", + "==" + ] + ], + {} + ] + ], + "2d.layer.render-opportunities.putImageData.html": [ + "b4600156136c3aadb98db5e6a9de4beb54a95a69", + [ + null, + [ + [ + "/html/canvas/offscreen/layers/2d.layer.render-opportunities.putImageData-expected.html", + "==" + ] + ], + {} + ] + ], + "2d.layer.render-opportunities.putImageData.w.html": [ + "9ffac071c36b2e2f85280be0ba511c664e0a42e2", + [ + null, + [ + [ + "/html/canvas/offscreen/layers/2d.layer.render-opportunities.putImageData-expected.html", + "==" + ] + ], + {} + ] + ], + "2d.layer.render-opportunities.transferToImageBitmap.html": [ + "27830644b0553d125995a87055b65b752cfd5b41", + [ + null, + [ + [ + "/html/canvas/offscreen/layers/2d.layer.render-opportunities.transferToImageBitmap-expected.html", + "==" + ] + ], + {} + ] + ], + "2d.layer.render-opportunities.transferToImageBitmap.w.html": [ + "06e016020db2ed99a47b1c8c336b168735a973ca", + [ + null, + [ + [ + "/html/canvas/offscreen/layers/2d.layer.render-opportunities.transferToImageBitmap-expected.html", + "==" + ] + ], + {} + ] + ], "2d.layer.restore-style.html": [ - "66f99835df4dbc04adc5ab3aedbf83d3116ee9e5", + "a3593cd2a82748df9db8bd74a67dbc29dcaefb31", [ null, [ @@ -309862,7 +310294,7 @@ ] ], "2d.layer.restore-style.w.html": [ - "a717a1d31222b4f5c7d5f481156a613259660a1f", + "a66fc2bc598344c7c9afc51dbdecbd13935b37a3", [ null, [ @@ -309891,7 +310323,7 @@ ] ], "2d.layer.several-complex.html": [ - "1d50bd4de6160a6fce2fd641236cb7e086cc0d4f", + "c4b50282805374bbee713ae7b9506eccc7d39cce", [ null, [ @@ -309920,7 +310352,7 @@ ] ], "2d.layer.several-complex.w.html": [ - "7982a8dbc4fbbee7e3492f7fe269ea3046c30b4b", + "114c5e06868141114c22f830a12fa31673eb5d0a", [ null, [ @@ -309947,6 +310379,32 @@ ] } ] + ], + "2d.layer.unclosed.html": [ + "689ee801cf27dcb8b61e9e89c5655a31708d689b", + [ + null, + [ + [ + "/html/canvas/offscreen/layers/2d.layer.unclosed-expected.html", + "==" + ] + ], + {} + ] + ], + "2d.layer.unclosed.w.html": [ + "0c7812e88c7bd34d18ebee8c8730547a4295fe30", + [ + null, + [ + [ + "/html/canvas/offscreen/layers/2d.layer.unclosed-expected.html", + "==" + ] + ], + {} + ] ] } } @@ -320900,6 +321358,19 @@ }, "scroll-animations": { "css": { + "animation-range-visual-test.html": [ + "f675f5108aec2ef2eb27793efca6e7e6a88f3324", + [ + null, + [ + [ + "/scroll-animations/css/animation-range-visual-test-ref.html", + "==" + ] + ], + {} + ] + ], "scroll-animation-initial-offset.html": [ "34ae52d47927ee73c9c41c6f608bcd988e8f0cd7", [ @@ -320992,7 +321463,7 @@ ] ], "scroll-timeline-update-reversed-animation.html": [ - "93ad6916ea7df38088093d5c82cb952ba8a65f4c", + "6bc18544f4ac7e61e98d5363520d3abaa1c48564", [ null, [ @@ -321005,7 +321476,7 @@ ] ], "view-timeline-range-update-reversed-animation.html": [ - "c7199161607162d106ba24a4815eb6f9cbbaf6e5", + "960a8e6ecfb90bf9c03178aab3fa8b3047c41dc3", [ null, [ @@ -321018,7 +321489,7 @@ ] ], "view-timeline-range-update.html": [ - "e8e761d86ba14e100b00758e52f5956cf4c8e340", + "5400d8314b087d479f0a6270c6c0b8c07af5a4a7", [ null, [ @@ -321031,7 +321502,7 @@ ] ], "view-timeline-subject-bounds-update.html": [ - "7001eceeaf8f4997d7fb3f8b297eaa3827c537e6", + "2961fedd4258bc60a3a0a9e404e56a4c5bd7dd39", [ null, [ @@ -323451,6 +323922,19 @@ {} ] ], + "pattern-opacity-01.svg": [ + "eb2d2d7e9a9a7776e5ffeeaf51ba992204a70fc4", + [ + null, + [ + [ + "/svg/pservers/reftests/reference/pattern-opacity-01-ref.svg", + "==" + ] + ], + {} + ] + ], "pattern-viewbox-01.svg": [ "618b8fc29e69d2624d5556d6bbcdba600ce21a4a", [ @@ -328280,7 +328764,7 @@ }, "support": { ".azure-pipelines.yml": [ - "7851cd61e1f3e1ade11251758ac89831fbf80318", + "a21ebce6bc7abf9ab36066631637fc8ccbae23f7", [] ], ".gitattributes": [ @@ -331624,7 +332108,15 @@ [] ] }, + "accept-ch.wildcard.https.sub.html.sub.headers": [ + "66ad9243c7dc54e59052fa4fe64124cd63d0e84e", + [] + ], "critical-ch": { + "critical-ch.navigation-timing.restart.https.html.headers": [ + "b221a32886fffa1fd8dc5562fa211b8446db835b", + [] + ], "resources": { "echo-critical-hint.py": [ "a5c5160f7503ea3644b6d2deb9827994025c1af9", @@ -331773,6 +332265,14 @@ "f5beb4c3654c53ed136374519516505593b24a0b", [] ], + "accept-ch.wildcard.iframe.https.sub.html": [ + "250a9d9e2247db9c9d8bd65e11141ff2e4ff5087", + [] + ], + "accept-ch.wildcard.iframe.https.sub.html.sub.headers": [ + "c1c0fcd5c2ae6298f124de4ec74a05bd29d47ea8", + [] + ], "clienthintslist.py": [ "3d1f7caf4680fcdff15995aa08a31630f547e8f6", [] @@ -332023,6 +332523,10 @@ "6e555e3b197ce2f448f59d61e1488a0175490145", [] ], + "page.html": [ + "35bde8e5016bd3ff045ebe8cc3e0e39b08d90dc1", + [] + ], "user-activation.js": [ "ed294bb9cb27b552f23061118fcd260dc6b86a8f", [] @@ -332201,7 +332705,7 @@ [] ], "rendering-utils.js": [ - "8027cd5f8484702c35348eaf8b405684915cf283", + "46283bd5d078a14922e24160053017b6e8cb072c", [] ], "sab.js": [ @@ -350995,7 +351499,7 @@ [] ], "testharness-helper.sub.js": [ - "4adc52169612c91237460e9f6b04fc86171eba6d", + "7d2307ebbc974446d59fd7b023fe9f7ce088c193", [] ] } @@ -352969,6 +353473,10 @@ "72fa50e66ebf5b552e930f63ce06e93298f1fdcb", [] ], + "list-cookies-for-script.py": [ + "b325d1f7450faaf9a932b48f8699a49a7221f88f", + [] + ], "list.py": [ "4cb6639659abb611a5f3245f4e437f2544664b24", [] @@ -373031,6 +373539,22 @@ "10324966edb042c1c7298ce22dad76766c2a777b", [] ], + "color-mix-currentcolor-background-repaint-expected.xht": [ + "05a13794482a94f6c10bd9d4c98704e63ef60331", + [] + ], + "color-mix-currentcolor-background-repaint-parent-expected.xht": [ + "05a13794482a94f6c10bd9d4c98704e63ef60331", + [] + ], + "color-mix-currentcolor-outline-repaint-expected.xht": [ + "05a13794482a94f6c10bd9d4c98704e63ef60331", + [] + ], + "color-mix-currentcolor-outline-repaint-parent-expected.xht": [ + "05a13794482a94f6c10bd9d4c98704e63ef60331", + [] + ], "document-canvas-remove-body-ref.html": [ "8612aaafa99b6805690766d4ac5f910a695a7991", [] @@ -388788,6 +389312,10 @@ "f8fa0ab81b9fecee6d9efbb8f20e4af4cd1d89ad", [] ], + "orthogonal-writing-mode-006-ref.html": [ + "2bf12f083fe9f8da36076dcc27413c599b43a076", + [] + ], "parent-repeat-auto-fit-001-ref.html": [ "2217497cd2bf1813ecb585564788b81488079b85", [] @@ -388847,6 +389375,10 @@ "writing-directions-001-ref.html": [ "90612516889e8feb5b5b0ce6820b44d8531ab8be", [] + ], + "writing-directions-002-ref.html": [ + "cd1ee527ab1053bc5aa4b3e10466b09cfaa605e0", + [] ] }, "support": { @@ -413835,6 +414367,10 @@ "1b63235b7cdffe9ebb43bfac3a01d5220e1519fb", [] ], + "automatic-beacon-store.py": [ + "f783c8530c4386321c6da8e7be1ff4732074917d", + [] + ], "background-fetch-inner.https.html": [ "1bca25a957a3fe4069df838a5b7cbaa42e813f9b", [] @@ -414112,7 +414648,7 @@ [] ], "fledge-bidding-logic.js": [ - "c19cc1d0337472981283e3e729c93d8f4328f2b1", + "ab6685f1842db5b7e76a1c9f8443125c500e5c37", [] ], "fledge-bidding-logic.js.headers": [ @@ -414532,7 +415068,7 @@ [] ], "utils.js": [ - "2263fc1db18ecddd9674b5b7b6b65e8456670058", + "4638f37cbb1576e4b85e98616cf1c159a79e3d95", [] ], "web-bluetooth-inner.html": [ @@ -417475,6 +418011,12 @@ [] ] }, + "graphics-aria": { + "META.yml": [ + "692db91315ef759184fa1e4b7e259a9af40f3686", + [] + ] + }, "gyroscope": { "Gyroscope-disabled-by-feature-policy.https.html.headers": [ "3d91d5840be655ce477c46b3456b2fbe9cd3a3a2", @@ -420301,6 +420843,34 @@ "65525d4d6a23db56e5717147a60fa8e22d0519a2", [] ], + "2d.layer.render-opportunities.createImageBitmap-expected.html": [ + "8ce0c51e8e4f8dbea647b19b75b86c0e53415b25", + [] + ], + "2d.layer.render-opportunities.drawImage-expected.html": [ + "1ddc6d1b44964c2fe9708be8a7cc9262eea3273a", + [] + ], + "2d.layer.render-opportunities.getImageData-expected.html": [ + "ea0e78e0f28b02dffada148b1cb0872bfc6b7a26", + [] + ], + "2d.layer.render-opportunities.putImageData-expected.html": [ + "3d63bbe776672c9af514714ca96446179eb72eb2", + [] + ], + "2d.layer.render-opportunities.requestAnimationFrame-expected.html": [ + "138f3a7ccbb11c075119245fdbce9e9feba7265f", + [] + ], + "2d.layer.render-opportunities.toBlob-expected.html": [ + "fda8e8d7c6da225d60ef5de884ba4cbd2d5117c1", + [] + ], + "2d.layer.render-opportunities.toDataURL-expected.html": [ + "22a9770331d82a0965e6f06f4f98dfe8c681da09", + [] + ], "2d.layer.restore-style-expected.html": [ "1d0ac3558d1d4c15609c364a6e5678ed329fa272", [] @@ -420308,6 +420878,10 @@ "2d.layer.several-complex-expected.html": [ "84ad6244740e997d62cd0bdf4f017a7a6c15d713", [] + ], + "2d.layer.unclosed-expected.html": [ + "c41b253c95ba2b4f970b6ae59b58e444df14d866", + [] ] }, "manual": { @@ -421151,6 +421725,30 @@ "65525d4d6a23db56e5717147a60fa8e22d0519a2", [] ], + "2d.layer.render-opportunities.convertToBlob-expected.html": [ + "1e61775165527caed9da4cb1cde38f6a09438904", + [] + ], + "2d.layer.render-opportunities.createImageBitmap-expected.html": [ + "8ce0c51e8e4f8dbea647b19b75b86c0e53415b25", + [] + ], + "2d.layer.render-opportunities.drawImage-expected.html": [ + "1ddc6d1b44964c2fe9708be8a7cc9262eea3273a", + [] + ], + "2d.layer.render-opportunities.getImageData-expected.html": [ + "ea0e78e0f28b02dffada148b1cb0872bfc6b7a26", + [] + ], + "2d.layer.render-opportunities.putImageData-expected.html": [ + "3d63bbe776672c9af514714ca96446179eb72eb2", + [] + ], + "2d.layer.render-opportunities.transferToImageBitmap-expected.html": [ + "2833849da67f06693a228d9d3cec8c5ba56c8a8c", + [] + ], "2d.layer.restore-style-expected.html": [ "1d0ac3558d1d4c15609c364a6e5678ed329fa272", [] @@ -421158,6 +421756,10 @@ "2d.layer.several-complex-expected.html": [ "84ad6244740e997d62cd0bdf4f017a7a6c15d713", [] + ], + "2d.layer.unclosed-expected.html": [ + "c41b253c95ba2b4f970b6ae59b58e444df14d866", + [] ] }, "manual": { @@ -421267,7 +421869,7 @@ [] ], "gentestutilsunion.py": [ - "e923a0777ba2127a84bcc251363b9d02ebc4aee2", + "bf5fdeee506055248a5b94fcad4d036ee697f11a", [] ], "name2dir-canvas.yaml": [ @@ -421283,7 +421885,7 @@ [] ], "templates-new.yaml": [ - "0940471dd4d5f6244b9a08111a930367afb2f726", + "7d8ebfccf565a293138aecc3eaecc54d0176c573", [] ], "templates.yaml": [ @@ -421370,11 +421972,11 @@ [] ], "filters.yaml": [ - "292dfcc0ec7aa92afcba9eb8d6506517c229e634", + "dd84f913f9ba04480759b9f2010006e97902f13d", [] ], "layers.yaml": [ - "d398ef2b5a2a62aed4d675a2cb71b9d7a5e805e1", + "fe1902c61b7548a33e8b6d39c35c0c4ce270e85c", [] ], "line-styles.yaml": [ @@ -422045,7 +422647,7 @@ [] ], "iframe-test.js": [ - "a18688caf786bb54d19df621b984dad3f9c1d411", + "f788cbd1ebdb7a76dff082d0a59649bf756310b2", [] ], "popup-test.js": [ @@ -422131,12 +422733,16 @@ "d5c99062d2bb8f9660b68c172754867b598ed43f", [] ], + "reporting-bcg-reuse.https.html.sub.headers": [ + "33abadd83dd9187bfa5ecf811f9fef7058412780", + [] + ], "reporting-from-rp-ro.https.html.sub.headers": [ - "424ad3e8de0297a2e66dd53914f0e5faa8651bff", + "07ecad96f2493c7ddc70cc5f37d242c07f0cabb1", [] ], "reporting-from-rp.https.html.sub.headers": [ - "6339ea34c7045eabe7457cf0c170edd35ea2ba76", + "a61e2919c8acb6be886ef16e764f1ba5dcabe9bc", [] ], "reporting-to-rp-ro.https.html.headers": [ @@ -428615,10 +429221,16 @@ [] ], "attributes-common-to-form-controls": { - "dirname-ltr-iframe.html": [ - "b5ed7e3d9a717746d9653c7d5f867f3acbf3e47f", - [] - ] + "resources": { + "dirname-iframe.html": [ + "b5ed7e3d9a717746d9653c7d5f867f3acbf3e47f", + [] + ], + "dirname.js": [ + "f0e97bc30142bcf4ee0429283486091203b2c220", + [] + ] + } }, "constraints": { "support": { @@ -429359,12 +429971,16 @@ [] ], "resources": { + "popover-hover-hide-common.js": [ + "9f407ef157d8a4f86c2787ed27e73e07dfb3b129", + [] + ], "popover-styles.css": [ "df683c3c64f4de11c49c14b9dc53cc4165dff4a7", [] ], "popover-utils.js": [ - "aa69b7d41ae032330dc20a9e565e0b1ff9c53058", + "4dc4d8138d80c1ee23a1addef0749241ac4f25b8", [] ] } @@ -432511,6 +433127,22 @@ } }, "processing-model-2": { + "integration-with-the-javascript-agent-formalism": { + "atomics-wait-async.https.any.js.headers": [ + "5f8621ef83660c66f0d037ea28fafefb558140f1", + [] + ], + "resources": { + "notify-worker.js": [ + "2780e5bc34eec9e49d4311459cd7fc285fbe3f65", + [] + ], + "notify-worker.js.headers": [ + "6604450991a122e3e241e40b1b9e0516c525389d", + [] + ] + } + }, "integration-with-the-javascript-job-queue": { "resources": { "README.md": [ @@ -433239,7 +433871,7 @@ [] ], "README.md": [ - "82138a300b84382094b7d971794d6f4501a01358", + "7d0ec556aa45e60fdf03f21d24087d0dbd836005", [] ], "assumptions": { @@ -433558,7 +434190,7 @@ [] ], "file_upload.sub.html.ini": [ - "e2bfbf8fb8fb71003bd06a8356fec3a074395040", + "26ffac48154796962709d2e74451a5ca77c2c690", [] ], "generate_test_report.html.ini": [ @@ -433979,7 +434611,7 @@ [] ], "attribution-reporting-api.idl": [ - "76640f54c8d5bd22151509d4d9b8a018d9492a09", + "ed4497b56ff5b7cafe3ae43ae1fcba1638f4b29c", [] ], "audio-output.idl": [ @@ -434079,11 +434711,11 @@ [] ], "css-cascade-6.idl": [ - "37cdfb8293097e4297691f92ad291fc0433269f3", + "3bdf6ba3a6bf4dddada0edfd96c68e5c9e774630", [] ], "css-cascade.idl": [ - "9011dc7fd9e2a3f835e6d6ff565d9854db82e96f", + "0dd9969f6ebc0b5c98e4a251fa67275ece32307b", [] ], "css-color-5.idl": [ @@ -434187,7 +434819,7 @@ [] ], "cssom.idl": [ - "222b3dc09ec0eeecfd83d6f25c71c0f250481453", + "7f5bf17139874ee5fd6d7dfcd835a03e6396dd6b", [] ], "custom-state-pseudo-class.idl": [ @@ -434247,7 +434879,7 @@ [] ], "fenced-frame.idl": [ - "2869b95e6bb3c5968a3ced65cefd5b4509dbff9d", + "6b0734d1f7be28a29ab26b8ca6a17fe623fa249c", [] ], "fetch.idl": [ @@ -434271,7 +434903,7 @@ [] ], "fs.idl": [ - "e2474132abfb4c7ffe2e6ebcca7158d4eadbee75", + "e341ab387d9c4767c52ad661286ddbf75d7770bf", [] ], "fullscreen.idl": [ @@ -434323,7 +434955,7 @@ [] ], "html.idl": [ - "33d4de0db976e1ee3008fa743772202f9207b14a", + "99b33705b3991c1ffd3823e8d8d2e7aacebf56a9", [] ], "idle-detection.idl": [ @@ -434447,7 +435079,7 @@ [] ], "mediastream-recording.idl": [ - "99f30282333a933c6f59e0e34ac127742efea2f7", + "496bfcf2e27da7a7da6c653b8e7f27b702f7386f", [] ], "model-element.idl": [ @@ -434570,6 +435202,10 @@ "d8ee0bb3a46f856ac2ea18f5731b8270a36c0262", [] ], + "real-world-meshing.idl": [ + "38fe71f6c66a7f798d75c71ad5fe128cf7c13ed3", + [] + ], "referrer-policy.idl": [ "0ef9a1fdecc87241a536df9f725f3d7e2030d3e3", [] @@ -434595,7 +435231,7 @@ [] ], "resource-timing.idl": [ - "151e5d46d842742cf7f7a6328bedcc40e4cf7456", + "aa17003493eb2bd32dc1be241aa88323cb1889c5", [] ], "sanitizer-api.idl": [ @@ -434627,7 +435263,7 @@ [] ], "scroll-animations.idl": [ - "14215509c9fec9db69602ed1f91c0ee1ee7052d0", + "31b3746e9d4d629e468646e695726814682e615e", [] ], "scroll-to-text-fragment.idl": [ @@ -434635,7 +435271,7 @@ [] ], "secure-payment-confirmation.idl": [ - "9061b243477b4aaecc4ce756d5e0aae654342fe5", + "08ec8065c53081b50091ac780c9b330abb6dc1b5", [] ], "selection-api.idl": [ @@ -434658,6 +435294,10 @@ "4fc1f085ea2c24b73a9fa5f7d706d87fedf225a6", [] ], + "shared-storage.idl": [ + "eb5806f9a6db83daa76d3807af3683cb07b6ba39", + [] + ], "speech-api.idl": [ "74085481525c943296f023e94a6532e5bc9f5b15", [] @@ -434666,6 +435306,10 @@ "fff583e0982399d7ebdd001653d4bf338a14243a", [] ], + "storage-buckets.idl": [ + "f3d500a5711d393e72975d212f1654dd9c93f8e4", + [] + ], "storage-buckets.tentative.idl": [ "73d72ceab9805195704bbc63fca6ba658018784f", [] @@ -434699,7 +435343,7 @@ [] ], "trust-token-api.idl": [ - "ee339590827e0f678d9dc1dfe592d4ab33ba697c", + "f521acea1f5e5f5d593576f4af9534bf4371bd0b", [] ], "trusted-types.idl": [ @@ -434707,7 +435351,7 @@ [] ], "turtledove.idl": [ - "cd81a3d87ef8cb476ee303eafe58fb3b9d4fbca2", + "8add667b57509d3ec86ff214de6ee7380721fe18", [] ], "ua-client-hints.idl": [ @@ -434719,7 +435363,7 @@ [] ], "url.idl": [ - "6549e45f419cd89e9e5e5f28889da8ff18cf2d79", + "a5e4d1eb492e8248d74824bd53b3a2120e847fe5", [] ], "urlpattern.idl": [ @@ -434795,7 +435439,7 @@ [] ], "webauthn.idl": [ - "58a9e285232184b99caed6434b1a66f8a8ecee4a", + "c7f72eacfd079e1555c355c4648692787ab1a3c6", [] ], "webcodecs-aac-codec-registration.idl": [ @@ -434803,11 +435447,11 @@ [] ], "webcodecs-av1-codec-registration.idl": [ - "00e4493d3c0a957fefbaeeeb95efeaa26afd871c", + "ab20879728db6ba619600ac82478162ea87a7e6e", [] ], "webcodecs-avc-codec-registration.idl": [ - "d4074f647dab2b1af158a4f544ccd4737164b32c", + "2b952c2219422bfd657976b222a397313ac7551e", [] ], "webcodecs-flac-codec-registration.idl": [ @@ -434827,7 +435471,7 @@ [] ], "webcodecs.idl": [ - "77649029db69dd81b77f4178f9325537d50e4198", + "0b95dc8b75788e126d395ec9d69371b11f0d3a6c", [] ], "webcrypto-secure-curves.idl": [ @@ -434847,7 +435491,7 @@ [] ], "webgpu.idl": [ - "284327a578999a7a068952526ab457389e40729f", + "34f78a1d8cd52b59eff807de7ab383afda60d53d", [] ], "webhid.idl": [ @@ -434863,11 +435507,11 @@ [] ], "webnn.idl": [ - "2c2ab35e909712ad4ab89fe0f16358b4e92b353c", + "d2b973a624b46f86299ad65d05e515e3d3c4b773", [] ], "webrtc-encoded-transform.idl": [ - "e48f1080c41209bd83d90e002aa00d52f4c2425f", + "59710bf46c2e3b57f09aaacccb80eb2c48f33406", [] ], "webrtc-ice.idl": [ @@ -434883,7 +435527,7 @@ [] ], "webrtc-stats.idl": [ - "7e820a26df4844bcd094e16089a86ebca235a612", + "a5fb3294b7e64b56b0afec24ab25112ab3cac4cd", [] ], "webrtc-svc.idl": [ @@ -434947,7 +435591,7 @@ [] ], "webxrlayers.idl": [ - "e182f47b9c5bce5b6f3c8d47109358eb6c999856", + "c8b3a71c699cb641d1b037d2b2c41190fea11bd7", [] ], "window-controls-overlay.idl": [ @@ -435262,7 +435906,7 @@ ] }, "lint.ignore": [ - "7118adb16114c8ae8b9da512470fb94124f5b8cb", + "1672f3b52e7a09b0e98ff6bd14c1ca6a9a5ab160", [] ], "loading": { @@ -438289,7 +438933,7 @@ [] ], "navigation-id.helper.js": [ - "53099cadb254df0a4d087bc9dd75340b5ddb40fa", + "1b72fe9908d573c902e8457aad24615431b5e719", [] ], "not-restored-reasons": { @@ -438343,6 +438987,10 @@ "bd7fba2ccf4b6ab7e604273c25010e31e443e376", [] ], + "worker-navigation-id.js": [ + "3a2740d0675c84faa34781307ba6a323586ad90e", + [] + ], "worker-with-performance-observer.js": [ "a72fe81c47feace765613a0962f2a7e63f71fa25", [] @@ -442391,6 +443039,10 @@ [] ], "css": { + "animation-range-visual-test-ref.html": [ + "c246f7f1b0a541aa3eb3cbdd01efd57d3018d5b9", + [] + ], "animation-update-ref.html": [ "7e375a1df7f063ba6cdbbdad92beb73915b84d6e", [] @@ -442434,8 +443086,12 @@ [] ], "support": { + "animation-range.css": [ + "453d076b6f34533d8b9105a96d8d30c1e66aac51", + [] + ], "testcommon.js": [ - "66bc27bb104ebead9b7466c4ead9076f589ac5e0", + "91540774d08a1b68a65ff68298f5dbff1ef674a1", [] ] } @@ -444687,15 +445343,15 @@ [] ], "partitioned-cookies-3p-credentialless-frame.html": [ - "3fdf937ae1a7f6feff8db0b2905353721cfd503a", + "25ddf601457c484160490a267cd8053f84c01063", [] ], "partitioned-cookies-3p-frame.html": [ - "6a8ed6ca989f1eeb2c9d46d8aaf0e202f0995e31", + "00b3412c41fb566fcab380e83f3ca9bbcd4aa859", [] ], "partitioned-cookies-3p-sw.js": [ - "bc2a2831568f4cc438933b88b7cad6997beb041b", + "767dbf443275a427facf340d72cb63d6bdc10df2", [] ], "partitioned-cookies-3p-window.html": [ @@ -444703,7 +445359,7 @@ [] ], "partitioned-cookies-sw.js": [ - "bc2a2831568f4cc438933b88b7cad6997beb041b", + "767dbf443275a427facf340d72cb63d6bdc10df2", [] ], "partitioned-service-worker-iframe-claim.html": [ @@ -445910,7 +446566,7 @@ [] ], "soft-navigation-helper.js": [ - "e8e5846c93b3f50f59a4b0b77529cda7fb0259de", + "baf26be8b0bf7a06a3e85bc46769e62f796283a0", [] ] } @@ -447299,6 +447955,10 @@ "120941444a4898197d6b6001f9908a6cd48b62ba", [] ], + "pattern-opacity-01-ref.svg": [ + "1c9c68bd9d5becec895d4cacac93082bc2defcec", + [] + ], "pattern-viewbox-01-ref.svg": [ "c9f6931deadd57bad20ae1dbbd529d595b14adfb", [] @@ -447771,13 +448431,17 @@ [] ], "affected_tests.yml": [ - "ffb1fe1f6fb14add4f1f833203343f0aefd20c76", + "6d3d32acc82640e80ebd92618d539ae596cdb348", [] ], "checkout.yml": [ "618c571465963a478a308899328d5fa5851d491e", [] ], + "color_profile.yml": [ + "d90c6ca429d55c1e7beee3a25d713970e085688c", + [] + ], "com.apple.SafariTechnologyPreview.plist": [ "122080972c9f63410062ee8d33d0ed0286af8f11", [] @@ -447860,7 +448524,7 @@ [] ], "commands.json": [ - "59463144967d782537a48a19a4d8a3a39a637eb8", + "f26baddacadefc150ec36db11ef0f83dc20e6ca1", [] ], "epochs_update.sh": [ @@ -447875,6 +448539,10 @@ "44de9fe1ad078673e92385bd6e4bedba129c2485", [] ], + "macos_color_profile.py": [ + "f0919d77159795975ad2e0a68db37d96d82f7bb1", + [] + ], "make_hosts_file.py": [ "f3397281b71e85978a8bf737a1e52a0d622bc174", [] @@ -447891,8 +448559,12 @@ "a976e5d639866a58f46f2eb5ff3a619289b277ef", [] ], + "requirements_macos_color_profile.txt": [ + "c3448a98dfff36a8afdd3f4063e09aa875552be3", + [] + ], "requirements_tc.txt": [ - "91789c95e305fe737a34aa403ded9ca81aaa1652", + "9ab88012762a02398a80f8a5e4cb77c50f382450", [] ], "run_tc.py": [ @@ -448391,7 +449063,7 @@ ] }, "mypy.ini": [ - "def40c0bd0614c297bd1b1213f2182a2dba07a2a", + "5dc55c5b7470de4845f09bbc50b32a1d6686c1b1", [] ], "pytest.ini": [ @@ -448411,7 +449083,7 @@ [] ], "requirements_tests.txt": [ - "ca946a306e7b31d75be71cb9a5e52b8e44aaf346", + "ed41215bcc1bc16b3221dd80cfbe66e2521efe69", [] ], "runner": { @@ -456586,7 +457258,7 @@ [] ], "wpt.py": [ - "e423a8c67c5a2ea195515cf78504f590a83a7985", + "e1df4ef42dcfb8e923711cbbf781eb224057d7c4", [] ] }, @@ -456626,7 +457298,7 @@ ] }, "requirements.txt": [ - "fcaab2e6674ab475428baa900bd5c174412d5d28", + "28be0b3c6e10e5881bc6acfe700d17f514167979", [] ], "requirements_chromium.txt": [ @@ -456688,7 +457360,7 @@ [] ], "chrome.py": [ - "7092122d8c40e8327cfb91bcfecea5ca25776066", + "3bdbf6f962c3a8de49cd70212ffed22692bfb2e5", [] ], "chrome_android.py": [ @@ -456804,7 +457476,7 @@ [] ], "executorchrome.py": [ - "a3a733efbd256cce6715685b05dce952102c22c0", + "5df9de5f7e3c9b119af2a592c3214af9f30ef65e", [] ], "executorcontentshell.py": [ @@ -456828,7 +457500,7 @@ [] ], "executorwebdriver.py": [ - "ab7d1ab0d4c5200b39962c256f9e27ab9492ccc7", + "9a771f11c6ca9db2b1641af20cfdd9c9525477f5", [] ], "executorwktr.py": [ @@ -456987,7 +457659,7 @@ [] ], "testloader.py": [ - "c35e509776aae10ba83528058ef813068a2f0ef9", + "950273c38941ca95ae3ab068f7573983d4da76f6", [] ], "testrunner.py": [ @@ -457046,7 +457718,7 @@ [] ], "test_testloader.py": [ - "45b78496d1bdd741a65b77b8983451fdaa853abf", + "cef75e03be10535b7be60c324b04092b52ddaac9", [] ], "test_update.py": [ @@ -457093,7 +457765,7 @@ [] ], "wptcommandline.py": [ - "416e75b417f607b1cbb1e1d5bdc3ebd736af67bd", + "1c5895eec6ea8b19274a4fc6800d87efcb2c5c09", [] ], "wptlogging.py": [ @@ -461800,6 +462472,20 @@ "44f42eda493c27f5b4c83a3b53d427a2c51f7ce4", [] ] + }, + "url-parsing": { + "current": { + "current.html": [ + "82a48d409901b47cf3e2dfc22532b46de2dd60a1", + [] + ] + }, + "incumbent": { + "incumbent.html": [ + "2c5572b77493367aae1dc35c88b4713fdc47f352", + [] + ] + } } }, "security": { @@ -461979,6 +462665,10 @@ "4347d4aae3e1c6475b21a8f246fb768d91a43afc", [] ], + "echo_datagram_length.py": [ + "f0610b085fe30b4d5fda6473bf17fc498eb47650", + [] + ], "query.py": [ "75d458255ad7af10508dce9905bf2ddb259f3699", [] @@ -466739,7 +467429,7 @@ ] ], "filereader_readAsDataURL.any.js": [ - "d6812121295beedc38164a41cea20c848533369f", + "4f9dbf7a754a87694c737487a903467a4725cc7a", [ "FileAPI/reading-data-section/filereader_readAsDataURL.any.html", { @@ -487878,7 +488568,28 @@ ] ] }, + "accept-ch.wildcard.https.sub.html": [ + "36eccd6a5229ea39e6d94ad8d8e4bb9ae188f428", + [ + null, + {} + ] + ], "critical-ch": { + "critical-ch.navigation-timing.no-restart.https.html": [ + "a7c2ad705db844db61f6038ed0bba496a0598ce2", + [ + null, + {} + ] + ], + "critical-ch.navigation-timing.restart.https.html": [ + "d3a49a2e91ecf44b271e196fa6f5d766433bd161", + [ + null, + {} + ] + ], "iframe.https.window.js": [ "cbf128149e983fa1fb4e4ef085f5179c16b50016", [ @@ -488592,6 +489303,15 @@ } ] ], + "async-navigator-clipboard-write-multiple.tentative.https.sub.html": [ + "73cdd2f049e3ba1b0413476e49f0f98ef366c247", + [ + null, + { + "testdriver": true + } + ] + ], "async-promise-write-blobs-read-blobs.https.html": [ "12184c92e0777f5d10a63ad8e075e8422d5545a5", [ @@ -491528,7 +492248,7 @@ }, "embedded-enforcement": { "allow_csp_from-header.html": [ - "dd66bb77ac76f7fd9f8b626d41952298ff54d53f", + "b2abcbece0e3866b000096889465227c47ac7178", [ null, {} @@ -495389,6 +496109,13 @@ ] }, "nonce-hiding": { + "nonce-hiding-move-document.html": [ + "49de893ba03fbd25125fcf13eff8c352e4992d85", + [ + null, + {} + ] + ], "nonces.html": [ "7ee10a7b29e5a54918a75037ded0e5bd087f601a", [ @@ -501276,21 +502003,21 @@ ] ], "anchor-name-001.html": [ - "a7b4b01ff472b1488f2de50ddf7cadbda7ca34b9", + "4caf3ee2100327b03b73c5180ac4ecc8a3761173", [ null, {} ] ], "anchor-name-002.html": [ - "4c14e1d63c93ce59192b4fb54c13042f15480814", + "63b5d66a4e3ba66cdbac4bd550fbe385dcea102e", [ null, {} ] ], "anchor-name-003.html": [ - "91ff5bc9065ed3d9b9f321971ccf0cadb31a992b", + "9ab6b66d944cae1998f8d90add8cb3809575d0aa", [ null, {} @@ -501325,7 +502052,7 @@ ] ], "anchor-name-inline-001.html": [ - "70b753cda2d8aaabddbdc42d1e5cc6588279e88b", + "dba3472f5b1a2146a66eaf4c3d2429add3151321", [ null, {} @@ -501346,14 +502073,14 @@ ] ], "anchor-name-multicol-003.html": [ - "8b06b4c641caab53b6c4038c7100a78678360928", + "02fd1c164d65865940a1506ffe15c927d3324c05", [ null, {} ] ], "anchor-name-multicol-004.html": [ - "881578a4639e44abd04dfe7ead64345727e43cb2", + "fdd1772359ff609af103adce8fe5c673e360f8cf", [ null, {} @@ -501395,7 +502122,7 @@ ] ], "anchor-position-003.html": [ - "d5263fcddff526860684ecf68264e1ef7fe56f81", + "c149dd0e110e6486ed3aa9c453fd9f74efcee38e", [ null, {} @@ -501500,14 +502227,14 @@ ] ], "anchor-position-multicol-003.html": [ - "bf3e48ed207d12bb4c766009d33bb07041b2ca48", + "d23779ad9bf88ee4b49f9c9bdc97d3ce47d2a509", [ null, {} ] ], "anchor-position-multicol-004.html": [ - "2be88797541fd29a23b0d8b47448dcb5c5c81bb5", + "399494120ea0ea5da5534a0a14a9b99e598222d5", [ null, {} @@ -501542,7 +502269,7 @@ ] ], "anchor-position-multicol-fixed-001.html": [ - "6fca40dd7e90631d4272a0d27431e55cc6aca21f", + "b94680816e9aca235b7e499e1d902fbd95dd442e", [ null, {} @@ -501590,6 +502317,20 @@ {} ] ], + "anchor-scroll-002.html": [ + "88e8a754b5b1c81b75f3befabdf16216148b1317", + [ + null, + {} + ] + ], + "anchor-scroll-basics.html": [ + "6b2d96708bd44808f0cb7ce10a1b52e708e09eba", + [ + null, + {} + ] + ], "anchor-scroll-fallback-position-001.html": [ "a9a5d8c0ff4e84858c180eb440b514400ab97779", [ @@ -504729,7 +505470,7 @@ ] ], "color-computed-color-mix-function.html": [ - "8f05a99967c0902ad6e1c4d621b8d7af6ef85ef6", + "c1ca47491ffe165c76b8cf3187effd8ee10da126", [ null, {} @@ -504868,6 +505609,13 @@ {} ] ], + "color-mix-out-of-gamut.html": [ + "1803397f8a71dcfea8be93621fd47b33591f464e", + [ + null, + {} + ] + ], "color-valid-color-contrast-function.html": [ "bdb8f0f588805797c1589802043d761560f4cdb8", [ @@ -504938,13 +505686,6 @@ {} ] ], - "gamut-mapping.html": [ - "02133acced21478aa311f8e66f8cca52236deaf0", - [ - null, - {} - ] - ], "opacity-computed.html": [ "27d9316415f24bf8e398cc992508b0036935291c", [ @@ -505593,6 +506334,13 @@ {} ] ], + "display-contents-dynamic-style-queries.html": [ + "782cf566552423193669f9f0da034f802d265067", + [ + null, + {} + ] + ], "display-contents.html": [ "d96a46d06a85f024f0fce9d43e34dec6e271ea76", [ @@ -509002,6 +509750,13 @@ }, "css-fonts": { "animations": { + "font-size-adjust-composition.html": [ + "d98b0ffd10e5550ab7ccc7a96d02ebb93385ddcb", + [ + null, + {} + ] + ], "font-size-adjust-interpolation.html": [ "a138d7fee5a39bc925a7a4cc5224dcc3db5cc387", [ @@ -515155,7 +515910,7 @@ ] ], "clip-path-invalid.html": [ - "6b91f74ad484d4d0d70fa679db378d04e238125f", + "1dbdb5acab0cc86ed0f98d79c245b24c147a7053", [ null, {} @@ -515169,7 +515924,7 @@ ] ], "clip-path-valid.html": [ - "ec6ac5ae9bc349c8cb1dd473e9f9dc65f4002c97", + "895cdfacac6cc8ac56e67738aed53e55be7b2fcf", [ null, {} @@ -516521,6 +517276,15 @@ ] ], "overlay": { + "animation": { + "overlay-interpolation.html": [ + "a3034b88c131e12b2be6b268d46444d1a0645cff", + [ + null, + {} + ] + ] + }, "overlay-computed.html": [ "f1a0a315de6eeb08863d9fd4dbad2588b3492d89", [ @@ -533994,14 +534758,14 @@ ] ], "offset-path-parsing-invalid.html": [ - "949e45d828f102b8c3298a4d75ecc0a66c727a6b", + "28b45db8469f2b953df0381e9877bfc03f8b5b71", [ null, {} ] ], "offset-path-parsing-valid.html": [ - "95a9f8aabbc96eed703d86c512a5206036dd8dac", + "59a64b2116d603fa9ce79a614b8029033f2f1c42", [ null, {} @@ -544024,6 +544788,24 @@ } ] ], + "typing-space-in-editable-button.tentative.html": [ + "0f399378abf3de5f5bc90f82dddf138e447e8d70", + [ + null, + { + "testdriver": true + } + ] + ], + "typing-space-in-editable-summary.tentative.html": [ + "30a751d5239d378e70eaf9766c16fcb2e510bd36", + [ + null, + { + "testdriver": true + } + ] + ], "undo-insertparagraph-after-moving-split-nodes.html": [ "c61bcff9e9246abdabe8f5acc97b489db5708b94", [ @@ -559153,6 +559935,15 @@ {} ] ], + "automatic-beacon-click-handler.https.html": [ + "505eb6174f20de38ce6103f76e46dccc8caaa7a2", + [ + null, + { + "testdriver": true + } + ] + ], "background-fetch.https.html": [ "7036f2bb5f3bb5e42b5af1b5f970141c0884b5ef", [ @@ -560315,7 +561106,7 @@ ] ], "general.any.js": [ - "7bf98ba9b247924d1e0c813c8010112d63e965ca", + "3727bb42afe49ba8b52b8f8b5ac7856028c2828c", [ "fetch/api/abort/general.any.html", { @@ -566676,7 +567467,7 @@ ] }, "response-body-read-task-handling.html": [ - "c2c90eaa8bd951cf7d5168e7796dd1cb8dcf9cde", + "64b0755666168d7cac9808fe1593a01889a19bff", [ null, {} @@ -574699,8 +575490,8 @@ {} ] ], - "element-request-fullscreen-options.tentative.html": [ - "875431698f7a9212a40d444ddc10627defaf7b11", + "element-request-fullscreen-options.tentative.https.html": [ + "871c917dcc878d4ae1a177997483c1ac820c2dd0", [ null, { @@ -575370,6 +576161,17 @@ ] ] }, + "graphics-aria": { + "graphics-roles.html": [ + "159190ed833398d2410c5f4f2224f0b3a7dfd0a8", + [ + null, + { + "testdriver": true + } + ] + ] + }, "gyroscope": { "Gyroscope-disabled-by-feature-policy.https.html": [ "02cc44ec78b0c6ebeea657b8d0921943aa01028f", @@ -577632,8 +578434,8 @@ {} ] ], - "document-state.tentative.https.html": [ - "d0e629f63124579a2f4360403119dcd9fcb31190", + "document-state.https.html": [ + "609ce9b850369fae857c3e407cfbbaccaf381067", [ null, {} @@ -605139,7 +605941,7 @@ ] ], "access-reporting-post-message.https.html": [ - "4c8e96f57933f74d0ff3f76cafe498c20bef7353", + "5bc718e2a89a28a6867e83c0d85bc0cedefe39f6", [ null, {} @@ -605378,8 +606180,17 @@ } ] ], + "reporting-bcg-reuse.https.html": [ + "9bc171a269c5284de80cad871baafd58fb297da0", + [ + null, + { + "timeout": "long" + } + ] + ], "reporting-from-rp-ro.https.html": [ - "60322bffe7a1c7d8d536b35504e925b09ff0c6bd", + "b1da8cf77cefba3ab3ebaa5261dcc1c0b5583470", [ null, { @@ -605388,7 +606199,7 @@ ] ], "reporting-from-rp.https.html": [ - "5deb115d94ef2894e6551ca89f8d4966d2d438df", + "a8c11d7a4a89f6885e73422510c9046e9faab7a5", [ null, { @@ -605397,7 +606208,7 @@ ] ], "reporting-to-rp-ro.https.html": [ - "cf1385e766374d7fafae07eed9a857d8b9c381a3", + "eb80842863425fd60d04206354e60942c59232e1", [ null, { @@ -605406,7 +606217,7 @@ ] ], "reporting-to-rp.https.html": [ - "9ff374c1c787348115e5d10d624be64ea4040323", + "ad57afccf8fa4703434d39e070cce7744f65600d", [ null, { @@ -606143,7 +606954,7 @@ ] }, "name-content-attribute-and-property.html": [ - "3319c1875bf36c2cf6173ea606ecca0b74e0f1f1", + "082ed281fef888ddca0e6a743e9a8ba41c3816e7", [ null, {} @@ -606216,7 +607027,7 @@ ] ], "idlharness.https.html": [ - "4e9e25fd5df7221b4c99fd49c8fe0bb3753c549c", + "7d693d3c0a273ff2df256850baaeeb9203e54ba2", [ "html/dom/idlharness.https.html?exclude=(Document|Window|HTML.*)", { @@ -606237,7 +607048,7 @@ ] ], "idlharness.worker.js": [ - "16f6e85ce7c619e454d5657ca2978067785b0cff", + "88942ddfea13a10a14c4ceed360c9a7a9963e62e", [ "html/dom/idlharness.worker.html", {} @@ -606880,7 +607691,7 @@ "focus": { "sequential-focus-navigation-and-the-tabindex-attribute": { "focus-tabindex-event.html": [ - "8ff5843c866b62a040fce3133470fc48ffe7819e", + "55619661acc8721ec693fc89f78e5af5339c0b5a", [ null, { @@ -615644,21 +616455,28 @@ "forms": { "attributes-common-to-form-controls": { "dirname-ltr.html": [ - "9d1c9eb77e9fdef844689bb71b44c8c2271e6ba4", + "cbdbb72c674eec63e262957937f251fc557d9a6d", + [ + null, + {} + ] + ], + "dirname-only-if-applies.html": [ + "7d542111896e68e7df0b271b247126b99b3c1972", [ null, {} ] ], "dirname-rtl-auto.html": [ - "6368a26fafd74105428969660fec3d29bbcb4dce", + "072b85086857ba9d018895dfbc29a66a69b2dbc0", [ null, {} ] ], "dirname-rtl-inherited.html": [ - "1e6967d914a34de49033b1ea358b4093f11baf97", + "e7b07288d6b7ab0e0c2f4ce419dc6681760f8ab6", [ null, {} @@ -616002,6 +616820,13 @@ {} ] ], + "form-double-submit-requestsubmit.html": [ + "b4028784edd933e64fd8d4c1c86cda694fc3b312", + [ + null, + {} + ] + ], "form-double-submit-to-different-origin-frame.html": [ "00a46bfd4326fc2d35d50bfc4a2f68890a5594bb", [ @@ -616276,7 +617101,7 @@ ] ], "select-event.html": [ - "854b1f480460d61a77788cc7773c24a37b530cb2", + "d1b46a22d8621586be46ba6a535ab9467b1aed2d", [ null, { @@ -618194,6 +619019,13 @@ {} ] ], + "name-attribute.tentative.html": [ + "9aa5ce42e8e5ada6eeddfd4b8c2cff7359402157", + [ + null, + {} + ] + ], "toggleEvent.html": [ "8ad60de5d9b52ec5f22e6232d4ec8650fff5ec0c", [ @@ -618361,6 +619193,13 @@ {} ] ], + "dialog-focus-previous-outside.html": [ + "efd242c57694b8f8cc88c6974ef5236cca400200", + [ + null, + {} + ] + ], "dialog-focus-shadow-double-nested.html": [ "2cd63eb796b38f6a272aeb9eff13e5974705236b", [ @@ -618428,6 +619267,13 @@ } ] ], + "dialog-no-throw-requested-state.html": [ + "c86cbe84a62294b2d4ce949bd3e9d6af6623c8dc", + [ + null, + {} + ] + ], "dialog-open-2.html": [ "79120d07ebdca3625cce5925fc8ede3a528e9e53", [ @@ -618967,7 +619813,7 @@ ] ], "popover-attribute-basic.html": [ - "eab61407c8b38772059fb9dae2dfe33308138a1e", + "32d3deb3848c22ee48403e40c17038f1cc8e2f59", [ null, { @@ -619032,8 +619878,38 @@ } ] ], - "popover-hover-hide.tentative.html": [ - "ed647a7d7d8f9c2598cf2c69c21f84ec455f5994", + "popover-hover-hide-hide.tentative.html": [ + "57ca5723de562cc97b886e1410119596eefee313", + [ + null, + { + "testdriver": true, + "timeout": "long" + } + ] + ], + "popover-hover-hide-hover.tentative.html": [ + "d0036c0fe7b14b619a0c6562caf53713a478f6a7", + [ + null, + { + "testdriver": true, + "timeout": "long" + } + ] + ], + "popover-hover-hide-show.tentative.html": [ + "7b3fa2b30238df6e5f464b39bb246e7bef6ac241", + [ + null, + { + "testdriver": true, + "timeout": "long" + } + ] + ], + "popover-hover-hide-toggle.tentative.html": [ + "d6d4079e7e02be9cf6f6efde435fe4f1d0678d57", [ null, { @@ -619069,7 +619945,7 @@ ] ], "popover-light-dismiss.html": [ - "d7d1edd3a4b1fa655f971c69cf4d77b64926dc1b", + "4b888169e1becc6daca007a6d6e71df0004e8049", [ null, { @@ -619079,7 +619955,7 @@ ] ], "popover-move-documents.html": [ - "9feaa4b2bf8756aa1774cfa973327912d534ffac", + "11f52c2f2f0d14c74649cc7c52ac6e5ac68058b1", [ null, {} @@ -628116,6 +628992,31 @@ ] ], "integration-with-the-javascript-agent-formalism": { + "atomics-wait-async.https.any.js": [ + "3a3ea40d773f9b36314e714a17212f8ceed1f660", + [ + "html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/atomics-wait-async.https.any.html", + { + "script_metadata": [ + [ + "global", + "window,dedicatedworker" + ] + ] + } + ], + [ + "html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/atomics-wait-async.https.any.worker.html", + { + "script_metadata": [ + [ + "global", + "window,dedicatedworker" + ] + ] + } + ] + ], "requires-failure.https.any.js": [ "fddf85dbede1a36d4f161b638f19c39f8300ac47", [ @@ -636976,7 +637877,7 @@ ] ], "MediaRecorder-error.html": [ - "97e781054f33b1eaabb6433ad41f703b0806cc36", + "39e8676d19f886254a7b5387ee98fc153a41a1b6", [ null, {} @@ -637037,6 +637938,13 @@ {} ] ], + "MediaRecorder-video-key-frame-distance.html": [ + "b986b3075ff6d9e71ff83033dadf96ca0d8037c0", + [ + null, + {} + ] + ], "idlharness.window.js": [ "99e884530c0f42ba8f42e6c51dcddb13cae45681", [ @@ -644426,7 +645334,7 @@ }, "performance-timeline": { "back-forward-cache-restoration.tentative.html": [ - "733642fd03225a0877b93e8dcc09ec24e097935a", + "c673e09cb461e094d5616b7a43154fe2cffb12bd", [ null, {} @@ -644595,7 +645503,7 @@ ] ], "navigation-id-element-timing.tentative.html": [ - "bc52f208b0726421f1d36cdc6b737030c0760c1d", + "7ff415530bc69d6feb4a8800892a3b2eb06a8e8a", [ null, { @@ -644604,7 +645512,7 @@ ] ], "navigation-id-initial-load.tentative.html": [ - "3228e12778b5d510dedcdd15977e2b021473f097", + "93ddcff062e726ea60a4f6041f6a6bfb23f6fc72", [ null, { @@ -644613,7 +645521,7 @@ ] ], "navigation-id-long-task-task-attribution.tentative.html": [ - "662e17508b26dc671bf4ed25618a3b9ed9b0cac1", + "e1da9100aeee55f0f2ecfda6afb4993079a3585a", [ null, { @@ -644622,7 +645530,7 @@ ] ], "navigation-id-mark-measure.tentative.html": [ - "42795f94a98cd07aee3c13dab7d33bbd2743848e", + "30613ebb980eb01e1e273513e5e5ce90fb2c6931", [ null, { @@ -644631,7 +645539,7 @@ ] ], "navigation-id-reset.tentative.html": [ - "7386331d26e918ebe06b15207f92f7c60a372409", + "f5a2428e5f568ab2bac64797fdc3a52fb0829386", [ null, { @@ -644640,7 +645548,7 @@ ] ], "navigation-id-resource-timing.tentative.html": [ - "1ec906ebbbba4a8118f746ac94c52aa399556f05", + "6d0614a6e23940cc003aa21a7ddf1b166b7a1ea7", [ null, { @@ -644648,6 +645556,13 @@ } ] ], + "navigation-id-worker-created-entries.html": [ + "96fc57be1d426c9c364fe20359dafebf60380fd8", + [ + null, + {} + ] + ], "not-clonable.html": [ "d651776e5f4b945328e9de2651b8a59f11b53426", [ @@ -646842,7 +647757,7 @@ ] ], "pointerevent_auxclick_is_a_pointerevent.html": [ - "b3b7481d6ab19cc81688ed6819d81aa16ead35f0", + "5ec1bab1649effa65bd8c6dd579a003ea815085c", [ "pointerevents/pointerevent_auxclick_is_a_pointerevent.html?mouse", { @@ -646923,7 +647838,7 @@ ] ], "pointerevent_click_is_a_pointerevent.html": [ - "9e4b023a25af7551e3737eb0d43df4a81b6c1510", + "2571c9c9034200e03bf2ad904cd859da9ccf6ddf", [ "pointerevents/pointerevent_click_is_a_pointerevent.html?mouse", { @@ -646972,7 +647887,7 @@ ] ], "pointerevent_contextmenu_is_a_pointerevent.html": [ - "fe3a69942ef6338561041d3fdf640dae76958d25", + "d951be542a367cd0e30a6b169bded298de365984", [ "pointerevents/pointerevent_contextmenu_is_a_pointerevent.html?mouse", { @@ -648423,8 +649338,22 @@ {} ] ], + "modulepreload-as.html": [ + "dd946e454a1fe1833dbe37164105f028795facba", + [ + null, + {} + ] + ], + "modulepreload-sri.html": [ + "ea32a6a302525240573deb75b6e3f16b96b5e1eb", + [ + null, + {} + ] + ], "modulepreload.html": [ - "0e4b6923e32e83ac3b8f3018537352aa120df6c5", + "4764b58261995cc617c4a8cca0daaf2ab78e66fb", [ null, {} @@ -664882,105 +665811,105 @@ "scroll-animations": { "css": { "animation-duration-auto.tentative.html": [ - "375489c26a4f49aa3f8bb1f3b4f24d19654ab549", + "cfb7cf2c1e4aad9ba103833199a4440e9381bc74", [ null, {} ] ], "animation-range-ignored.html": [ - "f08659635ea77263aded03ee66a4a4c8c4702862", + "dabb4ec5a60427b8137f02441feec0f7bf68658a", [ null, {} ] ], "animation-range-normal-matches-cover.html": [ - "44b08cab969dd2423fba21a95008e0b4384c2d67", + "a91e3d3e29a09c43a5e3fd61365ef803a1a47814", [ null, {} ] ], "animation-shorthand.html": [ - "7bd17b9919070006824fee9e77ec5b20e464315b", + "a17dd431264453f52f69fb8d3f55a1413f0680ba", [ null, {} ] ], "animation-timeline-computed.html": [ - "7759e799c62987817c2aa797fb0a8b802916abaa", + "1e621eee531c22e80d98fb3dc30517cf4153ce07", [ null, {} ] ], "animation-timeline-ignored.tentative.html": [ - "0ac7a9d63e819588ed375e151b17a364a458ff9f", + "8992cdc174fbcacc78476013536c31f30154a03c", [ null, {} ] ], "animation-timeline-in-keyframe.html": [ - "75483331390d9fb6571307c3158cc37adcd893ee", + "04b430c324231011cc883e359a1ffb12ca5741da", [ null, {} ] ], "animation-timeline-multiple.html": [ - "50a829c5b6bd50fad40414cb29de1e926ebbe905", + "e812c7d67ea3771c5c0355fa0eb57526d2209fb0", [ null, {} ] ], "animation-timeline-named-scroll-progress-timeline.tentative.html": [ - "ed2c32d31e97bfbe8e5836a382a3a5b116c5ce29", + "71df9ceda873e29146259d696c5ca9cc6d34fd06", [ null, {} ] ], "animation-timeline-none.html": [ - "a8e07a44d6de1337005bc64bf41f5acbaf026ad4", + "7092523c489603dbfd12452318cacec4aaf85421", [ null, {} ] ], "animation-timeline-parsing.html": [ - "4916f7726f910d56fad5c33dba7d1b6421fb6468", + "f0061c5705dd78484133968c414bfea9103ff6f1", [ null, {} ] ], "animation-timeline-scroll-functional-notation.tentative.html": [ - "09917b4ba56c80179f42b68648edd38f6cd2ec03", + "0bba4a03f402c18741a62046c785fa20b46227d8", [ null, {} ] ], "animation-timeline-view-functional-notation.tentative.html": [ - "745d76c72943b4316fd074d8537e41ea82b3d0e2", + "8a62199b524862b7feee1cfa577275c3490e03a2", [ null, {} ] ], "get-animations-inactive-timeline.html": [ - "10bf00fbbc06a18b47deab2eaad69ba516b9ff42", + "d3048913cef2229e27d54d19d3e014adfbb7b670", [ null, {} ] ], "merge-timeline-offset-keyframes.html": [ - "c6d384fce546d132e11b43d786c17fe46a9fcd04", + "e5d5037d622605176b70f1d7a2a9211f67514201", [ null, {} @@ -665001,7 +665930,7 @@ ] ], "progress-based-animation-timeline.html": [ - "eeb1e548e52a3df81df4c3f660c8d362fe1bea76", + "bbc60e3fbddf6f298ca3c3e3fcbff628d3a9baa5", [ null, {} @@ -665022,28 +665951,28 @@ ] ], "scroll-timeline-attachment.html": [ - "96033859e29ed624921361110fc2fdbaa546179c", + "c924302b224acfb351d55b8047f47f5915f4f33b", [ null, {} ] ], "scroll-timeline-axis-computed.html": [ - "b971aba6c0f8a5bd5a6e18ddbef1cc296263c305", + "c942fb40932433dd4daf7dbb68557488bebb14e8", [ null, {} ] ], "scroll-timeline-axis-parsing.html": [ - "25f48f0c70ab57359e291ac65f7c37436bd97425", + "a9a760a54a44c8a64cacfa25d155339f962b3c89", [ null, {} ] ], "scroll-timeline-axis-writing-mode.html": [ - "958ce4964e844bcf8d94699b4a8bbc5e29df8e2f", + "872dc1b2b93fe4236f76a78321be7edb10f32a14", [ null, {} @@ -665057,49 +665986,49 @@ ] ], "scroll-timeline-dynamic.tentative.html": [ - "0d951e7b139c1d219284398c386e81a2753a281a", + "57c666e2412cb0e7316a78da83980ce608b92bf8", [ null, {} ] ], "scroll-timeline-in-container-query.html": [ - "38b8ffdc15aed7875bc13d25e13bc5a501b298bb", + "742c35b258004930833ae6ea504082e7c615d6b1", [ null, {} ] ], "scroll-timeline-inactive.html": [ - "0953f1b389406dffb80fb9b599eef7f1fbe24c07", + "eedc8e3958ade809be1832619ab12684e2e12922", [ null, {} ] ], "scroll-timeline-multi-pass.tentative.html": [ - "651ba212ded9d0e64e8eb706f2af59c832d1fadc", + "7e0c1339b261bdaa9b59a2a9c76451fd1574fe86", [ null, {} ] ], "scroll-timeline-name-computed.html": [ - "bfffafc652319721a56aea35757124b03d716e3a", + "b803ee8212b25ea20f314b5e76fa795b2792d700", [ null, {} ] ], "scroll-timeline-name-parsing.html": [ - "0fb271250ad9ab12dd022579b016b4e4a1c50323", + "d38b9640af91b87b48838c95481ccf38afd2731d", [ null, {} ] ], "scroll-timeline-name-shadow.html": [ - "f5cd2ce47d707811287ab03cb4ea815c33cea599", + "f2bea29dd3c874718fa413f6d4294324921c5835", [ null, {} @@ -665113,7 +666042,7 @@ ] ], "scroll-timeline-nearest-with-absolute-positioned-element.html": [ - "7fe2d12be30cdcfadfa5f6f30cb324a31565f390", + "57a1a947126c86d8fdbdf7f6d1a7ced740ecf172", [ null, {} @@ -665141,21 +666070,14 @@ ] ], "scroll-timeline-sampling.html": [ - "51b60e73ce6a5c4542cc2fe67131533696807f5f", + "f77c5082200f6fbafa1201e5f315157409e82daf", [ null, {} ] ], "scroll-timeline-shorthand.tentative.html": [ - "68e1cc955f5239075cf283ceac3938c42143a9e4", - [ - null, - {} - ] - ], - "scroll-timeline-sibling-gcs.html": [ - "6062e795f43e3057f8fd580e9b949c91bee567fa", + "7a6d9cdf4ae0771700984ddedd41070e85f4caa4", [ null, {} @@ -665169,14 +666091,14 @@ ] ], "timeline-offset-in-keyframe-change-timeline.tentative.html": [ - "eeb13150aa1277490f913a5733ce1012c8d19725", + "311b2c8929a112940e80371ea3be8e85b6792991", [ null, {} ] ], "timeline-offset-keyframes-hidden-subject.html": [ - "93ef7ffa1eb18ed16cb6edfe0caf35bb70b8d624", + "10934347821b05331cf59bf27b103aecbf979556", [ null, {} @@ -665190,21 +666112,42 @@ ] ], "timeline-range-name-offset-in-keyframes.tentative.html": [ - "54467bc83b18146c4a0adcd2dffde44bfd352df9", + "cee90f3b1b0112206b9b2522400af0155ec365fd", + [ + null, + {} + ] + ], + "timeline-scope-computed.tentative.html": [ + "814933f726658493581a00157a660417ebf367c0", + [ + null, + {} + ] + ], + "timeline-scope-parsing.tentative.html": [ + "2885cb758ded6f4ad95f2f0603a977970b519ac7", + [ + null, + {} + ] + ], + "timeline-scope.html": [ + "985e694bfdc89077ba0075bb16cea1772e003c2f", [ null, {} ] ], "view-timeline-animation-range-update.tentative.html": [ - "6c2a792aeec0c0baf4998423a9e4750a1de2af4e", + "552461c9b6c24870972b96281ab42cdf63b06ca2", [ null, {} ] ], "view-timeline-animation.html": [ - "a367ef9dd879544e1fc0ad6f850661c86d2ea8e2", + "9f8ffd176e34e723b465218474be69d0e1ada27b", [ null, {} @@ -665225,35 +666168,35 @@ ] ], "view-timeline-attachment.html": [ - "ff98ed78258c47f58678f3f00f5fb04eb3678f82", + "a91ae13d64a2c98323adac1defbb1ab741bc0b0d", [ null, {} ] ], "view-timeline-axis-computed.html": [ - "f4649dab0404a49be5014e2df7475fd151c44342", + "30b2a1ae051bf3c20fc2b4eb6b008d696e21272a", [ null, {} ] ], "view-timeline-axis-parsing.html": [ - "ffcc36c32086d9720bd0b5b2d9f8542cee02769f", + "1ebe4410a9547b8255a6c6696afc60462aafc04e", [ null, {} ] ], "view-timeline-dynamic.html": [ - "207c8c4e22379e19cf2f557d89295e34178e0a5b", + "9e042b774b9e992fb707d7a27ad5e96940aa80bc", [ null, {} ] ], "view-timeline-inset-animation.html": [ - "a7e807c2e819dd0678178171816af5569b3aadff", + "9ba88fde507aceae168e1c0b31d38f90ebe6c7f3", [ null, {} @@ -665274,63 +666217,63 @@ ] ], "view-timeline-keyframe-boundary-interpolation.html": [ - "04eb648949057b6452d96b2f4ba55a1cb9f467e2", + "011f03cb5dbb9ccded90e743201b6ceaafb4a8df", [ null, {} ] ], "view-timeline-lookup.html": [ - "6cead9dc586697428c21d1f3fcca9c7b047f4a7d", + "ea9acd22ba70baa8e028790dfa0177640718e2b9", [ null, {} ] ], "view-timeline-name-computed.html": [ - "5657dc781784ad838a8d09712bc108d5d36f188e", + "3304723f43fa1880e5f1095739087e9612b1ac68", [ null, {} ] ], "view-timeline-name-parsing.html": [ - "3878d5c58347c83532292d2a565e2988e71ac6be", + "2b22cbe036e605633e1e72a160acd92172b3610d", [ null, {} ] ], "view-timeline-name-shadow.html": [ - "55240efcfb5a0528fe2f5faff7769770e51995c0", + "bb14618c00ad4350bf4716802da649e0567d9951", [ null, {} ] ], "view-timeline-range-animation.html": [ - "3d7593823dbc6864c054c518ff9e630d1dc8290d", + "1c657e40cebf0853a14151e9f46be0fa19c33839", [ null, {} ] ], "view-timeline-shorthand.tentative.html": [ - "f19b9e6ac21bd0a825f7e944ec9eea747897d09a", + "fd00acc73ab17ed7642d9c332d6e50aff4b63203", [ null, {} ] ], "view-timeline-used-values.html": [ - "6627eeb9988096f136a85408093e1b76fc4a06f2", + "1bd6f0468c3db67b2ec48d2727121f8a87ebd522", [ null, {} ] ], "view-timeline-with-delay-and-range.tentative.html": [ - "e8f537b188c1aff82c6a9e8015f56cd632379246", + "db260f15f07000045fa92068f7aaf1dfa39c4429", [ null, {} @@ -665360,7 +666303,7 @@ ] ], "constructor.html": [ - "8e211efa11a6ca8eb2ff606cbff683203e608702", + "88c6a453ec972fe492d54f316105621c0717a81b", [ null, {} @@ -665381,7 +666324,7 @@ ] ], "current-time-writing-modes.html": [ - "d18abcd48f5d4088089adda7ac9709f4db32b2ab", + "748cda2f894f28096204526797f0e3a259e333d0", [ null, {} @@ -665561,7 +666504,7 @@ ] ], "change-animation-range-updates-play-state.html": [ - "53330d32f1f4b8a14a72b652ae9c486d1368c5da", + "16b9c30141761fadaba5d9652114838a22d1f20c", [ null, {} @@ -665659,14 +666602,14 @@ ] ], "view-timeline-subject-size-changes.html": [ - "9ae4b1df775a7b16b4493dbd10aac849d4c63104", + "ee7ce906783c10c2b5e9b9734f14de906c122542", [ null, {} ] ], "zero-intrinsic-iteration-duration.tentative.html": [ - "e77cf4629cb0f4a9af5436c7b0e44de9bee5389f", + "4eec5d8f13ab75de299e1efa6eefd9eeaede0d8d", [ null, {} @@ -670228,7 +671171,7 @@ ] ], "partitioned-cookies.tentative.https.html": [ - "ab667013a2b7f5fa71a575e985a3c54b9ae4cc93", + "5f6371cb428335bc33f3ed2220473a1a48fad85c", [ null, { @@ -675027,10 +675970,43 @@ }, "storage": { "buckets": { - "buckets_storage_policy.tentative.https.any.js": [ - "a66fd81cd4394209d1c534322b2b150cac35adf6", + "bucket-quota-indexeddb.tentative.https.any.js": [ + "ba82edb72ec6fc1656be169a14c3a025e1ab6a23", [ - "storage/buckets/buckets_storage_policy.tentative.https.any.html", + "storage/buckets/bucket-quota-indexeddb.tentative.https.any.html", + { + "script_metadata": [ + [ + "title", + "Bucket quota enforcement for indexeddb" + ], + [ + "script", + "/storage/buckets/resources/util.js" + ] + ] + } + ], + [ + "storage/buckets/bucket-quota-indexeddb.tentative.https.any.worker.html", + { + "script_metadata": [ + [ + "title", + "Bucket quota enforcement for indexeddb" + ], + [ + "script", + "/storage/buckets/resources/util.js" + ] + ] + } + ] + ], + "bucket-storage-policy.tentative.https.any.js": [ + "d6dce3675d0bca18a379518c6ecf2c7ec1310930", + [ + "storage/buckets/bucket-storage-policy.tentative.https.any.html", { "script_metadata": [ [ @@ -675049,7 +676025,7 @@ } ], [ - "storage/buckets/buckets_storage_policy.tentative.https.any.serviceworker.html", + "storage/buckets/bucket-storage-policy.tentative.https.any.serviceworker.html", { "script_metadata": [ [ @@ -675068,7 +676044,7 @@ } ], [ - "storage/buckets/buckets_storage_policy.tentative.https.any.sharedworker.html", + "storage/buckets/bucket-storage-policy.tentative.https.any.sharedworker.html", { "script_metadata": [ [ @@ -675087,7 +676063,7 @@ } ], [ - "storage/buckets/buckets_storage_policy.tentative.https.any.worker.html", + "storage/buckets/bucket-storage-policy.tentative.https.any.worker.html", { "script_metadata": [ [ @@ -678033,6 +679009,243 @@ {} ] ], + "owning-type-message-port.any.js": [ + "e9961ce042256acad6ac94cb558d57e7dd3464d5", + [ + "streams/readable-streams/owning-type-message-port.any.html", + { + "script_metadata": [ + [ + "global", + "window,worker" + ], + [ + "script", + "../resources/test-utils.js" + ], + [ + "script", + "../resources/rs-utils.js" + ] + ] + } + ], + [ + "streams/readable-streams/owning-type-message-port.any.serviceworker.html", + { + "script_metadata": [ + [ + "global", + "window,worker" + ], + [ + "script", + "../resources/test-utils.js" + ], + [ + "script", + "../resources/rs-utils.js" + ] + ] + } + ], + [ + "streams/readable-streams/owning-type-message-port.any.sharedworker.html", + { + "script_metadata": [ + [ + "global", + "window,worker" + ], + [ + "script", + "../resources/test-utils.js" + ], + [ + "script", + "../resources/rs-utils.js" + ] + ] + } + ], + [ + "streams/readable-streams/owning-type-message-port.any.worker.html", + { + "script_metadata": [ + [ + "global", + "window,worker" + ], + [ + "script", + "../resources/test-utils.js" + ], + [ + "script", + "../resources/rs-utils.js" + ] + ] + } + ] + ], + "owning-type-video-frame.any.js": [ + "ec01fda0b3c737326e8ca7cd78101ca062eab58b", + [ + "streams/readable-streams/owning-type-video-frame.any.html", + { + "script_metadata": [ + [ + "global", + "window,worker" + ], + [ + "script", + "../resources/test-utils.js" + ], + [ + "script", + "../resources/rs-utils.js" + ] + ] + } + ], + [ + "streams/readable-streams/owning-type-video-frame.any.serviceworker.html", + { + "script_metadata": [ + [ + "global", + "window,worker" + ], + [ + "script", + "../resources/test-utils.js" + ], + [ + "script", + "../resources/rs-utils.js" + ] + ] + } + ], + [ + "streams/readable-streams/owning-type-video-frame.any.sharedworker.html", + { + "script_metadata": [ + [ + "global", + "window,worker" + ], + [ + "script", + "../resources/test-utils.js" + ], + [ + "script", + "../resources/rs-utils.js" + ] + ] + } + ], + [ + "streams/readable-streams/owning-type-video-frame.any.worker.html", + { + "script_metadata": [ + [ + "global", + "window,worker" + ], + [ + "script", + "../resources/test-utils.js" + ], + [ + "script", + "../resources/rs-utils.js" + ] + ] + } + ] + ], + "owning-type.any.js": [ + "27a3dda894e4d6e2b71524f1f6ae87a71fbdfdcd", + [ + "streams/readable-streams/owning-type.any.html", + { + "script_metadata": [ + [ + "global", + "window,worker" + ], + [ + "script", + "../resources/test-utils.js" + ], + [ + "script", + "../resources/rs-utils.js" + ] + ] + } + ], + [ + "streams/readable-streams/owning-type.any.serviceworker.html", + { + "script_metadata": [ + [ + "global", + "window,worker" + ], + [ + "script", + "../resources/test-utils.js" + ], + [ + "script", + "../resources/rs-utils.js" + ] + ] + } + ], + [ + "streams/readable-streams/owning-type.any.sharedworker.html", + { + "script_metadata": [ + [ + "global", + "window,worker" + ], + [ + "script", + "../resources/test-utils.js" + ], + [ + "script", + "../resources/rs-utils.js" + ] + ] + } + ], + [ + "streams/readable-streams/owning-type.any.worker.html", + { + "script_metadata": [ + [ + "global", + "window,worker" + ], + [ + "script", + "../resources/test-utils.js" + ], + [ + "script", + "../resources/rs-utils.js" + ] + ] + } + ] + ], "patched-global.any.js": [ "a64a054a97f1f5f133ec961a02f75207b2cb4eee", [ @@ -678080,6 +679293,20 @@ } ] ], + "read-task-handling.window.js": [ + "2edc0ddddfe692c79474c8570d433ced8df90276", + [ + "streams/readable-streams/read-task-handling.window.html", + { + "script_metadata": [ + [ + "global", + "window,worker" + ] + ] + } + ] + ], "reentrant-strategies.any.js": [ "b4988bc2433fd56c6527f0546ab47fa14b4c9f54", [ @@ -678425,6 +679652,17 @@ {} ] ], + "transform-stream-members.any.js": [ + "fca060b0c05fa3b4015688c20c13a0423365c9f7", + [ + "streams/transferable/transform-stream-members.any.html", + {} + ], + [ + "streams/transferable/transform-stream-members.any.worker.html", + {} + ] + ], "transform-stream.html": [ "355d5d807433d75c02adff23e228d050b7772c0f", [ @@ -679996,7 +681234,7 @@ }, "subapps": { "add-error.tentative.https.html": [ - "2cbf50836df093ee12e0157d5db6dfa0cc59706e", + "defe4743c6ab290683af9b57f193508c5743c4e0", [ null, { @@ -680005,7 +681243,7 @@ ] ], "add-success.tentative.https.html": [ - "2453fdbdecd39cfadf142b5ecf34d35a9eaef5ca", + "a9a439b36ac9a9095be58eef3767136d402d9071", [ null, { @@ -680046,21 +681284,21 @@ ] ], "list-success.tentative.https.html": [ - "c1d281abc530f16f60c0af6548d36a35710fd4dd", + "ea4f96124a912f361abb1a9ca73bd08aa77776ad", [ null, {} ] ], "remove-error.tentative.https.html": [ - "917c3b4d022d446488ac14c45fff114e34a95c5d", + "a7271905dc7d19b4778d59e7f2c59274b4f7b813", [ null, {} ] ], "remove-success.tentative.https.html": [ - "6fd4305b4340a036ddba6084d9f6c5b929254f2e", + "ad60d6398dd848e935898810673d3aac3eba0333", [ null, {} @@ -688502,6 +689740,15 @@ ] ], "role": { + "abstract-roles.html": [ + "8a98ba74ead17698a48957c88e98601925f4e8e0", + [ + null, + { + "testdriver": true + } + ] + ], "basic.html": [ "5cb838647015de9ea295e60184b2300bbb718bfe", [ @@ -688511,6 +689758,33 @@ } ] ], + "fallback-roles.html": [ + "5242a02deec006b6dcfc152c7d5963c0bb85cdbe", + [ + null, + { + "testdriver": true + } + ] + ], + "form-roles.html": [ + "935899c583be85b4a8593567a94e87c826dc0d87", + [ + null, + { + "testdriver": true + } + ] + ], + "invalid-roles.html": [ + "e7d38dc8c950c53a9f15610a1f8eff64f177d8c4", + [ + null, + { + "testdriver": true + } + ] + ], "list-roles.html": [ "5d9787f04bfdcbdb236e38583b01401269419b9a", [ @@ -688529,8 +689803,17 @@ } ] ], + "role_none_conflict_resolution.html": [ + "efb247fc77cfe217a5856f0b2c031eaefedb5e98", + [ + null, + { + "testdriver": true + } + ] + ], "roles.html": [ - "71946cbffa50de3c09eaa6a449657476a9aae597", + "72c9cdd0cd35eb063491dd93801d6c2b5eb55fac", [ null, { @@ -697032,7 +698315,7 @@ ] ], "public-key-credential-to-json.https.window.js": [ - "339f16df838b156760711e40c0f0574452cbfb70", + "8de3b8c3cd09ac92fc2f1ade93e3ab7888cddc72", [ "webauthn/public-key-credential-to-json.https.window.html", { @@ -705294,6 +706577,13 @@ {} ] ], + "RTCRtpParameters-codec.html": [ + "5c81349b1528aaa17f8b17920c15e6664f9709e3", + [ + null, + {} + ] + ], "RTCRtpParameters-maxFramerate.html": [ "3e348f0d147bdb6cd0583d4f5596feb30f86cb52", [ @@ -715519,7 +716809,16 @@ null, {} ] - ] + ], + "url-parsing": { + "url-parsing.html": [ + "21ef6cd3a95487b99c732f0ff300722ebf3defe3", + [ + null, + {} + ] + ] + } }, "opening-handshake": { "001.html": [ @@ -717753,7 +719052,7 @@ ] ], "datagrams.https.any.js": [ - "dc7133bb867e203ee651d887b64e48782dc3c58b", + "d5b8e3bbda158707bb5273628ec1abea7206d1ac", [ "webtransport/datagrams.https.any.html", { @@ -749061,7 +750360,7 @@ }, "back": { "back.py": [ - "21e8498ccd57da9b101055f39fedab02ef2f2fcb", + "62434323e0ad5339a861d0752d29f7d1f95c81cc", [ null, {} @@ -749481,7 +750780,7 @@ ] ], "event_buffer.py": [ - "69c96c8c545a4192b1b85b3af4de3bd283c5ad40", + "99a95df104951a2760d5a6a2f13e887d277f25aa", [ null, {} @@ -749509,7 +750808,7 @@ ] ], "subscription.py": [ - "d23a4cf83e5ef701280dd92c148e40651482eb4a", + "4d604f6877e04ead8d666423cbb3d0c1fdf9ce4e", [ null, {} @@ -749602,7 +750901,7 @@ }, "call_function": { "arguments.py": [ - "ea85b2c6c94fffd24b6ca6794910e9fb1270a7fd", + "0cb571038b76242f6b2e33b787217eba36dd78fe", [ null, {} @@ -749923,7 +751222,7 @@ ] ], "invalid.py": [ - "1dd6cd0aadf79c00f5e1e1770a03d7c12bf319c0", + "005574b03ca265a73e5569c27d08f9f456347b5b", [ null, {} @@ -750091,7 +751390,7 @@ ] ], "navigate.py": [ - "bada57942b4807e4b151f80514bf8598ac359262", + "492718292a178e5bfe242d75acad4b6efc3cbf71", [ null, {} @@ -750439,7 +751738,7 @@ }, "forward": { "forward.py": [ - "61c66e201b9e9898cec78c86c37fbf894b48c457", + "f27be403f9e95bd2359d5ae6224f6ae2708ff7c8", [ null, {} @@ -750921,7 +752220,7 @@ ] ], "navigate.py": [ - "a367fc105e126aba603a2c426f2bfe823ccad950", + "d61377af275902c48083d3d84b35c3bba30bc34e", [ null, {} diff --git a/tests/wpt/metadata/css/CSS2/colors/color-115.xht.ini b/tests/wpt/metadata/css/CSS2/colors/color-115.xht.ini new file mode 100644 index 00000000000..9a45b1def4d --- /dev/null +++ b/tests/wpt/metadata/css/CSS2/colors/color-115.xht.ini @@ -0,0 +1,2 @@ +[color-115.xht] + expected: TIMEOUT diff --git a/tests/wpt/metadata/css/CSS2/positioning/absolute-replaced-height-002.xht.ini b/tests/wpt/metadata/css/CSS2/positioning/absolute-replaced-height-002.xht.ini new file mode 100644 index 00000000000..45df05ab047 --- /dev/null +++ b/tests/wpt/metadata/css/CSS2/positioning/absolute-replaced-height-002.xht.ini @@ -0,0 +1,2 @@ +[absolute-replaced-height-002.xht] + expected: TIMEOUT diff --git a/tests/wpt/metadata/css/css-backgrounds/color-mix-currentcolor-background-repaint-parent.html.ini b/tests/wpt/metadata/css/css-backgrounds/color-mix-currentcolor-background-repaint-parent.html.ini new file mode 100644 index 00000000000..58e4780d677 --- /dev/null +++ b/tests/wpt/metadata/css/css-backgrounds/color-mix-currentcolor-background-repaint-parent.html.ini @@ -0,0 +1,2 @@ +[color-mix-currentcolor-background-repaint-parent.html] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-backgrounds/color-mix-currentcolor-background-repaint.html.ini b/tests/wpt/metadata/css/css-backgrounds/color-mix-currentcolor-background-repaint.html.ini new file mode 100644 index 00000000000..ae7e0461e5b --- /dev/null +++ b/tests/wpt/metadata/css/css-backgrounds/color-mix-currentcolor-background-repaint.html.ini @@ -0,0 +1,2 @@ +[color-mix-currentcolor-background-repaint.html] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-backgrounds/color-mix-currentcolor-outline-repaint-parent.html.ini b/tests/wpt/metadata/css/css-backgrounds/color-mix-currentcolor-outline-repaint-parent.html.ini new file mode 100644 index 00000000000..a6f5e206966 --- /dev/null +++ b/tests/wpt/metadata/css/css-backgrounds/color-mix-currentcolor-outline-repaint-parent.html.ini @@ -0,0 +1,2 @@ +[color-mix-currentcolor-outline-repaint-parent.html] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-backgrounds/color-mix-currentcolor-outline-repaint.html.ini b/tests/wpt/metadata/css/css-backgrounds/color-mix-currentcolor-outline-repaint.html.ini new file mode 100644 index 00000000000..e7b7f5a85d4 --- /dev/null +++ b/tests/wpt/metadata/css/css-backgrounds/color-mix-currentcolor-outline-repaint.html.ini @@ -0,0 +1,2 @@ +[color-mix-currentcolor-outline-repaint.html] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-color/parsing/color-mix-out-of-gamut.html.ini b/tests/wpt/metadata/css/css-color/parsing/color-mix-out-of-gamut.html.ini new file mode 100644 index 00000000000..f1ebf996f5f --- /dev/null +++ b/tests/wpt/metadata/css/css-color/parsing/color-mix-out-of-gamut.html.ini @@ -0,0 +1,54 @@ +[color-mix-out-of-gamut.html] + [Property color value 'color-mix(in hsl, color(display-p3 0 1 0) 100%, rgb(0, 0, 0) 0%)'] + expected: FAIL + + [Property color value 'color-mix(in hsl, lab(100 104.3 -50.9) 100%, rgb(0, 0, 0) 0%)'] + expected: FAIL + + [Property color value 'color-mix(in hsl, lab(0 104.3 -50.9) 100%, rgb(0, 0, 0) 0%)'] + expected: FAIL + + [Property color value 'color-mix(in hsl, lch(100 116 334) 100%, rgb(0, 0, 0) 0%)'] + expected: FAIL + + [Property color value 'color-mix(in hsl, lch(0 116 334) 100%, rgb(0, 0, 0) 0%)'] + expected: FAIL + + [Property color value 'color-mix(in hsl, oklab(1 0.365 -0.16) 100%, rgb(0, 0, 0) 0%)'] + expected: FAIL + + [Property color value 'color-mix(in hsl, oklab(0 0.365 -0.16) 100%, rgb(0, 0, 0) 0%)'] + expected: FAIL + + [Property color value 'color-mix(in hsl, oklch(1 0.399 336.3) 100%, rgb(0, 0, 0) 0%)'] + expected: FAIL + + [Property color value 'color-mix(in hsl, oklch(0 0.399 336.3) 100%, rgb(0, 0, 0) 0%)'] + expected: FAIL + + [Property color value 'color-mix(in hwb, color(display-p3 0 1 0) 100%, rgb(0, 0, 0) 0%)'] + expected: FAIL + + [Property color value 'color-mix(in hwb, lab(100 104.3 -50.9) 100%, rgb(0, 0, 0) 0%)'] + expected: FAIL + + [Property color value 'color-mix(in hwb, lab(0 104.3 -50.9) 100%, rgb(0, 0, 0) 0%)'] + expected: FAIL + + [Property color value 'color-mix(in hwb, lch(100 116 334) 100%, rgb(0, 0, 0) 0%)'] + expected: FAIL + + [Property color value 'color-mix(in hwb, lch(0 116 334) 100%, rgb(0, 0, 0) 0%)'] + expected: FAIL + + [Property color value 'color-mix(in hwb, oklab(1 0.365 -0.16) 100%, rgb(0, 0, 0) 0%)'] + expected: FAIL + + [Property color value 'color-mix(in hwb, oklab(0 0.365 -0.16) 100%, rgb(0, 0, 0) 0%)'] + expected: FAIL + + [Property color value 'color-mix(in hwb, oklch(1 0.399 336.3) 100%, rgb(0, 0, 0) 0%)'] + expected: FAIL + + [Property color value 'color-mix(in hwb, oklch(0 0.399 336.3) 100%, rgb(0, 0, 0) 0%)'] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-conditional/at-supports-selector-file-selector-button.html.ini b/tests/wpt/metadata/css/css-conditional/at-supports-selector-file-selector-button.html.ini new file mode 100644 index 00000000000..92d21eff876 --- /dev/null +++ b/tests/wpt/metadata/css/css-conditional/at-supports-selector-file-selector-button.html.ini @@ -0,0 +1,2 @@ +[at-supports-selector-file-selector-button.html] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-flexbox/percentage-padding-004.html.ini b/tests/wpt/metadata/css/css-flexbox/percentage-padding-004.html.ini new file mode 100644 index 00000000000..e025cd0107b --- /dev/null +++ b/tests/wpt/metadata/css/css-flexbox/percentage-padding-004.html.ini @@ -0,0 +1,2 @@ +[percentage-padding-004.html] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-fonts/animations/font-size-adjust-composition.html.ini b/tests/wpt/metadata/css/css-fonts/animations/font-size-adjust-composition.html.ini new file mode 100644 index 00000000000..b0985b5f3e5 --- /dev/null +++ b/tests/wpt/metadata/css/css-fonts/animations/font-size-adjust-composition.html.ini @@ -0,0 +1,750 @@ +[font-size-adjust-composition.html] + [Compositing: property underlying [0.5\] from replace [none\] to add [2.0\] at (-0.5) should be [none\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from replace [none\] to add [2.0\] at (0) should be [none\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from replace [none\] to add [2.0\] at (0.5) should be [2.5\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from replace [none\] to add [2.0\] at (1) should be [2.5\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from replace [none\] to add [2.0\] at (1.5) should be [2.5\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from add [0.0\] to add [2.0\] at (-0.5) should be [0.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from add [0.0\] to add [2.0\] at (0) should be [0.5\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from add [0.0\] to add [2.0\] at (0.5) should be [1.5\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from add [0.0\] to add [2.0\] at (1) should be [2.5\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from add [0.0\] to add [2.0\] at (1.5) should be [3.5\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from replace [0.0\] to add [2.0\] at (-0.5) should be [0.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from replace [0.0\] to add [2.0\] at (0) should be [0.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from replace [0.0\] to add [2.0\] at (0.5) should be [1.25\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from replace [0.0\] to add [2.0\] at (1) should be [2.5\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from replace [0.0\] to add [2.0\] at (1.5) should be [3.75\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from add [0.0\] to replace [2.0\] at (-0.5) should be [0.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from add [0.0\] to replace [2.0\] at (0) should be [0.5\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from add [0.0\] to replace [2.0\] at (0.5) should be [1.25\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from add [0.0\] to replace [2.0\] at (1) should be [2.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from add [0.0\] to replace [2.0\] at (1.5) should be [2.75\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from replace [2.0\] to add [none\] at (-0.5) should be [2.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from replace [2.0\] to add [none\] at (0) should be [2.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from replace [2.0\] to add [none\] at (0.5) should be [none\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from replace [2.0\] to add [none\] at (1) should be [none\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from replace [2.0\] to add [none\] at (1.5) should be [none\]] + expected: FAIL + + [Compositing: property underlying [ex-height 0.5\] from replace [none\] to add [ex-height 2.0\] at (-0.5) should be [none\]] + expected: FAIL + + [Compositing: property underlying [ex-height 0.5\] from replace [none\] to add [ex-height 2.0\] at (0) should be [none\]] + expected: FAIL + + [Compositing: property underlying [ex-height 0.5\] from replace [none\] to add [ex-height 2.0\] at (0.5) should be [2.5\]] + expected: FAIL + + [Compositing: property underlying [ex-height 0.5\] from replace [none\] to add [ex-height 2.0\] at (1) should be [2.5\]] + expected: FAIL + + [Compositing: property underlying [ex-height 0.5\] from replace [none\] to add [ex-height 2.0\] at (1.5) should be [2.5\]] + expected: FAIL + + [Compositing: property underlying [ex-height 0.5\] from add [ex-height 0\] to add [ex-height 2.0\] at (-0.5) should be [0.0\]] + expected: FAIL + + [Compositing: property underlying [ex-height 0.5\] from add [ex-height 0\] to add [ex-height 2.0\] at (0) should be [0.5\]] + expected: FAIL + + [Compositing: property underlying [ex-height 0.5\] from add [ex-height 0\] to add [ex-height 2.0\] at (0.5) should be [1.5\]] + expected: FAIL + + [Compositing: property underlying [ex-height 0.5\] from add [ex-height 0\] to add [ex-height 2.0\] at (1) should be [2.5\]] + expected: FAIL + + [Compositing: property underlying [ex-height 0.5\] from add [ex-height 0\] to add [ex-height 2.0\] at (1.5) should be [3.5\]] + expected: FAIL + + [Compositing: property underlying [ex-height 0.5\] from replace [ex-height 0\] to add [ex-height 2.0\] at (-0.5) should be [0.0\]] + expected: FAIL + + [Compositing: property underlying [ex-height 0.5\] from replace [ex-height 0\] to add [ex-height 2.0\] at (0) should be [0.0\]] + expected: FAIL + + [Compositing: property underlying [ex-height 0.5\] from replace [ex-height 0\] to add [ex-height 2.0\] at (0.5) should be [1.25\]] + expected: FAIL + + [Compositing: property underlying [ex-height 0.5\] from replace [ex-height 0\] to add [ex-height 2.0\] at (1) should be [2.5\]] + expected: FAIL + + [Compositing: property underlying [ex-height 0.5\] from replace [ex-height 0\] to add [ex-height 2.0\] at (1.5) should be [3.75\]] + expected: FAIL + + [Compositing: property underlying [ex-height 0.5\] from add [ex-height 0\] to replace [ex-height 2.0\] at (-0.5) should be [0.0\]] + expected: FAIL + + [Compositing: property underlying [ex-height 0.5\] from add [ex-height 0\] to replace [ex-height 2.0\] at (0) should be [0.5\]] + expected: FAIL + + [Compositing: property underlying [ex-height 0.5\] from add [ex-height 0\] to replace [ex-height 2.0\] at (0.5) should be [1.25\]] + expected: FAIL + + [Compositing: property underlying [ex-height 0.5\] from add [ex-height 0\] to replace [ex-height 2.0\] at (1) should be [2.0\]] + expected: FAIL + + [Compositing: property underlying [ex-height 0.5\] from add [ex-height 0\] to replace [ex-height 2.0\] at (1.5) should be [2.75\]] + expected: FAIL + + [Compositing: property underlying [ex-height 0.5\] from replace [ex-height 2.0\] to add [none\] at (-0.5) should be [2.0\]] + expected: FAIL + + [Compositing: property underlying [ex-height 0.5\] from replace [ex-height 2.0\] to add [none\] at (0) should be [2.0\]] + expected: FAIL + + [Compositing: property underlying [ex-height 0.5\] from replace [ex-height 2.0\] to add [none\] at (0.5) should be [none\]] + expected: FAIL + + [Compositing: property underlying [ex-height 0.5\] from replace [ex-height 2.0\] to add [none\] at (1) should be [none\]] + expected: FAIL + + [Compositing: property underlying [ex-height 0.5\] from replace [ex-height 2.0\] to add [none\] at (1.5) should be [none\]] + expected: FAIL + + [Compositing: property underlying [cap-height 0.5\] from replace [none\] to add [cap-height 2.0\] at (-0.5) should be [none\]] + expected: FAIL + + [Compositing: property underlying [cap-height 0.5\] from replace [none\] to add [cap-height 2.0\] at (0) should be [none\]] + expected: FAIL + + [Compositing: property underlying [cap-height 0.5\] from replace [none\] to add [cap-height 2.0\] at (0.5) should be [cap-height 2.5\]] + expected: FAIL + + [Compositing: property underlying [cap-height 0.5\] from replace [none\] to add [cap-height 2.0\] at (1) should be [cap-height 2.5\]] + expected: FAIL + + [Compositing: property underlying [cap-height 0.5\] from replace [none\] to add [cap-height 2.0\] at (1.5) should be [cap-height 2.5\]] + expected: FAIL + + [Compositing: property underlying [cap-height 0.5\] from add [cap-height 0\] to add [cap-height 2.0\] at (-0.5) should be [cap-height 0.0\]] + expected: FAIL + + [Compositing: property underlying [cap-height 0.5\] from add [cap-height 0\] to add [cap-height 2.0\] at (0) should be [cap-height 0.5\]] + expected: FAIL + + [Compositing: property underlying [cap-height 0.5\] from add [cap-height 0\] to add [cap-height 2.0\] at (0.5) should be [cap-height 1.5\]] + expected: FAIL + + [Compositing: property underlying [cap-height 0.5\] from add [cap-height 0\] to add [cap-height 2.0\] at (1) should be [cap-height 2.5\]] + expected: FAIL + + [Compositing: property underlying [cap-height 0.5\] from add [cap-height 0\] to add [cap-height 2.0\] at (1.5) should be [cap-height 3.5\]] + expected: FAIL + + [Compositing: property underlying [cap-height 0.5\] from replace [cap-height 0\] to add [cap-height 2.0\] at (-0.5) should be [cap-height 0.0\]] + expected: FAIL + + [Compositing: property underlying [cap-height 0.5\] from replace [cap-height 0\] to add [cap-height 2.0\] at (0) should be [cap-height 0.0\]] + expected: FAIL + + [Compositing: property underlying [cap-height 0.5\] from replace [cap-height 0\] to add [cap-height 2.0\] at (0.5) should be [cap-height 1.25\]] + expected: FAIL + + [Compositing: property underlying [cap-height 0.5\] from replace [cap-height 0\] to add [cap-height 2.0\] at (1) should be [cap-height 2.5\]] + expected: FAIL + + [Compositing: property underlying [cap-height 0.5\] from replace [cap-height 0\] to add [cap-height 2.0\] at (1.5) should be [cap-height 3.75\]] + expected: FAIL + + [Compositing: property underlying [cap-height 0.5\] from add [cap-height 0.0\] to replace [cap-height 2.0\] at (-0.5) should be [cap-height 0.0\]] + expected: FAIL + + [Compositing: property underlying [cap-height 0.5\] from add [cap-height 0.0\] to replace [cap-height 2.0\] at (0) should be [cap-height 0.5\]] + expected: FAIL + + [Compositing: property underlying [cap-height 0.5\] from add [cap-height 0.0\] to replace [cap-height 2.0\] at (0.5) should be [cap-height 1.25\]] + expected: FAIL + + [Compositing: property underlying [cap-height 0.5\] from add [cap-height 0.0\] to replace [cap-height 2.0\] at (1) should be [cap-height 2\]] + expected: FAIL + + [Compositing: property underlying [cap-height 0.5\] from add [cap-height 0.0\] to replace [cap-height 2.0\] at (1.5) should be [cap-height 2.75\]] + expected: FAIL + + [Compositing: property underlying [cap-height 0.5\] from replace [cap-height 2.0\] to add [none\] at (-0.5) should be [cap-height 2.0\]] + expected: FAIL + + [Compositing: property underlying [cap-height 0.5\] from replace [cap-height 2.0\] to add [none\] at (0) should be [cap-height 2.0\]] + expected: FAIL + + [Compositing: property underlying [cap-height 0.5\] from replace [cap-height 2.0\] to add [none\] at (0.5) should be [none\]] + expected: FAIL + + [Compositing: property underlying [cap-height 0.5\] from replace [cap-height 2.0\] to add [none\] at (1) should be [none\]] + expected: FAIL + + [Compositing: property underlying [cap-height 0.5\] from replace [cap-height 2.0\] to add [none\] at (1.5) should be [none\]] + expected: FAIL + + [Compositing: property underlying [ch-width 0.5\] from replace [none\] to add [ch-width 2.0\] at (-0.5) should be [none\]] + expected: FAIL + + [Compositing: property underlying [ch-width 0.5\] from replace [none\] to add [ch-width 2.0\] at (0) should be [none\]] + expected: FAIL + + [Compositing: property underlying [ch-width 0.5\] from replace [none\] to add [ch-width 2.0\] at (0.5) should be [ch-width 2.5\]] + expected: FAIL + + [Compositing: property underlying [ch-width 0.5\] from replace [none\] to add [ch-width 2.0\] at (1) should be [ch-width 2.5\]] + expected: FAIL + + [Compositing: property underlying [ch-width 0.5\] from replace [none\] to add [ch-width 2.0\] at (1.5) should be [ch-width 2.5\]] + expected: FAIL + + [Compositing: property underlying [ch-width 0.5\] from add [ch-width 0\] to add [ch-width 2.0\] at (-0.5) should be [ch-width 0.0\]] + expected: FAIL + + [Compositing: property underlying [ch-width 0.5\] from add [ch-width 0\] to add [ch-width 2.0\] at (0) should be [ch-width 0.5\]] + expected: FAIL + + [Compositing: property underlying [ch-width 0.5\] from add [ch-width 0\] to add [ch-width 2.0\] at (0.5) should be [ch-width 1.5\]] + expected: FAIL + + [Compositing: property underlying [ch-width 0.5\] from add [ch-width 0\] to add [ch-width 2.0\] at (1) should be [ch-width 2.5\]] + expected: FAIL + + [Compositing: property underlying [ch-width 0.5\] from add [ch-width 0\] to add [ch-width 2.0\] at (1.5) should be [ch-width 3.5\]] + expected: FAIL + + [Compositing: property underlying [ch-width 0.5\] from replace [ch-width 0\] to add [ch-width 2.0\] at (-0.5) should be [ch-width 0.0\]] + expected: FAIL + + [Compositing: property underlying [ch-width 0.5\] from replace [ch-width 0\] to add [ch-width 2.0\] at (0) should be [ch-width 0.0\]] + expected: FAIL + + [Compositing: property underlying [ch-width 0.5\] from replace [ch-width 0\] to add [ch-width 2.0\] at (0.5) should be [ch-width 1.25\]] + expected: FAIL + + [Compositing: property underlying [ch-width 0.5\] from replace [ch-width 0\] to add [ch-width 2.0\] at (1) should be [ch-width 2.5\]] + expected: FAIL + + [Compositing: property underlying [ch-width 0.5\] from replace [ch-width 0\] to add [ch-width 2.0\] at (1.5) should be [ch-width 3.75\]] + expected: FAIL + + [Compositing: property underlying [ch-width 0.5\] from add [ch-width 0\] to replace [ch-width 2.0\] at (-0.5) should be [ch-width 0.0\]] + expected: FAIL + + [Compositing: property underlying [ch-width 0.5\] from add [ch-width 0\] to replace [ch-width 2.0\] at (0) should be [ch-width 0.5\]] + expected: FAIL + + [Compositing: property underlying [ch-width 0.5\] from add [ch-width 0\] to replace [ch-width 2.0\] at (0.5) should be [ch-width 1.25\]] + expected: FAIL + + [Compositing: property underlying [ch-width 0.5\] from add [ch-width 0\] to replace [ch-width 2.0\] at (1) should be [ch-width 2\]] + expected: FAIL + + [Compositing: property underlying [ch-width 0.5\] from add [ch-width 0\] to replace [ch-width 2.0\] at (1.5) should be [ch-width 2.75\]] + expected: FAIL + + [Compositing: property underlying [ch-width 0.5\] from replace [ch-width 2.0\] to add [none\] at (-0.5) should be [ch-width 2.0\]] + expected: FAIL + + [Compositing: property underlying [ch-width 0.5\] from replace [ch-width 2.0\] to add [none\] at (0) should be [ch-width 2.0\]] + expected: FAIL + + [Compositing: property underlying [ch-width 0.5\] from replace [ch-width 2.0\] to add [none\] at (0.5) should be [none\]] + expected: FAIL + + [Compositing: property underlying [ch-width 0.5\] from replace [ch-width 2.0\] to add [none\] at (1) should be [none\]] + expected: FAIL + + [Compositing: property underlying [ch-width 0.5\] from replace [ch-width 2.0\] to add [none\] at (1.5) should be [none\]] + expected: FAIL + + [Compositing: property underlying [ic-width 0.5\] from replace [none\] to add [ic-width 2.0\] at (-0.5) should be [none\]] + expected: FAIL + + [Compositing: property underlying [ic-width 0.5\] from replace [none\] to add [ic-width 2.0\] at (0) should be [none\]] + expected: FAIL + + [Compositing: property underlying [ic-width 0.5\] from replace [none\] to add [ic-width 2.0\] at (0.5) should be [ic-width 2.5\]] + expected: FAIL + + [Compositing: property underlying [ic-width 0.5\] from replace [none\] to add [ic-width 2.0\] at (1) should be [ic-width 2.5\]] + expected: FAIL + + [Compositing: property underlying [ic-width 0.5\] from replace [none\] to add [ic-width 2.0\] at (1.5) should be [ic-width 2.5\]] + expected: FAIL + + [Compositing: property underlying [ic-width 0.5\] from add [ic-width 0\] to add [ic-width 2.0\] at (-0.5) should be [ic-width 0.0\]] + expected: FAIL + + [Compositing: property underlying [ic-width 0.5\] from add [ic-width 0\] to add [ic-width 2.0\] at (0) should be [ic-width 0.5\]] + expected: FAIL + + [Compositing: property underlying [ic-width 0.5\] from add [ic-width 0\] to add [ic-width 2.0\] at (0.5) should be [ic-width 1.5\]] + expected: FAIL + + [Compositing: property underlying [ic-width 0.5\] from add [ic-width 0\] to add [ic-width 2.0\] at (1) should be [ic-width 2.5\]] + expected: FAIL + + [Compositing: property underlying [ic-width 0.5\] from add [ic-width 0\] to add [ic-width 2.0\] at (1.5) should be [ic-width 3.5\]] + expected: FAIL + + [Compositing: property underlying [ic-width 0.5\] from replace [ic-width 0\] to add [ic-width 2.0\] at (-0.5) should be [ic-width 0.0\]] + expected: FAIL + + [Compositing: property underlying [ic-width 0.5\] from replace [ic-width 0\] to add [ic-width 2.0\] at (0) should be [ic-width 0.0\]] + expected: FAIL + + [Compositing: property underlying [ic-width 0.5\] from replace [ic-width 0\] to add [ic-width 2.0\] at (0.5) should be [ic-width 1.25\]] + expected: FAIL + + [Compositing: property underlying [ic-width 0.5\] from replace [ic-width 0\] to add [ic-width 2.0\] at (1) should be [ic-width 2.5\]] + expected: FAIL + + [Compositing: property underlying [ic-width 0.5\] from replace [ic-width 0\] to add [ic-width 2.0\] at (1.5) should be [ic-width 3.75\]] + expected: FAIL + + [Compositing: property underlying [ic-width 0.5\] from add [ic-width 0\] to replace [ic-width 2.0\] at (-0.5) should be [ic-width 0.0\]] + expected: FAIL + + [Compositing: property underlying [ic-width 0.5\] from add [ic-width 0\] to replace [ic-width 2.0\] at (0) should be [ic-width 0.5\]] + expected: FAIL + + [Compositing: property underlying [ic-width 0.5\] from add [ic-width 0\] to replace [ic-width 2.0\] at (0.5) should be [ic-width 1.25\]] + expected: FAIL + + [Compositing: property underlying [ic-width 0.5\] from add [ic-width 0\] to replace [ic-width 2.0\] at (1) should be [ic-width 2\]] + expected: FAIL + + [Compositing: property underlying [ic-width 0.5\] from add [ic-width 0\] to replace [ic-width 2.0\] at (1.5) should be [ic-width 2.75\]] + expected: FAIL + + [Compositing: property underlying [ic-width 0.5\] from replace [ic-width 2.0\] to add [none\] at (-0.5) should be [ic-width 2.0\]] + expected: FAIL + + [Compositing: property underlying [ic-width 0.5\] from replace [ic-width 2.0\] to add [none\] at (0) should be [ic-width 2.0\]] + expected: FAIL + + [Compositing: property underlying [ic-width 0.5\] from replace [ic-width 2.0\] to add [none\] at (0.5) should be [none\]] + expected: FAIL + + [Compositing: property underlying [ic-width 0.5\] from replace [ic-width 2.0\] to add [none\] at (1) should be [none\]] + expected: FAIL + + [Compositing: property underlying [ic-width 0.5\] from replace [ic-width 2.0\] to add [none\] at (1.5) should be [none\]] + expected: FAIL + + [Compositing: property underlying [ic-height 0.5\] from replace [none\] to add [ic-height 2.0\] at (-0.5) should be [none\]] + expected: FAIL + + [Compositing: property underlying [ic-height 0.5\] from replace [none\] to add [ic-height 2.0\] at (0) should be [none\]] + expected: FAIL + + [Compositing: property underlying [ic-height 0.5\] from replace [none\] to add [ic-height 2.0\] at (0.5) should be [ic-height 2.5\]] + expected: FAIL + + [Compositing: property underlying [ic-height 0.5\] from replace [none\] to add [ic-height 2.0\] at (1) should be [ic-height 2.5\]] + expected: FAIL + + [Compositing: property underlying [ic-height 0.5\] from replace [none\] to add [ic-height 2.0\] at (1.5) should be [ic-height 2.5\]] + expected: FAIL + + [Compositing: property underlying [ic-height 0.5\] from add [ic-height 0\] to add [ic-height 2.0\] at (-0.5) should be [ic-height 0.0\]] + expected: FAIL + + [Compositing: property underlying [ic-height 0.5\] from add [ic-height 0\] to add [ic-height 2.0\] at (0) should be [ic-height 0.5\]] + expected: FAIL + + [Compositing: property underlying [ic-height 0.5\] from add [ic-height 0\] to add [ic-height 2.0\] at (0.5) should be [ic-height 1.5\]] + expected: FAIL + + [Compositing: property underlying [ic-height 0.5\] from add [ic-height 0\] to add [ic-height 2.0\] at (1) should be [ic-height 2.5\]] + expected: FAIL + + [Compositing: property underlying [ic-height 0.5\] from add [ic-height 0\] to add [ic-height 2.0\] at (1.5) should be [ic-height 3.5\]] + expected: FAIL + + [Compositing: property underlying [ic-height 0.5\] from replace [ic-height 0\] to add [ic-height 2.0\] at (-0.5) should be [ic-height 0.0\]] + expected: FAIL + + [Compositing: property underlying [ic-height 0.5\] from replace [ic-height 0\] to add [ic-height 2.0\] at (0) should be [ic-height 0.0\]] + expected: FAIL + + [Compositing: property underlying [ic-height 0.5\] from replace [ic-height 0\] to add [ic-height 2.0\] at (0.5) should be [ic-height 1.25\]] + expected: FAIL + + [Compositing: property underlying [ic-height 0.5\] from replace [ic-height 0\] to add [ic-height 2.0\] at (1) should be [ic-height 2.5\]] + expected: FAIL + + [Compositing: property underlying [ic-height 0.5\] from replace [ic-height 0\] to add [ic-height 2.0\] at (1.5) should be [ic-height 3.75\]] + expected: FAIL + + [Compositing: property underlying [ic-height 0.5\] from add [ic-height 0\] to replace [ic-height 2.0\] at (-0.5) should be [ic-height 0.0\]] + expected: FAIL + + [Compositing: property underlying [ic-height 0.5\] from add [ic-height 0\] to replace [ic-height 2.0\] at (0) should be [ic-height 0.5\]] + expected: FAIL + + [Compositing: property underlying [ic-height 0.5\] from add [ic-height 0\] to replace [ic-height 2.0\] at (0.5) should be [ic-height 1.25\]] + expected: FAIL + + [Compositing: property underlying [ic-height 0.5\] from add [ic-height 0\] to replace [ic-height 2.0\] at (1) should be [ic-height 2\]] + expected: FAIL + + [Compositing: property underlying [ic-height 0.5\] from add [ic-height 0\] to replace [ic-height 2.0\] at (1.5) should be [ic-height 2.75\]] + expected: FAIL + + [Compositing: property underlying [ic-height 0.5\] from replace [ic-height 2.0\] to add [none\] at (-0.5) should be [ic-height 2.0\]] + expected: FAIL + + [Compositing: property underlying [ic-height 0.5\] from replace [ic-height 2.0\] to add [none\] at (0) should be [ic-height 2.0\]] + expected: FAIL + + [Compositing: property underlying [ic-height 0.5\] from replace [ic-height 2.0\] to add [none\] at (0.5) should be [none\]] + expected: FAIL + + [Compositing: property underlying [ic-height 0.5\] from replace [ic-height 2.0\] to add [none\] at (1) should be [none\]] + expected: FAIL + + [Compositing: property underlying [ic-height 0.5\] from replace [ic-height 2.0\] to add [none\] at (1.5) should be [none\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from add [ex-height 0.0\] to add [cap-height 2.0\] at (-0.5) should be [0.5\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from add [ex-height 0.0\] to add [cap-height 2.0\] at (0) should be [0.5\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from add [ex-height 0.0\] to add [cap-height 2.0\] at (0.5) should be [cap-height 2.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from add [ex-height 0.0\] to add [cap-height 2.0\] at (1) should be [cap-height 2.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from add [ex-height 0.0\] to add [cap-height 2.0\] at (1.5) should be [cap-height 2.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from replace [ex-height 0.0\] to replace [cap-height 2.0\] at (-0.5) should be [0.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from replace [ex-height 0.0\] to replace [cap-height 2.0\] at (0) should be [0.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from replace [ex-height 0.0\] to replace [cap-height 2.0\] at (0.5) should be [cap-height 2.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from replace [ex-height 0.0\] to replace [cap-height 2.0\] at (1) should be [cap-height 2.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from replace [ex-height 0.0\] to replace [cap-height 2.0\] at (1.5) should be [cap-height 2.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from replace [ex-height 0\] to add [cap-height 2.0\] at (-0.5) should be [0.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from replace [ex-height 0\] to add [cap-height 2.0\] at (0) should be [0.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from replace [ex-height 0\] to add [cap-height 2.0\] at (0.5) should be [cap-height 2.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from replace [ex-height 0\] to add [cap-height 2.0\] at (1) should be [cap-height 2.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from replace [ex-height 0\] to add [cap-height 2.0\] at (1.5) should be [cap-height 2.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from add [ex-height 0\] to replace [cap-height 2.0\] at (-0.5) should be [0.5\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from add [ex-height 0\] to replace [cap-height 2.0\] at (0) should be [0.5\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from add [ex-height 0\] to replace [cap-height 2.0\] at (0.5) should be [cap-height 2.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from add [ex-height 0\] to replace [cap-height 2.0\] at (1) should be [cap-height 2.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from add [ex-height 0\] to replace [cap-height 2.0\] at (1.5) should be [cap-height 2.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from add [cap-height 0.0\] to add [ch-width 2.0\] at (-0.5) should be [cap-height 0.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from add [cap-height 0.0\] to add [ch-width 2.0\] at (0) should be [cap-height 0.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from add [cap-height 0.0\] to add [ch-width 2.0\] at (0.5) should be [ch-width 2.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from add [cap-height 0.0\] to add [ch-width 2.0\] at (1) should be [ch-width 2.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from add [cap-height 0.0\] to add [ch-width 2.0\] at (1.5) should be [ch-width 2.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from replace [cap-height 0.0\] to replace [ch-width 2.0\] at (-0.5) should be [cap-height 0.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from replace [cap-height 0.0\] to replace [ch-width 2.0\] at (0) should be [cap-height 0.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from replace [cap-height 0.0\] to replace [ch-width 2.0\] at (0.5) should be [ch-width 2.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from replace [cap-height 0.0\] to replace [ch-width 2.0\] at (1) should be [ch-width 2.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from replace [cap-height 0.0\] to replace [ch-width 2.0\] at (1.5) should be [ch-width 2.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from replace [cap-height 0\] to add [ch-width 2.0\] at (-0.5) should be [cap-height 0.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from replace [cap-height 0\] to add [ch-width 2.0\] at (0) should be [cap-height 0.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from replace [cap-height 0\] to add [ch-width 2.0\] at (0.5) should be [ch-width 2.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from replace [cap-height 0\] to add [ch-width 2.0\] at (1) should be [ch-width 2.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from replace [cap-height 0\] to add [ch-width 2.0\] at (1.5) should be [ch-width 2.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from add [cap-height 0\] to replace [ch-width 2.0\] at (-0.5) should be [cap-height 0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from add [cap-height 0\] to replace [ch-width 2.0\] at (0) should be [cap-height 0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from add [cap-height 0\] to replace [ch-width 2.0\] at (0.5) should be [ch-width 2.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from add [cap-height 0\] to replace [ch-width 2.0\] at (1) should be [ch-width 2.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from add [cap-height 0\] to replace [ch-width 2.0\] at (1.5) should be [ch-width 2.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from add [ch-width 0.0\] to add [ic-width 2.0\] at (-0.5) should be [ch-width 0.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from add [ch-width 0.0\] to add [ic-width 2.0\] at (0) should be [ch-width 0.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from add [ch-width 0.0\] to add [ic-width 2.0\] at (0.5) should be [ic-width 2.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from add [ch-width 0.0\] to add [ic-width 2.0\] at (1) should be [ic-width 2.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from add [ch-width 0.0\] to add [ic-width 2.0\] at (1.5) should be [ic-width 2.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from replace [ch-width 0.0\] to replace [ic-width 2.0\] at (-0.5) should be [ch-width 0.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from replace [ch-width 0.0\] to replace [ic-width 2.0\] at (0) should be [ch-width 0.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from replace [ch-width 0.0\] to replace [ic-width 2.0\] at (0.5) should be [ic-width 2.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from replace [ch-width 0.0\] to replace [ic-width 2.0\] at (1) should be [ic-width 2.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from replace [ch-width 0.0\] to replace [ic-width 2.0\] at (1.5) should be [ic-width 2.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from replace [ch-width 0\] to add [ic-width 2.0\] at (-0.5) should be [ch-width 0.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from replace [ch-width 0\] to add [ic-width 2.0\] at (0) should be [ch-width 0.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from replace [ch-width 0\] to add [ic-width 2.0\] at (0.5) should be [ic-width 2.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from replace [ch-width 0\] to add [ic-width 2.0\] at (1) should be [ic-width 2.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from replace [ch-width 0\] to add [ic-width 2.0\] at (1.5) should be [ic-width 2.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from add [ch-width 0\] to replace [ic-width 2.0\] at (-0.5) should be [ch-width 0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from add [ch-width 0\] to replace [ic-width 2.0\] at (0) should be [ch-width 0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from add [ch-width 0\] to replace [ic-width 2.0\] at (0.5) should be [ic-width 2.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from add [ch-width 0\] to replace [ic-width 2.0\] at (1) should be [ic-width 2.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from add [ch-width 0\] to replace [ic-width 2.0\] at (1.5) should be [ic-width 2.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from add [ic-width 0.0\] to add [ic-height 2.0\] at (-0.5) should be [ic-width 0.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from add [ic-width 0.0\] to add [ic-height 2.0\] at (0) should be [ic-width 0.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from add [ic-width 0.0\] to add [ic-height 2.0\] at (0.5) should be [ic-height 2.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from add [ic-width 0.0\] to add [ic-height 2.0\] at (1) should be [ic-height 2.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from add [ic-width 0.0\] to add [ic-height 2.0\] at (1.5) should be [ic-height 2.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from replace [ic-width 0.0\] to replace [ic-height 2.0\] at (-0.5) should be [ic-width 0.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from replace [ic-width 0.0\] to replace [ic-height 2.0\] at (0) should be [ic-width 0.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from replace [ic-width 0.0\] to replace [ic-height 2.0\] at (0.5) should be [ic-height 2.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from replace [ic-width 0.0\] to replace [ic-height 2.0\] at (1) should be [ic-height 2.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from replace [ic-width 0.0\] to replace [ic-height 2.0\] at (1.5) should be [ic-height 2.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from replace [ic-width 0\] to add [ic-height 2.0\] at (-0.5) should be [ic-width 0.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from replace [ic-width 0\] to add [ic-height 2.0\] at (0) should be [ic-width 0.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from replace [ic-width 0\] to add [ic-height 2.0\] at (0.5) should be [ic-height 2.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from replace [ic-width 0\] to add [ic-height 2.0\] at (1) should be [ic-height 2.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from replace [ic-width 0\] to add [ic-height 2.0\] at (1.5) should be [ic-height 2.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from add [ic-width 0\] to replace [ic-height 2.0\] at (-0.5) should be [ic-width 0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from add [ic-width 0\] to replace [ic-height 2.0\] at (0) should be [ic-width 0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from add [ic-width 0\] to replace [ic-height 2.0\] at (0.5) should be [ic-height 2.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from add [ic-width 0\] to replace [ic-height 2.0\] at (1) should be [ic-height 2.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from add [ic-width 0\] to replace [ic-height 2.0\] at (1.5) should be [ic-height 2.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from add [ic-height 0.0\] to add [ex-height 2.0\] at (-0.5) should be [ic-height 0.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from add [ic-height 0.0\] to add [ex-height 2.0\] at (0) should be [ic-height 0.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from add [ic-height 0.0\] to add [ex-height 2.0\] at (0.5) should be [ex-height 2.5\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from add [ic-height 0.0\] to add [ex-height 2.0\] at (1) should be [ex-height 2.5\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from add [ic-height 0.0\] to add [ex-height 2.0\] at (1.5) should be [ex-height 2.5\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from replace [ic-height 0.0\] to replace [ex-height 2.0\] at (-0.5) should be [ic-height 0.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from replace [ic-height 0.0\] to replace [ex-height 2.0\] at (0) should be [ic-height 0.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from replace [ic-height 0.0\] to replace [ex-height 2.0\] at (0.5) should be [ex-height 2.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from replace [ic-height 0.0\] to replace [ex-height 2.0\] at (1) should be [ex-height 2.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from replace [ic-height 0.0\] to replace [ex-height 2.0\] at (1.5) should be [ex-height 2.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from replace [ic-height 0\] to add [ex-height 2.0\] at (-0.5) should be [ic-height 0.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from replace [ic-height 0\] to add [ex-height 2.0\] at (0) should be [ic-height 0.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from replace [ic-height 0\] to add [ex-height 2.0\] at (0.5) should be [ex-height 2.5\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from replace [ic-height 0\] to add [ex-height 2.0\] at (1) should be [ex-height 2.5\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from replace [ic-height 0\] to add [ex-height 2.0\] at (1.5) should be [ex-height 2.5\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from add [ic-height 0\] to replace [ex-height 2.0\] at (-0.5) should be [ic-height 0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from add [ic-height 0\] to replace [ex-height 2.0\] at (0) should be [ic-height 0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from add [ic-height 0\] to replace [ex-height 2.0\] at (0.5) should be [ex-height 2.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from add [ic-height 0\] to replace [ex-height 2.0\] at (1) should be [ex-height 2.0\]] + expected: FAIL + + [Compositing: property underlying [0.5\] from add [ic-height 0\] to replace [ex-height 2.0\] at (1.5) should be [ex-height 2.0\]] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-position/overlay/animation/overlay-interpolation.html.ini b/tests/wpt/metadata/css/css-position/overlay/animation/overlay-interpolation.html.ini new file mode 100644 index 00000000000..0327458e15a --- /dev/null +++ b/tests/wpt/metadata/css/css-position/overlay/animation/overlay-interpolation.html.ini @@ -0,0 +1,264 @@ +[overlay-interpolation.html] + [CSS Transitions: property from [auto\] to [none\] at (-1) should be [auto\]] + expected: FAIL + + [CSS Transitions: property from [auto\] to [none\] at (0) should be [auto\]] + expected: FAIL + + [CSS Transitions: property from [auto\] to [none\] at (0.1) should be [auto\]] + expected: FAIL + + [CSS Transitions: property from [auto\] to [none\] at (0.9) should be [auto\]] + expected: FAIL + + [CSS Transitions: property from [auto\] to [none\] at (1) should be [none\]] + expected: FAIL + + [CSS Transitions: property from [auto\] to [none\] at (1.5) should be [none\]] + expected: FAIL + + [CSS Transitions with transition: all: property from [auto\] to [none\] at (-1) should be [none\]] + expected: FAIL + + [CSS Transitions with transition: all: property from [auto\] to [none\] at (0) should be [none\]] + expected: FAIL + + [CSS Transitions with transition: all: property from [auto\] to [none\] at (0.1) should be [none\]] + expected: FAIL + + [CSS Transitions with transition: all: property from [auto\] to [none\] at (0.9) should be [none\]] + expected: FAIL + + [CSS Transitions with transition: all: property from [auto\] to [none\] at (1) should be [none\]] + expected: FAIL + + [CSS Transitions with transition: all: property from [auto\] to [none\] at (1.5) should be [none\]] + expected: FAIL + + [CSS Animations: property from [auto\] to [none\] at (-1) should be [auto\]] + expected: FAIL + + [CSS Animations: property from [auto\] to [none\] at (0) should be [auto\]] + expected: FAIL + + [CSS Animations: property from [auto\] to [none\] at (0.1) should be [auto\]] + expected: FAIL + + [CSS Animations: property from [auto\] to [none\] at (0.9) should be [auto\]] + expected: FAIL + + [CSS Animations: property from [auto\] to [none\] at (1) should be [none\]] + expected: FAIL + + [CSS Animations: property from [auto\] to [none\] at (1.5) should be [none\]] + expected: FAIL + + [Web Animations: property from [auto\] to [none\] at (-1) should be [auto\]] + expected: FAIL + + [Web Animations: property from [auto\] to [none\] at (0) should be [auto\]] + expected: FAIL + + [Web Animations: property from [auto\] to [none\] at (0.1) should be [auto\]] + expected: FAIL + + [Web Animations: property from [auto\] to [none\] at (0.9) should be [auto\]] + expected: FAIL + + [Web Animations: property from [auto\] to [none\] at (1) should be [none\]] + expected: FAIL + + [Web Animations: property from [auto\] to [none\] at (1.5) should be [none\]] + expected: FAIL + + [CSS Transitions: property from [none\] to [auto\] at (-1) should be [none\]] + expected: FAIL + + [CSS Transitions: property from [none\] to [auto\] at (0) should be [none\]] + expected: FAIL + + [CSS Transitions: property from [none\] to [auto\] at (0.1) should be [auto\]] + expected: FAIL + + [CSS Transitions: property from [none\] to [auto\] at (0.9) should be [auto\]] + expected: FAIL + + [CSS Transitions: property from [none\] to [auto\] at (1) should be [auto\]] + expected: FAIL + + [CSS Transitions: property from [none\] to [auto\] at (1.5) should be [auto\]] + expected: FAIL + + [CSS Transitions with transition: all: property from [none\] to [auto\] at (-1) should be [auto\]] + expected: FAIL + + [CSS Transitions with transition: all: property from [none\] to [auto\] at (0) should be [auto\]] + expected: FAIL + + [CSS Transitions with transition: all: property from [none\] to [auto\] at (0.1) should be [auto\]] + expected: FAIL + + [CSS Transitions with transition: all: property from [none\] to [auto\] at (0.9) should be [auto\]] + expected: FAIL + + [CSS Transitions with transition: all: property from [none\] to [auto\] at (1) should be [auto\]] + expected: FAIL + + [CSS Transitions with transition: all: property from [none\] to [auto\] at (1.5) should be [auto\]] + expected: FAIL + + [CSS Animations: property from [none\] to [auto\] at (-1) should be [none\]] + expected: FAIL + + [CSS Animations: property from [none\] to [auto\] at (0) should be [none\]] + expected: FAIL + + [CSS Animations: property from [none\] to [auto\] at (0.1) should be [auto\]] + expected: FAIL + + [CSS Animations: property from [none\] to [auto\] at (0.9) should be [auto\]] + expected: FAIL + + [CSS Animations: property from [none\] to [auto\] at (1) should be [auto\]] + expected: FAIL + + [CSS Animations: property from [none\] to [auto\] at (1.5) should be [auto\]] + expected: FAIL + + [Web Animations: property from [none\] to [auto\] at (-1) should be [none\]] + expected: FAIL + + [Web Animations: property from [none\] to [auto\] at (0) should be [none\]] + expected: FAIL + + [Web Animations: property from [none\] to [auto\] at (0.1) should be [auto\]] + expected: FAIL + + [Web Animations: property from [none\] to [auto\] at (0.9) should be [auto\]] + expected: FAIL + + [Web Animations: property from [none\] to [auto\] at (1) should be [auto\]] + expected: FAIL + + [Web Animations: property from [none\] to [auto\] at (1.5) should be [auto\]] + expected: FAIL + + [CSS Transitions: property from [auto\] to [auto\] at (-1) should be [auto\]] + expected: FAIL + + [CSS Transitions: property from [auto\] to [auto\] at (0) should be [auto\]] + expected: FAIL + + [CSS Transitions: property from [auto\] to [auto\] at (0.5) should be [auto\]] + expected: FAIL + + [CSS Transitions: property from [auto\] to [auto\] at (1) should be [auto\]] + expected: FAIL + + [CSS Transitions: property from [auto\] to [auto\] at (1.5) should be [auto\]] + expected: FAIL + + [CSS Transitions with transition: all: property from [auto\] to [auto\] at (-1) should be [auto\]] + expected: FAIL + + [CSS Transitions with transition: all: property from [auto\] to [auto\] at (0) should be [auto\]] + expected: FAIL + + [CSS Transitions with transition: all: property from [auto\] to [auto\] at (0.5) should be [auto\]] + expected: FAIL + + [CSS Transitions with transition: all: property from [auto\] to [auto\] at (1) should be [auto\]] + expected: FAIL + + [CSS Transitions with transition: all: property from [auto\] to [auto\] at (1.5) should be [auto\]] + expected: FAIL + + [CSS Animations: property from [auto\] to [auto\] at (-1) should be [auto\]] + expected: FAIL + + [CSS Animations: property from [auto\] to [auto\] at (0) should be [auto\]] + expected: FAIL + + [CSS Animations: property from [auto\] to [auto\] at (0.5) should be [auto\]] + expected: FAIL + + [CSS Animations: property from [auto\] to [auto\] at (1) should be [auto\]] + expected: FAIL + + [CSS Animations: property from [auto\] to [auto\] at (1.5) should be [auto\]] + expected: FAIL + + [Web Animations: property from [auto\] to [auto\] at (-1) should be [auto\]] + expected: FAIL + + [Web Animations: property from [auto\] to [auto\] at (0) should be [auto\]] + expected: FAIL + + [Web Animations: property from [auto\] to [auto\] at (0.5) should be [auto\]] + expected: FAIL + + [Web Animations: property from [auto\] to [auto\] at (1) should be [auto\]] + expected: FAIL + + [Web Animations: property from [auto\] to [auto\] at (1.5) should be [auto\]] + expected: FAIL + + [CSS Transitions: property from [none\] to [none\] at (-1) should be [none\]] + expected: FAIL + + [CSS Transitions: property from [none\] to [none\] at (0) should be [none\]] + expected: FAIL + + [CSS Transitions: property from [none\] to [none\] at (0.5) should be [none\]] + expected: FAIL + + [CSS Transitions: property from [none\] to [none\] at (1) should be [none\]] + expected: FAIL + + [CSS Transitions: property from [none\] to [none\] at (1.5) should be [none\]] + expected: FAIL + + [CSS Transitions with transition: all: property from [none\] to [none\] at (-1) should be [none\]] + expected: FAIL + + [CSS Transitions with transition: all: property from [none\] to [none\] at (0) should be [none\]] + expected: FAIL + + [CSS Transitions with transition: all: property from [none\] to [none\] at (0.5) should be [none\]] + expected: FAIL + + [CSS Transitions with transition: all: property from [none\] to [none\] at (1) should be [none\]] + expected: FAIL + + [CSS Transitions with transition: all: property from [none\] to [none\] at (1.5) should be [none\]] + expected: FAIL + + [CSS Animations: property from [none\] to [none\] at (-1) should be [none\]] + expected: FAIL + + [CSS Animations: property from [none\] to [none\] at (0) should be [none\]] + expected: FAIL + + [CSS Animations: property from [none\] to [none\] at (0.5) should be [none\]] + expected: FAIL + + [CSS Animations: property from [none\] to [none\] at (1) should be [none\]] + expected: FAIL + + [CSS Animations: property from [none\] to [none\] at (1.5) should be [none\]] + expected: FAIL + + [Web Animations: property from [none\] to [none\] at (-1) should be [none\]] + expected: FAIL + + [Web Animations: property from [none\] to [none\] at (0) should be [none\]] + expected: FAIL + + [Web Animations: property from [none\] to [none\] at (0.5) should be [none\]] + expected: FAIL + + [Web Animations: property from [none\] to [none\] at (1) should be [none\]] + expected: FAIL + + [Web Animations: property from [none\] to [none\] at (1.5) should be [none\]] + expected: FAIL diff --git a/tests/wpt/metadata/css/cssom/idlharness.html.ini b/tests/wpt/metadata/css/cssom/idlharness.html.ini index 1289e66d132..1398814cee8 100644 --- a/tests/wpt/metadata/css/cssom/idlharness.html.ini +++ b/tests/wpt/metadata/css/cssom/idlharness.html.ini @@ -535,3 +535,15 @@ [ShadowRoot interface: attribute adoptedStyleSheets] expected: FAIL + + [CSSImportRule interface: attribute layerName] + expected: FAIL + + [CSSImportRule interface: attribute supportsText] + expected: FAIL + + [CSSImportRule interface: sheet.cssRules[0\] must inherit property "layerName" with the proper type] + expected: FAIL + + [CSSImportRule interface: sheet.cssRules[0\] must inherit property "supportsText" with the proper type] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/response/response-body-read-task-handling.html.ini b/tests/wpt/metadata/fetch/api/response/response-body-read-task-handling.html.ini new file mode 100644 index 00000000000..30dbc35c06a --- /dev/null +++ b/tests/wpt/metadata/fetch/api/response/response-body-read-task-handling.html.ini @@ -0,0 +1,3 @@ +[response-body-read-task-handling.html] + [piping from a body stream to a JS-written WritableStream should occur in a microtask scope] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/data-urls/navigate.window.js.ini b/tests/wpt/metadata/fetch/data-urls/navigate.window.js.ini deleted file mode 100644 index d3c0ec7eb61..00000000000 --- a/tests/wpt/metadata/fetch/data-urls/navigate.window.js.ini +++ /dev/null @@ -1,6 +0,0 @@ -[navigate.window.html] - [Nothing fancy] - expected: FAIL - - [base64] - expected: FAIL diff --git a/tests/wpt/metadata/fetch/local-network-access/iframe.tentative.https.window.js.ini b/tests/wpt/metadata/fetch/local-network-access/iframe.tentative.https.window.js.ini index 5b0348afa74..361838941f2 100644 --- a/tests/wpt/metadata/fetch/local-network-access/iframe.tentative.https.window.js.ini +++ b/tests/wpt/metadata/fetch/local-network-access/iframe.tentative.https.window.js.ini @@ -1,4 +1,5 @@ [iframe.tentative.https.window.html] + expected: TIMEOUT [private to local: failed preflight.] expected: FAIL @@ -33,4 +34,4 @@ expected: FAIL [public to local, grandparent navigates: success.] - expected: FAIL + expected: TIMEOUT diff --git a/tests/wpt/metadata/fetch/local-network-access/worker-blob-fetch.window.js.ini b/tests/wpt/metadata/fetch/local-network-access/worker-blob-fetch.window.js.ini index 09aa994d7e1..907ee959867 100644 --- a/tests/wpt/metadata/fetch/local-network-access/worker-blob-fetch.window.js.ini +++ b/tests/wpt/metadata/fetch/local-network-access/worker-blob-fetch.window.js.ini @@ -23,9 +23,6 @@ [treat-as-public to private: failure.] expected: FAIL - [local https to local https: success.] - expected: FAIL - [private https to local https: failure.] expected: FAIL diff --git a/tests/wpt/metadata/fetch/metadata/generated/css-images.sub.tentative.html.ini b/tests/wpt/metadata/fetch/metadata/generated/css-images.sub.tentative.html.ini index 9749a4fccd5..36a410bfecb 100644 --- a/tests/wpt/metadata/fetch/metadata/generated/css-images.sub.tentative.html.ini +++ b/tests/wpt/metadata/fetch/metadata/generated/css-images.sub.tentative.html.ini @@ -147,5 +147,5 @@ [list-style-image sec-fetch-site - HTTPS downgrade-upgrade] expected: FAIL - [border-image sec-fetch-dest - Not sent to non-trustworthy cross-site destination] + [border-image sec-fetch-site - HTTPS downgrade (header not sent)] expected: FAIL diff --git a/tests/wpt/metadata/html/browsers/browsing-the-web/history-traversal/document-state.https.html.ini b/tests/wpt/metadata/html/browsers/browsing-the-web/history-traversal/document-state.https.html.ini new file mode 100644 index 00000000000..2f7885994ac --- /dev/null +++ b/tests/wpt/metadata/html/browsers/browsing-the-web/history-traversal/document-state.https.html.ini @@ -0,0 +1,6 @@ +[document-state.https.html] + [A navigation's initiator origin and referrer are stored in the document state and used in the document repopulation case] + expected: FAIL + + [A navigation's initiator origin and referrer are stored in the document state and used on location.reload()] + expected: FAIL diff --git a/tests/wpt/metadata/html/browsers/browsing-the-web/history-traversal/document-state.tentative.https.html.ini b/tests/wpt/metadata/html/browsers/browsing-the-web/history-traversal/document-state.tentative.https.html.ini deleted file mode 100644 index 58bb2d39c3b..00000000000 --- a/tests/wpt/metadata/html/browsers/browsing-the-web/history-traversal/document-state.tentative.https.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[document-state.tentative.https.html] - [A navigation's initiator origin and referrer are stored in the document state] - expected: FAIL diff --git a/tests/wpt/metadata/html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-fragment-scrolling-cross-origin.html.ini b/tests/wpt/metadata/html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-fragment-scrolling-cross-origin.html.ini index 6e9f7acf151..c8a3c8f9e68 100644 --- a/tests/wpt/metadata/html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-fragment-scrolling-cross-origin.html.ini +++ b/tests/wpt/metadata/html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-fragment-scrolling-cross-origin.html.ini @@ -1,6 +1,6 @@ [scroll-restoration-fragment-scrolling-cross-origin.html] type: testharness - expected: TIMEOUT + expected: ERROR [Manual scroll restoration should take precedent over scrolling to fragment in cross origin navigation] expected: TIMEOUT diff --git a/tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-src-aboutblank-navigate-immediately.html.ini b/tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-src-aboutblank-navigate-immediately.html.ini index c5fc1407992..530635e744f 100644 --- a/tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-src-aboutblank-navigate-immediately.html.ini +++ b/tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-src-aboutblank-navigate-immediately.html.ini @@ -1,10 +1,6 @@ [iframe-src-aboutblank-navigate-immediately.html] - expected: TIMEOUT [Navigating to a different document with window.open] expected: FAIL [Navigating to a different document with link click] expected: FAIL - - [Navigating to a different document with form submission] - expected: TIMEOUT diff --git a/tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-pageshow-events-iframe-contentWindow.html.ini b/tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-pageshow-events-iframe-contentWindow.html.ini index 149bcb4ff8c..b8fd22e2b81 100644 --- a/tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-pageshow-events-iframe-contentWindow.html.ini +++ b/tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-pageshow-events-iframe-contentWindow.html.ini @@ -10,3 +10,6 @@ [load & pageshow events do not fire on contentWindow of
+
+ + diff --git a/tests/wpt/web-platform-tests/clipboard-apis/resources/page.html b/tests/wpt/web-platform-tests/clipboard-apis/resources/page.html new file mode 100644 index 00000000000..35bde8e5016 --- /dev/null +++ b/tests/wpt/web-platform-tests/clipboard-apis/resources/page.html @@ -0,0 +1,26 @@ + + + + + + +
+ + diff --git a/tests/wpt/web-platform-tests/common/rendering-utils.js b/tests/wpt/web-platform-tests/common/rendering-utils.js index 8027cd5f848..46283bd5d07 100644 --- a/tests/wpt/web-platform-tests/common/rendering-utils.js +++ b/tests/wpt/web-platform-tests/common/rendering-utils.js @@ -7,14 +7,12 @@ */ function waitForAtLeastOneFrame() { return new Promise(resolve => { - // Different web engines work slightly different on this area but 1) waiting - // for two requestAnimationFrames() to happen one after another and 2) - // adding a step_timeout(0) to guarantee events have finished should be + // Different web engines work slightly different on this area but waiting + // for two requestAnimationFrames() to happen, one after another, should be // sufficient to ensure at least one frame has been generated anywhere. - // See https://bugzilla.mozilla.org/show_bug.cgi?id=1785615 window.requestAnimationFrame(() => { window.requestAnimationFrame(() => { - setTimeout(resolve, 0); + resolve(); }); }); }); diff --git a/tests/wpt/web-platform-tests/content-security-policy/embedded-enforcement/allow_csp_from-header.html b/tests/wpt/web-platform-tests/content-security-policy/embedded-enforcement/allow_csp_from-header.html index dd66bb77ac7..b2abcbece0e 100644 --- a/tests/wpt/web-platform-tests/content-security-policy/embedded-enforcement/allow_csp_from-header.html +++ b/tests/wpt/web-platform-tests/content-security-policy/embedded-enforcement/allow_csp_from-header.html @@ -85,8 +85,10 @@ tests.forEach(test => { async_test(t => { - var url = generateUrlWithAllowCSPFrom(test.origin, test.allow_csp_from); - assert_iframe_with_csp(t, url, test.csp, test.expected, test.name, test.blockedURI); + const url = generateUrlWithAllowCSPFrom( + test.origin, test.allow_csp_from); + assert_iframe_with_csp(t, url, test.csp, test.expected, test.name, + test.blockedURI, /*checkImageLoaded=*/true); }, test.name); }); diff --git a/tests/wpt/web-platform-tests/content-security-policy/embedded-enforcement/support/testharness-helper.sub.js b/tests/wpt/web-platform-tests/content-security-policy/embedded-enforcement/support/testharness-helper.sub.js index 4adc5216961..7d2307ebbc9 100644 --- a/tests/wpt/web-platform-tests/content-security-policy/embedded-enforcement/support/testharness-helper.sub.js +++ b/tests/wpt/web-platform-tests/content-security-policy/embedded-enforcement/support/testharness-helper.sub.js @@ -102,14 +102,16 @@ function assert_required_csp(t, url, csp, expected) { document.body.appendChild(i); } -function assert_iframe_with_csp(t, url, csp, shouldBlock, urlId, blockedURI) { - var i = document.createElement('iframe'); +function assert_iframe_with_csp(t, url, csp, shouldBlock, urlId, blockedURI, + checkImageLoaded) { + const i = document.createElement('iframe'); url.searchParams.append("id", urlId); i.src = url.toString(); if (csp != null) i.csp = csp; var loaded = {}; + var onLoadReceived = {}; window.addEventListener("message", function (e) { if (e.source != i.contentWindow) return; @@ -146,24 +148,22 @@ function assert_iframe_with_csp(t, url, csp, shouldBlock, urlId, blockedURI) { } else { // Assert iframe loads. Wait for the load event, the postMessage from the // script and the img load event. - let postMessage_received = false; - let img_loaded = false; + let img_loaded = !checkImageLoaded; window.addEventListener('message', t.step_func(e => { if (e.source != i.contentWindow) return; - if (e.data.loaded) { - assert_true(loaded[urlId]); - postMessage_received = true; - } else if (e.data === "img.loaded") + if (e.data === "img loaded") img_loaded = true; - if (i.onloadReceived && postMessage_received && img_loaded) + if (loaded[urlId] && onLoadReceived[urlId] && img_loaded) { t.done(); + } })); i.onload = t.step_func(function () { - if (loaded[urlId]) + onLoadReceived[urlId] = true; + if (loaded[urlId] && onLoadReceived[urlId] && img_loaded) { t.done(); - i.onloadReceived = true; + } }); } document.body.appendChild(i); diff --git a/tests/wpt/web-platform-tests/content-security-policy/nonce-hiding/nonce-hiding-move-document.html b/tests/wpt/web-platform-tests/content-security-policy/nonce-hiding/nonce-hiding-move-document.html new file mode 100644 index 00000000000..49de893ba03 --- /dev/null +++ b/tests/wpt/web-platform-tests/content-security-policy/nonce-hiding/nonce-hiding-move-document.html @@ -0,0 +1,26 @@ + + + + + + +Nonce isn't lost on document move + +

What color is this?

+ diff --git a/tests/wpt/web-platform-tests/cookies/resources/list-cookies-for-script.py b/tests/wpt/web-platform-tests/cookies/resources/list-cookies-for-script.py new file mode 100644 index 00000000000..b325d1f7450 --- /dev/null +++ b/tests/wpt/web-platform-tests/cookies/resources/list-cookies-for-script.py @@ -0,0 +1,12 @@ +import json +from cookies.resources import helpers + +from wptserve.utils import isomorphic_decode + +def main(request, response): + headers = helpers.setNoCacheAndCORSHeaders(request, response) + headers[0] = (b"Content-Type", b"text/javascript") + cookies = helpers.readCookies(request) + decoded_cookies = {isomorphic_decode(key): isomorphic_decode(val) for key, val in cookies.items()} + return headers, 'self._cookies = [{}];\n'.format( + ', '.join(['"{}"'.format(name) for name in decoded_cookies.keys()])) diff --git a/tests/wpt/web-platform-tests/core-aam/aria-braillelabel-manual.html b/tests/wpt/web-platform-tests/core-aam/aria-braillelabel-manual.html new file mode 100644 index 00000000000..a0668e8a501 --- /dev/null +++ b/tests/wpt/web-platform-tests/core-aam/aria-braillelabel-manual.html @@ -0,0 +1,71 @@ + + + + aria-braillelabel + + + + + + + + +

This test examines the ARIA properties for aria-braillelabel.

+ +
+ + + + diff --git a/tests/wpt/web-platform-tests/editing/other/typing-space-in-editable-summary.tentative.html b/tests/wpt/web-platform-tests/editing/other/typing-space-in-editable-summary.tentative.html new file mode 100644 index 00000000000..30a751d5239 --- /dev/null +++ b/tests/wpt/web-platform-tests/editing/other/typing-space-in-editable-summary.tentative.html @@ -0,0 +1,90 @@ + + + +Tests for pressing space in editable summary element + + + + + + + +
HelloWorldDetails
+
HelloWorldDetails
+
HelloWorld
Details
+ + + diff --git a/tests/wpt/web-platform-tests/fenced-frame/automatic-beacon-click-handler.https.html b/tests/wpt/web-platform-tests/fenced-frame/automatic-beacon-click-handler.https.html new file mode 100644 index 00000000000..505eb6174f2 --- /dev/null +++ b/tests/wpt/web-platform-tests/fenced-frame/automatic-beacon-click-handler.https.html @@ -0,0 +1,80 @@ + +Test window.fence.setReportEventDataForAutomaticBeacons + + + + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/fenced-frame/resources/automatic-beacon-store.py b/tests/wpt/web-platform-tests/fenced-frame/resources/automatic-beacon-store.py new file mode 100644 index 00000000000..f783c8530c4 --- /dev/null +++ b/tests/wpt/web-platform-tests/fenced-frame/resources/automatic-beacon-store.py @@ -0,0 +1,25 @@ +"""Automatic beacon store server. + +- When a request body is not specified, serves a 200 response whose body + contains the stored value from the last automatic beacon. If the stored value + doesn't exist, serves a 200 response with an empty body. +- When a request body is specified, stores the data in the body and serves a 200 + response without body. +""" +# Use an arbitrary key since `request.server.stash.put` expects a valid UUID. +BEACON_KEY = "0c02dba4-f01e-11ed-a05b-0242ac120003" + +def main(request, response): + # Requests with a body imply they were sent as an automatic beacon for + # reserved.top_navigation. Note that this only stores the most recent beacon + # that was sent. + if request.body: + request.server.stash.put(BEACON_KEY, request.body) + return (200, [], b"") + + # Requests without a body imply they were sent as the request from + # nextAutomaticBeacon(). + data = request.server.stash.take(BEACON_KEY) + if not data and data != "": + return (200, [], b"") + return (200, [], data) diff --git a/tests/wpt/web-platform-tests/fenced-frame/resources/fledge-bidding-logic.js b/tests/wpt/web-platform-tests/fenced-frame/resources/fledge-bidding-logic.js index c19cc1d0337..ab6685f1842 100644 --- a/tests/wpt/web-platform-tests/fenced-frame/resources/fledge-bidding-logic.js +++ b/tests/wpt/web-platform-tests/fenced-frame/resources/fledge-bidding-logic.js @@ -25,5 +25,10 @@ function generateBid(interestGroup, auctionSignals, perBuyerSignals, function reportWin( auctionSignals, perBuyerSignals, sellerSignals, browserSignals) { + registerAdBeacon({ + 'reserved.top_navigation': + browserSignals.interestGroupOwner + + '/fenced-frame/resources/automatic-beacon-store.py' + }); return; } diff --git a/tests/wpt/web-platform-tests/fenced-frame/resources/utils.js b/tests/wpt/web-platform-tests/fenced-frame/resources/utils.js index 2263fc1db18..4638f37cbb1 100644 --- a/tests/wpt/web-platform-tests/fenced-frame/resources/utils.js +++ b/tests/wpt/web-platform-tests/fenced-frame/resources/utils.js @@ -1,4 +1,5 @@ const STORE_URL = '/fenced-frame/resources/key-value-store.py'; +const BEACON_URL = '/fenced-frame/resources/automatic-beacon-store.py'; const REMOTE_EXECUTOR_URL = '/fenced-frame/resources/remote-context-executor.https.html'; const FLEDGE_BIDDING_URL = '/fenced-frame/resources/fledge-bidding-logic.js'; const FLEDGE_BIDDING_WITH_SIZE_URL = '/fenced-frame/resources/fledge-bidding-logic-with-size.js'; @@ -417,6 +418,37 @@ async function nextValueFromServer(key) { } } +// Reads the data from the latest automatic beacon sent to the server. +async function readAutomaticBeaconDataFromServer() { + const serverUrl = `${BEACON_URL}`; + const response = await fetch(serverUrl); + if (!response.ok) + throw new Error('An error happened in the server'); + const value = await response.text(); + + // The value is not stored in the server. + if (value === "") + return { status: false }; + + return { status: true, value: value }; +} + +// Convenience wrapper around the above getter that will wait until a value is +// available on the server. +async function nextAutomaticBeacon() { + while (true) { + // Fetches the test result from the server. + const { status, value } = await readAutomaticBeaconDataFromServer(); + if (!status) { + // The test result has not been stored yet. Retry after a while. + await new Promise(resolve => setTimeout(resolve, 20)); + continue; + } + + return value; + } +} + // Writes `value` for `key` in the key-value store on the server. async function writeValueToServer(key, value, origin = '') { // Resolve the key if it is a Promise. diff --git a/tests/wpt/web-platform-tests/fetch/api/abort/general.any.js b/tests/wpt/web-platform-tests/fetch/api/abort/general.any.js index 7bf98ba9b24..3727bb42afe 100644 --- a/tests/wpt/web-platform-tests/fetch/api/abort/general.any.js +++ b/tests/wpt/web-platform-tests/fetch/api/abort/general.any.js @@ -566,7 +566,7 @@ test(() => { controller.abort(); - assert_array_equals(log, ['clone-aborted', 'original-aborted'], "Abort events fired in correct order"); + assert_array_equals(log, ['original-aborted', 'clone-aborted'], "Abort events fired in correct order"); assert_true(request.signal.aborted, 'Signal aborted'); assert_true(clonedRequest.signal.aborted, 'Signal aborted'); }, "Clone aborts with original controller"); diff --git a/tests/wpt/web-platform-tests/fetch/api/response/response-body-read-task-handling.html b/tests/wpt/web-platform-tests/fetch/api/response/response-body-read-task-handling.html index c2c90eaa8bd..64b07556661 100644 --- a/tests/wpt/web-platform-tests/fetch/api/response/response-body-read-task-handling.html +++ b/tests/wpt/web-platform-tests/fetch/api/response/response-body-read-task-handling.html @@ -35,9 +35,7 @@ promise_test(function() { // The fulfill handler above shouldn't have run yet. If it has run, // throw to reject this promise and fail the test. - if (executed) { - throw "shouldn't have run microtasks yet"; - } + assert_false(executed, "shouldn't have run microtasks yet"); // Otherwise act as if there's no "then" property so the promise // fulfills and the test passes. @@ -49,6 +47,40 @@ promise_test(function() { return response.body.getReader().read(); }); }, "reading from a body stream should occur in a microtask scope"); + +promise_test(function() { + return fetch("../resources/data.json").then(function(response) { + // Add a getter for "then" that will incidentally be invoked + // during promise resolution. + Object.prototype.__defineGetter__('then', () => { + // Clean up behind ourselves. + delete Object.prototype.then; + + // This promise should (like all promises) be resolved + // asynchronously. + var executed = false; + Promise.resolve().then(_ => { executed = true; }); + + // This shouldn't run microtasks! They should only run + // after the fetch is resolved. + performMicrotaskCheckpoint(); + + // The fulfill handler above shouldn't have run yet. If it has run, + // throw to reject this promise and fail the test. + assert_false(executed, "shouldn't have run microtasks yet"); + + // Otherwise act as if there's no "then" property so the promise + // fulfills and the test passes. + return undefined; + }); + + // Create a read request, incidentally resolving a promise with an + // object value, thereby invoking the getter installed above. + return response.body.pipeTo(new WritableStream({ + write(chunk) {} + })) + }); +}, "piping from a body stream to a JS-written WritableStream should occur in a microtask scope"); diff --git a/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-options.tentative.html b/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-options.tentative.https.html similarity index 88% rename from tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-options.tentative.html rename to tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-options.tentative.https.html index 875431698f7..871c917dcc8 100644 --- a/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-options.tentative.html +++ b/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-options.tentative.https.html @@ -1,10 +1,10 @@ Element#requestFullscreen({ screen }) tentative support - - - + + + diff --git a/tests/wpt/web-platform-tests/graphics-aria/META.yml b/tests/wpt/web-platform-tests/graphics-aria/META.yml new file mode 100644 index 00000000000..692db91315e --- /dev/null +++ b/tests/wpt/web-platform-tests/graphics-aria/META.yml @@ -0,0 +1,4 @@ +spec: https://w3c.github.io/graphics-aria/ +suggested_reviewers: + - cookiecrook + - spectranaut diff --git a/tests/wpt/web-platform-tests/graphics-aria/graphics-roles.html b/tests/wpt/web-platform-tests/graphics-aria/graphics-roles.html new file mode 100644 index 00000000000..159190ed833 --- /dev/null +++ b/tests/wpt/web-platform-tests/graphics-aria/graphics-roles.html @@ -0,0 +1,22 @@ + + + + + + + + + + + + +
x
+
x
+
x
+ + + + + \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/html/browsers/browsing-the-web/history-traversal/document-state.tentative.https.html b/tests/wpt/web-platform-tests/html/browsers/browsing-the-web/history-traversal/document-state.https.html similarity index 67% rename from tests/wpt/web-platform-tests/html/browsers/browsing-the-web/history-traversal/document-state.tentative.https.html rename to tests/wpt/web-platform-tests/html/browsers/browsing-the-web/history-traversal/document-state.https.html index d0e629f6312..609ce9b8503 100644 --- a/tests/wpt/web-platform-tests/html/browsers/browsing-the-web/history-traversal/document-state.tentative.https.html +++ b/tests/wpt/web-platform-tests/html/browsers/browsing-the-web/history-traversal/document-state.https.html @@ -86,6 +86,50 @@ promise_test(async t => { 'Same-origin forward history navigation to a document whose original ' + 'initiator was cross-site ends up with document.referrer that is the ' + 'original cross-site initiator'); -}, "A navigation's initiator origin and referrer are stored in the document state"); +}, "A navigation's initiator origin and referrer are stored in the document " + + "state and used in the document repopulation case"); + +// This test is similar to the above, but instead of testing for the true +// history entry -> document state -> document repopulation case, we stay on [B] +// (the document who was navigated to from [A]) and run `location.reload()` to +// confirm that the initiator information from the [A] -> [B] navigation is used +// when reloading [B], not [B]'s own same-origin information. +promise_test(async t => { + const rcHelper = new RemoteContextHelper(); + const A = await rcHelper.addWindow(); + + const originA = new URL(await A.executeScript(() => location.href)).origin; + + // Create B on a new origin. + const B = await A.navigateToNew({ + origin: 'HTTPS_NOTSAMESITE_ORIGIN', + }); + + const originB = new URL(await B.executeScript(() => location.href)).origin; + assert_not_equals(originA, originB, 'Contexts A and B are cross-origin'); + + // Reload B. + await B.navigate(() => { + location.reload(); + }, []); + + const secFetchSite = await B.executeScript(() => window.requestHeaders['sec-fetch-site']); + const referrer = await B.executeScript(() => window.requestHeaders['referer']); + const documentReferrer = await B.executeScript(() => document.referrer); + + assert_equals(secFetchSite, 'cross-site', + 'Same-origin forward history navigation to a document whose original ' + + 'initiator was cross-site, ends up with Sec-Fetch-Dest: cross-site ' + + 'header'); + assert_equals(referrer, originA + '/', + 'Same-origin forward history navigation to a document whose original ' + + 'initiator was cross-site ends up with the Referer header that is the ' + + 'original cross-site initiator'); + assert_equals(documentReferrer, originA + '/', + 'Same-origin forward history navigation to a document whose original ' + + 'initiator was cross-site ends up with document.referrer that is the ' + + 'original cross-site initiator'); +}, "A navigation's initiator origin and referrer are stored in the document " + + "state and used on location.reload()"); diff --git a/tests/wpt/web-platform-tests/html/canvas/element/layers/2d.layer.render-opportunities.createImageBitmap-expected.html b/tests/wpt/web-platform-tests/html/canvas/element/layers/2d.layer.render-opportunities.createImageBitmap-expected.html new file mode 100644 index 00000000000..8ce0c51e8e4 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/canvas/element/layers/2d.layer.render-opportunities.createImageBitmap-expected.html @@ -0,0 +1,32 @@ + + +Canvas test: 2d.layer.render-opportunities.createImageBitmap +

2d.layer.render-opportunities.createImageBitmap

+

Check that layers state stack is flushed and rebuilt on frame renders.

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/web-platform-tests/html/canvas/element/layers/2d.layer.render-opportunities.createImageBitmap.html b/tests/wpt/web-platform-tests/html/canvas/element/layers/2d.layer.render-opportunities.createImageBitmap.html new file mode 100644 index 00000000000..4ffcaa3e3c0 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/canvas/element/layers/2d.layer.render-opportunities.createImageBitmap.html @@ -0,0 +1,32 @@ + + + +Canvas test: 2d.layer.render-opportunities.createImageBitmap +

2d.layer.render-opportunities.createImageBitmap

+

Check that layers state stack is flushed and rebuilt on frame renders.

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/web-platform-tests/html/canvas/element/layers/2d.layer.render-opportunities.drawImage-expected.html b/tests/wpt/web-platform-tests/html/canvas/element/layers/2d.layer.render-opportunities.drawImage-expected.html new file mode 100644 index 00000000000..1ddc6d1b449 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/canvas/element/layers/2d.layer.render-opportunities.drawImage-expected.html @@ -0,0 +1,32 @@ + + +Canvas test: 2d.layer.render-opportunities.drawImage +

2d.layer.render-opportunities.drawImage

+

Check that layers state stack is flushed and rebuilt on frame renders.

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/web-platform-tests/html/canvas/element/layers/2d.layer.render-opportunities.drawImage.html b/tests/wpt/web-platform-tests/html/canvas/element/layers/2d.layer.render-opportunities.drawImage.html new file mode 100644 index 00000000000..4eb0b6f721b --- /dev/null +++ b/tests/wpt/web-platform-tests/html/canvas/element/layers/2d.layer.render-opportunities.drawImage.html @@ -0,0 +1,34 @@ + + + +Canvas test: 2d.layer.render-opportunities.drawImage +

2d.layer.render-opportunities.drawImage

+

Check that layers state stack is flushed and rebuilt on frame renders.

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/web-platform-tests/html/canvas/element/layers/2d.layer.render-opportunities.getImageData-expected.html b/tests/wpt/web-platform-tests/html/canvas/element/layers/2d.layer.render-opportunities.getImageData-expected.html new file mode 100644 index 00000000000..ea0e78e0f28 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/canvas/element/layers/2d.layer.render-opportunities.getImageData-expected.html @@ -0,0 +1,32 @@ + + +Canvas test: 2d.layer.render-opportunities.getImageData +

2d.layer.render-opportunities.getImageData

+

Check that layers state stack is flushed and rebuilt on frame renders.

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/web-platform-tests/html/canvas/element/layers/2d.layer.render-opportunities.getImageData.html b/tests/wpt/web-platform-tests/html/canvas/element/layers/2d.layer.render-opportunities.getImageData.html new file mode 100644 index 00000000000..3cf514a03f4 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/canvas/element/layers/2d.layer.render-opportunities.getImageData.html @@ -0,0 +1,32 @@ + + + +Canvas test: 2d.layer.render-opportunities.getImageData +

2d.layer.render-opportunities.getImageData

+

Check that layers state stack is flushed and rebuilt on frame renders.

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/web-platform-tests/html/canvas/element/layers/2d.layer.render-opportunities.putImageData-expected.html b/tests/wpt/web-platform-tests/html/canvas/element/layers/2d.layer.render-opportunities.putImageData-expected.html new file mode 100644 index 00000000000..3d63bbe7766 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/canvas/element/layers/2d.layer.render-opportunities.putImageData-expected.html @@ -0,0 +1,32 @@ + + +Canvas test: 2d.layer.render-opportunities.putImageData +

2d.layer.render-opportunities.putImageData

+

Check that layers state stack is flushed and rebuilt on frame renders.

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/web-platform-tests/html/canvas/element/layers/2d.layer.render-opportunities.putImageData.html b/tests/wpt/web-platform-tests/html/canvas/element/layers/2d.layer.render-opportunities.putImageData.html new file mode 100644 index 00000000000..8da3dafbb7c --- /dev/null +++ b/tests/wpt/web-platform-tests/html/canvas/element/layers/2d.layer.render-opportunities.putImageData.html @@ -0,0 +1,34 @@ + + + +Canvas test: 2d.layer.render-opportunities.putImageData +

2d.layer.render-opportunities.putImageData

+

Check that layers state stack is flushed and rebuilt on frame renders.

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/web-platform-tests/html/canvas/element/layers/2d.layer.render-opportunities.requestAnimationFrame-expected.html b/tests/wpt/web-platform-tests/html/canvas/element/layers/2d.layer.render-opportunities.requestAnimationFrame-expected.html new file mode 100644 index 00000000000..138f3a7ccbb --- /dev/null +++ b/tests/wpt/web-platform-tests/html/canvas/element/layers/2d.layer.render-opportunities.requestAnimationFrame-expected.html @@ -0,0 +1,35 @@ + + + +Canvas test: 2d.layer.render-opportunities.requestAnimationFrame +

2d.layer.render-opportunities.requestAnimationFrame

+

Check that layers state stack is flushed and rebuilt on frame renders.

+ +

FAIL (fallback content)

+
+ + \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/html/canvas/element/layers/2d.layer.render-opportunities.requestAnimationFrame.html b/tests/wpt/web-platform-tests/html/canvas/element/layers/2d.layer.render-opportunities.requestAnimationFrame.html new file mode 100644 index 00000000000..889ff5ba09c --- /dev/null +++ b/tests/wpt/web-platform-tests/html/canvas/element/layers/2d.layer.render-opportunities.requestAnimationFrame.html @@ -0,0 +1,35 @@ + + + + +Canvas test: 2d.layer.render-opportunities.requestAnimationFrame +

2d.layer.render-opportunities.requestAnimationFrame

+

Check that layers state stack is flushed and rebuilt on frame renders.

+ +

FAIL (fallback content)

+
+ + \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/html/canvas/element/layers/2d.layer.render-opportunities.toBlob-expected.html b/tests/wpt/web-platform-tests/html/canvas/element/layers/2d.layer.render-opportunities.toBlob-expected.html new file mode 100644 index 00000000000..fda8e8d7c6d --- /dev/null +++ b/tests/wpt/web-platform-tests/html/canvas/element/layers/2d.layer.render-opportunities.toBlob-expected.html @@ -0,0 +1,35 @@ + + + +Canvas test: 2d.layer.render-opportunities.toBlob +

2d.layer.render-opportunities.toBlob

+

Check that layers state stack is flushed and rebuilt on frame renders.

+ +

FAIL (fallback content)

+
+ + \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/html/canvas/element/layers/2d.layer.render-opportunities.toBlob.html b/tests/wpt/web-platform-tests/html/canvas/element/layers/2d.layer.render-opportunities.toBlob.html new file mode 100644 index 00000000000..908730424a8 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/canvas/element/layers/2d.layer.render-opportunities.toBlob.html @@ -0,0 +1,35 @@ + + + + +Canvas test: 2d.layer.render-opportunities.toBlob +

2d.layer.render-opportunities.toBlob

+

Check that layers state stack is flushed and rebuilt on frame renders.

+ +

FAIL (fallback content)

+
+ + \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/html/canvas/element/layers/2d.layer.render-opportunities.toDataURL-expected.html b/tests/wpt/web-platform-tests/html/canvas/element/layers/2d.layer.render-opportunities.toDataURL-expected.html new file mode 100644 index 00000000000..22a9770331d --- /dev/null +++ b/tests/wpt/web-platform-tests/html/canvas/element/layers/2d.layer.render-opportunities.toDataURL-expected.html @@ -0,0 +1,32 @@ + + +Canvas test: 2d.layer.render-opportunities.toDataURL +

2d.layer.render-opportunities.toDataURL

+

Check that layers state stack is flushed and rebuilt on frame renders.

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/web-platform-tests/html/canvas/element/layers/2d.layer.render-opportunities.toDataURL.html b/tests/wpt/web-platform-tests/html/canvas/element/layers/2d.layer.render-opportunities.toDataURL.html new file mode 100644 index 00000000000..152f66a12b3 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/canvas/element/layers/2d.layer.render-opportunities.toDataURL.html @@ -0,0 +1,32 @@ + + + +Canvas test: 2d.layer.render-opportunities.toDataURL +

2d.layer.render-opportunities.toDataURL

+

Check that layers state stack is flushed and rebuilt on frame renders.

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/web-platform-tests/html/canvas/element/layers/2d.layer.unclosed-expected.html b/tests/wpt/web-platform-tests/html/canvas/element/layers/2d.layer.unclosed-expected.html new file mode 100644 index 00000000000..c41b253c95b --- /dev/null +++ b/tests/wpt/web-platform-tests/html/canvas/element/layers/2d.layer.unclosed-expected.html @@ -0,0 +1,23 @@ + + +Canvas test: 2d.layer.unclosed +

2d.layer.unclosed

+

Check that layers are rendered even if not closed.

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/web-platform-tests/html/canvas/element/layers/2d.layer.unclosed.html b/tests/wpt/web-platform-tests/html/canvas/element/layers/2d.layer.unclosed.html new file mode 100644 index 00000000000..788889ee7ef --- /dev/null +++ b/tests/wpt/web-platform-tests/html/canvas/element/layers/2d.layer.unclosed.html @@ -0,0 +1,22 @@ + + + +Canvas test: 2d.layer.unclosed +

2d.layer.unclosed

+

Check that layers are rendered even if not closed.

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/filters/2d.filter.canvasFilterObject.dropShadow.tentative.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/filters/2d.filter.canvasFilterObject.dropShadow.tentative.html index 55f2d2c24b5..18af95c1eeb 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/filters/2d.filter.canvasFilterObject.dropShadow.tentative.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/filters/2d.filter.canvasFilterObject.dropShadow.tentative.html @@ -8,8 +8,8 @@

FAIL (fallback content)

diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/filters/2d.filter.canvasFilterObject.dropShadow.tentative.w.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/filters/2d.filter.canvasFilterObject.dropShadow.tentative.w.html index 633d202012c..b94424dd996 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/filters/2d.filter.canvasFilterObject.dropShadow.tentative.w.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/filters/2d.filter.canvasFilterObject.dropShadow.tentative.w.html @@ -10,8 +10,8 @@ diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.endlayer.alone.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.endlayer.alone.html index f088c89aa7c..6a0e5cce717 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.endlayer.alone.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.endlayer.alone.html @@ -8,8 +8,8 @@

FAIL (fallback content)

diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.endlayer.alone.w.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.endlayer.alone.w.html index 96c80115506..ddb2671aaab 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.endlayer.alone.w.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.endlayer.alone.w.html @@ -10,8 +10,8 @@ diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.endlayer.unmatched.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.endlayer.unmatched.html index a87c7364cfa..b204c49e5eb 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.endlayer.unmatched.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.endlayer.unmatched.html @@ -8,8 +8,8 @@

FAIL (fallback content)

diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.endlayer.unmatched.w.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.endlayer.unmatched.w.html index 9507809a528..2e1cb62c32a 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.endlayer.unmatched.w.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.endlayer.unmatched.w.html @@ -10,8 +10,8 @@ diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.alpha.blending.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.alpha.blending.html index bb7dd933372..71414b4b379 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.alpha.blending.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.alpha.blending.html @@ -8,8 +8,8 @@

FAIL (fallback content)

diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.alpha.blending.shadow.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.alpha.blending.shadow.html index 70b32e43395..551df36b15e 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.alpha.blending.shadow.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.alpha.blending.shadow.html @@ -8,8 +8,8 @@

FAIL (fallback content)

diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.alpha.blending.shadow.w.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.alpha.blending.shadow.w.html index 45932d4cd5d..6851a4a8468 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.alpha.blending.shadow.w.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.alpha.blending.shadow.w.html @@ -10,8 +10,8 @@ diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.alpha.blending.w.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.alpha.blending.w.html index ff33fc45052..618480c813f 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.alpha.blending.w.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.alpha.blending.w.html @@ -10,8 +10,8 @@ diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.alpha.composite.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.alpha.composite.html index 21582189b1d..94fed5752df 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.alpha.composite.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.alpha.composite.html @@ -8,8 +8,8 @@

FAIL (fallback content)

diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.alpha.composite.shadow.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.alpha.composite.shadow.html index bb3d886b54f..841742ef1e7 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.alpha.composite.shadow.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.alpha.composite.shadow.html @@ -8,8 +8,8 @@

FAIL (fallback content)

diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.alpha.composite.shadow.w.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.alpha.composite.shadow.w.html index 592f92921b8..ef44257c0ad 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.alpha.composite.shadow.w.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.alpha.composite.shadow.w.html @@ -10,8 +10,8 @@ diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.alpha.composite.w.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.alpha.composite.w.html index 2359e92790f..d7d2b7a21e2 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.alpha.composite.w.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.alpha.composite.w.html @@ -10,8 +10,8 @@ diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.alpha.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.alpha.html index 67a8ae60249..63a264e6819 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.alpha.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.alpha.html @@ -8,8 +8,8 @@

FAIL (fallback content)

diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.alpha.shadow.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.alpha.shadow.html index a67f5872f78..daa788cd150 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.alpha.shadow.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.alpha.shadow.html @@ -8,8 +8,8 @@

FAIL (fallback content)

diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.alpha.shadow.w.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.alpha.shadow.w.html index 35df72aabcd..f75db3d2490 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.alpha.shadow.w.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.alpha.shadow.w.html @@ -10,8 +10,8 @@ diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.alpha.w.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.alpha.w.html index 2db6b64738c..694f31e208b 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.alpha.w.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.alpha.w.html @@ -10,8 +10,8 @@ diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.blending.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.blending.html index 6bcfd2854a6..6a36bb4ba10 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.blending.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.blending.html @@ -8,8 +8,8 @@

FAIL (fallback content)

diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.blending.shadow.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.blending.shadow.html index f1e9b7d23a3..9ad87aa0cd2 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.blending.shadow.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.blending.shadow.html @@ -8,8 +8,8 @@

FAIL (fallback content)

diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.blending.shadow.w.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.blending.shadow.w.html index 1d22e94f6f9..dc52e9e9251 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.blending.shadow.w.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.blending.shadow.w.html @@ -10,8 +10,8 @@ diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.blending.w.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.blending.w.html index 227c72b80ac..8964e97713c 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.blending.w.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.blending.w.html @@ -10,8 +10,8 @@ diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.composite.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.composite.html index 9d4d1dce8a4..84fb4b3d95a 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.composite.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.composite.html @@ -8,8 +8,8 @@

FAIL (fallback content)

diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.composite.shadow.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.composite.shadow.html index 9ad39065c6a..2e0883f5af8 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.composite.shadow.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.composite.shadow.html @@ -8,8 +8,8 @@

FAIL (fallback content)

diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.composite.shadow.w.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.composite.shadow.w.html index b45c9d3aadc..66d44050581 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.composite.shadow.w.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.composite.shadow.w.html @@ -10,8 +10,8 @@ diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.composite.w.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.composite.w.html index 66493889b20..b695871fcdc 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.composite.w.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.composite.w.html @@ -10,8 +10,8 @@ diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.alpha.blending.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.alpha.blending.html index 37d0e3dd1c5..bf483ccc925 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.alpha.blending.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.alpha.blending.html @@ -8,8 +8,8 @@

FAIL (fallback content)

diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.alpha.blending.shadow.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.alpha.blending.shadow.html index 93278cb5aa3..d914a70867f 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.alpha.blending.shadow.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.alpha.blending.shadow.html @@ -8,8 +8,8 @@

FAIL (fallback content)

diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.alpha.blending.shadow.w.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.alpha.blending.shadow.w.html index 783693f2c14..a1acd0d083a 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.alpha.blending.shadow.w.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.alpha.blending.shadow.w.html @@ -10,8 +10,8 @@ diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.alpha.blending.w.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.alpha.blending.w.html index 53533e4ece6..47503d5478b 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.alpha.blending.w.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.alpha.blending.w.html @@ -10,8 +10,8 @@ diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.alpha.composite.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.alpha.composite.html index f0af85f8f51..7d4f8ecda52 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.alpha.composite.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.alpha.composite.html @@ -8,8 +8,8 @@

FAIL (fallback content)

diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.alpha.composite.shadow.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.alpha.composite.shadow.html index 46cd28b6c2b..f75bd251ac4 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.alpha.composite.shadow.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.alpha.composite.shadow.html @@ -8,8 +8,8 @@

FAIL (fallback content)

diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.alpha.composite.shadow.w.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.alpha.composite.shadow.w.html index 044b75927b3..783a04cafbf 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.alpha.composite.shadow.w.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.alpha.composite.shadow.w.html @@ -10,8 +10,8 @@ diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.alpha.composite.w.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.alpha.composite.w.html index be25ca66b16..ed8af9a0f1d 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.alpha.composite.w.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.alpha.composite.w.html @@ -10,8 +10,8 @@ diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.alpha.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.alpha.html index 6567094376b..4f8954f978c 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.alpha.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.alpha.html @@ -8,8 +8,8 @@

FAIL (fallback content)

diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.alpha.shadow.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.alpha.shadow.html index 3059bf306cd..0cfa86a0125 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.alpha.shadow.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.alpha.shadow.html @@ -8,8 +8,8 @@

FAIL (fallback content)

diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.alpha.shadow.w.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.alpha.shadow.w.html index a481073ccfc..015fe946338 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.alpha.shadow.w.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.alpha.shadow.w.html @@ -10,8 +10,8 @@ diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.alpha.w.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.alpha.w.html index b5d81078899..4334fd6c1b0 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.alpha.w.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.alpha.w.html @@ -10,8 +10,8 @@ diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.blending.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.blending.html index a574e829328..7f3d1a2cb3c 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.blending.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.blending.html @@ -8,8 +8,8 @@

FAIL (fallback content)

diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.blending.shadow.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.blending.shadow.html index 4bdf80337f8..9b9862e57ff 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.blending.shadow.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.blending.shadow.html @@ -8,8 +8,8 @@

FAIL (fallback content)

diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.blending.shadow.w.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.blending.shadow.w.html index 23cd4e834b0..1d7e74b64eb 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.blending.shadow.w.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.blending.shadow.w.html @@ -10,8 +10,8 @@ diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.blending.w.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.blending.w.html index bd7a51d8987..f5ccee1d858 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.blending.w.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.blending.w.html @@ -10,8 +10,8 @@ diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.composite.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.composite.html index 663a953a29e..2e8272b2bfa 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.composite.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.composite.html @@ -8,8 +8,8 @@

FAIL (fallback content)

diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.composite.shadow.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.composite.shadow.html index 52ad8646f01..077041a2940 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.composite.shadow.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.composite.shadow.html @@ -8,8 +8,8 @@

FAIL (fallback content)

diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.composite.shadow.w.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.composite.shadow.w.html index bf7139edce6..b162354da44 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.composite.shadow.w.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.composite.shadow.w.html @@ -10,8 +10,8 @@ diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.composite.w.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.composite.w.html index 1f30d1e5644..b4158392660 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.composite.w.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.composite.w.html @@ -10,8 +10,8 @@ diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.no-global-states.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.no-global-states.html index 0619faa944f..ccae63a26ab 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.no-global-states.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.no-global-states.html @@ -8,8 +8,8 @@

FAIL (fallback content)

diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.no-global-states.w.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.no-global-states.w.html index 3a716838200..6ce768ad267 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.no-global-states.w.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.no-global-states.w.html @@ -10,8 +10,8 @@ diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.shadow.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.shadow.html index 69120c105e5..9a20e39fd5a 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.shadow.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.shadow.html @@ -8,8 +8,8 @@

FAIL (fallback content)

diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.shadow.w.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.shadow.w.html index 8a770b2911e..26bdf755876 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.shadow.w.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.shadow.w.html @@ -10,8 +10,8 @@ diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.no-global-states.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.no-global-states.html index 022736c7b5b..c8a98153816 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.no-global-states.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.no-global-states.html @@ -8,8 +8,8 @@

FAIL (fallback content)

diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.no-global-states.w.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.no-global-states.w.html index 80ed4e4503d..db03a3fd0c3 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.no-global-states.w.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.no-global-states.w.html @@ -10,8 +10,8 @@ diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.shadow.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.shadow.html index 6402dc57607..41a832c516e 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.shadow.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.shadow.html @@ -8,8 +8,8 @@

FAIL (fallback content)

diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.shadow.w.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.shadow.w.html index e41e7aee464..7b78f4b739a 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.shadow.w.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.global-states.shadow.w.html @@ -10,8 +10,8 @@ diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.nested.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.nested.html index 0c168493c21..9e5b7d5826c 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.nested.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.nested.html @@ -8,8 +8,8 @@

FAIL (fallback content)

diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.nested.w.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.nested.w.html index 3b81691e06b..99e73906096 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.nested.w.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.nested.w.html @@ -10,8 +10,8 @@ diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.render-opportunities.convertToBlob-expected.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.render-opportunities.convertToBlob-expected.html new file mode 100644 index 00000000000..1e617751655 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.render-opportunities.convertToBlob-expected.html @@ -0,0 +1,35 @@ + + + +Canvas test: 2d.layer.render-opportunities.convertToBlob +

2d.layer.render-opportunities.convertToBlob

+

Check that layers state stack is flushed and rebuilt on frame renders.

+ +

FAIL (fallback content)

+
+ + \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.render-opportunities.convertToBlob.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.render-opportunities.convertToBlob.html new file mode 100644 index 00000000000..c1a139a3de8 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.render-opportunities.convertToBlob.html @@ -0,0 +1,38 @@ + + + + +Canvas test: 2d.layer.render-opportunities.convertToBlob +

2d.layer.render-opportunities.convertToBlob

+

Check that layers state stack is flushed and rebuilt on frame renders.

+ +

FAIL (fallback content)

+
+ + \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.render-opportunities.convertToBlob.w.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.render-opportunities.convertToBlob.w.html new file mode 100644 index 00000000000..404fef3ad6a --- /dev/null +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.render-opportunities.convertToBlob.w.html @@ -0,0 +1,49 @@ + + + + +Canvas test: 2d.layer.render-opportunities.convertToBlob +

2d.layer.render-opportunities.convertToBlob

+

Check that layers state stack is flushed and rebuilt on frame renders.

+ +

FAIL (fallback content)

+
+ + + diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.render-opportunities.createImageBitmap-expected.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.render-opportunities.createImageBitmap-expected.html new file mode 100644 index 00000000000..8ce0c51e8e4 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.render-opportunities.createImageBitmap-expected.html @@ -0,0 +1,32 @@ + + +Canvas test: 2d.layer.render-opportunities.createImageBitmap +

2d.layer.render-opportunities.createImageBitmap

+

Check that layers state stack is flushed and rebuilt on frame renders.

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.render-opportunities.createImageBitmap.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.render-opportunities.createImageBitmap.html new file mode 100644 index 00000000000..876b027170e --- /dev/null +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.render-opportunities.createImageBitmap.html @@ -0,0 +1,35 @@ + + + +Canvas test: 2d.layer.render-opportunities.createImageBitmap +

2d.layer.render-opportunities.createImageBitmap

+

Check that layers state stack is flushed and rebuilt on frame renders.

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.render-opportunities.createImageBitmap.w.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.render-opportunities.createImageBitmap.w.html new file mode 100644 index 00000000000..9a89492e399 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.render-opportunities.createImageBitmap.w.html @@ -0,0 +1,49 @@ + + + + +Canvas test: 2d.layer.render-opportunities.createImageBitmap +

2d.layer.render-opportunities.createImageBitmap

+

Check that layers state stack is flushed and rebuilt on frame renders.

+ +

FAIL (fallback content)

+
+ + + diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.render-opportunities.drawImage-expected.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.render-opportunities.drawImage-expected.html new file mode 100644 index 00000000000..1ddc6d1b449 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.render-opportunities.drawImage-expected.html @@ -0,0 +1,32 @@ + + +Canvas test: 2d.layer.render-opportunities.drawImage +

2d.layer.render-opportunities.drawImage

+

Check that layers state stack is flushed and rebuilt on frame renders.

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.render-opportunities.drawImage.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.render-opportunities.drawImage.html new file mode 100644 index 00000000000..dd178206073 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.render-opportunities.drawImage.html @@ -0,0 +1,37 @@ + + + +Canvas test: 2d.layer.render-opportunities.drawImage +

2d.layer.render-opportunities.drawImage

+

Check that layers state stack is flushed and rebuilt on frame renders.

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.render-opportunities.drawImage.w.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.render-opportunities.drawImage.w.html new file mode 100644 index 00000000000..80fbfbd272e --- /dev/null +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.render-opportunities.drawImage.w.html @@ -0,0 +1,51 @@ + + + + +Canvas test: 2d.layer.render-opportunities.drawImage +

2d.layer.render-opportunities.drawImage

+

Check that layers state stack is flushed and rebuilt on frame renders.

+ +

FAIL (fallback content)

+
+ + + diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.render-opportunities.getImageData-expected.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.render-opportunities.getImageData-expected.html new file mode 100644 index 00000000000..ea0e78e0f28 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.render-opportunities.getImageData-expected.html @@ -0,0 +1,32 @@ + + +Canvas test: 2d.layer.render-opportunities.getImageData +

2d.layer.render-opportunities.getImageData

+

Check that layers state stack is flushed and rebuilt on frame renders.

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.render-opportunities.getImageData.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.render-opportunities.getImageData.html new file mode 100644 index 00000000000..b6f3c1b5626 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.render-opportunities.getImageData.html @@ -0,0 +1,35 @@ + + + +Canvas test: 2d.layer.render-opportunities.getImageData +

2d.layer.render-opportunities.getImageData

+

Check that layers state stack is flushed and rebuilt on frame renders.

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.render-opportunities.getImageData.w.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.render-opportunities.getImageData.w.html new file mode 100644 index 00000000000..187eb0fce96 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.render-opportunities.getImageData.w.html @@ -0,0 +1,49 @@ + + + + +Canvas test: 2d.layer.render-opportunities.getImageData +

2d.layer.render-opportunities.getImageData

+

Check that layers state stack is flushed and rebuilt on frame renders.

+ +

FAIL (fallback content)

+
+ + + diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.render-opportunities.putImageData-expected.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.render-opportunities.putImageData-expected.html new file mode 100644 index 00000000000..3d63bbe7766 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.render-opportunities.putImageData-expected.html @@ -0,0 +1,32 @@ + + +Canvas test: 2d.layer.render-opportunities.putImageData +

2d.layer.render-opportunities.putImageData

+

Check that layers state stack is flushed and rebuilt on frame renders.

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.render-opportunities.putImageData.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.render-opportunities.putImageData.html new file mode 100644 index 00000000000..b4600156136 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.render-opportunities.putImageData.html @@ -0,0 +1,37 @@ + + + +Canvas test: 2d.layer.render-opportunities.putImageData +

2d.layer.render-opportunities.putImageData

+

Check that layers state stack is flushed and rebuilt on frame renders.

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.render-opportunities.putImageData.w.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.render-opportunities.putImageData.w.html new file mode 100644 index 00000000000..9ffac071c36 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.render-opportunities.putImageData.w.html @@ -0,0 +1,51 @@ + + + + +Canvas test: 2d.layer.render-opportunities.putImageData +

2d.layer.render-opportunities.putImageData

+

Check that layers state stack is flushed and rebuilt on frame renders.

+ +

FAIL (fallback content)

+
+ + + diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.render-opportunities.transferToImageBitmap-expected.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.render-opportunities.transferToImageBitmap-expected.html new file mode 100644 index 00000000000..2833849da67 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.render-opportunities.transferToImageBitmap-expected.html @@ -0,0 +1,24 @@ + + +Canvas test: 2d.layer.render-opportunities.transferToImageBitmap +

2d.layer.render-opportunities.transferToImageBitmap

+

Checks that transferToImageBitmap flushes and rebuilds the state stack.

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.render-opportunities.transferToImageBitmap.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.render-opportunities.transferToImageBitmap.html new file mode 100644 index 00000000000..27830644b05 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.render-opportunities.transferToImageBitmap.html @@ -0,0 +1,36 @@ + + + +Canvas test: 2d.layer.render-opportunities.transferToImageBitmap +

2d.layer.render-opportunities.transferToImageBitmap

+

Checks that transferToImageBitmap flushes and rebuilds the state stack.

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.render-opportunities.transferToImageBitmap.w.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.render-opportunities.transferToImageBitmap.w.html new file mode 100644 index 00000000000..06e016020db --- /dev/null +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.render-opportunities.transferToImageBitmap.w.html @@ -0,0 +1,50 @@ + + + + +Canvas test: 2d.layer.render-opportunities.transferToImageBitmap +

2d.layer.render-opportunities.transferToImageBitmap

+

Checks that transferToImageBitmap flushes and rebuilds the state stack.

+ +

FAIL (fallback content)

+
+ + + diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.restore-style.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.restore-style.html index 66f99835df4..a3593cd2a82 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.restore-style.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.restore-style.html @@ -9,8 +9,8 @@

FAIL (fallback content)

diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.restore-style.w.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.restore-style.w.html index a717a1d3122..a66fc2bc598 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.restore-style.w.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.restore-style.w.html @@ -11,8 +11,8 @@ diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.several-complex.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.several-complex.html index 1d50bd4de61..c4b50282805 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.several-complex.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.several-complex.html @@ -9,8 +9,8 @@

FAIL (fallback content)

diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.several-complex.w.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.several-complex.w.html index 7982a8dbc4f..114c5e06868 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.several-complex.w.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.several-complex.w.html @@ -11,8 +11,8 @@ diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.unclosed-expected.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.unclosed-expected.html new file mode 100644 index 00000000000..c41b253c95b --- /dev/null +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.unclosed-expected.html @@ -0,0 +1,23 @@ + + +Canvas test: 2d.layer.unclosed +

2d.layer.unclosed

+

Check that layers are rendered even if not closed.

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.unclosed.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.unclosed.html new file mode 100644 index 00000000000..689ee801cf2 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.unclosed.html @@ -0,0 +1,25 @@ + + + +Canvas test: 2d.layer.unclosed +

2d.layer.unclosed

+

Check that layers are rendered even if not closed.

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.unclosed.w.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.unclosed.w.html new file mode 100644 index 00000000000..0c7812e88c7 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/layers/2d.layer.unclosed.w.html @@ -0,0 +1,39 @@ + + + + +Canvas test: 2d.layer.unclosed +

2d.layer.unclosed

+

Check that layers are rendered even if not closed.

+ +

FAIL (fallback content)

+
+ + + diff --git a/tests/wpt/web-platform-tests/html/canvas/tools/gentestutilsunion.py b/tests/wpt/web-platform-tests/html/canvas/tools/gentestutilsunion.py index e923a0777ba..bf5fdeee506 100644 --- a/tests/wpt/web-platform-tests/html/canvas/tools/gentestutilsunion.py +++ b/tests/wpt/web-platform-tests/html/canvas/tools/gentestutilsunion.py @@ -170,9 +170,18 @@ def _get_test_sub_dir(name: str, name_to_sub_dir: Mapping[str, str]) -> str: 'Test "%s" has no defined target directory mapping' % name) +def _remove_extra_newlines(text: str) -> str: + """Remove newlines if a backslash is found at end of line.""" + # Lines ending with '\' gets their newline character removed. + text = re.sub(r'\\\n', '', text, flags=re.MULTILINE | re.DOTALL) + + # Lines ending with '\-' gets their newline and any leading white spaces on + # the following line removed. + text = re.sub(r'\\-\n\s*', '', text, flags=re.MULTILINE | re.DOTALL) + return text + def _expand_test_code(code: str) -> str: - # Remove newlines if a backslash is found at end of line. - code = re.sub(r'\\\n\s*', '', code, flags=re.MULTILINE | re.DOTALL) + code = _remove_extra_newlines(code) # Unroll expressions with a cross-product-style parameter expansion. code = re.sub(r'@unroll ([^;]*;)', lambda m: _unroll(m.group(1)), code) @@ -287,29 +296,18 @@ def _write_reference_test(is_js_ref: bool, templates: Mapping[str, str], def _write_testharness_test(templates: Mapping[str, str], template_params: MutableMapping[str, str], - test_type: str, canvas_path: Optional[str], offscreen_path: Optional[str]): # Create test cases for canvas and offscreencanvas. code = template_params['code'] template_params['code'] = textwrap.indent(code, ' ') if canvas_path: - template_name = 'element' - if test_type: - template_name += '-' + test_type - pathlib.Path(f'{canvas_path}.html').write_text( - templates[template_name] % template_params, 'utf-8') + templates['element'] % template_params, 'utf-8') if offscreen_path: - offscreen_template_name = 'offscreen' - worker_template_name = 'worker' - if test_type: - offscreen_template_name += '-' + test_type - worker_template_name += '-' + test_type - - offscreen_template = templates[offscreen_template_name] - worker_template = templates[worker_template_name] + offscreen_template = templates['offscreen'] + worker_template = templates['worker'] if ('then(t_pass, t_fail);' in code): offscreen_template = offscreen_template.replace('t.done();\n', '') @@ -321,6 +319,54 @@ def _write_testharness_test(templates: Mapping[str, str], worker_template % template_params, 'utf-8') +def _expand_template(template: str, template_params: Mapping[str, str]) -> str: + # Remove whole line comments. + template = re.sub(r'^ *#.*?\n', '', template, flags=re.MULTILINE) + # Remove trailing line comments. + template = re.sub(r' *#.*?$', '', template, flags=re.MULTILINE) + + # Unwrap lines ending with a backslash. + template = _remove_extra_newlines(template) + + content_without_nested_if = r'((?:(?!{%\s*(?:if|else|endif)[^%]*%}).)*?)' + + # Resolve {% if %}{% else %}{% endif %} + if_else_regex = re.compile( + r'{%\s*if\s*([^\s%]+)\s*%}' + # {% if %} + content_without_nested_if + # content + r'{%\s*else\s*%}' + # {% else %} + content_without_nested_if + # alternate + r'{%\s*endif\s*%}', # {% endif %} + flags=re.MULTILINE | re.DOTALL) + while match := if_else_regex.search(template): + condition, content, alternate = match.groups() + substitution = content if template_params[condition] else alternate + template = ( + template[:match.start(0)] + substitution + template[match.end(0):]) + + # Resolve {% if %}{% endif %} + if_regex = re.compile( + r'{%\s*if\s*([^\s%]+)\s*%}' + # {% if %} + content_without_nested_if + # content + r'{%\s*endif\s*%}', # {% endif %} + flags=re.MULTILINE | re.DOTALL) + while match := if_regex.search(template): + condition, content = match.groups() + substitution = content if template_params[condition] else '' + template = ( + template[:match.start(0)] + substitution + template[match.end(0):]) + + return template + + +def _expand_templates(templates: Mapping[str, str], + params: Mapping[str, str]) -> Mapping[str, str]: + return { + name: _expand_template(template, params) + for name, template in templates.items() + } + + def _generate_test(test: Mapping[str, Any], templates: Mapping[str, str], sub_dir: str, html_canvas_cfg: TestConfig, offscreen_canvas_cfg: TestConfig) -> None: @@ -373,10 +419,10 @@ def _generate_test(test: Mapping[str, Any], templates: Mapping[str, str], notes = '

%s' % test['notes'] if 'notes' in test else '' - links = f'\n' - fuzzy = ('\n' % + links = f'\n' + fuzzy = ('\n' % test['fuzzy'] if 'fuzzy' in test else '') - timeout = ('\n' % + timeout = ('\n' % test['timeout'] if 'timeout' in test else '') timeout_js = ('// META: timeout=%s\n' % test['timeout'] if 'timeout' in test else '') @@ -420,6 +466,16 @@ def _generate_test(test: Mapping[str, Any], templates: Mapping[str, str], else: context_args = "'2d'" + is_promise_test = False + if 'test_type' in test: + if test['test_type'] == 'promise': + is_promise_test = True + else: + raise InvalidTestDefinitionError( + f'Test {name}\' test_type is invalid, it only accepts ' + '"promise" now for creating promise test type in the template ' + 'file.') + template_params = { 'name': name, 'desc': desc, @@ -439,7 +495,8 @@ def _generate_test(test: Mapping[str, Any], templates: Mapping[str, str], 'code': code_canvas, 'fallback': fallback, 'attributes': attributes, - 'context_args': context_args + 'context_args': context_args, + 'promise_test': is_promise_test } canvas_path = os.path.join(html_canvas_cfg.out_dir, sub_dir, name) @@ -455,18 +512,7 @@ def _generate_test(test: Mapping[str, Any], templates: Mapping[str, str], f'Test {name} is invalid, "reference" and "html_reference" can\'t ' 'both be specified at the same time.') - test_type = '' - if 'test_type' in test: - test_type = test['test_type'] - if test_type != 'promise': - raise InvalidTestDefinitionError( - f'Test {name}\' test_type is invalid, it only accepts ' - '"promise" now for creating promise test type in the template ' - 'file.') - if js_reference is not None or html_reference is not None: - raise InvalidTestDefinitionError( - f'Test {name}: promise test type cannot be used together with ' - 'html_reference or js_reference.') + templates = _expand_templates(templates, template_params) ref_code = js_reference or html_reference if ref_code is not None: @@ -476,7 +522,7 @@ def _generate_test(test: Mapping[str, Any], templates: Mapping[str, str], offscreen_path if offscreen_canvas_cfg.enabled else None) else: _write_testharness_test( - templates, template_params, test_type, + templates, template_params, canvas_path if html_canvas_cfg.enabled else None, offscreen_path if offscreen_canvas_cfg.enabled else None) diff --git a/tests/wpt/web-platform-tests/html/canvas/tools/templates-new.yaml b/tests/wpt/web-platform-tests/html/canvas/tools/templates-new.yaml index 0940471dd4d..7d8ebfccf56 100644 --- a/tests/wpt/web-platform-tests/html/canvas/tools/templates-new.yaml +++ b/tests/wpt/web-platform-tests/html/canvas/tools/templates-new.yaml @@ -1,7 +1,8 @@ offscreen: | - OffscreenCanvas test: %(name)s%(timeout)s + OffscreenCanvas test: %(name)s + %(timeout)s\ @@ -10,48 +11,40 @@ offscreen: |

%(desc)s

%(notes)s - - -offscreen-promise: | - - - OffscreenCanvas test: %(name)s%(timeout)s - - - - -

%(name)s

-

%(desc)s

- - %(notes)s - worker: | - %(timeout_js)s// DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. + %(timeout_js)s\ + // DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. // OffscreenCanvas test in a worker:%(name)s // Description:%(desc)s // Note:%(notes)s @@ -59,39 +52,31 @@ worker: | importScripts("/resources/testharness.js"); importScripts("/html/canvas/resources/canvas-tests.js"); + ## Promise vs. async test header: + {% if promise_test %}\ + promise_test(async t => { + {% else %}\ var t = async_test("%(escaped_desc)s"); var t_pass = t.done.bind(t); var t_fail = t.step_func(function(reason) { throw reason; }); t.step(function() { + {% endif %}\ + ## Test body: var canvas = new OffscreenCanvas(%(width)s, %(height)s); var ctx = canvas.getContext(%(context_args)s); %(code)s - t.done(); - }); - done(); + t.done();\ - -worker-promise: | - %(timeout_js)s// DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. - // OffscreenCanvas test in a worker:%(name)s - // Description:%(desc)s - // Note:%(notes)s - - importScripts("/resources/testharness.js"); - importScripts("/html/canvas/resources/canvas-tests.js"); - - promise_test(async t => { - - var canvas = new OffscreenCanvas(%(width)s, %(height)s); - var ctx = canvas.getContext(%(context_args)s); - - %(code)s - t.done(); + ## Promise vs. async test footer: + {% if promise_test %}\ }, "%(desc)s"); + {% else %}\ + }); + {% endif %}\ done(); element: | @@ -102,81 +87,84 @@ element: | - %(fonts)s + %(fonts)s\ +

%(name)s

%(desc)s

%(notes)s - %(fonthack)s

Actual output:

- %(fallback)s + %(fonthack)s\ +

Actual output:

+ \- + %(fallback)s\ + %(expected)s -
    - - %(images)s - -element-promise: | - - - Canvas test: %(name)s - - - - - %(fonts)s - -

    %(name)s

    -

    %(desc)s

    - - %(notes)s - %(fonthack)s

    Actual output:

    - %(fallback)s - %(expected)s -
      - %(images)s offscreen_ref_test: |- - %(links)s%(fuzzy)s%(timeout)s + + {% if promise_test %}\ + + {% endif %}\ + %(links)s\ + %(fuzzy)s\ + %(timeout)s\ Canvas test: %(name)s

      %(name)s

      %(desc)s

      %(fonts)s%(fonthack)s%(notes)s %(fallback)s - - %(images)s - + %(images)s\ + {% if promise_test %}{% endif %} worker_ref_test: | - %(links)s%(fuzzy)s%(timeout)s + + %(links)s\ + %(fuzzy)s\ + %(timeout)s\ Canvas test: %(name)s

      %(name)s

      %(desc)s

      @@ -184,13 +172,13 @@ worker_ref_test: | %(fallback)s @@ -204,30 +192,43 @@ worker_ref_test: | }); worker.postMessage(null); - %(images)s - + %(images)s\ + element_ref_test: |- - %(links)s%(fuzzy)s%(timeout)s + + {% if promise_test %}\ + + {% endif %}\ + %(links)s\ + %(fuzzy)s\ + %(timeout)s\ Canvas test: %(name)s

      %(name)s

      %(desc)s

      %(fonts)s%(fonthack)s%(notes)s %(fallback)s - - %(images)s + %(images)s\ + {% if promise_test %}{% endif %} html_ref_test: |- - %(links)s%(fuzzy)s%(timeout)s + + %(links)s\ + %(fuzzy)s\ + %(timeout)s\ Canvas test: %(name)s

      %(name)s

      %(desc)s

      diff --git a/tests/wpt/web-platform-tests/html/canvas/tools/yaml-new/filters.yaml b/tests/wpt/web-platform-tests/html/canvas/tools/yaml-new/filters.yaml index 292dfcc0ec7..dd84f913f9b 100644 --- a/tests/wpt/web-platform-tests/html/canvas/tools/yaml-new/filters.yaml +++ b/tests/wpt/web-platform-tests/html/canvas/tools/yaml-new/filters.yaml @@ -500,34 +500,34 @@ - name: 2d.filter.canvasFilterObject.dropShadow.exceptions.tentative desc: Test exceptions on CanvasFilter() dropShadow object code: | - @unroll @assert new CanvasFilter({\ - filter: 'dropShadow', \ - : \ + @unroll @assert new CanvasFilter({\- + filter: 'dropShadow', \- + : \- <10 | -1 | 0.5 | null | true | false | [] | [20] | '30'>}); - @unroll @assert new CanvasFilter({\ - filter: 'dropShadow', \ - : \ - <10 | -1 | 0.5 | null | true | false | [] | [20] | '30' | \ - [10, -1] | [0.5, null] | [true, false] | [[], [20]] | \ + @unroll @assert new CanvasFilter({\- + filter: 'dropShadow', \- + : \- + <10 | -1 | 0.5 | null | true | false | [] | [20] | '30' | \- + [10, -1] | [0.5, null] | [true, false] | [[], [20]] | \- ['30', ['40']]>}); - @unroll @assert new CanvasFilter({\ - filter: 'dropShadow', \ - : \ + @unroll @assert new CanvasFilter({\- + filter: 'dropShadow', \- + : \- <'red' | 'canvas' | 'rgba(4, -3, 0.5, 1)' | '#aabbccdd' | '#abcd'>}); - @unroll @assert throws TypeError new CanvasFilter({\ - filter: 'dropShadow', \ - : \ + @unroll @assert throws TypeError new CanvasFilter({\- + filter: 'dropShadow', \- + : \- }); - @unroll @assert throws TypeError new CanvasFilter({\ - filter: 'dropShadow', \ - : \ - : \- + }); - @unroll @assert throws TypeError new CanvasFilter({\ - filter: 'dropShadow', \ - : \ + @unroll @assert throws TypeError new CanvasFilter({\- + filter: 'dropShadow', \- + : \- <'test' | 'rgba(NaN, 3, 2, 1)' | 10 | undefined | null | NaN>}); - name: 2d.filter.canvasFilterObject.turbulence.inputTypes.tentative diff --git a/tests/wpt/web-platform-tests/html/canvas/tools/yaml-new/layers.yaml b/tests/wpt/web-platform-tests/html/canvas/tools/yaml-new/layers.yaml index d398ef2b5a2..fe1902c61b7 100644 --- a/tests/wpt/web-platform-tests/html/canvas/tools/yaml-new/layers.yaml +++ b/tests/wpt/web-platform-tests/html/canvas/tools/yaml-new/layers.yaml @@ -247,6 +247,146 @@ ctx.fillRect(70, 70, 75, 50); +- name: 2d.layer.unclosed + desc: Check that layers are rendered even if not closed. + size: 200, 200 + code: | + ctx.fillStyle = 'purple'; + ctx.fillRect(60, 60, 75, 50); + ctx.globalAlpha = 0.5; + + ctx.beginLayer({filter: 'dropShadow', dx: -2, dy: 2}); + ctx.fillRect(40, 40, 75, 50); + ctx.fillStyle = 'grey'; + ctx.fillRect(50, 50, 75, 50); + reference: | + ctx.fillStyle = 'purple'; + ctx.fillRect(60, 60, 75, 50); + ctx.globalAlpha = 0.5; + + ctx.beginLayer({filter: 'dropShadow', dx: -2, dy: 2}); + ctx.fillStyle = 'purple'; + ctx.fillRect(40, 40, 75, 50); + ctx.fillStyle = 'grey'; + ctx.fillRect(50, 50, 75, 50); + ctx.endLayer(); + + +- name: 2d.layer.render-opportunities + desc: Check that layers state stack is flushed and rebuilt on frame renders. + size: 200, 200 + code: | + ctx.fillStyle = 'purple'; + ctx.fillRect(60, 60, 75, 50); + ctx.globalAlpha = 0.5; + + ctx.beginLayer({filter: 'dropShadow', dx: -2, dy: 2}); + ctx.fillRect(40, 40, 75, 50); + ctx.fillStyle = 'grey'; + ctx.fillRect(50, 50, 75, 50); + + // Force a flush and restoration of the state stack: + %(flush_canvas)s + + ctx.fillRect(70, 70, 75, 50); + ctx.fillStyle = 'orange'; + ctx.fillRect(80, 80, 75, 50); + ctx.endLayer(); + + ctx.fillRect(80, 40, 75, 50); + reference: | + ctx.fillStyle = 'purple'; + ctx.fillRect(60, 60, 75, 50); + ctx.globalAlpha = 0.5; + + ctx.beginLayer({filter: 'dropShadow', dx: -2, dy: 2}); + ctx.fillStyle = 'purple'; + ctx.fillRect(40, 40, 75, 50); + ctx.fillStyle = 'grey'; + ctx.fillRect(50, 50, 75, 50); + ctx.endLayer(); + + ctx.beginLayer({filter: 'dropShadow', dx: -2, dy: 2}); + ctx.fillStyle = 'grey'; + ctx.fillRect(70, 70, 75, 50); + ctx.fillStyle = 'orange'; + ctx.fillRect(80, 80, 75, 50); + ctx.endLayer(); + + ctx.fillRect(80, 40, 75, 50); + variants: + convertToBlob: + test_type: "promise" + canvasType: ['OffscreenCanvas'] + flush_canvas: |- + await canvas.convertToBlob(); + createImageBitmap: + flush_canvas: createImageBitmap(canvas); + drawImage: + flush_canvas: |- + const canvas2 = new OffscreenCanvas(200, 200); + const ctx2 = canvas2.getContext('2d'); + ctx2.drawImage(canvas, 0, 0); + getImageData: + flush_canvas: ctx.getImageData(0, 0, 200, 200); + requestAnimationFrame: + canvasType: ['HTMLCanvas'] + test_type: "promise" + flush_canvas: |- + await new Promise(resolve => requestAnimationFrame(resolve)); + putImageData: + flush_canvas: |- + const canvas2 = new OffscreenCanvas(200, 200); + const ctx2 = canvas2.getContext('2d'); + ctx.putImageData(ctx2.getImageData(0, 0, 1, 1), 0, 0); + toBlob: + test_type: "promise" + canvasType: ['HTMLCanvas'] + flush_canvas: |- + await new Promise(resolve => canvas.toBlob(resolve)); + toDataURL: + canvasType: ['HTMLCanvas'] + flush_canvas: canvas.toDataURL(); + + +- name: 2d.layer.render-opportunities.transferToImageBitmap + desc: Checks that transferToImageBitmap flushes and rebuilds the state stack. + size: 200, 200 + canvasType: ['OffscreenCanvas'] + code: | + ctx.fillStyle = 'purple'; + ctx.fillRect(60, 60, 75, 50); + ctx.globalAlpha = 0.5; + + ctx.beginLayer({filter: 'dropShadow', dx: -2, dy: 2}); + ctx.fillRect(40, 40, 75, 50); + ctx.fillStyle = 'grey'; + ctx.fillRect(50, 50, 75, 50); + + // Force a flush and restoration of the state stack. + // `transferToImageBitmap` clears the frame but preserves render states. + canvas.transferToImageBitmap(); + + ctx.fillRect(70, 70, 75, 50); + ctx.fillStyle = 'orange'; + ctx.fillRect(80, 80, 75, 50); + ctx.endLayer(); + + ctx.fillRect(80, 40, 75, 50); + reference: | + ctx.fillStyle = 'purple'; + ctx.globalAlpha = 0.5; + + ctx.beginLayer({filter: 'dropShadow', dx: -2, dy: 2}); + ctx.fillStyle = 'grey'; + ctx.fillRect(70, 70, 75, 50); + ctx.fillStyle = 'orange'; + ctx.fillRect(80, 80, 75, 50); + ctx.endLayer(); + + ctx.fillRect(80, 40, 75, 50); + + - name: 2d.layer.several-complex desc: >- Test to ensure beginlayer works for filter, alpha and shadow, even with diff --git a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/resources/iframe-test.js b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/resources/iframe-test.js index a18688caf78..f788cbd1ebd 100644 --- a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/resources/iframe-test.js +++ b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/resources/iframe-test.js @@ -166,8 +166,8 @@ function iframe_test(description, iframe_origin, popup_origin, headers, await evaluate(popup_token, 'opener != null'), "true", 'Popup has an opener?'); assert_equals( - await evaluate(popup_token, `name === '${popup_token}'`), "true", - 'Popup has a name?'); + await evaluate(popup_token, `name === ''`), "true", + 'Popup name is cleared?'); // When the popup was created using window.open, we've kept a handle // and we can do extra verifications. @@ -194,8 +194,8 @@ function iframe_test(description, iframe_origin, popup_origin, headers, assert_equals(await evaluate(popup_token, 'opener != null'), "false", 'Popup has an opener?'); assert_equals( - await evaluate(popup_token, `name === '${popup_token}'`), "false", - 'Popup has a name?'); + await evaluate(popup_token, `name === ''`), "true", + 'Popup name is cleared?'); // When the popup was created using window.open, we've kept a handle // and we can do extra verifications. @@ -213,8 +213,8 @@ function iframe_test(description, iframe_origin, popup_origin, headers, assert_equals(await evaluate(popup_token, 'opener != null'), "false", 'Popup has an opener?'); assert_equals( - await evaluate(popup_token, `name === '${popup_token}'`), "false", - 'Popup has a name?'); + await evaluate(popup_token, `name === ''`), "true", + 'Popup name is cleared?'); // When the popup was created using window.open, we've kept a handle // and we can do extra verifications. diff --git a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/tentative/restrict-properties/access-reporting-post-message.https.html b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/tentative/restrict-properties/access-reporting-post-message.https.html index 4c8e96f5793..5bc718e2a89 100644 --- a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/tentative/restrict-properties/access-reporting-post-message.https.html +++ b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/tentative/restrict-properties/access-reporting-post-message.https.html @@ -10,15 +10,8 @@ + + + + + + + + diff --git a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/tentative/restrict-properties/reporting-bcg-reuse.https.html.sub.headers b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/tentative/restrict-properties/reporting-bcg-reuse.https.html.sub.headers new file mode 100644 index 00000000000..33abadd83dd --- /dev/null +++ b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/tentative/restrict-properties/reporting-bcg-reuse.https.html.sub.headers @@ -0,0 +1,2 @@ +Cross-Origin-Opener-Policy-Report-Only: restrict-properties; report-to="coop-report-only-endpoint" +Reporting-Endpoints: coop-report-endpoint="https://{{host}}:{{ports[https][0]}}/reporting/resources/report.py?reportID=f1e361ab5854f2dcfe0224b19bc53199", coop-report-only-endpoint="https://{{host}}:{{ports[https][0]}}/reporting/resources/report.py?reportID=b6fe666b74547291d52d72790adde05c" diff --git a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/tentative/restrict-properties/reporting-from-rp-ro.https.html b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/tentative/restrict-properties/reporting-from-rp-ro.https.html index 60322bffe7a..b1da8cf77ce 100644 --- a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/tentative/restrict-properties/reporting-from-rp-ro.https.html +++ b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/tentative/restrict-properties/reporting-from-rp-ro.https.html @@ -8,7 +8,7 @@ + src="/html/cross-origin-opener-policy/reporting/resources/reporting-common.js?pipe=sub&report_id=fb054dadb3a9ec17b5cd5c0152d2a7dd&report_only_id=c265b07fbb3bffa2cd2a5179d686ced2"> + src="/html/cross-origin-opener-policy/reporting/resources/reporting-common.js?pipe=sub&report_id=ed5a8be35e4e21c2ba960e6574e0a32c&report_only_id=fa22ddc676642edae42c75defb82ba2e"> diff --git a/tests/wpt/web-platform-tests/html/semantics/forms/attributes-common-to-form-controls/dirname-ltr.html b/tests/wpt/web-platform-tests/html/semantics/forms/attributes-common-to-form-controls/dirname-ltr.html index 9d1c9eb77e9..cbdbb72c674 100644 --- a/tests/wpt/web-platform-tests/html/semantics/forms/attributes-common-to-form-controls/dirname-ltr.html +++ b/tests/wpt/web-platform-tests/html/semantics/forms/attributes-common-to-form-controls/dirname-ltr.html @@ -5,32 +5,19 @@ +
      -
      +

      diff --git a/tests/wpt/web-platform-tests/html/semantics/forms/attributes-common-to-form-controls/dirname-only-if-applies.html b/tests/wpt/web-platform-tests/html/semantics/forms/attributes-common-to-form-controls/dirname-only-if-applies.html new file mode 100644 index 00000000000..7d542111896 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/forms/attributes-common-to-form-controls/dirname-only-if-applies.html @@ -0,0 +1,75 @@ + + + + + Submitting element directionality: the dirname attribute + + + + + + + +
      +
      + +

      +
      + + + + + diff --git a/tests/wpt/web-platform-tests/html/semantics/forms/attributes-common-to-form-controls/dirname-rtl-auto.html b/tests/wpt/web-platform-tests/html/semantics/forms/attributes-common-to-form-controls/dirname-rtl-auto.html index 6368a26fafd..072b8508685 100644 --- a/tests/wpt/web-platform-tests/html/semantics/forms/attributes-common-to-form-controls/dirname-rtl-auto.html +++ b/tests/wpt/web-platform-tests/html/semantics/forms/attributes-common-to-form-controls/dirname-rtl-auto.html @@ -5,33 +5,20 @@ +
      -
      +

      diff --git a/tests/wpt/web-platform-tests/html/semantics/forms/attributes-common-to-form-controls/dirname-rtl-inherited.html b/tests/wpt/web-platform-tests/html/semantics/forms/attributes-common-to-form-controls/dirname-rtl-inherited.html index 1e6967d914a..e7b07288d6b 100644 --- a/tests/wpt/web-platform-tests/html/semantics/forms/attributes-common-to-form-controls/dirname-rtl-inherited.html +++ b/tests/wpt/web-platform-tests/html/semantics/forms/attributes-common-to-form-controls/dirname-rtl-inherited.html @@ -5,34 +5,21 @@ +
      -
      +

      diff --git a/tests/wpt/web-platform-tests/html/semantics/forms/attributes-common-to-form-controls/dirname-ltr-iframe.html b/tests/wpt/web-platform-tests/html/semantics/forms/attributes-common-to-form-controls/resources/dirname-iframe.html similarity index 100% rename from tests/wpt/web-platform-tests/html/semantics/forms/attributes-common-to-form-controls/dirname-ltr-iframe.html rename to tests/wpt/web-platform-tests/html/semantics/forms/attributes-common-to-form-controls/resources/dirname-iframe.html diff --git a/tests/wpt/web-platform-tests/html/semantics/forms/attributes-common-to-form-controls/resources/dirname.js b/tests/wpt/web-platform-tests/html/semantics/forms/attributes-common-to-form-controls/resources/dirname.js new file mode 100644 index 00000000000..f0e97bc3014 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/forms/attributes-common-to-form-controls/resources/dirname.js @@ -0,0 +1,12 @@ +function onIframeLoadedDone(t, cb, selector="iframe") { + const iframe = document.querySelector(selector); + iframe.addEventListener("load", function() { + // The initial about:blank load event can be fired before the form navigation occurs. + // See https://github.com/whatwg/html/issues/490 for more information. + if(iframe.contentWindow.location.href == "about:blank") { return; } + + const params = new URLSearchParams(iframe.contentWindow.location.search); + t.step(() => cb(params)) + t.done(); + }); +} diff --git a/tests/wpt/web-platform-tests/html/semantics/forms/form-submission-0/form-double-submit-requestsubmit.html b/tests/wpt/web-platform-tests/html/semantics/forms/form-submission-0/form-double-submit-requestsubmit.html new file mode 100644 index 00000000000..b4028784edd --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/forms/form-submission-0/form-double-submit-requestsubmit.html @@ -0,0 +1,142 @@ + + + + + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/html/semantics/forms/textfieldselection/select-event.html b/tests/wpt/web-platform-tests/html/semantics/forms/textfieldselection/select-event.html index 854b1f48046..d1b46a22d86 100644 --- a/tests/wpt/web-platform-tests/html/semantics/forms/textfieldselection/select-event.html +++ b/tests/wpt/web-platform-tests/html/semantics/forms/textfieldselection/select-event.html @@ -6,7 +6,6 @@ -
      @@ -60,10 +59,25 @@ const actions = [ } ]; +function waitForEvents() { + // Engines differ in when these events are sent (see: + // https://bugzilla.mozilla.org/show_bug.cgi?id=1785615) so wait for both a + // frame to be rendered, and a timeout. + return new Promise(resolve => { + requestAnimationFrame(() => { + requestAnimationFrame(() => { + setTimeout(() => { + resolve(); + }); + }); + }); + }); +} + function initialize(el) { el.setRangeText("foobar", 0, el.value.length, "start"); // Make sure to flush async dispatches - return waitForAtLeastOneFrame(); + return waitForEvents(); } els.forEach((el) => { @@ -93,7 +107,7 @@ els.forEach((el) => { action.action(el); - await waitForAtLeastOneFrame(); + await waitForEvents(); el.onselect = null; }, `${elLabel}: ${action.label} a second time (must not fire select)`); @@ -104,7 +118,7 @@ els.forEach((el) => { action.action(element); - await waitForAtLeastOneFrame(); + await waitForEvents(); assert_true(fired, "event didn't fire"); }, `${elLabel}: ${action.label} disconnected node`); @@ -119,7 +133,7 @@ els.forEach((el) => { action.action(element); assert_false(fired, "the select event must not fire synchronously"); - await waitForAtLeastOneFrame(); + await waitForEvents(); assert_true(fired, "event didn't fire"); }, `${elLabel}: ${action.label} event queue`); @@ -132,7 +146,7 @@ els.forEach((el) => { action.action(element); action.action(element); - await waitForAtLeastOneFrame(); + await waitForEvents(); assert_equals(selectCount, 1, "the select event must not fire twice"); }, `${elLabel}: ${action.label} twice in disconnected node (must fire select only once)`); }); diff --git a/tests/wpt/web-platform-tests/html/semantics/interactive-elements/the-details-element/name-attribute.tentative.html b/tests/wpt/web-platform-tests/html/semantics/interactive-elements/the-details-element/name-attribute.tentative.html new file mode 100644 index 00000000000..9aa5ce42e8e --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/interactive-elements/the-details-element/name-attribute.tentative.html @@ -0,0 +1,197 @@ + + +Test for the name attribute creating exclusive accordions from details elements + + + + + + + + + +
      +
      + + diff --git a/tests/wpt/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-focus-previous-outside.html b/tests/wpt/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-focus-previous-outside.html new file mode 100644 index 00000000000..efd242c5769 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-focus-previous-outside.html @@ -0,0 +1,71 @@ + + + + + + + + + +
      + +
      + + +
      + +
      +
      + +
      + + +
      + + diff --git a/tests/wpt/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-no-throw-requested-state.html b/tests/wpt/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-no-throw-requested-state.html new file mode 100644 index 00000000000..c86cbe84a62 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-no-throw-requested-state.html @@ -0,0 +1,29 @@ + + + + + + +hello + + diff --git a/tests/wpt/web-platform-tests/html/semantics/popovers/popover-attribute-basic.html b/tests/wpt/web-platform-tests/html/semantics/popovers/popover-attribute-basic.html index eab61407c8b..32d3deb3848 100644 --- a/tests/wpt/web-platform-tests/html/semantics/popovers/popover-attribute-basic.html +++ b/tests/wpt/web-platform-tests/html/semantics/popovers/popover-attribute-basic.html @@ -254,11 +254,21 @@ window.onload = () => { },{once: true}); assert_true(popover.matches(':popover-open')); assert_true(other_popover.matches(':popover-open')); - assert_throws_dom('InvalidStateError', () => popover.hidePopover()); + popover.hidePopover(); // Calling hidePopover on a hidden popover should not throw. assert_false(other_popover.matches(':popover-open'),'unrelated popover is hidden'); assert_false(popover.matches(':popover-open'),'popover is still hidden if its type changed during hide event'); - assert_throws_dom("InvalidStateError",() => other_popover.hidePopover(),'Nested popover should already be hidden'); - },`Changing the popover type in a "beforetoggle" event handler should throw an exception (during hidePopover())`); + other_popover.hidePopover(); // Calling hidePopover on a hidden popover should not throw. + },`Changing the popover type in a "beforetoggle" event handler during hidePopover() should not throw an exception`); + + test(t => { + const popover = document.createElement('div'); + assert_throws_dom('NotSupportedError', () => popover.hidePopover(), + 'Calling hidePopover on an element without a popover attribute should throw.'); + popover.setAttribute('popover', 'auto'); + popover.hidePopover(); // Calling hidePopover on a disconnected popover should not throw. + assert_throws_dom('InvalidStateError', () => popover.showPopover(), + 'Calling showPopover on a disconnected popover should throw.'); + },'Calling hidePopover on a disconnected popover should not throw.'); function interpretedType(typeString,method) { if (validTypes.includes(typeString)) diff --git a/tests/wpt/web-platform-tests/html/semantics/popovers/popover-hover-hide-hide.tentative.html b/tests/wpt/web-platform-tests/html/semantics/popovers/popover-hover-hide-hide.tentative.html new file mode 100644 index 00000000000..57ca5723de5 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/popovers/popover-hover-hide-hide.tentative.html @@ -0,0 +1,21 @@ + + +The popover-hide-delay CSS property + + + + + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/html/semantics/popovers/popover-hover-hide-hover.tentative.html b/tests/wpt/web-platform-tests/html/semantics/popovers/popover-hover-hide-hover.tentative.html new file mode 100644 index 00000000000..d0036c0fe7b --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/popovers/popover-hover-hide-hover.tentative.html @@ -0,0 +1,21 @@ + + +The popover-hide-delay CSS property + + + + + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/html/semantics/popovers/popover-hover-hide-show.tentative.html b/tests/wpt/web-platform-tests/html/semantics/popovers/popover-hover-hide-show.tentative.html new file mode 100644 index 00000000000..7b3fa2b3023 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/popovers/popover-hover-hide-show.tentative.html @@ -0,0 +1,21 @@ + + +The popover-hide-delay CSS property + + + + + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/html/semantics/popovers/popover-hover-hide-toggle.tentative.html b/tests/wpt/web-platform-tests/html/semantics/popovers/popover-hover-hide-toggle.tentative.html new file mode 100644 index 00000000000..d6d4079e7e0 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/popovers/popover-hover-hide-toggle.tentative.html @@ -0,0 +1,21 @@ + + +The popover-hide-delay CSS property + + + + + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/html/semantics/popovers/popover-hover-hide.tentative.html b/tests/wpt/web-platform-tests/html/semantics/popovers/popover-hover-hide.tentative.html deleted file mode 100644 index ed647a7d7d8..00000000000 --- a/tests/wpt/web-platform-tests/html/semantics/popovers/popover-hover-hide.tentative.html +++ /dev/null @@ -1,129 +0,0 @@ - - -The popover-hide-delay CSS property - - - - - - - - - - - -
      Unrelated element
      - -
      Popover
      - - - - - -
      Popover
      - - - diff --git a/tests/wpt/web-platform-tests/html/semantics/popovers/popover-light-dismiss.html b/tests/wpt/web-platform-tests/html/semantics/popovers/popover-light-dismiss.html index d7d1edd3a4b..4b888169e1b 100644 --- a/tests/wpt/web-platform-tests/html/semantics/popovers/popover-light-dismiss.html +++ b/tests/wpt/web-platform-tests/html/semantics/popovers/popover-light-dismiss.html @@ -532,7 +532,7 @@ promise_test(async () => { p14.hidePopover(); },{once:true}); assert_true(p13.matches(':popover-open') && p14.matches(':popover-open') && p15.matches(':popover-open'),'all three should be open'); - assert_throws_dom('InvalidStateError',() => p14.hidePopover(),'should throw because the event listener has already hidden the popover'); + p14.hidePopover(); assert_true(p13.matches(':popover-open'),'p13 should still be open'); assert_false(p14.matches(':popover-open')); assert_false(p15.matches(':popover-open')); @@ -579,10 +579,7 @@ promise_test(async () => { p20.showPopover(); }); p20.addEventListener('beforetoggle', logEvents); - // Because the `beforetoggle` handler shows a different popover, - // and that action closes the p19 popover, the call to hidePopover() - // will result in an exception. - assert_throws_dom('InvalidStateError',() => p19.hidePopover()); + p19.hidePopover(); assert_array_equals(events,['hide p19','show p20'],'There should not be a second hide event for 19'); assert_false(p19.matches(':popover-open')); assert_true(p20.matches(':popover-open')); diff --git a/tests/wpt/web-platform-tests/html/semantics/popovers/popover-move-documents.html b/tests/wpt/web-platform-tests/html/semantics/popovers/popover-move-documents.html index 9feaa4b2bf8..11f52c2f2f0 100644 --- a/tests/wpt/web-platform-tests/html/semantics/popovers/popover-move-documents.html +++ b/tests/wpt/web-platform-tests/html/semantics/popovers/popover-move-documents.html @@ -4,10 +4,30 @@ + +
      p1
      diff --git a/tests/wpt/web-platform-tests/html/webappapis/structured-clone/structured-clone-detached-window-crash.html b/tests/wpt/web-platform-tests/html/webappapis/structured-clone/structured-clone-detached-window-crash.html new file mode 100644 index 00000000000..75971023d2d --- /dev/null +++ b/tests/wpt/web-platform-tests/html/webappapis/structured-clone/structured-clone-detached-window-crash.html @@ -0,0 +1,11 @@ + +window.structuredClone() doesn't crash when window is detached + + + diff --git a/tests/wpt/web-platform-tests/infrastructure/README.md b/tests/wpt/web-platform-tests/infrastructure/README.md index 82138a300b8..7d0ec556aa4 100644 --- a/tests/wpt/web-platform-tests/infrastructure/README.md +++ b/tests/wpt/web-platform-tests/infrastructure/README.md @@ -7,3 +7,8 @@ infrastructure is operating correctly: * The tests in server/ are designed to test the WPT server configuration * The tests in expected-fail/ should all fail. + +To update the expectations stored in metadata/, you want to use the `wpt` +tool with an invocation such as `./wpt update-expectations --metadata +infrastructure/metadata --manifest MANIFEST.json [wptreport.json]` with one +or more wptreport.json files. diff --git a/tests/wpt/web-platform-tests/infrastructure/metadata/infrastructure/testdriver/file_upload.sub.html.ini b/tests/wpt/web-platform-tests/infrastructure/metadata/infrastructure/testdriver/file_upload.sub.html.ini index e2bfbf8fb8f..26ffac48154 100644 --- a/tests/wpt/web-platform-tests/infrastructure/metadata/infrastructure/testdriver/file_upload.sub.html.ini +++ b/tests/wpt/web-platform-tests/infrastructure/metadata/infrastructure/testdriver/file_upload.sub.html.ini @@ -1,4 +1,6 @@ [file_upload.sub.html] + expected: + if product == "safari": [OK, TIMEOUT] [File upload using testdriver] expected: - if product == "epiphany" or product == "webkit": FAIL + if (product == "epiphany") or (product == "webkit"): FAIL diff --git a/tests/wpt/web-platform-tests/interfaces/attribution-reporting-api.idl b/tests/wpt/web-platform-tests/interfaces/attribution-reporting-api.idl index 76640f54c8d..ed4497b56ff 100644 --- a/tests/wpt/web-platform-tests/interfaces/attribution-reporting-api.idl +++ b/tests/wpt/web-platform-tests/interfaces/attribution-reporting-api.idl @@ -4,9 +4,23 @@ // Source: Attribution Reporting (https://wicg.github.io/attribution-reporting-api/) interface mixin HTMLAttributionSrcElementUtils { - [CEReactions] attribute USVString attributionSrc; + [CEReactions, SecureContext] attribute USVString attributionSrc; }; HTMLAnchorElement includes HTMLAttributionSrcElementUtils; HTMLImageElement includes HTMLAttributionSrcElementUtils; HTMLScriptElement includes HTMLAttributionSrcElementUtils; + +dictionary AttributionReportingRequestOptions { + required boolean eventSourceEligible; + required boolean triggerEligible; +}; + +partial dictionary RequestInit { + AttributionReportingRequestOptions attributionReporting; +}; + +partial interface XMLHttpRequest { + [SecureContext] + undefined setAttributionReporting(AttributionReportingRequestOptions options); +}; diff --git a/tests/wpt/web-platform-tests/interfaces/css-cascade-6.idl b/tests/wpt/web-platform-tests/interfaces/css-cascade-6.idl index 37cdfb82930..3bdf6ba3a6b 100644 --- a/tests/wpt/web-platform-tests/interfaces/css-cascade-6.idl +++ b/tests/wpt/web-platform-tests/interfaces/css-cascade-6.idl @@ -5,6 +5,6 @@ [Exposed=Window] interface CSSScopeRule : CSSGroupingRule { - readonly attribute CSSOMString start; - readonly attribute CSSOMString end; + readonly attribute CSSOMString? start; + readonly attribute CSSOMString? end; }; diff --git a/tests/wpt/web-platform-tests/interfaces/css-cascade.idl b/tests/wpt/web-platform-tests/interfaces/css-cascade.idl index 9011dc7fd9e..0dd9969f6eb 100644 --- a/tests/wpt/web-platform-tests/interfaces/css-cascade.idl +++ b/tests/wpt/web-platform-tests/interfaces/css-cascade.idl @@ -3,10 +3,6 @@ // (https://github.com/w3c/webref) // Source: CSS Cascading and Inheritance Level 5 (https://drafts.csswg.org/css-cascade-5/) -partial interface CSSImportRule { - readonly attribute CSSOMString? layerName; -}; - [Exposed=Window] interface CSSLayerBlockRule : CSSGroupingRule { readonly attribute CSSOMString name; diff --git a/tests/wpt/web-platform-tests/interfaces/cssom.idl b/tests/wpt/web-platform-tests/interfaces/cssom.idl index 222b3dc09ec..7f5bf171398 100644 --- a/tests/wpt/web-platform-tests/interfaces/cssom.idl +++ b/tests/wpt/web-platform-tests/interfaces/cssom.idl @@ -106,7 +106,9 @@ interface CSSStyleRule : CSSRule { interface CSSImportRule : CSSRule { readonly attribute USVString href; [SameObject, PutForwards=mediaText] readonly attribute MediaList media; - [SameObject] readonly attribute CSSStyleSheet styleSheet; + [SameObject] readonly attribute CSSStyleSheet? styleSheet; + readonly attribute CSSOMString? layerName; + readonly attribute CSSOMString? supportsText; }; [Exposed=Window] diff --git a/tests/wpt/web-platform-tests/interfaces/fenced-frame.idl b/tests/wpt/web-platform-tests/interfaces/fenced-frame.idl index 2869b95e6bb..6b0734d1f7b 100644 --- a/tests/wpt/web-platform-tests/interfaces/fenced-frame.idl +++ b/tests/wpt/web-platform-tests/interfaces/fenced-frame.idl @@ -10,19 +10,23 @@ interface HTMLFencedFrameElement : HTMLElement { [CEReactions] attribute FencedFrameConfig? config; [CEReactions] attribute DOMString width; [CEReactions] attribute DOMString height; + [CEReactions] attribute DOMString allow; }; enum OpaqueProperty {"opaque"}; typedef (unsigned long or OpaqueProperty) FencedFrameConfigSize; -typedef (USVString or OpaqueProperty) FencedFrameConfigURL; +typedef USVString FencedFrameConfigURL; [Exposed=Window] interface FencedFrameConfig { - constructor(USVString url); readonly attribute FencedFrameConfigURL? url; - readonly attribute FencedFrameConfigSize? width; - readonly attribute FencedFrameConfigSize? height; + readonly attribute FencedFrameConfigSize? containerWidth; + readonly attribute FencedFrameConfigSize? containerHeight; + readonly attribute FencedFrameConfigSize? contentWidth; + readonly attribute FencedFrameConfigSize? contentHeight; + + undefined setSharedStorageContext(DOMString contextString); }; enum FenceReportingDestination { diff --git a/tests/wpt/web-platform-tests/interfaces/fs.idl b/tests/wpt/web-platform-tests/interfaces/fs.idl index e2474132abf..e341ab387d9 100644 --- a/tests/wpt/web-platform-tests/interfaces/fs.idl +++ b/tests/wpt/web-platform-tests/interfaces/fs.idl @@ -15,6 +15,7 @@ interface FileSystemHandle { Promise isSameEntry(FileSystemHandle other); }; + dictionary FileSystemCreateWritableOptions { boolean keepExistingData = false; }; @@ -26,6 +27,7 @@ interface FileSystemFileHandle : FileSystemHandle { [Exposed=DedicatedWorker] Promise createSyncAccessHandle(); }; + dictionary FileSystemGetFileOptions { boolean create = false; }; @@ -49,6 +51,7 @@ interface FileSystemDirectoryHandle : FileSystemHandle { Promise?> resolve(FileSystemHandle possibleDescendant); }; + enum WriteCommandType { "write", "seek", @@ -70,6 +73,7 @@ interface FileSystemWritableFileStream : WritableStream { Promise seek(unsigned long long position); Promise truncate(unsigned long long size); }; + dictionary FileSystemReadWriteOptions { [EnforceRange] unsigned long long at; }; diff --git a/tests/wpt/web-platform-tests/interfaces/html.idl b/tests/wpt/web-platform-tests/interfaces/html.idl index 33d4de0db97..99b33705b39 100644 --- a/tests/wpt/web-platform-tests/interfaces/html.idl +++ b/tests/wpt/web-platform-tests/interfaces/html.idl @@ -1643,6 +1643,14 @@ dictionary ValidityStateFlags { boolean customError = false; }; +[Exposed=(Window)] +interface VisibilityStateEntry : PerformanceEntry { + readonly attribute DOMString name; // shadows inherited name + readonly attribute DOMString entryType; // shadows inherited entryType + readonly attribute DOMHighResTimeStamp startTime; // shadows inherited startTime + readonly attribute unsigned long duration; // shadows inherited duration +}; + [Exposed=Window] interface UserActivation { readonly attribute boolean hasBeenActive; diff --git a/tests/wpt/web-platform-tests/interfaces/mediastream-recording.idl b/tests/wpt/web-platform-tests/interfaces/mediastream-recording.idl index 99f30282333..496bfcf2e27 100644 --- a/tests/wpt/web-platform-tests/interfaces/mediastream-recording.idl +++ b/tests/wpt/web-platform-tests/interfaces/mediastream-recording.idl @@ -34,6 +34,8 @@ dictionary MediaRecorderOptions { unsigned long videoBitsPerSecond; unsigned long bitsPerSecond; BitrateMode audioBitrateMode = "variable"; + DOMHighResTimeStamp videoKeyFrameIntervalDuration; + unsigned long videoKeyFrameIntervalCount; }; enum BitrateMode { diff --git a/tests/wpt/web-platform-tests/interfaces/real-world-meshing.idl b/tests/wpt/web-platform-tests/interfaces/real-world-meshing.idl new file mode 100644 index 00000000000..38fe71f6c66 --- /dev/null +++ b/tests/wpt/web-platform-tests/interfaces/real-world-meshing.idl @@ -0,0 +1,21 @@ +// GENERATED CONTENT - DO NOT EDIT +// Content was automatically extracted by Reffy into webref +// (https://github.com/w3c/webref) +// Source: WebXR Mesh Detection Module (https://immersive-web.github.io/real-world-meshing/) + +[Exposed=Window] interface XRMesh { + [SameObject] readonly attribute XRSpace meshSpace; + + readonly attribute FrozenArray vertices; + readonly attribute Uint32Array indices; + readonly attribute DOMHighResTimeStamp lastChangedTime; + readonly attribute DOMString? semanticLabel; +}; + +[Exposed=Window] interface XRMeshSet { + readonly setlike; +}; + +partial interface XRFrame { + readonly attribute XRMeshSet detectedMeshs; +}; diff --git a/tests/wpt/web-platform-tests/interfaces/resource-timing.idl b/tests/wpt/web-platform-tests/interfaces/resource-timing.idl index 151e5d46d84..aa17003493e 100644 --- a/tests/wpt/web-platform-tests/interfaces/resource-timing.idl +++ b/tests/wpt/web-platform-tests/interfaces/resource-timing.idl @@ -18,6 +18,7 @@ interface PerformanceResourceTiming : PerformanceEntry { readonly attribute DOMHighResTimeStamp connectEnd; readonly attribute DOMHighResTimeStamp secureConnectionStart; readonly attribute DOMHighResTimeStamp requestStart; + readonly attribute DOMHighResTimeStamp firstInterimResponseStart; readonly attribute DOMHighResTimeStamp responseStart; readonly attribute DOMHighResTimeStamp responseEnd; readonly attribute unsigned long long transferSize; diff --git a/tests/wpt/web-platform-tests/interfaces/scroll-animations.idl b/tests/wpt/web-platform-tests/interfaces/scroll-animations.idl index 14215509c9f..31b3746e9d4 100644 --- a/tests/wpt/web-platform-tests/interfaces/scroll-animations.idl +++ b/tests/wpt/web-platform-tests/interfaces/scroll-animations.idl @@ -36,7 +36,11 @@ interface ViewTimeline : ScrollTimeline { readonly attribute CSSNumericValue endOffset; }; +dictionary AnimationTimeOptions { + DOMString? range; +}; + [Exposed=Window] partial interface AnimationTimeline { - CSSNumericValue? getCurrentTime(optional CSSOMString rangeName); + CSSNumericValue? getCurrentTime(optional AnimationTimeOptions options = {}); }; diff --git a/tests/wpt/web-platform-tests/interfaces/secure-payment-confirmation.idl b/tests/wpt/web-platform-tests/interfaces/secure-payment-confirmation.idl index 9061b243477..08ec8065c53 100644 --- a/tests/wpt/web-platform-tests/interfaces/secure-payment-confirmation.idl +++ b/tests/wpt/web-platform-tests/interfaces/secure-payment-confirmation.idl @@ -15,6 +15,7 @@ dictionary SecurePaymentConfirmationRequest { sequence locale; boolean showOptOut; }; + partial dictionary AuthenticationExtensionsClientInputs { AuthenticationExtensionsPaymentInputs payment; }; @@ -30,9 +31,11 @@ dictionary AuthenticationExtensionsPaymentInputs { PaymentCurrencyAmount total; PaymentCredentialInstrument instrument; }; + dictionary CollectedClientPaymentData : CollectedClientData { required CollectedClientAdditionalPaymentData payment; }; + dictionary CollectedClientAdditionalPaymentData { required USVString rpId; required USVString topOrigin; @@ -41,6 +44,7 @@ dictionary CollectedClientAdditionalPaymentData { required PaymentCurrencyAmount total; required PaymentCredentialInstrument instrument; }; + dictionary PaymentCredentialInstrument { required USVString displayName; required USVString icon; diff --git a/tests/wpt/web-platform-tests/interfaces/shared-storage.idl b/tests/wpt/web-platform-tests/interfaces/shared-storage.idl new file mode 100644 index 00000000000..eb5806f9a6d --- /dev/null +++ b/tests/wpt/web-platform-tests/interfaces/shared-storage.idl @@ -0,0 +1,80 @@ +// GENERATED CONTENT - DO NOT EDIT +// Content was automatically extracted by Reffy into webref +// (https://github.com/w3c/webref) +// Source: Shared Storage API (https://wicg.github.io/shared-storage/) + +[Exposed=(Window)] +interface SharedStorageWorklet : Worklet { +}; + +[Exposed=SharedStorageWorklet, Global=SharedStorageWorklet] +interface SharedStorageWorkletGlobalScope : WorkletGlobalScope { + undefined register(DOMString name, + SharedStorageOperationConstructor operationCtor); +}; + +callback SharedStorageOperationConstructor = + SharedStorageOperation(optional SharedStorageRunOperationMethodOptions options); + +[Exposed=SharedStorageWorklet] +interface SharedStorageOperation { +}; + +dictionary SharedStorageRunOperationMethodOptions { + object data; + boolean resolveToConfig = false; + boolean keepAlive = false; +}; + +[Exposed=SharedStorageWorklet] +interface SharedStorageRunOperation : SharedStorageOperation { + Promise run(object data); +}; + +[Exposed=SharedStorageWorklet] +interface SharedStorageSelectURLOperation : SharedStorageOperation { + Promise run(object data, + FrozenArray urls); +}; + +[Exposed=(Window,SharedStorageWorklet)] +interface SharedStorage { + Promise set(DOMString key, + DOMString value, + optional SharedStorageSetMethodOptions options = {}); + Promise append(DOMString key, + DOMString value); + Promise delete(DOMString key); + Promise clear(); +}; + +dictionary SharedStorageSetMethodOptions { + boolean ignoreIfPresent = false; +}; + +typedef (USVString or FencedFrameConfig) SharedStorageResponse; + +[Exposed=(Window)] +interface WindowSharedStorage : SharedStorage { + Promise run(DOMString name, + optional SharedStorageRunOperationMethodOptions options = {}); + Promise selectURL(DOMString name, + FrozenArray urls, + optional SharedStorageRunOperationMethodOptions options = {}); + + readonly attribute SharedStorageWorklet worklet; +}; + +dictionary SharedStorageUrlWithMetadata { + required USVString url; + object reportingMetadata; +}; + +[Exposed=(SharedStorageWorklet)] +interface WorkletSharedStorage : SharedStorage { + Promise get(DOMString key); + Promise length(); + Promise remainingBudget(); + + async iterable; +}; diff --git a/tests/wpt/web-platform-tests/interfaces/storage-buckets.idl b/tests/wpt/web-platform-tests/interfaces/storage-buckets.idl new file mode 100644 index 00000000000..f3d500a5711 --- /dev/null +++ b/tests/wpt/web-platform-tests/interfaces/storage-buckets.idl @@ -0,0 +1,53 @@ +// GENERATED CONTENT - DO NOT EDIT +// Content was automatically extracted by Reffy into webref +// (https://github.com/w3c/webref) +// Source: Storage Buckets API (https://wicg.github.io/storage-buckets/) + +[SecureContext] +interface mixin NavigatorStorageBuckets { + [SameObject] readonly attribute StorageBucketManager storageBuckets; +}; +Navigator includes NavigatorStorageBuckets; +WorkerNavigator includes NavigatorStorageBuckets; + +[Exposed=(Window,Worker), + SecureContext] +interface StorageBucketManager { + Promise open(DOMString name, optional StorageBucketOptions options = {}); + Promise> keys(); + Promise delete(DOMString name); +}; + +enum StorageBucketDurability { + "strict", + "relaxed" +}; + +dictionary StorageBucketOptions { + boolean? persisted = null; + StorageBucketDurability? durability = null; + unsigned long long? quota = null; + DOMHighResTimeStamp? expires = null; +}; + +[Exposed=(Window,Worker), + SecureContext] +interface StorageBucket { + readonly attribute DOMString name; + + [Exposed=Window] Promise persist(); + Promise persisted(); + + Promise estimate(); + + Promise durability(); + + Promise setExpires(DOMHighResTimeStamp expires); + Promise expires(); + + [SameObject] readonly attribute IDBFactory indexedDB; + + [SameObject] readonly attribute CacheStorage caches; + + Promise getDirectory(); +}; diff --git a/tests/wpt/web-platform-tests/interfaces/trust-token-api.idl b/tests/wpt/web-platform-tests/interfaces/trust-token-api.idl index ee339590827..f521acea1f5 100644 --- a/tests/wpt/web-platform-tests/interfaces/trust-token-api.idl +++ b/tests/wpt/web-platform-tests/interfaces/trust-token-api.idl @@ -5,14 +5,11 @@ enum RefreshPolicy { "none", "refresh" }; -enum TokenType { "private-state-token" }; - enum TokenVersion { "1" }; enum OperationType { "token-request", "send-redemption-record", "token-redemption" }; dictionary PrivateToken { - required TokenType type; required TokenVersion version; required OperationType operation; RefreshPolicy refreshPolicy = "none"; @@ -24,6 +21,6 @@ partial dictionary RequestInit { }; partial interface Document { - Promise hasPrivateTokens(USVString issuer, USVString type); - Promise hasRedemptionRecord(USVString issuer, USVString type); + Promise hasPrivateTokens(USVString issuer); + Promise hasRedemptionRecord(USVString issuer); }; diff --git a/tests/wpt/web-platform-tests/interfaces/turtledove.idl b/tests/wpt/web-platform-tests/interfaces/turtledove.idl index cd81a3d87ef..8add667b575 100644 --- a/tests/wpt/web-platform-tests/interfaces/turtledove.idl +++ b/tests/wpt/web-platform-tests/interfaces/turtledove.idl @@ -1,7 +1,7 @@ // GENERATED CONTENT - DO NOT EDIT // Content was automatically extracted by Reffy into webref // (https://github.com/w3c/webref) -// Source: FLEDGE (https://wicg.github.io/turtledove/) +// Source: Protected Audience (formerly FLEDGE) (https://wicg.github.io/turtledove/) [SecureContext] partial interface Navigator { @@ -25,7 +25,7 @@ dictionary AuctionAdInterestGroup { DOMString executionMode = "compatibility"; USVString biddingLogicURL; USVString biddingWasmHelperURL; - USVString dailyUpdateURL; + USVString updateURL; USVString trustedBiddingSignalsURL; sequence trustedBiddingSignalsKeys; any userBiddingSignals; @@ -67,9 +67,15 @@ dictionary AuctionAdConfig { AbortSignal? signal; }; +[Exposed=InterestGroupScriptRunnerGlobalScope] +interface InterestGroupScriptRunnerGlobalScope { +}; + [Exposed=InterestGroupBiddingScriptRunnerGlobalScope, -Global=InterestGroupBiddingScriptRunnerGlobalScope] -interface InterestGroupBiddingScriptRunnerGlobalScope { + Global=(InterestGroupScriptRunnerGlobalScope, + InterestGroupBiddingScriptRunnerGlobalScope)] +interface InterestGroupBiddingScriptRunnerGlobalScope + : InterestGroupScriptRunnerGlobalScope { boolean setBid(); boolean setBid(GenerateBidOutput generateBidOutput); undefined setPriority(double priority); @@ -77,13 +83,17 @@ interface InterestGroupBiddingScriptRunnerGlobalScope { }; [Exposed=InterestGroupScoringScriptRunnerGlobalScope, -Global=InterestGroupScoringScriptRunnerGlobalScope] -interface InterestGroupScoringScriptRunnerGlobalScope { + Global=(InterestGroupScriptRunnerGlobalScope, + InterestGroupScoringScriptRunnerGlobalScope)] +interface InterestGroupScoringScriptRunnerGlobalScope + : InterestGroupScriptRunnerGlobalScope { }; [Exposed=InterestGroupReportingScriptRunnerGlobalScope, -Global=InterestGroupReportingScriptRunnerGlobalScope] -interface InterestGroupReportingScriptRunnerGlobalScope { + Global=(InterestGroupScriptRunnerGlobalScope, + InterestGroupReportingScriptRunnerGlobalScope)] +interface InterestGroupReportingScriptRunnerGlobalScope + : InterestGroupScriptRunnerGlobalScope { undefined sendReportTo(DOMString url); }; @@ -96,7 +106,7 @@ dictionary AdRender { dictionary GenerateBidOutput { required double bid; required (DOMString or AdRender) adRender; - DOMString ad; + any ad; sequence<(DOMString or AdRender)> adComponents; double adCost; double modelingSignals; diff --git a/tests/wpt/web-platform-tests/interfaces/url.idl b/tests/wpt/web-platform-tests/interfaces/url.idl index 6549e45f419..a5e4d1eb492 100644 --- a/tests/wpt/web-platform-tests/interfaces/url.idl +++ b/tests/wpt/web-platform-tests/interfaces/url.idl @@ -33,10 +33,10 @@ interface URLSearchParams { readonly attribute unsigned long size; undefined append(USVString name, USVString value); - undefined delete(USVString name); + undefined delete(USVString name, optional USVString value); USVString? get(USVString name); sequence getAll(USVString name); - boolean has(USVString name); + boolean has(USVString name, optional USVString value); undefined set(USVString name, USVString value); undefined sort(); diff --git a/tests/wpt/web-platform-tests/interfaces/webauthn.idl b/tests/wpt/web-platform-tests/interfaces/webauthn.idl index 58a9e285232..c7f72eacfd0 100644 --- a/tests/wpt/web-platform-tests/interfaces/webauthn.idl +++ b/tests/wpt/web-platform-tests/interfaces/webauthn.idl @@ -12,6 +12,7 @@ interface PublicKeyCredential : Credential { static Promise isConditionalMediationAvailable(); PublicKeyCredentialJSON toJSON(); }; + typedef DOMString Base64URLString; typedef (RegistrationResponseJSON or AuthenticationResponseJSON) PublicKeyCredentialJSON; @@ -48,15 +49,19 @@ dictionary AuthenticatorAssertionResponseJSON { dictionary AuthenticationExtensionsClientOutputsJSON { }; + partial dictionary CredentialCreationOptions { PublicKeyCredentialCreationOptions publicKey; }; + partial dictionary CredentialRequestOptions { PublicKeyCredentialRequestOptions publicKey; }; + partial interface PublicKeyCredential { static Promise isUserVerifyingPlatformAuthenticatorAvailable(); }; + partial interface PublicKeyCredential { static PublicKeyCredentialCreationOptions parseCreationOptionsFromJSON(PublicKeyCredentialCreationOptionsJSON options); }; @@ -87,6 +92,7 @@ dictionary PublicKeyCredentialDescriptorJSON { dictionary AuthenticationExtensionsClientInputsJSON { }; + partial interface PublicKeyCredential { static PublicKeyCredentialRequestOptions parseRequestOptionsFromJSON(PublicKeyCredentialRequestOptionsJSON options); }; @@ -99,10 +105,12 @@ dictionary PublicKeyCredentialRequestOptionsJSON { DOMString userVerification = "preferred"; AuthenticationExtensionsClientInputsJSON extensions; }; + [SecureContext, Exposed=Window] interface AuthenticatorResponse { [SameObject] readonly attribute ArrayBuffer clientDataJSON; }; + [SecureContext, Exposed=Window] interface AuthenticatorAttestationResponse : AuthenticatorResponse { [SameObject] readonly attribute ArrayBuffer attestationObject; @@ -111,6 +119,7 @@ interface AuthenticatorAttestationResponse : AuthenticatorResponse { ArrayBuffer? getPublicKey(); COSEAlgorithmIdentifier getPublicKeyAlgorithm(); }; + [SecureContext, Exposed=Window] interface AuthenticatorAssertionResponse : AuthenticatorResponse { [SameObject] readonly attribute ArrayBuffer authenticatorData; @@ -118,10 +127,12 @@ interface AuthenticatorAssertionResponse : AuthenticatorResponse { [SameObject] readonly attribute ArrayBuffer? userHandle; [SameObject] readonly attribute ArrayBuffer? attestationObject; }; + dictionary PublicKeyCredentialParameters { required DOMString type; required COSEAlgorithmIdentifier alg; }; + dictionary PublicKeyCredentialCreationOptions { required PublicKeyCredentialRpEntity rp; required PublicKeyCredentialUserEntity user; @@ -136,37 +147,45 @@ dictionary PublicKeyCredentialCreationOptions { sequence attestationFormats = []; AuthenticationExtensionsClientInputs extensions; }; + dictionary PublicKeyCredentialEntity { required DOMString name; }; + dictionary PublicKeyCredentialRpEntity : PublicKeyCredentialEntity { DOMString id; }; + dictionary PublicKeyCredentialUserEntity : PublicKeyCredentialEntity { required BufferSource id; required DOMString displayName; }; + dictionary AuthenticatorSelectionCriteria { DOMString authenticatorAttachment; DOMString residentKey; boolean requireResidentKey = false; DOMString userVerification = "preferred"; }; + enum AuthenticatorAttachment { "platform", "cross-platform" }; + enum ResidentKeyRequirement { "discouraged", "preferred", "required" }; + enum AttestationConveyancePreference { "none", "indirect", "direct", "enterprise" }; + dictionary PublicKeyCredentialRequestOptions { required BufferSource challenge; unsigned long timeout; @@ -177,10 +196,13 @@ dictionary PublicKeyCredentialRequestOptions { sequence attestationFormats = []; AuthenticationExtensionsClientInputs extensions; }; + dictionary AuthenticationExtensionsClientInputs { }; + dictionary AuthenticationExtensionsClientOutputs { }; + dictionary CollectedClientData { required DOMString type; required DOMString challenge; @@ -195,42 +217,54 @@ dictionary TokenBinding { }; enum TokenBindingStatus { "present", "supported" }; + enum PublicKeyCredentialType { "public-key" }; + dictionary PublicKeyCredentialDescriptor { required DOMString type; required BufferSource id; sequence transports; }; + enum AuthenticatorTransport { "usb", "nfc", "ble", + "smart-card", "hybrid", "internal" }; + typedef long COSEAlgorithmIdentifier; + enum UserVerificationRequirement { "required", "preferred", "discouraged" }; + partial dictionary AuthenticationExtensionsClientInputs { USVString appid; }; + partial dictionary AuthenticationExtensionsClientOutputs { boolean appid; }; + partial dictionary AuthenticationExtensionsClientInputs { USVString appidExclude; }; + partial dictionary AuthenticationExtensionsClientOutputs { boolean appidExclude; }; + partial dictionary AuthenticationExtensionsClientInputs { boolean credProps; }; + dictionary CredentialPropertiesOutput { boolean rk; }; @@ -238,6 +272,7 @@ dictionary CredentialPropertiesOutput { partial dictionary AuthenticationExtensionsClientOutputs { CredentialPropertiesOutput credProps; }; + dictionary AuthenticationExtensionsPRFValues { required BufferSource first; BufferSource second; @@ -289,12 +324,14 @@ dictionary AuthenticationExtensionsLargeBlobOutputs { partial dictionary AuthenticationExtensionsClientInputs { boolean uvm; }; + typedef sequence UvmEntry; typedef sequence UvmEntries; partial dictionary AuthenticationExtensionsClientOutputs { UvmEntries uvm; }; + dictionary AuthenticationExtensionsDevicePublicKeyInputs { DOMString attestation = "none"; sequence attestationFormats = []; diff --git a/tests/wpt/web-platform-tests/interfaces/webcodecs-av1-codec-registration.idl b/tests/wpt/web-platform-tests/interfaces/webcodecs-av1-codec-registration.idl index 00e4493d3c0..ab20879728d 100644 --- a/tests/wpt/web-platform-tests/interfaces/webcodecs-av1-codec-registration.idl +++ b/tests/wpt/web-platform-tests/interfaces/webcodecs-av1-codec-registration.idl @@ -3,6 +3,14 @@ // (https://github.com/w3c/webref) // Source: AV1 WebCodecs Registration (https://w3c.github.io/webcodecs/av1_codec_registration.html) +partial dictionary VideoEncoderConfig { + AV1EncoderConfig av1; +}; + +dictionary AV1EncoderConfig { + boolean forceScreenContentTools = false; +}; + partial dictionary VideoEncoderEncodeOptions { VideoEncoderEncodeOptionsForAv1 av1; }; diff --git a/tests/wpt/web-platform-tests/interfaces/webcodecs-avc-codec-registration.idl b/tests/wpt/web-platform-tests/interfaces/webcodecs-avc-codec-registration.idl index d4074f647da..2b952c22194 100644 --- a/tests/wpt/web-platform-tests/interfaces/webcodecs-avc-codec-registration.idl +++ b/tests/wpt/web-platform-tests/interfaces/webcodecs-avc-codec-registration.idl @@ -15,3 +15,11 @@ enum AvcBitstreamFormat { "annexb", "avc", }; + +partial dictionary VideoEncoderEncodeOptions { + VideoEncoderEncodeOptionsForAvc avc; +}; + +dictionary VideoEncoderEncodeOptionsForAvc { + unsigned short? quantizer; +}; diff --git a/tests/wpt/web-platform-tests/interfaces/webcodecs.idl b/tests/wpt/web-platform-tests/interfaces/webcodecs.idl index 77649029db6..0b95dc8b757 100644 --- a/tests/wpt/web-platform-tests/interfaces/webcodecs.idl +++ b/tests/wpt/web-platform-tests/interfaces/webcodecs.idl @@ -161,6 +161,7 @@ dictionary AudioEncoderConfig { [EnforceRange] unsigned long sampleRate; [EnforceRange] unsigned long numberOfChannels; [EnforceRange] unsigned long long bitrate; + BitrateMode bitrateMode; }; dictionary VideoEncoderConfig { diff --git a/tests/wpt/web-platform-tests/interfaces/webgpu.idl b/tests/wpt/web-platform-tests/interfaces/webgpu.idl index 284327a5789..34f78a1d8cd 100644 --- a/tests/wpt/web-platform-tests/interfaces/webgpu.idl +++ b/tests/wpt/web-platform-tests/interfaces/webgpu.idl @@ -18,6 +18,7 @@ interface GPUSupportedLimits { readonly attribute unsigned long maxTextureDimension3D; readonly attribute unsigned long maxTextureArrayLayers; readonly attribute unsigned long maxBindGroups; + readonly attribute unsigned long maxBindGroupsPlusVertexBuffers; readonly attribute unsigned long maxBindingsPerBindGroup; readonly attribute unsigned long maxDynamicUniformBuffersPerPipelineLayout; readonly attribute unsigned long maxDynamicStorageBuffersPerPipelineLayout; @@ -26,7 +27,6 @@ interface GPUSupportedLimits { readonly attribute unsigned long maxStorageBuffersPerShaderStage; readonly attribute unsigned long maxStorageTexturesPerShaderStage; readonly attribute unsigned long maxUniformBuffersPerShaderStage; - readonly attribute unsigned long maxFragmentCombinedOutputResources; readonly attribute unsigned long long maxUniformBufferBindingSize; readonly attribute unsigned long long maxStorageBufferBindingSize; readonly attribute unsigned long minUniformBufferOffsetAlignment; @@ -85,7 +85,7 @@ dictionary GPURequestAdapterOptions { enum GPUPowerPreference { "low-power", - "high-performance" + "high-performance", }; [Exposed=(Window, DedicatedWorker), SecureContext] @@ -98,7 +98,8 @@ interface GPUAdapter { Promise requestAdapterInfo(optional sequence unmaskHints = []); }; -dictionary GPUDeviceDescriptor : GPUObjectDescriptorBase { +dictionary GPUDeviceDescriptor + : GPUObjectDescriptorBase { sequence requiredFeatures = []; record requiredLimits = {}; GPUQueueDescriptor defaultQueue = {}; @@ -115,7 +116,7 @@ enum GPUFeatureName { "shader-f16", "rg11b10ufloat-renderable", "bgra8unorm-storage", - "float32-filterable" + "float32-filterable", }; [Exposed=(Window, DedicatedWorker), SecureContext] @@ -167,10 +168,11 @@ GPUBuffer includes GPUObjectBase; enum GPUBufferMapState { "unmapped", "pending", - "mapped" + "mapped", }; -dictionary GPUBufferDescriptor : GPUObjectDescriptorBase { +dictionary GPUBufferDescriptor + : GPUObjectDescriptorBase { required GPUSize64 size; required GPUBufferUsageFlags usage; boolean mappedAtCreation = false; @@ -215,7 +217,8 @@ interface GPUTexture { }; GPUTexture includes GPUObjectBase; -dictionary GPUTextureDescriptor : GPUObjectDescriptorBase { +dictionary GPUTextureDescriptor + : GPUObjectDescriptorBase { required GPUExtent3D size; GPUIntegerCoordinate mipLevelCount = 1; GPUSize32 sampleCount = 1; @@ -228,7 +231,7 @@ dictionary GPUTextureDescriptor : GPUObjectDescriptorBase { enum GPUTextureDimension { "1d", "2d", - "3d" + "3d", }; typedef [EnforceRange] unsigned long GPUTextureUsageFlags; @@ -246,7 +249,8 @@ interface GPUTextureView { }; GPUTextureView includes GPUObjectBase; -dictionary GPUTextureViewDescriptor : GPUObjectDescriptorBase { +dictionary GPUTextureViewDescriptor + : GPUObjectDescriptorBase { GPUTextureFormat format; GPUTextureViewDimension dimension; GPUTextureAspect aspect = "all"; @@ -262,13 +266,13 @@ enum GPUTextureViewDimension { "2d-array", "cube", "cube-array", - "3d" + "3d", }; enum GPUTextureAspect { "all", "stencil-only", - "depth-only" + "depth-only", }; enum GPUTextureFormat { @@ -388,7 +392,7 @@ enum GPUTextureFormat { "astc-12x10-unorm", "astc-12x10-unorm-srgb", "astc-12x12-unorm", - "astc-12x12-unorm-srgb" + "astc-12x12-unorm-srgb", }; [Exposed=(Window, DedicatedWorker), SecureContext] @@ -396,8 +400,9 @@ interface GPUExternalTexture { }; GPUExternalTexture includes GPUObjectBase; -dictionary GPUExternalTextureDescriptor : GPUObjectDescriptorBase { - required HTMLVideoElement source; +dictionary GPUExternalTextureDescriptor + : GPUObjectDescriptorBase { + required (HTMLVideoElement or VideoFrame) source; PredefinedColorSpace colorSpace = "srgb"; }; @@ -406,7 +411,8 @@ interface GPUSampler { }; GPUSampler includes GPUObjectBase; -dictionary GPUSamplerDescriptor : GPUObjectDescriptorBase { +dictionary GPUSamplerDescriptor + : GPUObjectDescriptorBase { GPUAddressMode addressModeU = "clamp-to-edge"; GPUAddressMode addressModeV = "clamp-to-edge"; GPUAddressMode addressModeW = "clamp-to-edge"; @@ -422,17 +428,17 @@ dictionary GPUSamplerDescriptor : GPUObjectDescriptorBase { enum GPUAddressMode { "clamp-to-edge", "repeat", - "mirror-repeat" + "mirror-repeat", }; enum GPUFilterMode { "nearest", - "linear" + "linear", }; enum GPUMipmapFilterMode { "nearest", - "linear" + "linear", }; enum GPUCompareFunction { @@ -443,7 +449,7 @@ enum GPUCompareFunction { "greater", "not-equal", "greater-equal", - "always" + "always", }; [Exposed=(Window, DedicatedWorker), SecureContext] @@ -451,7 +457,8 @@ interface GPUBindGroupLayout { }; GPUBindGroupLayout includes GPUObjectBase; -dictionary GPUBindGroupLayoutDescriptor : GPUObjectDescriptorBase { +dictionary GPUBindGroupLayoutDescriptor + : GPUObjectDescriptorBase { required sequence entries; }; @@ -477,7 +484,7 @@ namespace GPUShaderStage { enum GPUBufferBindingType { "uniform", "storage", - "read-only-storage" + "read-only-storage", }; dictionary GPUBufferBindingLayout { @@ -489,7 +496,7 @@ dictionary GPUBufferBindingLayout { enum GPUSamplerBindingType { "filtering", "non-filtering", - "comparison" + "comparison", }; dictionary GPUSamplerBindingLayout { @@ -501,7 +508,7 @@ enum GPUTextureSampleType { "unfilterable-float", "depth", "sint", - "uint" + "uint", }; dictionary GPUTextureBindingLayout { @@ -511,7 +518,7 @@ dictionary GPUTextureBindingLayout { }; enum GPUStorageTextureAccess { - "write-only" + "write-only", }; dictionary GPUStorageTextureBindingLayout { @@ -528,7 +535,8 @@ interface GPUBindGroup { }; GPUBindGroup includes GPUObjectBase; -dictionary GPUBindGroupDescriptor : GPUObjectDescriptorBase { +dictionary GPUBindGroupDescriptor + : GPUObjectDescriptorBase { required GPUBindGroupLayout layout; required sequence entries; }; @@ -551,7 +559,8 @@ interface GPUPipelineLayout { }; GPUPipelineLayout includes GPUObjectBase; -dictionary GPUPipelineLayoutDescriptor : GPUObjectDescriptorBase { +dictionary GPUPipelineLayoutDescriptor + : GPUObjectDescriptorBase { required sequence bindGroupLayouts; }; @@ -561,7 +570,8 @@ interface GPUShaderModule { }; GPUShaderModule includes GPUObjectBase; -dictionary GPUShaderModuleDescriptor : GPUObjectDescriptorBase { +dictionary GPUShaderModuleDescriptor + : GPUObjectDescriptorBase { required USVString code; object sourceMap; record hints; @@ -574,7 +584,7 @@ dictionary GPUShaderModuleCompilationHint { enum GPUCompilationMessageType { "error", "warning", - "info" + "info", }; [Exposed=(Window, DedicatedWorker), Serializable, SecureContext] @@ -604,14 +614,15 @@ dictionary GPUPipelineErrorInit { enum GPUPipelineErrorReason { "validation", - "internal" + "internal", }; enum GPUAutoLayoutMode { - "auto" + "auto", }; -dictionary GPUPipelineDescriptorBase : GPUObjectDescriptorBase { +dictionary GPUPipelineDescriptorBase + : GPUObjectDescriptorBase { required (GPUPipelineLayout or GPUAutoLayoutMode) layout; }; @@ -633,7 +644,8 @@ interface GPUComputePipeline { GPUComputePipeline includes GPUObjectBase; GPUComputePipeline includes GPUPipelineBase; -dictionary GPUComputePipelineDescriptor : GPUPipelineDescriptorBase { +dictionary GPUComputePipelineDescriptor + : GPUPipelineDescriptorBase { required GPUProgrammableStage compute; }; @@ -643,7 +655,8 @@ interface GPURenderPipeline { GPURenderPipeline includes GPUObjectBase; GPURenderPipeline includes GPUPipelineBase; -dictionary GPURenderPipelineDescriptor : GPUPipelineDescriptorBase { +dictionary GPURenderPipelineDescriptor + : GPUPipelineDescriptorBase { required GPUVertexState vertex; GPUPrimitiveState primitive = {}; GPUDepthStencilState depthStencil; @@ -666,18 +679,18 @@ enum GPUPrimitiveTopology { "line-list", "line-strip", "triangle-list", - "triangle-strip" + "triangle-strip", }; enum GPUFrontFace { "ccw", - "cw" + "cw", }; enum GPUCullMode { "none", "front", - "back" + "back", }; dictionary GPUMultisampleState { @@ -686,7 +699,8 @@ dictionary GPUMultisampleState { boolean alphaToCoverageEnabled = false; }; -dictionary GPUFragmentState : GPUProgrammableStage { +dictionary GPUFragmentState + : GPUProgrammableStage { required sequence targets; }; @@ -731,7 +745,7 @@ enum GPUBlendFactor { "one-minus-dst-alpha", "src-alpha-saturated", "constant", - "one-minus-constant" + "one-minus-constant", }; enum GPUBlendOperation { @@ -739,7 +753,7 @@ enum GPUBlendOperation { "subtract", "reverse-subtract", "min", - "max" + "max", }; dictionary GPUDepthStencilState { @@ -774,12 +788,12 @@ enum GPUStencilOperation { "increment-clamp", "decrement-clamp", "increment-wrap", - "decrement-wrap" + "decrement-wrap", }; enum GPUIndexFormat { "uint16", - "uint32" + "uint32", }; enum GPUVertexFormat { @@ -812,15 +826,16 @@ enum GPUVertexFormat { "sint32", "sint32x2", "sint32x3", - "sint32x4" + "sint32x4", }; enum GPUVertexStepMode { "vertex", - "instance" + "instance", }; -dictionary GPUVertexState : GPUProgrammableStage { +dictionary GPUVertexState + : GPUProgrammableStage { sequence buffers = []; }; @@ -837,17 +852,43 @@ dictionary GPUVertexAttribute { required GPUIndex32 shaderLocation; }; -dictionary GPUImageDataLayout { GPUSize64 offset = 0; GPUSize32 bytesPerRow; GPUSize32 rowsPerImage;}; -dictionary GPUImageCopyBuffer : GPUImageDataLayout { required GPUBuffer buffer;}; -dictionary GPUImageCopyTexture { required GPUTexture texture; GPUIntegerCoordinate mipLevel = 0; GPUOrigin3D origin = {}; GPUTextureAspect aspect = "all";}; -dictionary GPUImageCopyTextureTagged : GPUImageCopyTexture { PredefinedColorSpace colorSpace = "srgb"; boolean premultipliedAlpha = false;}; -dictionary GPUImageCopyExternalImage { required (ImageBitmap or HTMLVideoElement or HTMLCanvasElement or OffscreenCanvas) source; GPUOrigin2D origin = {}; boolean flipY = false;}; +dictionary GPUImageDataLayout { + GPUSize64 offset = 0; + GPUSize32 bytesPerRow; + GPUSize32 rowsPerImage; +}; + +dictionary GPUImageCopyBuffer + : GPUImageDataLayout { + required GPUBuffer buffer; +}; + +dictionary GPUImageCopyTexture { + required GPUTexture texture; + GPUIntegerCoordinate mipLevel = 0; + GPUOrigin3D origin = {}; + GPUTextureAspect aspect = "all"; +}; + +dictionary GPUImageCopyTextureTagged + : GPUImageCopyTexture { + PredefinedColorSpace colorSpace = "srgb"; + boolean premultipliedAlpha = false; +}; + +dictionary GPUImageCopyExternalImage { + required (ImageBitmap or HTMLVideoElement or HTMLCanvasElement or OffscreenCanvas) source; + GPUOrigin2D origin = {}; + boolean flipY = false; +}; + [Exposed=(Window, DedicatedWorker), SecureContext] interface GPUCommandBuffer { }; GPUCommandBuffer includes GPUObjectBase; -dictionary GPUCommandBufferDescriptor : GPUObjectDescriptorBase { +dictionary GPUCommandBufferDescriptor + : GPUObjectDescriptorBase { }; interface mixin GPUCommandsMixin { @@ -900,14 +941,15 @@ GPUCommandEncoder includes GPUObjectBase; GPUCommandEncoder includes GPUCommandsMixin; GPUCommandEncoder includes GPUDebugCommandsMixin; -dictionary GPUCommandEncoderDescriptor : GPUObjectDescriptorBase { +dictionary GPUCommandEncoderDescriptor + : GPUObjectDescriptorBase { }; interface mixin GPUBindingCommandsMixin { - undefined setBindGroup(GPUIndex32 index, GPUBindGroup bindGroup, + undefined setBindGroup(GPUIndex32 index, GPUBindGroup? bindGroup, optional sequence dynamicOffsets = []); - undefined setBindGroup(GPUIndex32 index, GPUBindGroup bindGroup, + undefined setBindGroup(GPUIndex32 index, GPUBindGroup? bindGroup, Uint32Array dynamicOffsetsData, GPUSize64 dynamicOffsetsDataStart, GPUSize32 dynamicOffsetsDataLength); @@ -932,21 +974,15 @@ GPUComputePassEncoder includes GPUCommandsMixin; GPUComputePassEncoder includes GPUDebugCommandsMixin; GPUComputePassEncoder includes GPUBindingCommandsMixin; -enum GPUComputePassTimestampLocation { - "beginning", - "end" -}; - -dictionary GPUComputePassTimestampWrite { +dictionary GPUComputePassTimestampWrites { required GPUQuerySet querySet; - required GPUSize32 queryIndex; - required GPUComputePassTimestampLocation location; + GPUSize32 beginningOfPassWriteIndex; + GPUSize32 endOfPassWriteIndex; }; -typedef sequence GPUComputePassTimestampWrites; - -dictionary GPUComputePassDescriptor : GPUObjectDescriptorBase { - GPUComputePassTimestampWrites timestampWrites = []; +dictionary GPUComputePassDescriptor + : GPUObjectDescriptorBase { + GPUComputePassTimestampWrites timestampWrites; }; [Exposed=(Window, DedicatedWorker), SecureContext] @@ -973,24 +1009,18 @@ GPURenderPassEncoder includes GPUDebugCommandsMixin; GPURenderPassEncoder includes GPUBindingCommandsMixin; GPURenderPassEncoder includes GPURenderCommandsMixin; -enum GPURenderPassTimestampLocation { - "beginning", - "end" -}; - -dictionary GPURenderPassTimestampWrite { +dictionary GPURenderPassTimestampWrites { required GPUQuerySet querySet; - required GPUSize32 queryIndex; - required GPURenderPassTimestampLocation location; + GPUSize32 beginningOfPassWriteIndex; + GPUSize32 endOfPassWriteIndex; }; -typedef sequence GPURenderPassTimestampWrites; - -dictionary GPURenderPassDescriptor : GPUObjectDescriptorBase { +dictionary GPURenderPassDescriptor + : GPUObjectDescriptorBase { required sequence colorAttachments; GPURenderPassDepthStencilAttachment depthStencilAttachment; GPUQuerySet occlusionQuerySet; - GPURenderPassTimestampWrites timestampWrites = []; + GPURenderPassTimestampWrites timestampWrites; GPUSize64 maxDrawCount = 50000000; }; @@ -1019,15 +1049,16 @@ dictionary GPURenderPassDepthStencilAttachment { enum GPULoadOp { "load", - "clear" + "clear", }; enum GPUStoreOp { "store", - "discard" + "discard", }; -dictionary GPURenderPassLayout : GPUObjectDescriptorBase { +dictionary GPURenderPassLayout + : GPUObjectDescriptorBase { required sequence colorFormats; GPUTextureFormat depthStencilFormat; GPUSize32 sampleCount = 1; @@ -1037,7 +1068,7 @@ interface mixin GPURenderCommandsMixin { undefined setPipeline(GPURenderPipeline pipeline); undefined setIndexBuffer(GPUBuffer buffer, GPUIndexFormat indexFormat, optional GPUSize64 offset = 0, optional GPUSize64 size); - undefined setVertexBuffer(GPUIndex32 slot, GPUBuffer buffer, optional GPUSize64 offset = 0, optional GPUSize64 size); + undefined setVertexBuffer(GPUIndex32 slot, GPUBuffer? buffer, optional GPUSize64 offset = 0, optional GPUSize64 size); undefined draw(GPUSize32 vertexCount, optional GPUSize32 instanceCount = 1, optional GPUSize32 firstVertex = 0, optional GPUSize32 firstInstance = 0); @@ -1055,7 +1086,8 @@ interface GPURenderBundle { }; GPURenderBundle includes GPUObjectBase; -dictionary GPURenderBundleDescriptor : GPUObjectDescriptorBase { +dictionary GPURenderBundleDescriptor + : GPUObjectDescriptorBase { }; [Exposed=(Window, DedicatedWorker), SecureContext] @@ -1068,12 +1100,14 @@ GPURenderBundleEncoder includes GPUDebugCommandsMixin; GPURenderBundleEncoder includes GPUBindingCommandsMixin; GPURenderBundleEncoder includes GPURenderCommandsMixin; -dictionary GPURenderBundleEncoderDescriptor : GPURenderPassLayout { +dictionary GPURenderBundleEncoderDescriptor + : GPURenderPassLayout { boolean depthReadOnly = false; boolean stencilReadOnly = false; }; -dictionary GPUQueueDescriptor : GPUObjectDescriptorBase { +dictionary GPUQueueDescriptor + : GPUObjectDescriptorBase { }; [Exposed=(Window, DedicatedWorker), SecureContext] @@ -1111,14 +1145,15 @@ interface GPUQuerySet { }; GPUQuerySet includes GPUObjectBase; -dictionary GPUQuerySetDescriptor : GPUObjectDescriptorBase { +dictionary GPUQuerySetDescriptor + : GPUObjectDescriptorBase { required GPUQueryType type; required GPUSize32 count; }; enum GPUQueryType { "occlusion", - "timestamp" + "timestamp", }; [Exposed=(Window, DedicatedWorker), SecureContext] @@ -1133,7 +1168,7 @@ interface GPUCanvasContext { enum GPUCanvasAlphaMode { "opaque", - "premultiplied" + "premultiplied", }; dictionary GPUCanvasConfiguration { @@ -1147,7 +1182,7 @@ dictionary GPUCanvasConfiguration { enum GPUDeviceLostReason { "unknown", - "destroyed" + "destroyed", }; [Exposed=(Window, DedicatedWorker), SecureContext] @@ -1166,24 +1201,27 @@ interface GPUError { }; [Exposed=(Window, DedicatedWorker), SecureContext] -interface GPUValidationError : GPUError { +interface GPUValidationError + : GPUError { constructor(DOMString message); }; [Exposed=(Window, DedicatedWorker), SecureContext] -interface GPUOutOfMemoryError : GPUError { +interface GPUOutOfMemoryError + : GPUError { constructor(DOMString message); }; [Exposed=(Window, DedicatedWorker), SecureContext] -interface GPUInternalError : GPUError { +interface GPUInternalError + : GPUError { constructor(DOMString message); }; enum GPUErrorFilter { "validation", "out-of-memory", - "internal" + "internal", }; partial interface GPUDevice { diff --git a/tests/wpt/web-platform-tests/interfaces/webnn.idl b/tests/wpt/web-platform-tests/interfaces/webnn.idl index 2c2ab35e909..d2b973a624b 100644 --- a/tests/wpt/web-platform-tests/interfaces/webnn.idl +++ b/tests/wpt/web-platform-tests/interfaces/webnn.idl @@ -489,13 +489,8 @@ partial interface MLGraphBuilder { MLActivation sigmoid(); }; -dictionary MLSliceOptions { - sequence axes; -}; - partial interface MLGraphBuilder { - MLOperand slice(MLOperand input, sequence starts, sequence sizes, - optional MLSliceOptions options = {}); + MLOperand slice(MLOperand input, sequence starts, sequence sizes); }; partial interface MLGraphBuilder { diff --git a/tests/wpt/web-platform-tests/interfaces/webrtc-encoded-transform.idl b/tests/wpt/web-platform-tests/interfaces/webrtc-encoded-transform.idl index e48f1080c41..59710bf46c2 100644 --- a/tests/wpt/web-platform-tests/interfaces/webrtc-encoded-transform.idl +++ b/tests/wpt/web-platform-tests/interfaces/webrtc-encoded-transform.idl @@ -72,7 +72,8 @@ dictionary RTCEncodedVideoFrameMetadata { unsigned long temporalIndex; unsigned long synchronizationSource; octet payloadType; - sequence contributingSources; + sequence contributingSources; + long long timestamp; // microseconds }; // New interfaces to define encoded video and audio frames. Will eventually diff --git a/tests/wpt/web-platform-tests/interfaces/webrtc-stats.idl b/tests/wpt/web-platform-tests/interfaces/webrtc-stats.idl index 7e820a26df4..a5fb3294b7e 100644 --- a/tests/wpt/web-platform-tests/interfaces/webrtc-stats.idl +++ b/tests/wpt/web-platform-tests/interfaces/webrtc-stats.idl @@ -94,6 +94,8 @@ dictionary RTCInboundRtpStreamStats : RTCReceivedRtpStreamStats { boolean powerEfficientDecoder; unsigned long framesAssembledFromMultiplePackets; double totalAssemblyTime; + unsigned long long retransmittedPacketsReceived; + unsigned long long retransmittedBytesReceived; }; dictionary RTCRemoteInboundRtpStreamStats : RTCReceivedRtpStreamStats { diff --git a/tests/wpt/web-platform-tests/interfaces/webxrlayers.idl b/tests/wpt/web-platform-tests/interfaces/webxrlayers.idl index e182f47b9c5..c8b3a71c699 100644 --- a/tests/wpt/web-platform-tests/interfaces/webxrlayers.idl +++ b/tests/wpt/web-platform-tests/interfaces/webxrlayers.idl @@ -11,6 +11,12 @@ enum XRLayerLayout { "stereo-top-bottom" }; +enum XRLayerQuality { + "default", + "text-optimized", + "graphics-optimized" +}; + [Exposed=Window] interface XRCompositionLayer : XRLayer { readonly attribute XRLayerLayout layout; @@ -18,6 +24,7 @@ enum XRLayerLayout { attribute boolean forceMonoPresentation; attribute float opacity; readonly attribute unsigned long mipLevels; + attribute XRLayerQuality quality; readonly attribute boolean needsRedraw; @@ -106,6 +113,7 @@ dictionary XRProjectionLayerInit { GLenum colorFormat = 0x1908; // RGBA GLenum depthFormat = 0x1902; // DEPTH_COMPONENT double scaleFactor = 1.0; + boolean clearOnAccess = true; }; dictionary XRLayerInit { @@ -117,6 +125,7 @@ dictionary XRLayerInit { required unsigned long viewPixelHeight; XRLayerLayout layout = "mono"; boolean isStatic = false; + boolean clearOnAccess = true; }; dictionary XRQuadLayerInit : XRLayerInit { diff --git a/tests/wpt/web-platform-tests/lint.ignore b/tests/wpt/web-platform-tests/lint.ignore index 7118adb1611..1672f3b52e7 100644 --- a/tests/wpt/web-platform-tests/lint.ignore +++ b/tests/wpt/web-platform-tests/lint.ignore @@ -362,7 +362,6 @@ SET TIMEOUT: speculation-rules/prerender/resources/media-autoplay-attribute.html SET TIMEOUT: speculation-rules/prerender/resources/media-play.html SET TIMEOUT: html/browsers/browsing-the-web/back-forward-cache/timers.html SET TIMEOUT: dom/abort/crashtests/timeout-close.html -SET TIMEOUT: common/rendering-utils.js # setTimeout use in reftests SET TIMEOUT: acid/acid3/test.html @@ -428,8 +427,12 @@ TRAILING WHITESPACE: css/css-fonts/support/fonts/gsubtest-lookup3.ufo/features.f SET TIMEOUT: css/compositing/mix-blend-mode/mix-blend-mode-parent-with-3D-transform-and-transition.html SET TIMEOUT: css/compositing/mix-blend-mode/mix-blend-mode-sibling-with-3D-transform-and-transition.html +SET TIMEOUT: css/css-backgrounds/color-mix-currentcolor-background-repaint-parent.html +SET TIMEOUT: css/css-backgrounds/color-mix-currentcolor-background-repaint.html SET TIMEOUT: css/css-backgrounds/color-mix-currentcolor-border-repaint-parent.html SET TIMEOUT: css/css-backgrounds/color-mix-currentcolor-border-repaint.html +SET TIMEOUT: css/css-backgrounds/color-mix-currentcolor-outline-repaint-parent.html +SET TIMEOUT: css/css-backgrounds/color-mix-currentcolor-outline-repaint.html SET TIMEOUT: css/css-backgrounds/currentcolor-border-repaint-parent.html SET TIMEOUT: css/css-transitions/events-007.html SET TIMEOUT: css/css-transitions/support/generalParallelTest.js diff --git a/tests/wpt/web-platform-tests/mediacapture-record/MediaRecorder-error.html b/tests/wpt/web-platform-tests/mediacapture-record/MediaRecorder-error.html index 97e781054f3..39e8676d19f 100644 --- a/tests/wpt/web-platform-tests/mediacapture-record/MediaRecorder-error.html +++ b/tests/wpt/web-platform-tests/mediacapture-record/MediaRecorder-error.html @@ -57,6 +57,15 @@ recorder.start(); }); }, "MediaRecorder cannot start recording when MediaRecorder' state is not inactive and an InvalidStateError should be thrown"); + test(t => { + const { stream: video } = createVideoStream(t); + assert_throws_dom("NotSupportedError", function () { + new MediaRecorder(video, { + videoKeyFrameIntervalDuration: 10, + videoKeyFrameIntervalCount: 10, + }); + }); + }, "MediaRecorder throws NotSupportedError when given both videoKeyFrameIntervalDuration and videoKeyFrameIntervalCount"); diff --git a/tests/wpt/web-platform-tests/mediacapture-record/MediaRecorder-video-key-frame-distance.html b/tests/wpt/web-platform-tests/mediacapture-record/MediaRecorder-video-key-frame-distance.html new file mode 100644 index 00000000000..b986b3075ff --- /dev/null +++ b/tests/wpt/web-platform-tests/mediacapture-record/MediaRecorder-video-key-frame-distance.html @@ -0,0 +1,39 @@ + + + + MediaRecorder Stop + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/performance-timeline/back-forward-cache-restoration.tentative.html b/tests/wpt/web-platform-tests/performance-timeline/back-forward-cache-restoration.tentative.html index 733642fd032..c673e09cb46 100644 --- a/tests/wpt/web-platform-tests/performance-timeline/back-forward-cache-restoration.tentative.html +++ b/tests/wpt/web-platform-tests/performance-timeline/back-forward-cache-restoration.tentative.html @@ -14,6 +14,12 @@ const BackForwardCacheRestorationName = ''; const BackForwardCacheRestorationType = 'back-forward-cache-restoration'; + let getNavigationId = (i) => { + let identifier = 'mark' + i; + performance.mark(identifier); + return window.performance.getEntriesByName(identifier)[0].navigationId; + } + let getNumberofBackForwardCacheRestorationEntries = (BackForwardCacheRestorationType) => { return window.performance.getEntriesByType(BackForwardCacheRestorationType).length; } @@ -40,10 +46,10 @@ return await p; } - let checkEntry = (entry, expectedNavigationId) => { + let checkEntry = (entry, previousNavigationId) => { assert_equals(entry.name, BackForwardCacheRestorationName); assert_equals(entry.entryType, BackForwardCacheRestorationType); - assert_equals(entry.navigationId, expectedNavigationId); + assert_not_equals(entry.navigationId, previousNavigationId); assert_true(entry.pageshowEventStart > entry.startTime); assert_true(entry.pageshowEventEnd >= entry.pageshowEventStart); } @@ -64,18 +70,23 @@ let entry; for (i = 0; i < 2; i++) { + let curr_nav_id = await pageA.execute_script(getNavigationId, [i]); + // Navigate away to url B and back. await navigateAndThenBack(pageA, pageB, urlB); // Assert Performance Observer API supports BackForwardCacheRestoration. entry = await pageA.execute_script(getBackForwardCacheRestorationByPerformanceObserverBuffered, [BackForwardCacheRestorationType]); - checkEntry(entry, i + 2); // The expected navigation id of the entry created at i-th navigating away and back is i+2 because navigation id starts from 1 and increments before an instance of BackForwardRestoration is created. + // The navigation id after a bfcache restoration should be different + // from that before. + checkEntry(entry, curr_nav_id); + // Assert Performance Timeline API supports BackForwardCacheRestoration. entry = await pageA.execute_script(getBackForwardCacheRestorationByType, [BackForwardCacheRestorationType]); - checkEntry(entry, i + 2); + checkEntry(entry, curr_nav_id); entry = await pageA.execute_script(getBackForwardCacheRestorationByGetAllAndFilter, [BackForwardCacheRestorationType]); - checkEntry(entry, i + 2); + checkEntry(entry, curr_nav_id); } }, 'Performance API for the back forward cache restoration entry.'); diff --git a/tests/wpt/web-platform-tests/performance-timeline/navigation-id-element-timing.tentative.html b/tests/wpt/web-platform-tests/performance-timeline/navigation-id-element-timing.tentative.html index bc52f208b07..7ff415530bc 100644 --- a/tests/wpt/web-platform-tests/performance-timeline/navigation-id-element-timing.tentative.html +++ b/tests/wpt/web-platform-tests/performance-timeline/navigation-id-element-timing.tentative.html @@ -8,7 +8,7 @@ \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/performance-timeline/navigation-id-initial-load.tentative.html b/tests/wpt/web-platform-tests/performance-timeline/navigation-id-initial-load.tentative.html index 3228e12778b..93ddcff062e 100644 --- a/tests/wpt/web-platform-tests/performance-timeline/navigation-id-initial-load.tentative.html +++ b/tests/wpt/web-platform-tests/performance-timeline/navigation-id-initial-load.tentative.html @@ -20,24 +20,30 @@ navigation id, not the increment. } promise_test(async t => { - // Assert navigation id exists in LCP entries and is the default value 1. - const navigationIds = await NavigationIdsFromLCP(); - assert_true(navigationIds.every(e => e.navigationId == 1), 'Navigation Id\ - of LCP entries should be default value 1 at initial navigations'); + // Assert navigation id exists in LCP entries and and are all the same. + const navigationIdsOfLCP = (await NavigationIdsFromLCP()).map(e => e.navigationId); + assert_true(navigationIdsOfLCP.every(e => e == navigationIdsOfLCP[0]), + 'Navigation Ids of LCP entries should be the same at initial navigation'); - // Assert navigation id exists in a NavigationTiming entry and is the - // default value 1. - const navigationId = performance.getEntriesByType('navigation')[0].navigationId; - assert_equals(navigationId, 1, 'Navigation Id of an navigation timing\ - entry should be default value 1 at initial navigations'); + // Assert navigation id exists in a NavigationTiming entry. + const navigationIdOfNavigationTiming = + performance.getEntriesByType('navigation')[0].navigationId; + assert_not_equals(navigationIdOfNavigationTiming, null, + 'Navigation Id of a navigation timing entry should exist at initial navigation'); - // Assert navigation id exists in PaintTiming entries and is the default - // value 1. - assert_true(performance.getEntriesByType('paint').every(e => - e.navigationId == 1), - 'Navigation Id of PaintTiming entries should be default value 1 at\ - initial navigations.'); + // Assert navigation id exists in PaintTiming entries and are all the same. + const navigationIdsOfPaintTiming = + performance.getEntriesByType('paint').map(e => e.navigationId); + assert_true(navigationIdsOfPaintTiming.every(e => + e == navigationIdsOfPaintTiming[0]), + 'Navigation Id of PaintTiming entries should be the same as the initial navigation.'); - }, 'Navigation Id should be 1 at initial navigations.'); + // Assert navigation ids are all the same. + const navigationIdsOfAll = + navigationIdsOfLCP.concat(navigationIdsOfPaintTiming, navigationIdOfNavigationTiming); + assert_true(navigationIdsOfAll.every(e => e == navigationIdsOfAll[0]), + 'Navigation Id of all entries should be the same as the initial navigation.'); + + }, 'Navigation Ids should exist and are all the same as the initial navigation.'); - + \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/performance-timeline/navigation-id-long-task-task-attribution.tentative.html b/tests/wpt/web-platform-tests/performance-timeline/navigation-id-long-task-task-attribution.tentative.html index 662e17508b2..e1da9100aee 100644 --- a/tests/wpt/web-platform-tests/performance-timeline/navigation-id-long-task-task-attribution.tentative.html +++ b/tests/wpt/web-platform-tests/performance-timeline/navigation-id-long-task-task-attribution.tentative.html @@ -8,7 +8,7 @@ \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/performance-timeline/navigation-id-mark-measure.tentative.html b/tests/wpt/web-platform-tests/performance-timeline/navigation-id-mark-measure.tentative.html index 42795f94a98..30613ebb980 100644 --- a/tests/wpt/web-platform-tests/performance-timeline/navigation-id-mark-measure.tentative.html +++ b/tests/wpt/web-platform-tests/performance-timeline/navigation-id-mark-measure.tentative.html @@ -8,7 +8,7 @@ \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/performance-timeline/navigation-id-reset.tentative.html b/tests/wpt/web-platform-tests/performance-timeline/navigation-id-reset.tentative.html index 7386331d26e..f5a2428e5f5 100644 --- a/tests/wpt/web-platform-tests/performance-timeline/navigation-id-reset.tentative.html +++ b/tests/wpt/web-platform-tests/performance-timeline/navigation-id-reset.tentative.html @@ -26,24 +26,28 @@ window.open(urlA, '_blank', 'noopener') await pageA.execute_script(waitForPageShow); - // Assert navigation id is 1 when the document is loaded first time. - - let navigationId = await pageA.execute_script(getNavigationId); - assert_equals(navigationId, 1, 'Navigation Id should be 1 initially.'); + let navigationIdInitial = await pageA.execute_script(getNavigationId); // Navigate away to url B and back. await navigateAndThenBack(pageA, pageB, urlB); - // Assert navigation id increments to 2 when the document is load from bfcache. - navigationId = await pageA.execute_script(getNavigationId); - assert_equals(navigationId, 2, 'Navigation Id should be 2 after increment.'); + // Assert navigation id is re-generated and thus different when the + // document is load from bfcache. + navigationIdAfterBFCacheNav = await pageA.execute_script(getNavigationId); + assert_not_equals(navigationIdInitial, navigationIdAfterBFCacheNav, 'Navigation Id should be \ + re-generated and different from the previous one after back-forward-cache navigation.'); // Reload page. await pageA.execute_script(reload); await pageA.execute_script(waitForPageShow); - // Assert navigation id is reset to 1 after reload. - navigationId = await pageA.execute_script(getNavigationId); - assert_equals(navigationId, 1, 'Navigation Id should be 1 after reload.'); - }, 'Navigation Id should be reset to 1 after reload.'); + navigationIdAfterReset = await pageA.execute_script(getNavigationId); + + assert_not_equals(navigationIdAfterReset, navigationIdAfterBFCacheNav, 'Navigation Id should\ + be re-generated after reload which is different from the previous one.'); + + assert_not_equals(navigationIdAfterReset, navigationIdInitial, 'Navigation Id should\ + be re-generated after reload which is different from the one of the initial load.'); + + }, 'Navigation Id should be re-generated after reload.'); diff --git a/tests/wpt/web-platform-tests/performance-timeline/navigation-id-resource-timing.tentative.html b/tests/wpt/web-platform-tests/performance-timeline/navigation-id-resource-timing.tentative.html index 1ec906ebbbb..6d0614a6e23 100644 --- a/tests/wpt/web-platform-tests/performance-timeline/navigation-id-resource-timing.tentative.html +++ b/tests/wpt/web-platform-tests/performance-timeline/navigation-id-resource-timing.tentative.html @@ -8,7 +8,7 @@ \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/performance-timeline/navigation-id-worker-created-entries.html b/tests/wpt/web-platform-tests/performance-timeline/navigation-id-worker-created-entries.html new file mode 100644 index 00000000000..96fc57be1d4 --- /dev/null +++ b/tests/wpt/web-platform-tests/performance-timeline/navigation-id-worker-created-entries.html @@ -0,0 +1,27 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/performance-timeline/navigation-id.helper.js b/tests/wpt/web-platform-tests/performance-timeline/navigation-id.helper.js index 53099cadb25..1b72fe9908d 100644 --- a/tests/wpt/web-platform-tests/performance-timeline/navigation-id.helper.js +++ b/tests/wpt/web-platform-tests/performance-timeline/navigation-id.helper.js @@ -9,10 +9,10 @@ let testInitial = () => { return window.performance.getEntries().map(e => e.navigationId); } -let testMarkMeasure = (expectedNavigationId, markName, MeasureName) => { +let testMarkMeasure = (markId, markName, MeasureName) => { const markName1 = 'test-mark'; - const markName2 = 'test-mark' + expectedNavigationId; - const measureName = 'test-measure' + expectedNavigationId; + const markName2 = 'test-mark' + markId; + const measureName = 'test-measure' + markId; window.performance.mark(markName1); window.performance.mark(markName2); @@ -21,12 +21,13 @@ let testMarkMeasure = (expectedNavigationId, markName, MeasureName) => { window.performance.getEntriesByName(measureName)).map(e => e.navigationId); } -let testResourceTiming = async (expectedNavigationId) => { - let navigationId = -1; +let testResourceTiming = async (resourceTimingEntryId) => { + let navigationId; let p = new Promise(resolve => { new PerformanceObserver((list) => { - const entry = list.getEntries().find(e => e.name.includes('json_resource') && e.navigationId == expectedNavigationId); + const entry = list.getEntries().find( + e => e.name.includes('json_resource' + resourceTimingEntryId)); if (entry) { navigationId = entry.navigationId; resolve(); @@ -34,16 +35,18 @@ let testResourceTiming = async (expectedNavigationId) => { }).observe({ type: 'resource' }); }); - const resp = await fetch('/performance-timeline/resources/json_resource.json'); + const resp = await fetch( + '/performance-timeline/resources/json_resource' + resourceTimingEntryId + '.json'); await p; return [navigationId]; } -let testElementTiming = async (expectedNavigationId) => { - let navigationId = -1; +let testElementTiming = async (elementTimingEntryId) => { + let navigationId; let p = new Promise(resolve => { new PerformanceObserver((list) => { - const entry = list.getEntries().find(e => e.entryType === 'element' && e.identifier === 'test-element-timing' + expectedNavigationId); + const entry = list.getEntries().find( + e => e.entryType === 'element' && e.identifier === 'test-element-timing' + elementTimingEntryId); if (entry) { navigationId = entry.navigationId; resolve(); @@ -52,7 +55,7 @@ let testElementTiming = async (expectedNavigationId) => { }); let el = document.createElement('p'); - el.setAttribute('elementtiming', 'test-element-timing' + expectedNavigationId); + el.setAttribute('elementtiming', 'test-element-timing' + elementTimingEntryId); el.textContent = 'test element timing text'; document.body.appendChild(el); await p; @@ -110,21 +113,32 @@ function runNavigationIdTest(params, description) { params.openFunc(urlA); await pageA.execute_script(waitForPageShow); - // Assert navigation id is 1 when the document is loaded first time. + // Assert navigation ids of all performance entries are the same. let navigationIds = await pageA.execute_script(testInitial); assert_true( - navigationIds.every(t => t === 1), 'All Navigation Ids should be 1.'); + navigationIds.every(t => t === navigationIds[0]), + 'Navigation Ids should be the same as the initial load.'); for (i = 1; i <= params.navigationTimes; i++) { // Navigate away to url B and back. await navigateAndThenBack(pageA, pageB, urlB); - // Assert navigation id increments when the document is load from bfcache. - navigationIds = await pageA.execute_script( + // Assert new navigation ids are generated when the document is load from bfcache. + let nextNavigationIds = await pageA.execute_script( testFunctionMap[params.testName], [i + 1]); + + // Assert navigation ids of all performance entries are the same. assert_true( - navigationIds.every(t => t === (i + 1)), - params.testName + ' Navigation Id should all be ' + (i + 1) + '.'); + nextNavigationIds.every(t => t === nextNavigationIds[0]), + 'All Navigation Ids should be same after bfcache navigation.'); + + // Assert navigation ids after bfcache navigation are different from those before. + assert_true( + navigationIds[0] !== nextNavigationIds[0], + params.testName + + ' Navigation Ids should be re-generated and different from the previous ones.'); + + navigationIds = nextNavigationIds; } }, description); -} +} \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/performance-timeline/resources/worker-navigation-id.js b/tests/wpt/web-platform-tests/performance-timeline/resources/worker-navigation-id.js new file mode 100644 index 00000000000..3a2740d0675 --- /dev/null +++ b/tests/wpt/web-platform-tests/performance-timeline/resources/worker-navigation-id.js @@ -0,0 +1,6 @@ +self.onmessage = () => { + const mark_name = 'user_timig_mark'; + performance.mark(mark_name); + postMessage(performance.getEntriesByName(mark_name)[0].navigationId); + self.close(); +} diff --git a/tests/wpt/web-platform-tests/pointerevents/pointerevent_auxclick_is_a_pointerevent.html b/tests/wpt/web-platform-tests/pointerevents/pointerevent_auxclick_is_a_pointerevent.html index b3b7481d6ab..5ec1bab1649 100644 --- a/tests/wpt/web-platform-tests/pointerevents/pointerevent_auxclick_is_a_pointerevent.html +++ b/tests/wpt/web-platform-tests/pointerevents/pointerevent_auxclick_is_a_pointerevent.html @@ -26,10 +26,15 @@ target.addEventListener("pointerdown", (e)=>{ function testFunction(test){ return test.step_func(e=>{ - assert_equals(e.constructor, window.PointerEvent, "auxclick should use a PointerEvent constructor"); - assert_true(e instanceof PointerEvent, "auxclick should be a PointerEvent"); - assert_equals(e.pointerId, pointerId, "auxclick's pointerId should match the pointerId of the pointer event that triggers it"); - assert_equals(e.pointerType, pointerType, "axclick's pointerType should match the pointerType of the pointer event that triggers it"); + assert_equals(e.constructor, window.PointerEvent, + "auxclick should use a PointerEvent constructor"); + assert_true(e instanceof PointerEvent, + "auxclick should be a PointerEvent"); + assert_equals(e.pointerId, pointerId, + "auxclick's pointerId should match the pointerId of the pointer event that triggers it"); + assert_equals(e.pointerType, pointerType, + "auxclick's pointerType should match the pointerType of the pointer event that triggers it"); + assert_equals(e.composed, true, "auxclick.composed should be true"); }); } @@ -51,10 +56,15 @@ function run_test(pointerType){ .pointerMove(0,0, {origin:target, sourceName:testPointer}) .pointerDown({button:actions.ButtonType.MIDDLE, sourceName:testPointer}) .pointerUp({button:actions.ButtonType.MIDDLE, sourceName:testPointer}); - Promise.all([pointerDownPrevented, eventWatcher.wait_for("auxclick"), actions.send()]).then(()=>resolve()); + Promise.all([ + pointerDownPrevented, + eventWatcher.wait_for("auxclick"), + actions.send() + ]).then(()=>resolve()); }), "auxclick using " + pointerType + " is a PointerEvent"); } run_test(inputSource); -// TODO(crbug.com/1150441): Add test for auxclick from touch.Note: Calling run_test("touch") here times out. +// TODO(crbug.com/1150441): Add test for auxclick from touch. Note: Calling +// run_test("touch") here times out. diff --git a/tests/wpt/web-platform-tests/pointerevents/pointerevent_click_is_a_pointerevent.html b/tests/wpt/web-platform-tests/pointerevents/pointerevent_click_is_a_pointerevent.html index 9e4b023a25a..2571c9c9034 100644 --- a/tests/wpt/web-platform-tests/pointerevents/pointerevent_click_is_a_pointerevent.html +++ b/tests/wpt/web-platform-tests/pointerevents/pointerevent_click_is_a_pointerevent.html @@ -25,6 +25,7 @@ function assert_click_construction(click_event, window_object) { "click should use a PointerEvent constructor"); assert_true(click_event instanceof window_object.PointerEvent, "click should be a PointerEvent instance"); + assert_equals(click_event.composed, true, "click.composed should be true"); } function assert_click_attributes(click_event, pointerdown_event, pointerup_event) { @@ -36,7 +37,7 @@ function assert_click_attributes(click_event, pointerdown_event, pointerup_event assert_equals(click_event.pointerId, pointerup_event.pointerId, "click.pointerId should match the pointerId of the triggering pointerup"); assert_equals(click_event.pointerType, pointerup_event.pointerType, - "click.pointerType should match the pointerType of the triggering pointerup"); + "click.pointerType should match the pointerType of the triggering pointerup"); } promise_test(async () => { diff --git a/tests/wpt/web-platform-tests/pointerevents/pointerevent_contextmenu_is_a_pointerevent.html b/tests/wpt/web-platform-tests/pointerevents/pointerevent_contextmenu_is_a_pointerevent.html index fe3a69942ef..d951be542a3 100644 --- a/tests/wpt/web-platform-tests/pointerevents/pointerevent_contextmenu_is_a_pointerevent.html +++ b/tests/wpt/web-platform-tests/pointerevents/pointerevent_contextmenu_is_a_pointerevent.html @@ -20,10 +20,15 @@ let pointerdownPointerId, pointerdownPointerType; let inputSource = location.search.substring(1); target.addEventListener("contextmenu", contextmenuTest.step_func((e)=>{ - assert_equals(e.constructor, window.PointerEvent, "contextmenu should use a PointerEvent constructor"); - assert_true(e instanceof PointerEvent, "contextmenu should be a PointerEvent"); - assert_equals(e.pointerId, pointerdownPointerId, "contextmenu's pointerId should match the pointerId of the pointer event that triggers it"); - assert_equals(e.pointerType, pointerdownPointerType, "contextmenu's pointerType should match the pointerType of the pointer event that triggers it"); + assert_equals(e.constructor, window.PointerEvent, + "contextmenu should use a PointerEvent constructor"); + assert_true(e instanceof PointerEvent, + "contextmenu should be a PointerEvent"); + assert_equals(e.pointerId, pointerdownPointerId, + "contextmenu's pointerId should match the pointerId of the pointer event that triggers it"); + assert_equals(e.pointerType, pointerdownPointerType, + "contextmenu's pointerType should match the pointerType of the pointer event that triggers it"); + assert_equals(e.composed, true, "contextmenu.composed should be true"); })); target.addEventListener("pointerdown", e=>{ pointerdownPointerId = e.pointerId; diff --git a/tests/wpt/web-platform-tests/preload/modulepreload-as.html b/tests/wpt/web-platform-tests/preload/modulepreload-as.html new file mode 100644 index 00000000000..dd946e454a1 --- /dev/null +++ b/tests/wpt/web-platform-tests/preload/modulepreload-as.html @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/preload/modulepreload-sri.html b/tests/wpt/web-platform-tests/preload/modulepreload-sri.html new file mode 100644 index 00000000000..ea32a6a3025 --- /dev/null +++ b/tests/wpt/web-platform-tests/preload/modulepreload-sri.html @@ -0,0 +1,18 @@ + + + + + + + + diff --git a/tests/wpt/web-platform-tests/preload/modulepreload.html b/tests/wpt/web-platform-tests/preload/modulepreload.html index 0e4b6923e32..4764b582619 100644 --- a/tests/wpt/web-platform-tests/preload/modulepreload.html +++ b/tests/wpt/web-platform-tests/preload/modulepreload.html @@ -33,6 +33,15 @@ function attachAndWaitForError(element) { }); } +function attachAndWaitForTimeout(element, t) { + return new Promise((resolve, reject) => { + element.onload = reject; + element.onerror = reject; + t.step_timeout(resolve, 1000); + document.body.appendChild(element); + }); +} + promise_test(function(t) { var link = document.createElement('link'); link.rel = 'modulepreload'; @@ -58,7 +67,7 @@ promise_test(function(t) { document.cookie = 'same=1'; var link = document.createElement('link'); link.rel = 'modulepreload'; - link.crossorigin = 'anonymous'; + link.crossOrigin = 'anonymous'; link.href = 'resources/dummy.js?sameOriginAnonymous'; return attachAndWaitForLoad(link).then(() => { verifyNumberOfDownloads('resources/dummy.js?sameOriginAnonymous', 1); @@ -66,7 +75,7 @@ promise_test(function(t) { // Verify that diff --git a/tests/wpt/web-platform-tests/scroll-animations/css/animation-duration-auto.tentative.html b/tests/wpt/web-platform-tests/scroll-animations/css/animation-duration-auto.tentative.html index 375489c26a4..cfb7cf2c1e4 100644 --- a/tests/wpt/web-platform-tests/scroll-animations/css/animation-duration-auto.tentative.html +++ b/tests/wpt/web-platform-tests/scroll-animations/css/animation-duration-auto.tentative.html @@ -24,14 +24,14 @@ } #scroller { - scroll-timeline: timeline; + scroll-timeline: --timeline; } #element { z-index: -1; animation-name: anim; animation-duration: auto; - animation-timeline: timeline; + animation-timeline: --timeline; }
      diff --git a/tests/wpt/web-platform-tests/scroll-animations/css/animation-range-ignored.html b/tests/wpt/web-platform-tests/scroll-animations/css/animation-range-ignored.html index f08659635ea..dabb4ec5a60 100644 --- a/tests/wpt/web-platform-tests/scroll-animations/css/animation-range-ignored.html +++ b/tests/wpt/web-platform-tests/scroll-animations/css/animation-range-ignored.html @@ -32,8 +32,8 @@ } .animate { animation: anim auto linear; - view-timeline: timeline; - animation-timeline: timeline; + view-timeline: --timeline; + animation-timeline: --timeline; animation-range-start: entry 0%; animation-range-end: entry 100%; } diff --git a/tests/wpt/web-platform-tests/scroll-animations/css/animation-range-normal-matches-cover.html b/tests/wpt/web-platform-tests/scroll-animations/css/animation-range-normal-matches-cover.html index 44b08cab969..a91e3d3e29a 100644 --- a/tests/wpt/web-platform-tests/scroll-animations/css/animation-range-normal-matches-cover.html +++ b/tests/wpt/web-platform-tests/scroll-animations/css/animation-range-normal-matches-cover.html @@ -37,8 +37,8 @@ background-color: green; animation: anim-1 auto linear, anim-2 auto linear; animation-range: normal, cover; - view-timeline: t1; - animation-timeline: t1, t1; + view-timeline: --t1; + animation-timeline: --t1, --t1; } diff --git a/tests/wpt/web-platform-tests/scroll-animations/css/animation-range-visual-test-ref.html b/tests/wpt/web-platform-tests/scroll-animations/css/animation-range-visual-test-ref.html new file mode 100644 index 00000000000..c246f7f1b0a --- /dev/null +++ b/tests/wpt/web-platform-tests/scroll-animations/css/animation-range-visual-test-ref.html @@ -0,0 +1,72 @@ + + + + + + + + + +

      View timeline

      + +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      + + + diff --git a/tests/wpt/web-platform-tests/scroll-animations/css/animation-range-visual-test.html b/tests/wpt/web-platform-tests/scroll-animations/css/animation-range-visual-test.html new file mode 100644 index 00000000000..f675f5108ae --- /dev/null +++ b/tests/wpt/web-platform-tests/scroll-animations/css/animation-range-visual-test.html @@ -0,0 +1,57 @@ + + + + + + + + + + + + +

      View timeline

      + +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      + + + diff --git a/tests/wpt/web-platform-tests/scroll-animations/css/animation-shorthand.html b/tests/wpt/web-platform-tests/scroll-animations/css/animation-shorthand.html index 7bd17b99190..a17dd431264 100644 --- a/tests/wpt/web-platform-tests/scroll-animations/css/animation-shorthand.html +++ b/tests/wpt/web-platform-tests/scroll-animations/css/animation-shorthand.html @@ -49,7 +49,7 @@ test((t) => { }); target.style.animation = 'anim 1s'; - target.style.animationTimeline = 'timeline'; + target.style.animationTimeline = '--timeline'; assert_equals(target.style.animation, ''); assert_equals(target.style.animationName, 'anim'); assert_equals(target.style.animationDuration, '1s'); @@ -61,7 +61,7 @@ test((t) => { }); target.style.animation = 'anim 1s'; - target.style.animationTimeline = 'timeline'; + target.style.animationTimeline = '--timeline'; assert_equals(getComputedStyle(target).animation, ''); assert_equals(getComputedStyle(target).animationName, 'anim'); assert_equals(getComputedStyle(target).animationDuration, '1s'); diff --git a/tests/wpt/web-platform-tests/scroll-animations/css/animation-timeline-computed.html b/tests/wpt/web-platform-tests/scroll-animations/css/animation-timeline-computed.html index 7759e799c62..1e621eee531 100644 --- a/tests/wpt/web-platform-tests/scroll-animations/css/animation-timeline-computed.html +++ b/tests/wpt/web-platform-tests/scroll-animations/css/animation-timeline-computed.html @@ -5,15 +5,15 @@
      diff --git a/tests/wpt/web-platform-tests/scroll-animations/css/animation-timeline-ignored.tentative.html b/tests/wpt/web-platform-tests/scroll-animations/css/animation-timeline-ignored.tentative.html index 0ac7a9d63e8..8992cdc174f 100644 --- a/tests/wpt/web-platform-tests/scroll-animations/css/animation-timeline-ignored.tentative.html +++ b/tests/wpt/web-platform-tests/scroll-animations/css/animation-timeline-ignored.tentative.html @@ -8,7 +8,7 @@ overflow: hidden; height: 0px; scroll-timeline-attachment: defer; - scroll-timeline-name: timeline1, timeline2, timeline3; + scroll-timeline-name: --timeline1, --timeline2, --timeline3; } .scroller { overflow: hidden; @@ -24,13 +24,13 @@ to { width: 200px; } } #scroller1 { - scroll-timeline-name: timeline1; + scroll-timeline-name: --timeline1; } #scroller2 { - scroll-timeline-name: timeline2; + scroll-timeline-name: --timeline2; } #scroller3 { - scroll-timeline-name: timeline3; + scroll-timeline-name: --timeline3; } #element { width: 0px; @@ -38,10 +38,10 @@ animation-name: expand; animation-duration: 1000s; animation-timing-function: linear; - animation-timeline: timeline1; + animation-timeline: --timeline1; } /* Ensure stable expectations if feature is not supported */ - @supports not (animation-timeline:foo) { + @supports not (animation-timeline:--foo) { #element { animation-play-state: paused; } } @@ -82,7 +82,7 @@ test_animation_timeline(async () => { await waitForNextFrame(); assert_equals(getComputedStyle(element).width, '120px'); - element.style = 'animation-timeline:timeline2'; + element.style = 'animation-timeline:--timeline2'; assert_equals(getComputedStyle(element).width, '140px'); }, 'Changing animation-timeline changes the timeline (sanity check)'); @@ -100,7 +100,7 @@ assert_equals(getComputedStyle(element).width, '180px'); // Changing the animation-timeline property should have no effect. - element.style = 'animation-timeline:timeline2'; + element.style = 'animation-timeline:--timeline2'; assert_equals(getComputedStyle(element).width, '180px'); }, 'animation-timeline ignored after setting timeline with JS (ScrollTimeline from JS)'); @@ -110,14 +110,14 @@ let animation = element.getAnimations()[0]; let timeline1 = animation.timeline; - element.style = 'animation-timeline:timeline2'; + element.style = 'animation-timeline:--timeline2'; assert_equals(getComputedStyle(element).width, '140px'); animation.timeline = timeline1; assert_equals(getComputedStyle(element).width, '120px'); // Should have no effect. - element.style = 'animation-timeline:timeline3'; + element.style = 'animation-timeline:--timeline3'; assert_equals(getComputedStyle(element).width, '120px'); }, 'animation-timeline ignored after setting timeline with JS (ScrollTimeline from CSS)'); @@ -130,7 +130,7 @@ assert_equals(getComputedStyle(element).width, '120px'); // Changing the animation-timeline property should have no effect. - element.style = 'animation-timeline:timeline2'; + element.style = 'animation-timeline:--timeline2'; assert_equals(getComputedStyle(element).width, '120px'); }, 'animation-timeline ignored after setting timeline with JS (document timeline)'); @@ -141,7 +141,7 @@ assert_equals(getComputedStyle(element).width, '120px'); // Changing the animation-timeline property should have no effect. - element.style = 'animation-timeline:timeline2'; + element.style = 'animation-timeline:--timeline2'; assert_equals(getComputedStyle(element).width, '120px'); }, 'animation-timeline ignored after setting timeline with JS (null)'); diff --git a/tests/wpt/web-platform-tests/scroll-animations/css/animation-timeline-in-keyframe.html b/tests/wpt/web-platform-tests/scroll-animations/css/animation-timeline-in-keyframe.html index 75483331390..04b430c3242 100644 --- a/tests/wpt/web-platform-tests/scroll-animations/css/animation-timeline-in-keyframe.html +++ b/tests/wpt/web-platform-tests/scroll-animations/css/animation-timeline-in-keyframe.html @@ -6,8 +6,8 @@ diff --git a/tests/wpt/web-platform-tests/scroll-animations/css/animation-timeline-named-scroll-progress-timeline.tentative.html b/tests/wpt/web-platform-tests/scroll-animations/css/animation-timeline-named-scroll-progress-timeline.tentative.html index ed2c32d31e9..71df9ceda87 100644 --- a/tests/wpt/web-platform-tests/scroll-animations/css/animation-timeline-named-scroll-progress-timeline.tentative.html +++ b/tests/wpt/web-platform-tests/scroll-animations/css/animation-timeline-named-scroll-progress-timeline.tentative.html @@ -13,6 +13,11 @@ from { translate: 50px; } to { translate: 150px; } } + @keyframes anim-2 { + from { z-index: 0; } + to { z-index: 100; } + } + #target { width: 100px; height: 100px; @@ -74,6 +79,18 @@ function createScrollerAndTarget(t, scrollerSizeClass) { return [createScroller(t, scrollerSizeClass), createTarget(t)]; } +async function waitForScrollTop(scroller, percentage) { + const maxScroll = scroller.scrollHeight - scroller.clientHeight; + scroller.scrollTop = maxScroll * percentage / 100; + return waitForNextFrame(); +} + +async function waitForScrollLeft(scroller, percentage) { + const maxScroll = scroller.scrollWidth - scroller.clientWidth; + scroller.scrollLeft = maxScroll * percentage / 100; + return waitForNextFrame(); +} + // ------------------------- // Test scroll-timeline-name // ------------------------- @@ -91,11 +108,11 @@ promise_test(async t => { document.body.appendChild(target); target.appendChild(content); - target.style.scrollTimelineName = 'timeline'; + target.style.scrollTimelineName = '--timeline'; target.style.animation = "anim 10s linear"; - target.style.animationTimeline = 'timeline'; + target.style.animationTimeline = '--timeline'; - target.scrollTop = 50; // 50%, in [0, 100]. + target.scrollTop = 50; // 50% await waitForNextFrame(); assert_equals(getComputedStyle(target).translate, '100px'); @@ -114,299 +131,77 @@ promise_test(async t => { document.body.appendChild(parent); parent.insertBefore(target, parent.firstElementChild); - parent.style.scrollTimelineName = 'timeline'; + parent.style.scrollTimelineName = '--timeline'; target.style.animation = "anim 10s linear"; - target.style.animationTimeline = 'timeline'; + target.style.animationTimeline = '--timeline'; - parent.scrollTop = 100; // 50%, in [0, 200]. + parent.scrollTop = 100; // 50% await waitForNextFrame(); assert_equals(getComputedStyle(target).translate, '100px'); }, "scroll-timeline-name is referenceable in animation-timeline on that " + "element's descendants"); -promise_test(async t => { - let [sibling, target] = createScrollerAndTarget(t); - - //
      ...
      - //
      - document.body.appendChild(sibling); - document.body.appendChild(target); - - sibling.style.scrollTimelineName = 'timeline'; - target.style.animation = "anim 10s linear"; - target.style.animationTimeline = 'timeline'; - - sibling.scrollTop = 50; // 50%, in [0, 100]. - await waitForNextFrame(); - assert_equals(getComputedStyle(target).translate, '100px'); -}, "scroll-timeline-name is referenceable in animation-timeline on that " + - "element's following siblings"); - -promise_test(async t => { - let [sibling, target] = createScrollerAndTarget(t); - let parent = document.createElement('div'); - - //
      ...
      - //
      - //
      - //
      - document.body.appendChild(sibling); - document.body.appendChild(parent); - parent.appendChild(target); - - sibling.style.scrollTimelineName = 'timeline'; - target.style.animation = "anim 10s linear"; - target.style.animationTimeline = 'timeline'; - - sibling.scrollTop = 50; // 50%, in [0, 100]. - await waitForNextFrame(); - assert_equals(getComputedStyle(target).translate, '100px'); - - parent.remove(); -}, "scroll-timeline-name is referenceable in animation-timeline on that " + - "element's following siblings' descendants"); - -// FIXME: We may use global scope for scroll-timeline-name. // See https://github.com/w3c/csswg-drafts/issues/7047 promise_test(async t => { let [sibling, target] = createScrollerAndTarget(t); - //
      //
      ...
      - document.body.appendChild(target); + //
      document.body.appendChild(sibling); + document.body.appendChild(target); - sibling.style.scrollTimelineName = 'timeline'; + // Resolvable if using a deferred timeline, but otherwise can only resolve + // if an ancestor container of the target element. + sibling.style.scrollTimelineName = '--timeline'; target.style.animation = "anim 10s linear"; - target.style.animationTimeline = 'timeline'; + target.style.animationTimeline = '--timeline'; - sibling.scrollTop = 50; // 50%, in [0, 100]. + sibling.scrollTop = 50; // 50% await waitForNextFrame(); assert_equals(getComputedStyle(target).translate, '50px', 'Animation with unknown timeline name holds current time at zero'); }, "scroll-timeline-name is not referenceable in animation-timeline on that " + - "element's previous siblings"); + "element's siblings"); promise_test(async t => { - let [sibling, target] = createScrollerAndTarget(t); let parent = document.createElement('div'); - parent.className = 'scroller square-container'; - let content = document.createElement('div'); - content.className = 'content'; - - //
      - //
      ...
      - //
      - //
      - //
      - document.body.appendChild(parent); - parent.appendChild(sibling); - parent.appendChild(target); - parent.appendChild(content); - - parent.style.scrollTimelineName = 'timeline'; - parent.style.scrollTimelineAxis = 'inline'; - sibling.style.scrollTimelineName = 'timeline'; - target.style.animation = "anim 10s linear"; - target.style.animationTimeline = 'timeline'; - - parent.scrollTop = 50; // 25%, in [0, 200]. - sibling.scrollTop = 50; // 50%, in [0, 100]. - await waitForNextFrame(); - assert_equals(getComputedStyle(target).translate, '100px'); - - content.remove(); - parent.remove(); -}, 'scroll-timeline-name is matched based on tree order, which considers ' + - 'siblings closer than parents'); - -promise_test(async t => { - let sibling = document.createElement('div'); - sibling.className = 'square'; - sibling.style.overflowX = 'clip'; // This makes overflow-y be clip as well. + parent.className = 'square'; + parent.style.overflowX = 'clip'; // This makes overflow-y be clip as well. let target = document.createElement('div'); target.id = 'target'; - //
      - //
      - document.body.appendChild(sibling); - document.body.appendChild(target); + //
      ... + //
      + //
      + document.body.appendChild(parent); + parent.appendChild(target); - sibling.style.scrollTimelineName = 'timeline'; + parent.style.scrollTimelineName = '--timeline'; target.style.animation = "anim 10s linear"; - target.style.animationTimeline = 'timeline'; + target.style.animationTimeline = '--timeline'; - sibling.scrollTop = 50; // 50%, in [0, 100]. await waitForNextFrame(); assert_equals(getComputedStyle(target).translate, 'none', 'Animation with an unresolved current time'); target.remove(); - sibling.remove(); + parent.remove(); }, 'scroll-timeline-name on an element which is not a scroll-container'); promise_test(async t => { - let [sibling, target] = createScrollerAndTarget(t); - let main = document.createElement('div'); - main.id = 'name'; + let [scroller, target] = createScrollerAndTarget(t); - //
      - //
      ...
      + //
      ... //
      //
      - document.body.appendChild(main); - main.appendChild(sibling); - main.appendChild(target); - - target.style.animation = 'anim 10s linear'; - target.style.animationTimeline = 'timeline'; - sibling.scrollTop = 50; // 50%, in [50, 150]. - await waitForNextFrame(); - - // Unknown animation-timeline, current time held at zero. - assert_equals(getComputedStyle(target).translate, '50px'); - - // Ensure that #main (an ancestor of the scroller) needs style recalc. - main.style.background = 'lightgray'; - sibling.style.scrollTimelineName = 'timeline'; - await waitForCSSScrollTimelineStyle(); - assert_equals(getComputedStyle(target).translate, '100px'); - - main.remove(); -}, 'scroll-timeline-name affects subsequent siblings when changed'); - -promise_test(async t => { - let target = createTarget(t); - - //
      - document.body.appendChild(target); - - target.style.animation = 'anim 10s linear'; - target.style.animationTimeline = 'timeline'; - - // Unknown animation-timeline, current time held at zero. - assert_equals(getComputedStyle(target).translate, '50px'); - - let scroller = createScroller(t); - //
      ...
      - //
      - document.body.insertBefore(scroller, target); - scroller.style.scrollTimelineName = 'timeline'; - - await waitForNextFrame(); - assert_equals(getComputedStyle(target).translate, '50px'); - - // Ensure that time is not just held at zero. - scroller.scrollTop = 50; // 50%, in [50, 150]. - await waitForNextFrame(); - assert_equals(getComputedStyle(target).translate, '100px'); -}, 'scroll-timeline-name on inserted element affects subsequent siblings'); - -promise_test(async t => { - let [scroller, target] = createScrollerAndTarget(t); - - //
      ...
      - //
      - document.body.appendChild(scroller); - document.body.appendChild(target); - - scroller.scrollTop = 50; // 50%, in [50, 150]. - await waitForNextFrame(); - - scroller.style.scrollTimelineName = 'timeline'; - target.style.animation = 'anim 10s linear'; - target.style.animationTimeline = 'timeline'; - await waitForCSSScrollTimelineStyle(); - - assert_equals(getComputedStyle(target).translate, '100px'); - const anim = target.getAnimations()[0]; - assert_percents_equal(anim.startTime, 0); - assert_percents_equal(anim.currentTime, 50); - - // This effectively removes the CSS-created ScrollTimeline on this element, - // thus invoking "setting the timeline of an animation" [1] with a null- - // timeline on affected elements. This in turn runs the procedure to set the - // current time to previous progress * end time. Ultimately, this sets the - // hold time of the animation. - - // [1] https://www.w3.org/TR/web-animations-2/#setting-the-timeline - // [2] https://www.w3.org/TR/web-animations-2/ - // #setting-the-current-time-of-an-animation - scroller.remove(); - await waitForNextFrame(); - assert_equals(getComputedStyle(target).translate, '100px'); - assert_equals(anim.startTime, null); - assert_times_equal(anim.currentTime, 5000); -}, 'scroll-timeline-name on removed element affects subsequent siblings'); - -promise_test(async t => { - let [scroller, target] = createScrollerAndTarget(t); - - // - //
      - scroller.style.display = 'none'; - document.body.appendChild(scroller); - document.body.appendChild(target); - - scroller.style.scrollTimelineName = 'timeline'; - target.style.animation = 'anim 10s linear'; - target.style.animationTimeline = 'timeline'; - - // Unknown animation-timeline, current time held at zero. - assert_equals(getComputedStyle(target).translate, '50px'); - - scroller.style.display = 'block'; - scroller.scrollTop = 50; // 50%, in [50, 150]. - await waitForNextFrame(); - - assert_equals(getComputedStyle(target).translate, '100px'); -}, 'scroll-timeline-name on element leaving display:none affects subsequent siblings'); - -promise_test(async t => { - let [scroller, target] = createScrollerAndTarget(t); - - //
      ...
      - //
      - document.body.appendChild(scroller); - document.body.appendChild(target); - - scroller.scrollTop = 50; // 50%, in [50, 150]. - await waitForNextFrame(); - - scroller.style.scrollTimelineName = 'timeline'; - target.style.animation = 'anim 10s linear'; - target.style.animationTimeline = 'timeline'; - await waitForCSSScrollTimelineStyle(); - - assert_equals(getComputedStyle(target).translate, '100px'); - const anim = target.getAnimations()[0]; - assert_percents_equal(anim.startTime, 0); - assert_percents_equal(anim.currentTime, 50); - - // See comment in the test "scroll-timeline-name on removed element ..." for - // an explantation of this result. (Setting display:none is similar to - // removing the element). - scroller.style.display = 'none'; - await waitForNextFrame(); - assert_equals(getComputedStyle(target).translate, '100px'); - assert_equals(anim.startTime, null); - assert_times_equal(anim.currentTime, 5000); - -}, 'scroll-timeline-name on element becoming display:none affects subsequent siblings'); - -promise_test(async t => { - let [scroller, target] = createScrollerAndTarget(t); - - //
      ...
      - //
      document.body.appendChild(scroller); - document.body.appendChild(target); + scroller.appendChild(target); - scroller.style.scrollTimelineName = 'timeline'; - scroller.style.display = 'none'; + scroller.style.scrollTimelineName = '--timeline-A'; + scroller.scrollTop = 50; // 25% target.style.animation = "anim 10s linear"; - target.style.animationTimeline = 'timeline'; + target.style.animationTimeline = '--timeline-B'; await waitForNextFrame(); @@ -416,75 +211,45 @@ promise_test(async t => { // Hold time of animation is zero. assert_equals(getComputedStyle(target).translate, '50px'); - scroller.style.display = 'block'; - scroller.scrollTop = 50; + scroller.style.scrollTimelineName = '--timeline-B'; await waitForNextFrame(); assert_true(!!anim.timeline, 'Failed to create timeline'); - assert_equals(getComputedStyle(target).translate, '100px'); - -}, 'scroll-timeline-name on element not resolved until element becomes visible'); - -promise_test(async t => { - let [scroller, target] = createScrollerAndTarget(t); - - //
      ...
      - //
      - - document.body.appendChild(scroller); - document.body.appendChild(target); - - scroller.style.scrollTimelineName = 'timeline-A'; - scroller.scrollTop = 50; - target.style.animation = "anim 10s linear"; - target.style.animationTimeline = 'timeline-B'; - - await waitForNextFrame(); - - const anim = target.getAnimations()[0]; - assert_true(!!anim, 'Failed to create animation'); - assert_equals(anim.timeline, null); - // Hold time of animation is zero. - assert_equals(getComputedStyle(target).translate, '50px'); - - scroller.style.scrollTimelineName = 'timeline-B'; - await waitForNextFrame(); - - assert_true(!!anim.timeline, 'Failed to create timeline'); - assert_equals(getComputedStyle(target).translate, '100px'); - + assert_equals(getComputedStyle(target).translate, '75px'); }, 'Change in scroll-timeline-name to match animation timeline updates animation.'); promise_test(async t => { let [scroller, target] = createScrollerAndTarget(t); - //
      ...
      - //
      + //
      ... + //
      + //
      document.body.appendChild(scroller); - document.body.appendChild(target); + scroller.appendChild(target); - scroller.style.scrollTimelineName = 'timeline-A'; - scroller.scrollTop = 50; + scroller.style.scrollTimelineName = '--timeline-A'; + scroller.scrollTop = 50; // 25% target.style.animation = "anim 10s linear"; - target.style.animationTimeline = 'timeline-A'; + target.style.animationTimeline = '--timeline-A'; await waitForNextFrame(); const anim = target.getAnimations()[0]; assert_true(!!anim, 'Failed to create animation'); assert_true(!!anim.timeline, 'Failed to create timeline'); - assert_equals(getComputedStyle(target).translate, '100px'); + assert_equals(getComputedStyle(target).translate, '75px'); assert_percents_equal(anim.startTime, 0); - assert_percents_equal(anim.currentTime, 50); + assert_percents_equal(anim.currentTime, 25); - scroller.style.scrollTimelineName = 'timeline-B'; + scroller.style.scrollTimelineName = '--timeline-B'; await waitForNextFrame(); + // Switching to a null timeline pauses the animation. assert_equals(anim.timeline, null, 'Failed to remove timeline'); - assert_equals(getComputedStyle(target).translate, '100px'); + assert_equals(getComputedStyle(target).translate, '75px'); assert_equals(anim.startTime, null); - assert_times_equal(anim.currentTime, 5000); + assert_times_equal(anim.currentTime, 2500); }, 'Change in scroll-timeline-name to no longer match animation timeline updates animation.'); promise_test(async t => { @@ -493,55 +258,23 @@ promise_test(async t => { let scroller2 = createScroller(t); target.style.animation = 'anim 10s linear'; - target.style.animationTimeline = 'timeline'; - scroller1.style.scrollTimelineName = 'timeline'; - scroller2.style.scrollTimelineName = 'timeline'; + target.style.animationTimeline = '--timeline'; + scroller1.style.scrollTimelineName = '--timeline'; scroller1.id = 'A'; scroller2.id = 'B'; - //
      ...
      (scroller1) - //
      ...
      (scroller2) - //
      + //
      ... + //
      ... + //
      + //
      + //
      document.body.appendChild(scroller1); - document.body.appendChild(scroller2); - document.body.append(target); + scroller1.appendChild(scroller2); + scroller2.appendChild(target); - scroller1.scrollTop = 10; // 10%, in [50, 150]. - scroller2.scrollTop = 50; // 50%, in [50, 150]. - await waitForNextFrame(); - - - // The named timeline lookup should select scroller2. - let anim = target.getAnimations()[0]; - assert_true(!!anim, 'Failed to fetch animation'); - assert_equals(anim.timeline.source.id, 'B'); - assert_equals(getComputedStyle(target).translate, '100px'); - - scroller2.remove(); - - // Now it should select scroller1. - anim = target.getAnimations()[0]; - assert_true(!!anim, 'Failed to fetch animation after update'); - assert_true(!!anim.timeline, 'Animation no longer has a timeline'); - assert_equals(anim.timeline.source.id, 'A', 'Timeline not updated'); - assert_equals(getComputedStyle(target).translate, '60px'); -}, 'Timeline lookup finds next candidate when element is removed'); - -promise_test(async t => { - let target = createTarget(t); - let scroller1 = createScroller(t); - - target.style.animation = 'anim 10s linear'; - target.style.animationTimeline = 'timeline'; - scroller1.style.scrollTimelineName = 'timeline'; - scroller1.id = 'A'; - - //
      ...
      (scroller1) - //
      - document.body.appendChild(scroller1); - document.body.append(target); - - scroller1.scrollTop = 10; // 10%, in [50, 150]. + scroller1.style.scrollTimelineName = '--timeline'; + scroller1.scrollTop = 50; // 25% + scroller2.scrollTop = 100; // 50% await waitForNextFrame(); @@ -549,21 +282,9 @@ promise_test(async t => { assert_true(!!anim.timeline, 'Failed to retrieve animation'); assert_equals(anim.timeline.source.id, 'A'); - assert_equals(getComputedStyle(target).translate, '60px'); - - await waitForNextFrame(); - - let scroller2 = createScroller(t); - scroller2.style.scrollTimelineName = 'timeline'; - scroller2.id = 'B'; - - //
      ...
      (scroller1) - //
      ...
      (scroller2) - //
      - document.body.insertBefore(scroller2, target); - - scroller2.scrollTop = 50; // 50%, in [50, 150]. + assert_equals(getComputedStyle(target).translate, '75px'); + scroller2.style.scrollTimelineName = '--timeline'; await waitForNextFrame(); // The timeline should be updated to scroller2. @@ -573,12 +294,17 @@ promise_test(async t => { }, 'Timeline lookup updates candidate when closer match available.'); promise_test(async t => { + let wrapper = createScroller(t); + wrapper.classList.remove('scroller'); let target = createTarget(t); - //
      - document.body.append(target); + //
      ... + //
      + //
      + document.body.appendChild(wrapper); + wrapper.appendChild(target); target.style.animation = "anim 10s linear"; - target.style.animationTimeline = 'timeline'; + target.style.animationTimeline = '--timeline'; await waitForNextFrame(); @@ -589,21 +315,20 @@ promise_test(async t => { await waitForNextFrame(); - let scroller = createScroller(t); - scroller.style.scrollTimelineName = 'timeline'; - - //
      ...
      (scroller1) - //
      - document.body.insertBefore(scroller, target); - - scroller.scrollTop = 50; // 50%, in [50, 150]. + wrapper.classList.add('scroller'); + wrapper.style.scrollTimelineName = '--timeline'; + //
      ... + //
      + //
      + wrapper.scrollTop = 50; // 25% await waitForNextFrame(); // The timeline should be updated to scroller. - assert_equals(getComputedStyle(target).translate, '100px'); + assert_equals(getComputedStyle(target).translate, '75px'); }, 'Timeline lookup updates candidate when match becomes available.'); + // ------------------------- // Test scroll-timeline-axis // ------------------------- @@ -612,84 +337,94 @@ promise_test(async t => { let [scroller, target] = createScrollerAndTarget(t); scroller.style.writingMode = 'vertical-lr'; + //
      ... + //
      + //
      document.body.appendChild(scroller); - document.body.appendChild(target); + scroller.appendChild(target); - scroller.style.scrollTimeline = 'timeline block'; - target.style.animation = "anim 10s linear"; - target.style.animationTimeline = 'timeline'; + scroller.style.scrollTimeline = '--timeline block'; + target.style.animation = "anim-2 10s linear"; + target.style.animationTimeline = '--timeline'; - scroller.scrollLeft = 50; - await waitForNextFrame(); - assert_equals(getComputedStyle(target).translate, '100px'); + await waitForScrollLeft(scroller, 50); + assert_equals(getComputedStyle(target).zIndex, '50'); }, 'scroll-timeline-axis is block'); promise_test(async t => { let [scroller, target] = createScrollerAndTarget(t); scroller.style.writingMode = 'vertical-lr'; + //
      ... + //
      + //
      document.body.appendChild(scroller); - document.body.appendChild(target); + scroller.appendChild(target); - scroller.style.scrollTimeline = 'timeline inline'; - target.style.animation = "anim 10s linear"; - target.style.animationTimeline = 'timeline'; + scroller.style.scrollTimeline = '--timeline inline'; + target.style.animation = "anim-2 10s linear"; + target.style.animationTimeline = '--timeline'; - scroller.scrollTop = 50; - await waitForNextFrame(); - assert_equals(getComputedStyle(target).translate, '100px'); + await waitForScrollTop(scroller, 50); + assert_equals(getComputedStyle(target).zIndex, '50'); }, 'scroll-timeline-axis is inline'); promise_test(async t => { let [scroller, target] = createScrollerAndTarget(t); scroller.style.writingMode = 'vertical-lr'; + //
      ... + //
      + //
      document.body.appendChild(scroller); - document.body.appendChild(target); + scroller.appendChild(target); - scroller.style.scrollTimeline = 'timeline horizontal'; - target.style.animation = "anim 10s linear"; - target.style.animationTimeline = 'timeline'; + scroller.style.scrollTimeline = '--timeline x'; + target.style.animation = "anim-2 10s linear"; + target.style.animationTimeline = '--timeline'; - scroller.scrollLeft = 50; - await waitForNextFrame(); - assert_equals(getComputedStyle(target).translate, '100px'); -}, 'scroll-timeline-axis is horizontal'); + await waitForScrollLeft(scroller, 50); + assert_equals(getComputedStyle(target).zIndex, '50'); +}, 'scroll-timeline-axis is x'); promise_test(async t => { let [scroller, target] = createScrollerAndTarget(t); scroller.style.writingMode = 'vertical-lr'; + //
      ... + //
      + //
      document.body.appendChild(scroller); - document.body.appendChild(target); + scroller.appendChild(target); - scroller.style.scrollTimeline = 'timeline vertical'; - target.style.animation = "anim 10s linear"; - target.style.animationTimeline = 'timeline'; + scroller.style.scrollTimeline = '--timeline y'; + target.style.animation = "anim-2 10s linear"; + target.style.animationTimeline = '--timeline'; - scroller.scrollTop = 50; - await waitForNextFrame(); - assert_equals(getComputedStyle(target).translate, '100px'); -}, 'scroll-timeline-axis is vertical'); + await waitForScrollTop(scroller, 50); + assert_equals(getComputedStyle(target).zIndex, '50'); +}, 'scroll-timeline-axis is y'); promise_test(async t => { let [scroller, target] = createScrollerAndTarget(t); + //
      ... + //
      + //
      document.body.appendChild(scroller); - document.body.appendChild(target); + scroller.appendChild(target); - scroller.style.scrollTimeline = 'timeline block'; - target.style.animation = "anim 10s linear"; - target.style.animationTimeline = 'timeline'; + scroller.style.scrollTimeline = '--timeline block'; + target.style.animation = "anim-2 10s linear"; + target.style.animationTimeline = '--timeline'; - scroller.scrollTop = 50; - scroller.scrollLeft = 25; - await waitForNextFrame(); - assert_equals(getComputedStyle(target).translate, '100px'); + await waitForScrollTop(scroller, 25); + await waitForScrollLeft(scroller, 75); + assert_equals(getComputedStyle(target).zIndex, '25'); scroller.style.scrollTimelineAxis = 'inline'; await waitForNextFrame(); - assert_equals(getComputedStyle(target).translate, '75px'); + assert_equals(getComputedStyle(target).zIndex, '75'); }, 'scroll-timeline-axis is mutated'); diff --git a/tests/wpt/web-platform-tests/scroll-animations/css/animation-timeline-none.html b/tests/wpt/web-platform-tests/scroll-animations/css/animation-timeline-none.html index a8e07a44d6d..7092523c489 100644 --- a/tests/wpt/web-platform-tests/scroll-animations/css/animation-timeline-none.html +++ b/tests/wpt/web-platform-tests/scroll-animations/css/animation-timeline-none.html @@ -20,7 +20,7 @@ animation-timeline: none; } #element_unknown_timeline { - animation-timeline: unknown_timeline; + animation-timeline: --unknown_timeline; } diff --git a/tests/wpt/web-platform-tests/scroll-animations/css/animation-timeline-parsing.html b/tests/wpt/web-platform-tests/scroll-animations/css/animation-timeline-parsing.html index 4916f7726f9..f0061c5705d 100644 --- a/tests/wpt/web-platform-tests/scroll-animations/css/animation-timeline-parsing.html +++ b/tests/wpt/web-platform-tests/scroll-animations/css/animation-timeline-parsing.html @@ -16,10 +16,11 @@ test_valid_value('animation-timeline', 'auto, auto'); test_valid_value('animation-timeline', 'none, none'); test_valid_value('animation-timeline', 'auto, none'); test_valid_value('animation-timeline', 'none, auto'); -test_valid_value('animation-timeline', 'test'); -test_valid_value('animation-timeline', 'test1, test2'); -test_valid_value('animation-timeline', 'test1, test2, none, test3, auto', ["test1, test2, none, test3, auto", 'test1, test2, none, test3, auto']); +test_valid_value('animation-timeline', '--test'); +test_valid_value('animation-timeline', '--test1, --test2'); +test_valid_value('animation-timeline', '--test1, --test2, none, --test3, auto'); +test_invalid_value('animation-timeline', 'test1'); test_invalid_value('animation-timeline', '10px'); test_invalid_value('animation-timeline', 'auto auto'); test_invalid_value('animation-timeline', 'none none'); @@ -32,13 +33,13 @@ test_invalid_value('animation-timeline', '"test"'); // https://drafts.csswg.org/scroll-animations-1/#scroll-notation // // animation-timeline: scroll(? ?); -// = block | inline | vertical | horizontal +// = block | inline | x | y // = root | nearest | self test_valid_value('animation-timeline', 'scroll()'); test_valid_value('animation-timeline', 'scroll(block)', 'scroll()'); test_valid_value('animation-timeline', 'scroll(inline)'); -test_valid_value('animation-timeline', 'scroll(horizontal)'); -test_valid_value('animation-timeline', 'scroll(vertical)'); +test_valid_value('animation-timeline', 'scroll(x)'); +test_valid_value('animation-timeline', 'scroll(y)'); test_valid_value('animation-timeline', 'scroll(root)'); test_valid_value('animation-timeline', 'scroll(nearest)', 'scroll()'); test_valid_value('animation-timeline', 'scroll(self)'); @@ -46,27 +47,27 @@ test_valid_value('animation-timeline', 'scroll(inline nearest)', 'scroll(inline) test_valid_value('animation-timeline', 'scroll(nearest inline)', 'scroll(inline)'); test_valid_value('animation-timeline', 'scroll(block self)', 'scroll(self)'); test_valid_value('animation-timeline', 'scroll(self block)', 'scroll(self)'); -test_valid_value('animation-timeline', 'scroll(vertical root)', 'scroll(root vertical)'); +test_valid_value('animation-timeline', 'scroll(y root)', 'scroll(root y)'); test_invalid_value('animation-timeline', 'scroll(abc root)'); test_invalid_value('animation-timeline', 'scroll(abc)'); -test_invalid_value('animation-timeline', 'scroll(vertical abc)'); +test_invalid_value('animation-timeline', 'scroll(y abc)'); test_invalid_value('animation-timeline', 'scroll("string")'); // https://drafts.csswg.org/scroll-animations-1/#view-notation test_valid_value('animation-timeline', 'view()'); test_valid_value('animation-timeline', 'view(block)', 'view()'); test_valid_value('animation-timeline', 'view(inline)'); -test_valid_value('animation-timeline', 'view(horizontal)'); -test_valid_value('animation-timeline', 'view(vertical)'); -test_valid_value('animation-timeline', 'view(vertical 1px 2px)'); -test_valid_value('animation-timeline', 'view(vertical 1px)'); -test_valid_value('animation-timeline', 'view(vertical auto)', 'view(vertical)'); -test_valid_value('animation-timeline', 'view(vertical auto auto)', 'view(vertical)'); -test_valid_value('animation-timeline', 'view(vertical auto 1px)'); -test_valid_value('animation-timeline', 'view(1px 2px vertical)', 'view(vertical 1px 2px)'); -test_valid_value('animation-timeline', 'view(1px vertical)', 'view(vertical 1px)'); -test_valid_value('animation-timeline', 'view(auto horizontal)', 'view(horizontal)'); +test_valid_value('animation-timeline', 'view(x)'); +test_valid_value('animation-timeline', 'view(y)'); +test_valid_value('animation-timeline', 'view(y 1px 2px)'); +test_valid_value('animation-timeline', 'view(y 1px)'); +test_valid_value('animation-timeline', 'view(y auto)', 'view(y)'); +test_valid_value('animation-timeline', 'view(y auto auto)', 'view(y)'); +test_valid_value('animation-timeline', 'view(y auto 1px)'); +test_valid_value('animation-timeline', 'view(1px 2px y)', 'view(y 1px 2px)'); +test_valid_value('animation-timeline', 'view(1px y)', 'view(y 1px)'); +test_valid_value('animation-timeline', 'view(auto x)', 'view(x)'); test_valid_value('animation-timeline', 'view(1px 2px)'); test_valid_value('animation-timeline', 'view(1px)'); test_valid_value('animation-timeline', 'view(1px 1px)', 'view(1px)'); @@ -75,11 +76,11 @@ test_valid_value('animation-timeline', 'view(auto calc(1% + 1px))'); test_valid_value('animation-timeline', 'view(auto)', 'view()'); test_valid_value('animation-timeline', 'view(auto auto)', 'view()'); -test_invalid_value('animation-timeline', 'view(vertical 1px 2px 3px)'); -test_invalid_value('animation-timeline', 'view(1px vertical 3px)'); +test_invalid_value('animation-timeline', 'view(y 1px 2px 3px)'); +test_invalid_value('animation-timeline', 'view(1px y 3px)'); test_invalid_value('animation-timeline', 'view(1px 2px 3px)'); test_invalid_value('animation-timeline', 'view(abc block)'); test_invalid_value('animation-timeline', 'view(abc)'); -test_invalid_value('animation-timeline', 'view(vertical abc)'); +test_invalid_value('animation-timeline', 'view(y abc)'); test_invalid_value('animation-timeline', 'view("string")'); diff --git a/tests/wpt/web-platform-tests/scroll-animations/css/animation-timeline-scroll-functional-notation.tentative.html b/tests/wpt/web-platform-tests/scroll-animations/css/animation-timeline-scroll-functional-notation.tentative.html index 09917b4ba56..0bba4a03f40 100644 --- a/tests/wpt/web-platform-tests/scroll-animations/css/animation-timeline-scroll-functional-notation.tentative.html +++ b/tests/wpt/web-platform-tests/scroll-animations/css/animation-timeline-scroll-functional-notation.tentative.html @@ -143,21 +143,21 @@ promise_test(async t => { let [container, div] = createTargetWithStuff(t, 'block-content'); container.style.writingMode = 'vertical-lr'; div.style.animation = "anim 10s linear"; - div.style.animationTimeline = "scroll(horizontal)"; + div.style.animationTimeline = "scroll(x)"; await scrollLeft(container, 50); assert_equals(getComputedStyle(div).translate, '100px'); -}, 'animation-timeline: scroll(horizontal)'); +}, 'animation-timeline: scroll(x)'); promise_test(async t => { let [container, div] = createTargetWithStuff(t, 'inline-content'); container.style.writingMode = 'vertical-lr'; div.style.animation = "anim 10s linear"; - div.style.animationTimeline = "scroll(vertical)"; + div.style.animationTimeline = "scroll(y)"; await scrollTop(container, 50); assert_equals(getComputedStyle(div).translate, '100px'); -}, 'animation-timeline: scroll(vertical)'); +}, 'animation-timeline: scroll(y)'); // TODO: Add more tests which change the overflow property of the container for // scroll(nearest) diff --git a/tests/wpt/web-platform-tests/scroll-animations/css/animation-timeline-view-functional-notation.tentative.html b/tests/wpt/web-platform-tests/scroll-animations/css/animation-timeline-view-functional-notation.tentative.html index 745d76c7294..8a62199b524 100644 --- a/tests/wpt/web-platform-tests/scroll-animations/css/animation-timeline-view-functional-notation.tentative.html +++ b/tests/wpt/web-platform-tests/scroll-animations/css/animation-timeline-view-functional-notation.tentative.html @@ -202,7 +202,7 @@ promise_test(async t => { let [container, div] = createTargetWithStuff(t, ['target', 'content']); container.style.overflow = 'hidden'; div.style.animation = "fade-out-without-timeline-range 1s linear"; - div.style.animationTimeline = "view(horizontal)"; + div.style.animationTimeline = "view(x)"; // So the range is [-200px, 100px], but it is impossible to scroll to the // negative part. @@ -214,12 +214,12 @@ promise_test(async t => { assert_equals(getComputedStyle(div).opacity, '0.2', 'At 80%'); await scrollLeft(container, 100); assert_equals(getComputedStyle(div).opacity, '0', 'At 100%'); -}, 'animation-timeline: view(horizontal) without timeline range name'); +}, 'animation-timeline: view(x) without timeline range name'); promise_test(async t => { let [container, div] = createTargetWithStuff(t, ['target', 'content']); div.style.animation = "fade-out-without-timeline-range 1s linear"; - div.style.animationTimeline = "view(vertical)"; + div.style.animationTimeline = "view(y)"; // So the range is [-200px, 100px], but it is impossible to scroll to the // negative part. @@ -231,13 +231,13 @@ promise_test(async t => { assert_equals(getComputedStyle(div).opacity, '0.2', 'At 80%'); await scrollTop(container, 100); assert_equals(getComputedStyle(div).opacity, '0', 'At 100%'); -}, 'animation-timeline: view(vertical) without timeline range name'); +}, 'animation-timeline: view(y) without timeline range name'); promise_test(async t => { let [container, div] = createTargetWithStuff(t, ['target', 'content']); container.style.overflow = 'hidden'; div.style.animation = "fade-out-without-timeline-range 1s linear"; - div.style.animationTimeline = "view(horizontal 50px)"; + div.style.animationTimeline = "view(x 50px)"; // So the range is [-150px, 50px], but it is impossible to scroll to the // negative part. @@ -248,7 +248,7 @@ promise_test(async t => { assert_equals(getComputedStyle(div).opacity, '0.2', 'At 80%'); await scrollLeft(container, 50); assert_equals(getComputedStyle(div).opacity, '0', 'At 100%'); -}, 'animation-timeline: view(horizontal 50px) without timeline range name'); +}, 'animation-timeline: view(x 50px) without timeline range name'); promise_test(async t => { let [container, div] = createTargetWithStuff(t, ['target', 'content']); @@ -384,7 +384,7 @@ promise_test(async t => { let [container, div] = createTargetWithStuff(t, ['target', 'content']); container.style.overflow = 'scroll'; div.style.animation = "fade-out 1s linear"; - div.style.animationTimeline = "view(horizontal)"; + div.style.animationTimeline = "view(x)"; await scrollLeft(container, 0); assert_equals(getComputedStyle(div).opacity, '1', 'At exit 0%'); @@ -392,13 +392,13 @@ promise_test(async t => { assert_equals(getComputedStyle(div).opacity, '0.5', 'At exit 50%'); await scrollLeft(container, 100); assert_equals(getComputedStyle(div).opacity, '0', 'At exit 100%'); -}, 'animation-timeline: view(horizontal)'); +}, 'animation-timeline: view(x)'); promise_test(async t => { let [container, div] = createTargetWithStuff(t, ['target', 'content']); container.style.overflow = 'scroll'; div.style.animation = "fade-out 1s linear"; - div.style.animationTimeline = "view(vertical)"; + div.style.animationTimeline = "view(y)"; await scrollTop(container, 0); assert_equals(getComputedStyle(div).opacity, '1', 'At exit 0%'); @@ -406,20 +406,20 @@ promise_test(async t => { assert_equals(getComputedStyle(div).opacity, '0.5', 'At exit 50%'); await scrollTop(container, 100); assert_equals(getComputedStyle(div).opacity, '0', 'At exit 100%'); -}, 'animation-timeline: view(vertical)'); +}, 'animation-timeline: view(y)'); promise_test(async t => { let [container, div] = createTargetWithStuff(t, ['target', 'content']); container.style.overflowY = 'hidden'; container.style.overflowX = 'scroll'; div.style.animation = "fade-out 1s linear"; - div.style.animationTimeline = "view(horizontal 50px)"; + div.style.animationTimeline = "view(x 50px)"; await scrollLeft(container, 0); assert_equals(getComputedStyle(div).opacity, '0.5', 'At exit 50%'); await scrollLeft(container, 50); assert_equals(getComputedStyle(div).opacity, '0', 'At exit 100%'); -}, 'animation-timeline: view(horizontal 50px)'); +}, 'animation-timeline: view(x 50px)'); promise_test(async t => { let [container, div] = createTargetWithStuff(t, ['target', 'content']); diff --git a/tests/wpt/web-platform-tests/scroll-animations/css/get-animations-inactive-timeline.html b/tests/wpt/web-platform-tests/scroll-animations/css/get-animations-inactive-timeline.html index 10bf00fbbc0..d3048913cef 100644 --- a/tests/wpt/web-platform-tests/scroll-animations/css/get-animations-inactive-timeline.html +++ b/tests/wpt/web-platform-tests/scroll-animations/css/get-animations-inactive-timeline.html @@ -18,7 +18,7 @@ overflow-x: scroll; height: 200px; width: 200px; - scroll-timeline-name: timeline; + scroll-timeline-name: --timeline; } #spacer { height: 200vh; @@ -28,7 +28,7 @@ height: 100px; width: 100px; animation: slide 1s linear; - animation-timeline: timeline; + animation-timeline: --timeline; } diff --git a/tests/wpt/web-platform-tests/scroll-animations/css/merge-timeline-offset-keyframes.html b/tests/wpt/web-platform-tests/scroll-animations/css/merge-timeline-offset-keyframes.html index c6d384fce54..e5d5037d622 100644 --- a/tests/wpt/web-platform-tests/scroll-animations/css/merge-timeline-offset-keyframes.html +++ b/tests/wpt/web-platform-tests/scroll-animations/css/merge-timeline-offset-keyframes.html @@ -42,8 +42,8 @@ animation-duration: auto; animation-fill-mode: both; animation-timing-function: linear; - view-timeline: target; - animation-timeline: target; + view-timeline: --target; + animation-timeline: --target; } #target.anim-1 { animation-name: anim-1; diff --git a/tests/wpt/web-platform-tests/scroll-animations/css/printing/animation-timeline-none-with-progress-print.tentative.html b/tests/wpt/web-platform-tests/scroll-animations/css/printing/animation-timeline-none-with-progress-print.tentative.html index 3939a1df48d..c37c1b95ef5 100644 --- a/tests/wpt/web-platform-tests/scroll-animations/css/printing/animation-timeline-none-with-progress-print.tentative.html +++ b/tests/wpt/web-platform-tests/scroll-animations/css/printing/animation-timeline-none-with-progress-print.tentative.html @@ -12,7 +12,7 @@ } #scroller { - scroll-timeline: timeline; + scroll-timeline: --timeline; overflow: scroll; width: 100px; height: 100px; diff --git a/tests/wpt/web-platform-tests/scroll-animations/css/printing/scroll-timeline-specified-scroller-print.html b/tests/wpt/web-platform-tests/scroll-animations/css/printing/scroll-timeline-specified-scroller-print.html index 05fab3e46ad..dd4add49b0f 100644 --- a/tests/wpt/web-platform-tests/scroll-animations/css/printing/scroll-timeline-specified-scroller-print.html +++ b/tests/wpt/web-platform-tests/scroll-animations/css/printing/scroll-timeline-specified-scroller-print.html @@ -13,7 +13,7 @@ } #scroller { - scroll-timeline: timeline; + scroll-timeline: --timeline; overflow: scroll; width: 100px; height: 100px; @@ -29,10 +29,10 @@ height: 100px; background-color: green; animation: anim 1s linear; - animation-timeline: timeline; + animation-timeline: --timeline; } - @supports not (animation-timeline:timeline) { + @supports not (animation-timeline:--timeline) { #box { animation-play-state: paused; } diff --git a/tests/wpt/web-platform-tests/scroll-animations/css/progress-based-animation-timeline.html b/tests/wpt/web-platform-tests/scroll-animations/css/progress-based-animation-timeline.html index eeb1e548e52..bbc60e3fbdd 100644 --- a/tests/wpt/web-platform-tests/scroll-animations/css/progress-based-animation-timeline.html +++ b/tests/wpt/web-platform-tests/scroll-animations/css/progress-based-animation-timeline.html @@ -21,18 +21,18 @@ } #scroller1 { - scroll-timeline: top_timeline; + scroll-timeline: --top_timeline; } #element { animation-name: top; animation-duration: 10s; animation-timing-function: linear; - animation-timeline: top_timeline; + animation-timeline: --top_timeline; position: absolute; } /* Ensure stable expectations if feature is not supported */ - @supports not (animation-timeline:foo) { + @supports not (animation-timeline:--foo) { #element { animation-play-state: paused; } } diff --git a/tests/wpt/web-platform-tests/scroll-animations/css/scroll-timeline-attachment.html b/tests/wpt/web-platform-tests/scroll-animations/css/scroll-timeline-attachment.html index 96033859e29..c924302b224 100644 --- a/tests/wpt/web-platform-tests/scroll-animations/css/scroll-timeline-attachment.html +++ b/tests/wpt/web-platform-tests/scroll-animations/css/scroll-timeline-attachment.html @@ -39,10 +39,10 @@ background-color: coral; width: 0px; animation: anim auto linear; - animation-timeline: t1; + animation-timeline: --t1; } .timeline { - scroll-timeline-name: t1; + scroll-timeline-name: --t1; } .local { scroll-timeline-attachment: local; @@ -96,6 +96,25 @@ }, 'Deferred timeline with no attachments'); + + +