diff --git a/tests/wpt/meta/FileAPI/url/url-with-fetch.any.js.ini b/tests/wpt/meta/FileAPI/url/url-with-fetch.any.js.ini index 5f4566bad57..b275cb58343 100644 --- a/tests/wpt/meta/FileAPI/url/url-with-fetch.any.js.ini +++ b/tests/wpt/meta/FileAPI/url/url-with-fetch.any.js.ini @@ -5,9 +5,6 @@ [Revoke blob URL after creating Request, then clone Request, will fetch] expected: FAIL - [Revoke blob URL after calling fetch, fetch should succeed] - expected: FAIL - [url-with-fetch.any.worker.html] [Revoke blob URL after creating Request, will fetch] diff --git a/tests/wpt/meta/MANIFEST.json b/tests/wpt/meta/MANIFEST.json index 117f1af832b..a9e0663a711 100644 --- a/tests/wpt/meta/MANIFEST.json +++ b/tests/wpt/meta/MANIFEST.json @@ -762,6 +762,13 @@ {} ] ], + "chrome-bug-404743651.html": [ + "238862374028415bb2ddb91de5f9a16132ec654d", + [ + null, + {} + ] + ], "pseudo-element-animation-with-marker.html": [ "ba7fc2371abfdc463f8ed36e6f1bb39fb9ef6ef5", [ @@ -2496,6 +2503,15 @@ ] ] }, + "css-easing": { + "linear-timing-functions-chrome-405004975-crash.html": [ + "510b51716cec67fcdad51d44e2124c5986efa3f3", + [ + null, + {} + ] + ] + }, "css-flexbox": { "animation": { "flex-basis-content-crash.html": [ @@ -4162,6 +4178,13 @@ {} ] ], + "line-clamp-auto-002-crash.html": [ + "be5693c70456bd664dd219d6985067400a26084e", + [ + null, + {} + ] + ], "webkit-line-clamp-041-crash.html": [ "3f4bf3c8ef578fa22469e81e504879aa5d713bf8", [ @@ -5735,6 +5758,13 @@ null, {} ] + ], + "zoom-revert-layer-crash.html": [ + "c75b792e6de78a27a4c5961a0efcbf7593f02eb7", + [ + null, + {} + ] ] } }, @@ -123902,6 +123932,35 @@ } ] ], + "root-element-background-margin-opacity.html": [ + "e1e7fed5a66b0993174617550e2775206a91930b", + [ + null, + [ + [ + "/css/compositing/root-element-background-margin-opacity-ref.html", + "==" + ] + ], + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 1 + ], + [ + 0, + 10000 + ] + ] + ] + ] + } + ] + ], "root-element-background-transparency.html": [ "910eb08e8d3004da7418f8f00f38d022841262f2", [ @@ -125550,6 +125609,19 @@ ] }, "css-animations": { + "animate-with-background-color-oklch-001.html": [ + "37d10e07cdb467aee54d5826ce2a1604417829f8", + [ + null, + [ + [ + "/css/css-animations/animate-with-background-color-oklch-001-ref.html", + "==" + ] + ], + {} + ] + ], "animation-delay-008.html": [ "52883fa72ff5a4a57c6a8c2866805ceb5fa0a507", [ @@ -135995,7 +136067,7 @@ }, "corner-shape": { "corner-shape-any.html": [ - "9c256eb89778f8060906b7d943d08a01a3cfe300", + "5b197317eb182639168b21a8ad522c081aba6f26", [ "css/css-borders/tentative/corner-shape/corner-shape-any.html?corner-bottom-left-shape=bevel&border-bottom-left-radius=30px", [ @@ -136022,6 +136094,84 @@ ] } ], + [ + "css/css-borders/tentative/corner-shape/corner-shape-any.html?corner-bottom-left-shape=bevel&border-width=10px&border-radius=20px", + [ + [ + "/css/css-borders/tentative/corner-shape/corner-shape-any-ref.html?corner-bottom-left-shape=bevel&border-width=10px&border-radius=20px", + "==" + ] + ], + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 180 + ], + [ + 0, + 520 + ] + ] + ] + ] + } + ], + [ + "css/css-borders/tentative/corner-shape/corner-shape-any.html?corner-bottom-right-shape=bevel&border-width=10px&border-radius=20px", + [ + [ + "/css/css-borders/tentative/corner-shape/corner-shape-any-ref.html?corner-bottom-right-shape=bevel&border-width=10px&border-radius=20px", + "==" + ] + ], + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 180 + ], + [ + 0, + 520 + ] + ] + ] + ] + } + ], + [ + "css/css-borders/tentative/corner-shape/corner-shape-any.html?corner-bottom-right-shape=bevel&corner-bottom-left-shape=bevel", + [ + [ + "/css/css-borders/tentative/corner-shape/corner-shape-any-ref.html?corner-bottom-right-shape=bevel&corner-bottom-left-shape=bevel", + "==" + ] + ], + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 180 + ], + [ + 0, + 520 + ] + ] + ] + ] + } + ], [ "css/css-borders/tentative/corner-shape/corner-shape-any.html?corner-bottom-right-shape=superellipse(1.9)&border-bottom-right-radius=50%", [ @@ -136048,6 +136198,32 @@ ] } ], + [ + "css/css-borders/tentative/corner-shape/corner-shape-any.html?corner-shape=squircle&border-radius=25%&border-width=20px", + [ + [ + "/css/css-borders/tentative/corner-shape/corner-shape-any-ref.html?corner-shape=squircle&border-radius=25%&border-width=20px", + "==" + ] + ], + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 180 + ], + [ + 0, + 520 + ] + ] + ] + ] + } + ], [ "css/css-borders/tentative/corner-shape/corner-shape-any.html?corner-shape=squircle&border-radius=50%", [ @@ -136074,6 +136250,32 @@ ] } ], + [ + "css/css-borders/tentative/corner-shape/corner-shape-any.html?corner-shape=squircle&border-top-left-radius=25%&border-width=10px", + [ + [ + "/css/css-borders/tentative/corner-shape/corner-shape-any-ref.html?corner-shape=squircle&border-top-left-radius=25%&border-width=10px", + "==" + ] + ], + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 180 + ], + [ + 0, + 520 + ] + ] + ] + ] + } + ], [ "css/css-borders/tentative/corner-shape/corner-shape-any.html?corner-shape=squircle&border-top-left-radius=30%", [ @@ -136204,6 +136406,110 @@ ] } ], + [ + "css/css-borders/tentative/corner-shape/corner-shape-any.html?corner-top-left-shape=bevel&border-radius=40px", + [ + [ + "/css/css-borders/tentative/corner-shape/corner-shape-any-ref.html?corner-top-left-shape=bevel&border-radius=40px", + "==" + ] + ], + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 180 + ], + [ + 0, + 520 + ] + ] + ] + ] + } + ], + [ + "css/css-borders/tentative/corner-shape/corner-shape-any.html?corner-top-left-shape=bevel&border-radius=40px&border-width=10px", + [ + [ + "/css/css-borders/tentative/corner-shape/corner-shape-any-ref.html?corner-top-left-shape=bevel&border-radius=40px&border-width=10px", + "==" + ] + ], + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 180 + ], + [ + 0, + 520 + ] + ] + ] + ] + } + ], + [ + "css/css-borders/tentative/corner-shape/corner-shape-any.html?corner-top-left-shape=bevel&border-width=10px&border-color=black", + [ + [ + "/css/css-borders/tentative/corner-shape/corner-shape-any-ref.html?corner-top-left-shape=bevel&border-width=10px&border-color=black", + "==" + ] + ], + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 180 + ], + [ + 0, + 520 + ] + ] + ] + ] + } + ], + [ + "css/css-borders/tentative/corner-shape/corner-shape-any.html?corner-top-left-shape=scoop&border-radius=40px", + [ + [ + "/css/css-borders/tentative/corner-shape/corner-shape-any-ref.html?corner-top-left-shape=scoop&border-radius=40px", + "==" + ] + ], + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 180 + ], + [ + 0, + 520 + ] + ] + ] + ] + } + ], [ "css/css-borders/tentative/corner-shape/corner-shape-any.html?corner-top-left-shape=scoop&corner-top-right-shape=scoop&border-radius=50%", [ @@ -136230,6 +136536,162 @@ ] } ], + [ + "css/css-borders/tentative/corner-shape/corner-shape-any.html?corner-top-left-shape=superellipse(0.2)&border-radius=40px", + [ + [ + "/css/css-borders/tentative/corner-shape/corner-shape-any-ref.html?corner-top-left-shape=superellipse(0.2)&border-radius=40px", + "==" + ] + ], + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 180 + ], + [ + 0, + 520 + ] + ] + ] + ] + } + ], + [ + "css/css-borders/tentative/corner-shape/corner-shape-any.html?corner-top-left-shape=superellipse(0.3)&border-radius=40%", + [ + [ + "/css/css-borders/tentative/corner-shape/corner-shape-any-ref.html?corner-top-left-shape=superellipse(0.3)&border-radius=40%", + "==" + ] + ], + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 180 + ], + [ + 0, + 520 + ] + ] + ] + ] + } + ], + [ + "css/css-borders/tentative/corner-shape/corner-shape-any.html?corner-top-left-shape=superellipse(0.8)&border-radius=40px", + [ + [ + "/css/css-borders/tentative/corner-shape/corner-shape-any-ref.html?corner-top-left-shape=superellipse(0.8)&border-radius=40px", + "==" + ] + ], + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 180 + ], + [ + 0, + 520 + ] + ] + ] + ] + } + ], + [ + "css/css-borders/tentative/corner-shape/corner-shape-any.html?corner-top-left-shape=superellipse(1.2)&border-radius=40px", + [ + [ + "/css/css-borders/tentative/corner-shape/corner-shape-any-ref.html?corner-top-left-shape=superellipse(1.2)&border-radius=40px", + "==" + ] + ], + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 180 + ], + [ + 0, + 520 + ] + ] + ] + ] + } + ], + [ + "css/css-borders/tentative/corner-shape/corner-shape-any.html?corner-top-left-shape=superellipse(6)&border-radius=20%&border-width=10px", + [ + [ + "/css/css-borders/tentative/corner-shape/corner-shape-any-ref.html?corner-top-left-shape=superellipse(6)&border-radius=20%&border-width=10px", + "==" + ] + ], + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 180 + ], + [ + 0, + 520 + ] + ] + ] + ] + } + ], + [ + "css/css-borders/tentative/corner-shape/corner-shape-any.html?corner-top-right-shape=bevel&border-width=10px&border-color=black", + [ + [ + "/css/css-borders/tentative/corner-shape/corner-shape-any-ref.html?corner-top-right-shape=bevel&border-width=10px&border-color=black", + "==" + ] + ], + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 180 + ], + [ + 0, + 520 + ] + ] + ] + ] + } + ], [ "css/css-borders/tentative/corner-shape/corner-shape-any.html?corner-top-right-shape=superellipse(0.1)&border-top-right-radius=50px", [ @@ -136373,243 +136835,6 @@ } ] ], - "corner-shape-render.html": [ - "6b9acb3447f7745757ca4f749057cd5177e8d59e", - [ - "css/css-borders/tentative/corner-shape/corner-shape-render.html?corner-bottom-left-shape=bevel", - [ - [ - "/css/css-borders/tentative/corner-shape/corner-shape-render-ref.html?corner-bottom-left-shape=bevel", - "==" - ] - ], - { - "fuzzy": [ - [ - null, - [ - [ - 0, - 82 - ], - [ - 0, - 800 - ] - ] - ] - ] - } - ], - [ - "css/css-borders/tentative/corner-shape/corner-shape-render.html?corner-bottom-right-shape=bevel", - [ - [ - "/css/css-borders/tentative/corner-shape/corner-shape-render-ref.html?corner-bottom-right-shape=bevel", - "==" - ] - ], - { - "fuzzy": [ - [ - null, - [ - [ - 0, - 82 - ], - [ - 0, - 800 - ] - ] - ] - ] - } - ], - [ - "css/css-borders/tentative/corner-shape/corner-shape-render.html?corner-bottom-right-shape=bevel&corner-bottom-left-shape=bevel", - [ - [ - "/css/css-borders/tentative/corner-shape/corner-shape-render-ref.html?corner-bottom-right-shape=bevel&corner-bottom-left-shape=bevel", - "==" - ] - ], - { - "fuzzy": [ - [ - null, - [ - [ - 0, - 82 - ], - [ - 0, - 800 - ] - ] - ] - ] - } - ], - [ - "css/css-borders/tentative/corner-shape/corner-shape-render.html?corner-shape=bevel", - [ - [ - "/css/css-borders/tentative/corner-shape/corner-shape-render-ref.html?corner-shape=bevel", - "==" - ] - ], - { - "fuzzy": [ - [ - null, - [ - [ - 0, - 82 - ], - [ - 0, - 800 - ] - ] - ] - ] - } - ], - [ - "css/css-borders/tentative/corner-shape/corner-shape-render.html?corner-top-left-shape=bevel", - [ - [ - "/css/css-borders/tentative/corner-shape/corner-shape-render-ref.html?corner-top-left-shape=bevel", - "==" - ] - ], - { - "fuzzy": [ - [ - null, - [ - [ - 0, - 82 - ], - [ - 0, - 800 - ] - ] - ] - ] - } - ], - [ - "css/css-borders/tentative/corner-shape/corner-shape-render.html?corner-top-left-shape=bevel&border-radius=40px", - [ - [ - "/css/css-borders/tentative/corner-shape/corner-shape-render-ref.html?corner-top-left-shape=bevel&border-radius=40px", - "==" - ] - ], - { - "fuzzy": [ - [ - null, - [ - [ - 0, - 82 - ], - [ - 0, - 800 - ] - ] - ] - ] - } - ], - [ - "css/css-borders/tentative/corner-shape/corner-shape-render.html?corner-top-right-shape=bevel", - [ - [ - "/css/css-borders/tentative/corner-shape/corner-shape-render-ref.html?corner-top-right-shape=bevel", - "==" - ] - ], - { - "fuzzy": [ - [ - null, - [ - [ - 0, - 82 - ], - [ - 0, - 800 - ] - ] - ] - ] - } - ], - [ - "css/css-borders/tentative/corner-shape/corner-shape-render.html?corner-top-right-shape=bevel&corner-bottom-right-shape=bevel&border-bottom-right-radius=80px&border-width=32px", - [ - [ - "/css/css-borders/tentative/corner-shape/corner-shape-render-ref.html?corner-top-right-shape=bevel&corner-bottom-right-shape=bevel&border-bottom-right-radius=80px&border-width=32px", - "==" - ] - ], - { - "fuzzy": [ - [ - null, - [ - [ - 0, - 82 - ], - [ - 0, - 800 - ] - ] - ] - ] - } - ], - [ - "css/css-borders/tentative/corner-shape/corner-shape-render.html?corner-top-right-shape=bevel&corner-bottom-right-shape=bevel&border-radius=80px", - [ - [ - "/css/css-borders/tentative/corner-shape/corner-shape-render-ref.html?corner-top-right-shape=bevel&corner-bottom-right-shape=bevel&border-radius=80px", - "==" - ] - ], - { - "fuzzy": [ - [ - null, - [ - [ - 0, - 82 - ], - [ - 0, - 800 - ] - ] - ] - ] - } - ] - ], "corner-shape-straight.html": [ "04cd37b5a3170e7a725de9ed2ac92f8801c317c1", [ @@ -154382,6 +154607,32 @@ {} ] ], + "at-supports-selector-details-content-before.html": [ + "731b2c4d6d2f6f871f41ffb4cf6a2e700d992f64", + [ + null, + [ + [ + "/css/css-conditional/at-supports-001-ref.html", + "==" + ] + ], + {} + ] + ], + "at-supports-selector-details-content.html": [ + "89e7606de5b27d586468a9ef98788c2988d8adf6", + [ + null, + [ + [ + "/css/css-conditional/at-supports-001-ref.html", + "==" + ] + ], + {} + ] + ], "at-supports-selector-detecting-invalid-in-logical-combinations.html": [ "ff4c09195a9de215117241abc0601a4f79f5cad1", [ @@ -184968,6 +185219,136 @@ ], {} ] + ], + "grid-gap-decorations-006.html": [ + "7b1187c4e44bed68af665462107fa34d7a2cfc4a", + [ + null, + [ + [ + "/css/css-gaps/tentative/grid/grid-gap-decorations-006-ref.html", + "==" + ] + ], + {} + ] + ], + "grid-gap-decorations-007.html": [ + "adc98e4bc03dd1305402ab33ed1c146f7f4c5718", + [ + null, + [ + [ + "/css/css-gaps/tentative/grid/grid-gap-decorations-007-ref.html", + "==" + ] + ], + {} + ] + ], + "grid-gap-decorations-008.html": [ + "f8dc0df36e2d7a4a30576e60180647bf7b2edb94", + [ + null, + [ + [ + "/css/css-gaps/tentative/grid/grid-gap-decorations-008-ref.html", + "==" + ] + ], + {} + ] + ], + "grid-gap-decorations-009.html": [ + "0756b9294be1daae5af190bf27235fdc23f9c5f8", + [ + null, + [ + [ + "/css/css-gaps/tentative/grid/grid-gap-decorations-009-ref.html", + "==" + ] + ], + {} + ] + ], + "grid-gap-decorations-010.html": [ + "d9201b51cea33053cdab2d55ddb10b06acc7f629", + [ + null, + [ + [ + "/css/css-gaps/tentative/grid/grid-gap-decorations-010-ref.html", + "==" + ] + ], + {} + ] + ], + "grid-gap-decorations-011.html": [ + "c0540398d0533e66d2f86a3aa15cf4998a4e74f4", + [ + null, + [ + [ + "/css/css-gaps/tentative/grid/grid-gap-decorations-011-ref.html", + "==" + ] + ], + {} + ] + ], + "grid-gap-decorations-012.html": [ + "26ba45a14ff9b1526bfe44e480171e0f95a0e8a7", + [ + null, + [ + [ + "/css/css-gaps/tentative/grid/grid-gap-decorations-012-ref.html", + "==" + ] + ], + {} + ] + ], + "grid-gap-decorations-013.html": [ + "4a056134089e58169ae0769633c30ed1ca160478", + [ + null, + [ + [ + "/css/css-gaps/tentative/grid/grid-gap-decorations-013-ref.html", + "==" + ] + ], + {} + ] + ], + "grid-gap-decorations-014.html": [ + "97ad626e1f24cd489a4470c84118d1161b4c46e2", + [ + null, + [ + [ + "/css/css-gaps/tentative/grid/grid-gap-decorations-014-ref.html", + "==" + ] + ], + {} + ] + ], + "grid-gap-decorations-015.html": [ + "e575c134353b2c97e16a1440e25fc5d6a28cadc9", + [ + null, + [ + [ + "/css/css-gaps/tentative/grid/grid-gap-decorations-015-ref.html", + "==" + ] + ], + {} + ] ] } } @@ -192325,7 +192706,7 @@ ] ], "masonry-grid-item-self-baseline-002a.html": [ - "6708e58332808b1bba0f20db46cfa062270956b8", + "4ece8d754d3d686e4691f5140af9b7f14503e036", [ null, [ @@ -192338,7 +192719,7 @@ ] ], "masonry-grid-item-self-baseline-002b.html": [ - "34911b7c9fa632da919b769e015148e2b8c4c488", + "cc0eaaa9cc27dc3e54f660314d63f155a838212e", [ null, [ @@ -192998,7 +193379,7 @@ ] ], "masonry-item-placement-004.html": [ - "52867cd4a213530e8cb9640b20371a7f35bbaac8", + "92741f4b1153ff7487a84e4f053c1288bcd2fa0f", [ null, [ @@ -193011,7 +193392,7 @@ ] ], "masonry-item-placement-005.html": [ - "7d4993fb3a61a015af6098e1f79d7e5f94d1b17e", + "f879ddce562b40133ac6e5522b86c4bd177c85ef", [ null, [ @@ -193024,7 +193405,7 @@ ] ], "masonry-item-placement-006.html": [ - "467e313d339776a90d994459991724b75210e1b9", + "0f963762af5a71a73ddbbaa1a6f01ab0396d875a", [ null, [ @@ -193037,7 +193418,7 @@ ] ], "masonry-item-placement-007.html": [ - "4c8053ba666b5c6ddc3b61f74a2233151414e4ff", + "ebbed114a1171a3218be7e1378c199cb82c0fe97", [ null, [ @@ -193062,19 +193443,6 @@ {} ] ], - "masonry-rows-item-placement-auto-flow-next-001.html": [ - "c425490d2d8f464e9fae0a1777c4c8366cb283af", - [ - null, - [ - [ - "/css/css-grid/masonry/tentative/item-placement/masonry-rows-item-placement-auto-flow-next-001-ref.html", - "==" - ] - ], - {} - ] - ], "masonry-rows-with-grid-width-changed.html": [ "3a1c4cfa9c065425d8de17dba157663f6024711c", [ @@ -193128,19 +193496,6 @@ ], {} ] - ], - "masonry-order-002.html": [ - "5ebdec27193a454e98fb54ea48508c2b26b3cfa8", - [ - null, - [ - [ - "/css/css-grid/masonry/tentative/order/masonry-order-002-ref.html", - "==" - ] - ], - {} - ] ] }, "subgrid": { @@ -196656,6 +197011,19 @@ {} ] ], + "conic-gradient-001.html": [ + "37e41094fb28a03d3dbbcd6e88c0c36e1e520b62", + [ + null, + [ + [ + "/css/css-images/gradient/conic-gradient-001-ref.html", + "==" + ] + ], + {} + ] + ], "css-color-4-colors-default-to-oklab-gradient.html": [ "2b1edca0da1e168c3fa921202c54346b911f354a", [ @@ -196724,6 +197092,19 @@ {} ] ], + "gradient-analogous-missing-components-004.html": [ + "286caa0226a529082daf4b63c60a846344d5f826", + [ + null, + [ + [ + "/css/css-images/gradient/gradient-analogous-missing-components-004-ref.html", + "==" + ] + ], + {} + ] + ], "gradient-decreasing-hue-hsl.html": [ "973974417ea306380adc4f3fc3e75b6daa0b9af9", [ @@ -196870,7 +197251,7 @@ ] ], "gradient-eval-004.html": [ - "ada406fd2a0ec8bea1af74daeafc95563174ac1f", + "1a9c43610f41cb8cab10543ffcc3fd7ee378dd07", [ null, [ @@ -196890,7 +197271,7 @@ ], [ 0, - 10000 + 2000 ] ] ] @@ -200413,7 +200794,7 @@ ] ], "object-fit-containcontainintrinsicsize-png-001c.tentative.html": [ - "b17f59f887f216f11a386077c41156388624ee27", + "dd1bf249a5555aaeec924de5d944442b55452e2f", [ null, [ @@ -200465,7 +200846,7 @@ ] ], "object-fit-containsize-png-001c.tentative.html": [ - "43a50adcedcf2bcdf81d86f717ec52e6a96e0f1a", + "733b7592f3ba8f748300c7ee681b765ba66cb559", [ null, [ @@ -216381,6 +216762,123 @@ {} ] ], + "column-height-001.html": [ + "cb7cb6323f5a77fe0d461cd687fa589dd66a038a", + [ + null, + [ + [ + "/css/reference/ref-filled-green-100px-square.xht", + "==" + ] + ], + {} + ] + ], + "column-height-002.html": [ + "902076a65a8d224059cb4e9ad57ad024bf888c00", + [ + null, + [ + [ + "/css/reference/ref-filled-green-100px-square.xht", + "==" + ] + ], + {} + ] + ], + "column-height-003.html": [ + "879358c1803c49374f98092aaa7301c03ed30ddb", + [ + null, + [ + [ + "/css/reference/ref-filled-green-100px-square.xht", + "==" + ] + ], + {} + ] + ], + "column-height-004.html": [ + "07107f3c3695038030e09395b49831d000d58eef", + [ + null, + [ + [ + "/css/reference/ref-filled-green-100px-square.xht", + "==" + ] + ], + {} + ] + ], + "column-height-005.html": [ + "e131d62ee5dbeb8f13e68427983f0bc85d2c99c0", + [ + null, + [ + [ + "/css/reference/ref-filled-green-100px-square.xht", + "==" + ] + ], + {} + ] + ], + "column-height-006.html": [ + "773f25edd5c7b6015c8d2185c0f6dca8a189aeb0", + [ + null, + [ + [ + "/css/reference/ref-filled-green-100px-square.xht", + "==" + ] + ], + {} + ] + ], + "column-height-007.html": [ + "4e7308dbd12025ea9d0b9b2b930595a974fb8ee7", + [ + null, + [ + [ + "/css/reference/ref-filled-green-100px-square.xht", + "==" + ] + ], + {} + ] + ], + "column-height-008.html": [ + "f8ef2b1477f4be36a2300bc7b45d2393a4abb56d", + [ + null, + [ + [ + "/css/reference/ref-filled-green-100px-square.xht", + "==" + ] + ], + {} + ] + ], + "column-height-009.html": [ + "1e08242e0f9c9dc415854af29ce04a6e7ee2ef9e", + [ + null, + [ + [ + "/css/css-multicol/column-height-009-ref.html", + "==" + ] + ], + {} + ] + ], "column-pseudo-background-color.html": [ "f321b1076eb58fcc00add55ab9f7dacd9daa2fba", [ @@ -225434,6 +225932,58 @@ {} ] ], + "scroll-marker-contain-001.tentative.html": [ + "93d7df72508d19d89ac6c2d775e24a1937b660aa", + [ + null, + [ + [ + "/css/css-overflow/scroll-marker-contain-001-ref.tentative.html", + "==" + ] + ], + {} + ] + ], + "scroll-marker-contain-002.tentative.html": [ + "af2a5e668be4673ae5d976fa901fd5106dc8ad1c", + [ + null, + [ + [ + "/css/css-overflow/scroll-marker-contain-002-ref.tentative.html", + "==" + ] + ], + {} + ] + ], + "scroll-marker-contain-003.tentative.html": [ + "59daa5cf5ced7c57248cfbbf4fef637ad91728be", + [ + null, + [ + [ + "/css/css-overflow/scroll-marker-contain-003-ref.tentative.html", + "==" + ] + ], + {} + ] + ], + "scroll-marker-contain-004.tentative.html": [ + "2ec6f6bde76fb3c16b04628f49415edda014985e", + [ + null, + [ + [ + "/css/css-overflow/scroll-marker-contain-001-ref.tentative.html", + "==" + ] + ], + {} + ] + ], "scroll-marker-counters.html": [ "25e4fdfd24f849128c711cdc5a8610abba5e1d8f", [ @@ -230468,6 +231018,19 @@ {} ] ], + "position-sticky-table-pixel-rounding.html": [ + "3bda20efc9d7381f5967810711d552fe4a2a57b8", + [ + null, + [ + [ + "/css/css-position/sticky/position-sticky-table-pixel-rounding-ref.html", + "==" + ] + ], + {} + ] + ], "position-sticky-table-td-bottom.html": [ "7cd3b8d695e00a68e58c9016aa2990eaf78ba846", [ @@ -236544,6 +237107,19 @@ {} ] ], + "host-has-internal-004.html": [ + "fe51186f59f88bdfcf5ed8641938b7491024bfda", + [ + null, + [ + [ + "/css/reference/ref-filled-green-100px-square-only.html", + "==" + ] + ], + {} + ] + ], "host-is-001.html": [ "16d0dd76691362ee963e386a2fd238783c096243", [ @@ -244508,7 +245084,7 @@ ] ], "replaced-element-013.html": [ - "bcbf653d68af4c1f908a59ca6e66e5752a09c833", + "564858e360eee6aaa676224fe342409d06486f1b", [ null, [ @@ -244521,7 +245097,7 @@ ] ], "replaced-element-014.html": [ - "4c1ad16ce8624295251b73d1a14f53b9c9905610", + "8b7bdafc10770d3f3371c5ec7a699f4189c982cb", [ null, [ @@ -244845,6 +245421,32 @@ {} ] ], + "replaced-element-045.html": [ + "3339de4cb7dfc7aaf7cb8f27de542515626a0563", + [ + null, + [ + [ + "/css/reference/ref-filled-green-100px-square.xht", + "==" + ] + ], + {} + ] + ], + "replaced-element-046.html": [ + "13a9fd99513aa622bf1338a497d5810822de1aaf", + [ + null, + [ + [ + "/css/reference/ref-filled-green-100px-square.xht", + "==" + ] + ], + {} + ] + ], "replaced-element-dynamic-aspect-ratio.html": [ "d4b83d3673cbfba940baec1c88f3e6630c760eb4", [ @@ -265245,7 +265847,7 @@ ] ], "text-wrap-balance-before-after-001.html": [ - "9f5741e23492875670f1406e934a1306bdd51973", + "7176768b8df4fe19d63188097cd8be96c43ae1cb", [ null, [ @@ -265258,7 +265860,7 @@ ] ], "text-wrap-balance-before-after-002.html": [ - "e9d08953fac0963ba2a9639ac9aabb6f3f59764b", + "60e3a777df33b008284669c35c64742ea19d6ba0", [ null, [ @@ -304533,6 +305135,35 @@ } ] ], + "nested-root-capture-with-clip.html": [ + "eb728182865eb5388053b0039e22d9f75f5da8f6", + [ + null, + [ + [ + "/css/css-view-transitions/nested/nested-root-capture-with-clip-ref.html", + "==" + ] + ], + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 40 + ], + [ + 0, + 400 + ] + ] + ] + ] + } + ] + ], "normal-goes-up.tentative.html": [ "f68c93d474425d958b46c3dcd2d29197f797fbdd", [ @@ -307183,6 +307814,19 @@ {} ] ], + "font-size-keyword-specified.html": [ + "fc724307f46bc5c77f8599f07e4cca1411d6d0e3", + [ + null, + [ + [ + "/css/css-viewport/zoom/font-size-keyword-specified-ref.html", + "==" + ] + ], + {} + ] + ], "font-size.html": [ "e572806be41f21297b6b864f9b74378de35a28c6", [ @@ -325286,6 +325930,19 @@ {} ] ], + "feComposite-intersection-feTile-input.html": [ + "1bf1f4b8fba8ca37705e276d8c72888f01db4954", + [ + null, + [ + [ + "/css/filter-effects/feComposite-intersection-feTile-input-ref.html", + "==" + ] + ], + {} + ] + ], "fecolormatrix-negative.html": [ "eddec862154fc9929a9f7ad8f9cbb0a7d182ef18", [ @@ -346604,6 +347261,19 @@ ] }, "the-option-element": { + "option-label-whitespace-2.html": [ + "95b3a3c73db92ee641384fb54c599c9765bf9004", + [ + null, + [ + [ + "/html/rendering/replaced-elements/the-option-element/option-label-whitespace-2-ref.html", + "!=" + ] + ], + {} + ] + ], "option-label-whitespace.html": [ "aad1039d7b4f1c0078b622a94bc6364b992e60af", [ @@ -347338,7 +348008,7 @@ ] ], "field-sizing-textarea-relayout.html": [ - "1e18bd2070377923ec1e29d012ddcf94ad7aa6a2", + "579462ca2f579b7360790c3ad3a63d0de45e4c41", [ null, [ @@ -347353,11 +348023,11 @@ null, [ [ - 153, + 0, 153 ], [ - 2, + 0, 2 ] ] @@ -366932,7 +367602,7 @@ [] ], "docker.yml": [ - "6d5c7c79a05faeaeb5e18040ceedaf99240020c4", + "9119c018c2f88232b4aea1bd22e8d69bc9aa3af0", [] ], "documentation.yml": [ @@ -370269,6 +370939,10 @@ [] ], "support": { + "clear-cache-helper.sub.js": [ + "2b2d35abfc571969f414d6f8f7d61f9ac189f284", + [] + ], "clear-site-data-cache.py": [ "38f131bdd52b51250204cca79972d93a62ace715", [] @@ -409787,6 +410461,10 @@ "b07685d951735d521418a98e2b7bf283a068019b", [] ], + "root-element-background-margin-opacity-ref.html": [ + "afe543029d800f5b3c53c1c2179e981693c033ba", + [] + ], "root-element-background-transparency-ref.html": [ "4671d44c1c3f3e2ff16149cbaabebb0433aef3e5", [] @@ -410225,6 +410903,10 @@ "398217c4587e0c5f5364b00b8b39b49885c7f27b", [] ], + "animate-with-background-color-oklch-001-ref.html": [ + "92b91077f3fe1cc66cca5b5202cd5d9a2d5f6b50", + [] + ], "animation-common-ref.html": [ "ddc7da67ddf5fed83e653d1130a65f5c1e3a6dec", [] @@ -412436,7 +413118,7 @@ "tentative": { "corner-shape": { "corner-shape-any-ref.html": [ - "688f01c8668554efce1ccde22ebf2b12a2ff61c8", + "36fc7a88825fea38ad5cfcdf544946e3644cc00b", [] ], "corner-shape-bevel-overflow-composite-ref.html": [ @@ -412455,25 +413137,21 @@ "8963c0ca2939c4036d9505461c9772b803b586f2", [] ], - "corner-shape-render-ref.html": [ - "1a9043cbc827f4ef4b1ba753e1fae278647de5f2", - [] - ], "corner-shape-straight-ref.html": [ "4576240ef3288a954c9a627cbafd640eacd95444", [] ], "resources": { "corner-shape.js": [ - "2aaaf5ed28987608fba8f4f8b756cd3062e82498", + "6de6c9a5d7ef206f8f6bebae651a0e93b55cec77", [] ], "corner-utils.js": [ - "39203aefc67d57e9e0128112e60ac5b01e147d95", + "bacaaa8a6e4ae7f68bab460e8e98b292d103bb69", [] ], "resolve-corner-style.js": [ - "ea065f577e09c30b56cf1171685375b7aefeebc7", + "b584994b4ea52295381f4c79b34fa63a78afec7a", [] ] } @@ -420341,14 +421019,6 @@ "ea32e1787e58047763ca26ca575e5ff67325d110", [] ], - "Lato-Medium-Liga.ttf": [ - "3a0beaea38b8bc0cbf6fa656bf23e28cfdf18c6f", - [] - ], - "Lato-Medium.ttf": [ - "2c612da2ae589dc264deb683f90baf75c8e18e03", - [] - ], "LigatureSymbolsWithSpaces.woff": [ "1f0e7ca0076ae09f3fdea656052a1a08ab2b1111", [] @@ -426636,6 +427306,46 @@ "grid-gap-decorations-005-ref.html": [ "aebfba5a20e97e826e27e27c0ce962f6f675eba2", [] + ], + "grid-gap-decorations-006-ref.html": [ + "f77ec2a9d43899e971dea9ee1596595561fe2bf8", + [] + ], + "grid-gap-decorations-007-ref.html": [ + "9d74fa00f41fd5599f8c9d4c6d32b5b69363d42b", + [] + ], + "grid-gap-decorations-008-ref.html": [ + "200a2621a2181d52e1a16fc6919f944ee08f0b36", + [] + ], + "grid-gap-decorations-009-ref.html": [ + "11d8267235b8a24a9118b0b638a9a0519e69b784", + [] + ], + "grid-gap-decorations-010-ref.html": [ + "747391cfedc88bd46f3a13ca8895d5bc6101a6d2", + [] + ], + "grid-gap-decorations-011-ref.html": [ + "c49eb95f72eff1e8ed657fbead3243abd57af908", + [] + ], + "grid-gap-decorations-012-ref.html": [ + "ded98fa1c8d314be49ed7a2d3159fea2d7efe0d7", + [] + ], + "grid-gap-decorations-013-ref.html": [ + "bd8456f525ef3cc6406658db68b893baa0352301", + [] + ], + "grid-gap-decorations-014-ref.html": [ + "25a930a51af81d12ebc8e5fa4dcedff31510c0dc", + [] + ], + "grid-gap-decorations-015-ref.html": [ + "0937a62da6f153b1df1facb3ad8b472d57339784", + [] ] } } @@ -427093,7 +427803,7 @@ [] ], "grid-item-aspect-ratio-stretch-4-ref.html": [ - "8d7fc870fae1ad7f969b7a9de4035da783c1dae4", + "8c251a9d9f002041354bb252baf12e694b6a2207", [] ], "grid-item-content-baseline-001-ref.html": [ @@ -427795,7 +428505,7 @@ [] ], "masonry-intrinsic-sizing-rows-003-fr-ref.html": [ - "ca2aaef482dc6207913d66db1d38fba4e21f43b0", + "41a032712a21a28b2710630425391f7f63d15402", [] ], "masonry-intrinsic-sizing-rows-003-mix1-ref.html": [ @@ -427819,7 +428529,7 @@ [] ], "masonry-intrinsic-sizing-rows-004-mix2-ref.html": [ - "97e6b3ea2922b8810d5bc940caad3eb48b3ac371", + "4d1470896c8e828f3aa52d6e6dc701f76fbd31a0", [] ], "masonry-intrinsic-sizing-rows-005-ref.html": [ @@ -427851,29 +428561,25 @@ [] ], "masonry-item-placement-004-ref.html": [ - "75d6b741c2f04de618708486dfbd0e066b4fc738", + "ba9c72f292553fe9ad54c6c218741b0126ba7bde", [] ], "masonry-item-placement-005-ref.html": [ - "806f314300dd1c9127a8f59ba9e1bb09c6d99265", + "bd5d55262a3c0579fa208b85aab10c74b9a071d1", [] ], "masonry-item-placement-006-ref.html": [ - "a6e9b75d0e61ce1404229781f5d55da34c4d2a68", + "a54476a6ba806d5b003b74a8c8fd12dfca1dfc0e", [] ], "masonry-item-placement-007-ref.html": [ - "50236046fb0610dcac5723f212ab69a9155847b1", + "5c1fd18b3d14664e3908d98f2af3fbce0da1b580", [] ], "masonry-item-placement-008-ref.html": [ "f3503bf071131f396111956dcc0ebddf5e9bd051", [] ], - "masonry-rows-item-placement-auto-flow-next-001-ref.html": [ - "cbb3e825a4b76d28dc6e93b53eeeea1b5e40a118", - [] - ], "masonry-rows-with-grid-width-changed-ref.html": [ "71c081f2cac1b1f358b484834ab0c5f8df68625c", [] @@ -427887,10 +428593,6 @@ "masonry-order-001-ref.html": [ "6f20bd05838efed10a0915b30941ff7bcbb73b6a", [] - ], - "masonry-order-002-ref.html": [ - "15be3fde83710c6a7876a5befa8d91dc9f26f8e7", - [] ] }, "subgrid": { @@ -428658,6 +429360,10 @@ "28d57bc19c779250d792eafc2d5e4461baece0d5", [] ], + "conic-gradient-001-ref.html": [ + "2f12c01bb5fe1aee2f1eedd2461133ed257f3bf9", + [] + ], "gradient-analogous-missing-components-001-ref.html": [ "5e89048bf00d924bc63fce23301c59c0a4a3c417", [] @@ -428670,6 +429376,10 @@ "134388315a03691bdd20e77cf7d54ba959e9b7fb", [] ], + "gradient-analogous-missing-components-004-ref.html": [ + "09f168115bee8485e27da66a686d888cfcc3259b", + [] + ], "gradient-decreasing-hue-hsl-ref.html": [ "df6dc90ac033e4d00fca3e8f5f6e7ad998aa4c6c", [] @@ -428691,7 +429401,7 @@ [] ], "gradient-eval-004-ref.html": [ - "f197386bcfb4af5bc084fd262cc29a73f2329ffe", + "f28b30137cdc176fa6c9134ffecbb981e87da557", [] ], "gradient-eval-005-ref.html": [ @@ -432013,6 +432723,10 @@ "f0ee4df8c9de3a77fb39b40942dbf0743312494f", [] ], + "column-height-009-ref.html": [ + "034440ebd5c81be43f0d871d3adb276b2a735768", + [] + ], "column-pseudo-background-color-ref.html": [ "8a6d741542939fda5e165f56129a44fdd2e950a9", [] @@ -433865,6 +434579,18 @@ "dca775fcecadf26d115e3961da6affb519b0fdba", [] ], + "scroll-marker-contain-001-ref.tentative.html": [ + "69e9167cc33a2ec61e47ea9c2199141c028424b2", + [] + ], + "scroll-marker-contain-002-ref.tentative.html": [ + "3fa777f7863f1f5e395e3304f6fbd763a9cf206e", + [] + ], + "scroll-marker-contain-003-ref.tentative.html": [ + "09bb93d4ebcefa99f22ae932626bf21c0b6ba528", + [] + ], "scroll-marker-counters-ref.html": [ "7113a5c5d23a97cf83f173a72ef96b57ecf09263", [] @@ -435552,6 +436278,10 @@ "9ba42e18b2bc6d37ac1d98af14d30f9894d4e2bc", [] ], + "position-sticky-table-pixel-rounding-ref.html": [ + "83313e0ad109ffee6bc313d9814aa26866e839f7", + [] + ], "position-sticky-table-td-bottom-ref.html": [ "e851315641e0212bcbc2453b56e831422b6d6c32", [] @@ -445741,7 +446471,7 @@ [] ], "properties.js": [ - "81cf9d46d5ff575e16b955ec2d64f579699fd441", + "e450208389086aa559b576eeea723800c3acf933", [] ], "ruler-h-50%.png": [ @@ -448306,7 +449036,7 @@ [] ], "navigate-after-hide.html": [ - "0b6a3d669e89e07b6b6476dcdaafef3157fdaa77", + "9bed19eda2a0187a18583f05a151ca0ebb1247a2", [] ], "opt-in-style.css": [ @@ -448392,6 +449122,10 @@ "d189a460c7cb5147b04367d4e56aac0ae751c6d5", [] ], + "nested-root-capture-with-clip-ref.html": [ + "0e2c7d025431898870762711a18e38150448985a", + [] + ], "resources": { "compute-common.css": [ "20337ccce5f3387e7e70e6fb219544369b74aa06", @@ -448808,6 +449542,10 @@ "d1b9a0d68dd5cf15d035896a6e4deac59b950310", [] ], + "font-size-keyword-specified-ref.html": [ + "3395465c5d59422520d62002618e406e97e63423", + [] + ], "font-size-ref.html": [ "30eaa4aeb9fcae4e42ca2061358bd976e9144eee", [] @@ -451448,7 +452186,7 @@ [] ], "wm-propagation-body-044-ref.html": [ - "9cf46c0b214652ca0bd7f28fe88c7943f6ccef8c", + "f61f97c9a1de34e246f1edb056cab56cc6db62b7", [] ], "wm-propagation-body-047-ref.html": [ @@ -451826,6 +452564,10 @@ "b0dbb071d5b05d1c574cd5c9a660f1e3d62c573b", [] ], + "action-utils.js": [ + "c3ab5272da666146564deae7fc6ab9ffbec3a9e4", + [] + ], "b-green.css": [ "a0473f5ca26652c1229290bbf1f81eabc1e37280", [] @@ -452227,6 +452969,10 @@ "21c33ea1cd44fa23f6f92c3881e6ef22d33587d2", [] ], + "feComposite-intersection-feTile-input-ref.html": [ + "4345e3d8ac143dfffef9638d75481bfe40630163", + [] + ], "fecolormatrix-negative-ref.html": [ "95a0051c18a1219012e48ad91e58ecc213ba24b6", [] @@ -457272,6 +458018,10 @@ "e38d492da0a2c22c30bdc799b6b06c224bfec136", [] ], + "WEB_FEATURES.yml": [ + "b20102ff2a34622e493481126f59717660d9d2fd", + [] + ], "resources": { "crossiframe-childframe.html": [ "6a8bc6b64240636dbc576aaa15b9c86b799dae8e", @@ -460240,7 +460990,7 @@ [] ], "README.md": [ - "a69aab487239021088f944b0a8cee2dad4b3d111", + "cbb5b85b74d1347b93c7f0e480cf978262da6b03", [] ], "resources": { @@ -460507,7 +461257,7 @@ [] ], "ba-fledge-util.sub.js": [ - "3371813feee6e11dedd71126ca1b354e64021d73", + "8fa4eb1e3514274e9ca179253fdae56150ccf07b", [] ], "ba-public-keys": [ @@ -460535,7 +461285,7 @@ [] ], "fledge-util.sub.js": [ - "ebd2b44b9928a9c72e93112f226e51cfa54d4094", + "e0d5d99bb6553e441de6e4a8213cf114002666f0", [] ], "fledge_http_server_util.py": [ @@ -460567,7 +461317,7 @@ [] ], "service-worker-helper.js": [ - "cc00181359740b51f83c3289cfc215252123b67e", + "2b94dc60e0175996ac27dfcc8df93ef573978a56", [] ], "service-worker-helper.js.headers": [ @@ -461226,6 +461976,14 @@ "2d3bf3ed873e8b1d361afbd8aacaee3f3d0b6251", [] ], + "Lato-Medium-Liga.ttf": [ + "3a0beaea38b8bc0cbf6fa656bf23e28cfdf18c6f", + [] + ], + "Lato-Medium.ttf": [ + "2c612da2ae589dc264deb683f90baf75c8e18e03", + [] + ], "META.yml": [ "5b04a86e6ef33a371a3e4199fff4cd8d2fc6e25b", [] @@ -467051,11 +467809,11 @@ [] ], "canvas-promise-test-worker.js": [ - "f5410efca5b92d3b1272f94a9049027972698996", + "2cb50c322f7978c12bbc10faed1d8302ad58d79a", [] ], "canvas-promise-test.js": [ - "1b2e2b3a584a1740c01e6911f6e5c72b0a5aafda", + "09e01633ace2fc9157ae8b98f47fed3edc7a90d9", [] ], "canvas-spec.css": [ @@ -467220,7 +467978,7 @@ [] ], "text.yaml": [ - "48a0429f267d281927fad8d59dd6a791e6f029ac", + "900431860e27fa1c41276cc43bc961ea3da45270", [] ], "the-canvas-state.yaml": [ @@ -473239,6 +473997,10 @@ ] }, "the-option-element": { + "option-label-whitespace-2-ref.html": [ + "b0567c2b4e33f48efe31b62620f243b0089f0589", + [] + ], "option-label-whitespace-ref.html": [ "acb4f9ee2478898eb648c00ea6b9f6ed0e71c7a7", [] @@ -482232,6 +482994,10 @@ "e11810cc10fa16774924fe8a8080ab5aae161ac7", [] ], + "WEB_FEATURES.yml": [ + "fbd4cc58df949323199f8832a72592f6e00d8b5f", + [] + ], "resources": { "iframe-stores-entry.html": [ "cd600254805570deab8447ea843657d7f268b7c5", @@ -482324,7 +483090,7 @@ ] }, "lint.ignore": [ - "65e22dccbc1d9cce01a6c570fe739e68d112df3e", + "8df85b016fe85482344b9d5cbe76f1e15a8d8827", [] ], "loading": { @@ -490113,7 +490879,7 @@ [] ], "testdriver.js": [ - "05301bf55895eef71dc7e949871388f8f9cd7a49", + "b63d5b176636bfc2477cae4a9858872530211394", [] ], "testdriver.js.headers": [ @@ -490272,7 +491038,7 @@ [] ], "sandboxed-iframe-locking.html": [ - "436c67f5b53b1f88ef1537072be3b0011724d7b3", + "f4773535dbc3d21319f8dd7a398ff7731d19a240", [] ] } @@ -490314,6 +491080,14 @@ "adf4bf2ac173e8bff0978fa19b24e535f4229c2e", [] ], + "animation-trigger": { + "support": { + "support.js": [ + "f5aa18e82f19f7fa56b2853e2c46b21342b7d970", + [] + ] + } + }, "css": { "animation-fill-outside-range-ref.html": [ "998576b3a4f2257006232506ee32306bc716895c", @@ -494732,6 +495506,14 @@ "8cfe09a41fe2ac32e734073329681bb74962eb03", [] ], + "protocol-handler-service-worker.js": [ + "cb6142db0e3c4b00fecfde154b77f06a3517ef9d", + [] + ], + "protocol-handler.html": [ + "210b23aae21a5ab25d48262b9f0bd31f489a7de8", + [] + ], "push.https.html": [ "30eb563ab75532d47dfc5706b81686059d19a8a0", [] @@ -494808,8 +495590,12 @@ "06688e3bd4cf6e8d251ef694ffba40b8dab95248", [] ], + "shared-storage-worklet.js": [ + "92a1a7325bb7ac7c169cc1745241d08e5717d5f4", + [] + ], "shared-storage.https.html": [ - "53edf109698d013e21c001525e00a74e9a3a5350", + "408168e4c4c7599eaa81654289b234e16b9de8a5", [] ], "shared-worker.py": [ @@ -495259,7 +496045,7 @@ ], "tentative": { "helper.js": [ - "e5e00ec7b5318d5bbe5c8542458e61b4105c5c93", + "458da38213a83f48faa772f22dbe655f75684c23", [] ] } @@ -496786,7 +497572,7 @@ [] ], "requirements_build.txt": [ - "e74e4e5302de95611631ab3193f8ae38f643f7dc", + "60c09170a98e2d16fd3e499962f59b0df8089fd3", [] ], "requirements_macos_color_profile.txt": [ @@ -508068,7 +508854,7 @@ [] ], "chrome.py": [ - "76bc652075eef3e4738ec4b276e1b19bcd55579e", + "e3ef73de6a04a354ba3d72db85dc0d149c21050a", [] ], "chrome_android.py": [ @@ -508168,7 +508954,7 @@ [] ], "actions.py": [ - "859ce8f4fa604481a029b0af624d4cddaeafd429", + "06d58e7e87b6dc9bad8c8eddadcdb2597779b24e", [] ], "asyncactions.py": [ @@ -508188,7 +508974,7 @@ [] ], "executormarionette.py": [ - "ebc4a4a565667d66af7da73332802da72fadf580", + "b4b5b2a3ea664d7652e3735e360f2b01b04c74ed", [] ], "executorselenium.py": [ @@ -508204,7 +508990,7 @@ [] ], "executorwebdriver.py": [ - "95667480afe7bd67a54f235428f12a45879bac5a", + "bea6ab57ba8ac93f5812569d489336d36ba1ac87", [] ], "executorwktr.py": [ @@ -508220,7 +509006,7 @@ [] ], "protocol.py": [ - "0940e87cdbdea9b78397a067240553f3034eb0f6", + "53a7b4378483e183d10532c50d26be1586a95dbe", [] ], "pytestrunner": { @@ -508335,7 +509121,7 @@ [] ], "testdriver-extra.js": [ - "9ddbe2e8df53886c5c3c89e5f21b62c5da760a2d", + "71c1be2732f3e62f156c2d1017eee8e8111ac254", [] ], "testdriver-vendor.js": [ @@ -509148,7 +509934,7 @@ [] ], "csp-violations.js": [ - "49649f45cd6e263bff984f0afcb5ecafbbb8a0a5", + "46c2ca1b30f33bec538b2245ed8e9a8c1a1b7c6d", [] ], "event-handler-attributes.mjs": [ @@ -509195,10 +509981,110 @@ "45053d43e362e223e0ce5e6dffb4da09c0ce3f34", [] ], + "should-sink-type-mismatch-violation-be-blocked-by-csp-002-worker.js": [ + "dc3eb004c384b578f1217575626ba5725018f15e", + [] + ], + "should-sink-type-mismatch-violation-be-blocked-by-csp-002-worker.js.headers": [ + "c17d57d19ae4ef9d3e584d10fc39065823cb2f73", + [] + ], + "should-trusted-type-policy-creation-be-blocked-by-csp-004-worker.js": [ + "c5c512d98a2748bfbe12880b7003a6845806c6a2", + [] + ], + "should-trusted-type-policy-creation-be-blocked-by-csp-004-worker.js.headers": [ + "c27bd116d8d25f28a411097e6d53b1dc30f3bdc5", + [] + ], + "trusted-types-reporting-check-report-create-policy-worker.js": [ + "6bb346e3195f613bc45d806b63496c7c9a0b6903", + [] + ], + "trusted-types-reporting-check-report-create-policy-worker.js.sub.headers": [ + "58beda2418334357fedf554f2dfda27aaff10040", + [] + ], + "trusted-types-reporting-check-report-create-policy.js": [ + "5d96829727b7df77c3d37c2a4f1b56f689c0742e", + [] + ], + "trusted-types-reporting-check-report-sink-mismatch-worker.js": [ + "85910e2e92622c3550e455aa61fde11a31c69a50", + [] + ], + "trusted-types-reporting-check-report-sink-mismatch-worker.js.sub.headers": [ + "5fcdf6ccbfcc9121834a2b3e04650fd185232a90", + [] + ], + "trusted-types-reporting-check-report-sink-mismatch.js": [ + "96ad9c116b4035c8787fc8bf64b776de5fc28640", + [] + ], "trusted-types-reporting-for-DOMWindowTimers-setTimeout-setInterval.js": [ "15a18304496c21f074354a8e7e0a7671cceed738", [] ], + "trusted-types-reporting-for-DedicatedWorker-constructor-worker.js": [ + "e5b09eb3707ef22b96160f7b4143b35f07728118", + [] + ], + "trusted-types-reporting-for-DedicatedWorker-constructor-worker.js.headers": [ + "54d8b1d4c1285d05cbabf7b35b0facea96284bad", + [] + ], + "trusted-types-reporting-for-DedicatedWorker-constructor.js": [ + "cb5ae4c8e2cd1b2cc20e7e1d9928cc2078106ac7", + [] + ], + "trusted-types-reporting-for-ServiceWorkerContainer-register-worker.https.js": [ + "cce29cb2f7b946d9aa0171a54b26b541204076c4", + [] + ], + "trusted-types-reporting-for-ServiceWorkerContainer-register-worker.https.js.headers": [ + "54d8b1d4c1285d05cbabf7b35b0facea96284bad", + [] + ], + "trusted-types-reporting-for-ServiceWorkerContainer-register.https.js": [ + "f59799d4776d33534d610c2fc6e83bf7c9a1deb1", + [] + ], + "trusted-types-reporting-for-SharedWorker-constructor.js": [ + "a65731a2f9c5e569e2653d46ca0740dda7c31c15", + [] + ], + "trusted-types-reporting-for-eval-worker.js": [ + "2a4780dcbaddfc8cab4dc2e3d895db94ba7f4edf", + [] + ], + "trusted-types-reporting-for-eval-worker.js.headers": [ + "54d8b1d4c1285d05cbabf7b35b0facea96284bad", + [] + ], + "trusted-types-reporting-for-eval.js": [ + "0f8120a7a1fb901b0e7836a1ba04b644228e9a28", + [] + ], + "trusted-types-reporting-for-function-constructor-worker.js": [ + "ce73b9136897416dfef0d229bd5c87ceea1e5305", + [] + ], + "trusted-types-reporting-for-function-constructor-worker.js.headers": [ + "54d8b1d4c1285d05cbabf7b35b0facea96284bad", + [] + ], + "trusted-types-reporting-for-function-constructor.js": [ + "51d04b661f4e4a0d3ad11ea90a9bb09a624a1183", + [] + ], + "trusted-types-reporting-for-importScripts.js": [ + "c8de9f8d5fdab4d4d2d82ec37eedd7785c1ceee1", + [] + ], + "trusted-types-reporting-for-importScripts.js.headers": [ + "54d8b1d4c1285d05cbabf7b35b0facea96284bad", + [] + ], "trusted-types-reporting-for-setTimeout-setInterval-worker.js": [ "7c65802c9ef09696f0f74fa386629948847c1783", [] @@ -509207,6 +510093,14 @@ "54d8b1d4c1285d05cbabf7b35b0facea96284bad", [] ], + "trusted-types-sandbox-no-allow-scripts.html": [ + "11967a4d97f80d0ce5344cb2dc309070c2ab57da", + [] + ], + "trusted-types-sandbox-no-allow-scripts.html.headers": [ + "da0823c6bc5d9682dd643ee9d6a64b4f3be47bae", + [] + ], "worker.https.js": [ "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", [] @@ -509220,28 +510114,28 @@ "b6608515aa85a08dbb56531c46c097e179c76200", [] ], - "trusted-types-eval-reporting-no-unsafe-eval.html.headers": [ - "72cebc03552da9db7a51cf88a4f709f950d5b5c9", - [] - ], "trusted-types-eval-reporting-report-only.html.headers": [ "9ab275fe6f1d4988717f004be774f84374df276f", [] ], - "trusted-types-eval-reporting.html.headers": [ - "1e57f8bf5851bc42b282a554e4d5211281850f8d", - [] - ], "trusted-types-report-only.html.headers": [ - "602186027d0d759b9cc224f29de584bb9c71c198", + "096c0b401953f847a278792d810402e6ccc633c7", [] ], - "trusted-types-reporting-check-report.html.sub.headers": [ - "c055bdc6563685adabeffb8141a83376a0cea1f2", + "trusted-types-reporting-check-report-Window-create-policy.html.sub.headers": [ + "4653c9d7031864065b600f460dd604de64886f7e", + [] + ], + "trusted-types-reporting-check-report-Window-sink-mismatch.html.sub.headers": [ + "62a0c13f0a38df5b092cdab116f4fdc556a126ec", [] ], "trusted-types-reporting.html.headers": [ - "7076f4106f73488aad64064213fda18b4c43392b", + "5809a919913781a50db9612d0173e529eac7a826", + [] + ], + "trusted-types-sandbox-allow-scripts.html.headers": [ + "6bd66164613016269ebcee6416ed41cdf312a42a", [] ] }, @@ -509938,7 +510832,7 @@ [] ], "urlpatterntestdata.json": [ - "f92ab76b71df5ab42b729ebe366e381bd9e939af", + "75f1cf8694523b63cee9c94dd90eebeb13434ba5", [] ], "urlpatterntests.js": [ @@ -511121,7 +512015,7 @@ "animation-model": { "animation-types": { "property-list.js": [ - "f31ee8e4ccf05471e94417971da6ca31b288719e", + "9cfd90d17f2e95986cd3db5999447faef9a64df6", [] ], "property-types.js": [ @@ -512505,7 +513399,7 @@ [] ], "video-encoder-utils.js": [ - "916f995156e51d7fed083d9ab175cc44d974dc6b", + "5c8d17e5bfe65ff382cc8ae617350873f7cabd4d", [] ], "videoDecoder-codec-specific-setup.js": [ @@ -514078,7 +514972,7 @@ }, "resources": { "utils.js": [ - "7cecf29061fe35408b0875ba3cf2638ea5eb0605", + "70c97a8454cdd95ad9af78702cafb0dcc7515986", [] ], "utils_validation.js": [ @@ -518778,7 +519672,7 @@ [] ], "redirect.py": [ - "3839b635e022a347a7877e9022d9820d55831588", + "e2786b45031b3d6493eeff9bbe8d7eaf7a46c566", [] ], "requri.py": [ @@ -545042,7 +545936,7 @@ "ai": { "language_detection": { "detector.https.tentative.any.js": [ - "337f11d338d495a46a6926308970768f99ac2526", + "98968415ddd2af1530a95986dc7cdb727ad61551", [ "ai/language_detection/detector.https.tentative.any.html", { @@ -545206,7 +546100,7 @@ ] ], "ai_translator_translate.tentative.https.any.js": [ - "729cb04fb76e94d9bf8eb40e463b840931b0e3a7", + "992215d921025079dfee122672fcde827c249e6a", [ "ai/translator/ai_translator_translate.tentative.https.any.html", { @@ -553102,8 +553996,8 @@ ] }, "clear-site-data": { - "clear-cache-partitioning.sub.https.html": [ - "b3841450b5a3fcfbe79857cebd7da8855754597a", + "clear-cache-partitioning.https.html": [ + "2deadeef2d0853d08a559a9af8050646fb8e3163", [ null, { @@ -553112,7 +554006,7 @@ ] ], "clear-cache.https.html": [ - "e356001d0c89e39273e3070dec43e3a66cd44171", + "c75c2e16becf994dccfc7d05aa6147ba1022d72b", [ null, { @@ -570778,14 +571672,14 @@ ] ], "anchor-center-htb-htb.html": [ - "50fc09061073a7bcd16d9669b3fd6ad85234e783", + "88e01619cafad8a51e5dcea6bbb565e8cdae14e2", [ null, {} ] ], "anchor-center-htb-vrl.html": [ - "eba72d649133da882a9fa095f0433f426b54bf8e", + "f777a2caf8803f77283d9fe667ca29c7ecdf4fa0", [ null, {} @@ -570799,14 +571693,14 @@ ] ], "anchor-center-vrl-htb.html": [ - "8f7af0414edd4eb606e7be3437f81468696522b9", + "595f7ea1ecdc6fb52e86624fa6dccc7861563aa7", [ null, {} ] ], "anchor-center-vrl-vrl.html": [ - "d8e90057dc3372c5ccca659132e708c678678a56", + "e22391a8192e1c0909a7983b08c450f9bff219e3", [ null, {} @@ -571692,21 +572586,21 @@ ] ], "position-area-anchor-outside.html": [ - "d8fb5dbc98fa90513e339487b6e8284ca2db92bc", + "9b0c74170aa0f44821b28c7899011128c18c896e", [ null, {} ] ], "position-area-anchor-partially-outside.html": [ - "e23cea474787b1f613a87fdddf306aec40fb93b1", + "3dd537d26e09fb43bbf0fd3cd3dd30efd8b55e94", [ null, {} ] ], "position-area-basic.html": [ - "6cbaf8e50145b19a3e761f91abb7adcdb30d400d", + "2a568cc80281489fb54da4c48e55400d816718ab", [ null, {} @@ -572220,6 +573114,13 @@ {} ] ], + "animate-with-background-color-oklch-002.html": [ + "ee6847c11bf1257c59bdcf5b53a61245403d7cfa", + [ + null, + {} + ] + ], "animate-with-color-mix.html": [ "0b6d9bb4ab3ae911e7291e1da5e2259c0afbd0fc", [ @@ -575826,7 +576727,7 @@ ] ], "color-computed-relative-color.html": [ - "23ee07d177ac525c2ce2b4e60cd1861a33cc23c5", + "9bb87459623ac3c50b2154432269adef114fe811", [ null, {} @@ -577415,6 +578316,13 @@ {} ] ], + "CSS-supports-details-content-pseudo-parsing.html": [ + "67a46fe82a2ffaa4d5a9bd0729831c6e4415ab54", + [ + null, + {} + ] + ], "CSS-supports-selector-detecting-invalid-in-logical-combinations.html": [ "3adcd7ae2e62bd76130b3ecf2b903e1401b23c77", [ @@ -579660,6 +580568,13 @@ {} ] ], + "flex-shorthand-calc.html": [ + "6498988dd53b3e6f7e48f643094551121fdc28f4", + [ + null, + {} + ] + ], "flex-shorthand-flex-basis-middle.html": [ "284aac275b87b59a2703e3aaaf78e2369d77a95a", [ @@ -580667,7 +581582,7 @@ ] ], "flex-computed.html": [ - "ea1f4f6fa4568e8a3b4913aea52d89d5ec1e1870", + "074d0f7395c1ce53fb37e2875d389ddf8c352c7e", [ null, {} @@ -580744,7 +581659,7 @@ ] ], "flex-invalid.html": [ - "ae010d7b4b4540f6591c1ad42f1c89753a71afc6", + "d47f8b6793074c5aa27881eaf58809e69a76812d", [ null, {} @@ -580779,7 +581694,7 @@ ] ], "flex-valid.html": [ - "f3eaf118da61d2eb9cd6f30e7f703a0de8053305", + "4c57fe4e25361f9223fade0794bb3a1869c89caa", [ null, {} @@ -580835,6 +581750,13 @@ ] ] }, + "percent-height-flex-items-cross-sizes-with-mutations.html": [ + "87f20000f1f2e1718e31dddb9c92d0edf10b6cb3", + [ + null, + {} + ] + ], "percentage-heights-000.html": [ "cf501031448c8d3d020061d29a2c7e6991deea92", [ @@ -581393,6 +582315,13 @@ {} ] ], + "font-variation-settings-calc.html": [ + "e3f5178952e0df7aa8f6f185edc6148144975a9d", + [ + null, + {} + ] + ], "font-variation-settings-serialization-001.html": [ "88764fd652f453f2def184a26f922783aa6d0121", [ @@ -585619,7 +586548,7 @@ ], "parsing": { "masonry-parsing.html": [ - "2204c06f72b8bd15c9662def13c3d89fb64048b4", + "64af83b316c912fcc4eeac9a13f52ed089d0f358", [ null, {} @@ -585630,7 +586559,7 @@ }, "parsing": { "grid-area-computed.html": [ - "d1ae78c7023c9cbd9ea4040e63692c24b1323a74", + "9b31e2b23c6fbe99bc712a116a57e0384a5396e0", [ null, {} @@ -589252,6 +590181,15 @@ } ] ], + "column-scroll-marker-focus-002.html": [ + "cd26b8aca85fe6d4e9ac643f4675d8ca1a3b83bd", + [ + null, + { + "testdriver": true + } + ] + ], "column-updates-computed-style.html": [ "d741b8cf915a189e13a7f7c2738bb2880aa4e852", [ @@ -589668,6 +590606,13 @@ } ] ], + "scroll-marker-15.html": [ + "764e56b55436ad461df39ec44e25d660c1d99bc6", + [ + null, + {} + ] + ], "scroll-marker-activation-retains-focus.html": [ "cf38ed354c73d3c5840258f87912a76c50ccebed", [ @@ -590115,7 +591060,7 @@ ] ], "overscroll-behavior-root.html": [ - "18c172b40a13b5bac3bcfeb08f23d59fd94ee17e", + "a116ead01b71db7b72bfd483b10b35b2e83ea1b8", [ null, { @@ -591785,6 +592730,15 @@ {} ] ], + "focus-visible-originating-element.html": [ + "05fc82324917c49ce3fab8e667dd3a9df51825d8", + [ + null, + { + "testdriver": true + } + ] + ], "highlight-cascade": { "highlight-cascade-007.html": [ "df79d8dff51ae23a75a7a4ef593f673ea596f36d", @@ -593966,6 +594920,13 @@ {} ] ], + "resnap-on-oveflow-hidden-container.html": [ + "41e454b2789cb90f1c72edf9f3dab8b3960b400d", + [ + null, + {} + ] + ], "resnap-on-reconstructing-frame.html": [ "d046608815aff119e443a17594a4947bea2ce587", [ @@ -596134,7 +597095,7 @@ ] ], "contain-intrinsic-size-028.html": [ - "15e8e0e89108b112bc113d6090946307379f53e7", + "da31a1efeadea5bf6f32b6aee6ec9e452a30917c", [ null, {} @@ -596176,7 +597137,7 @@ ] ], "contain-intrinsic-size-logical-003.html": [ - "48fedb11483342fd6f6fd580bab4f16b0b0fa334", + "9ee60268d60482ddbfe4c7263d2ce7b85e3c3c55", [ null, {} @@ -602925,7 +603886,7 @@ }, "inline": { "append.tentative.html": [ - "f80875622366939f48a7471513fb6319f75be718", + "fa23071c4f22468fd46015b9767c91d6ef81e232", [ null, {} @@ -603381,6 +604342,13 @@ {} ] ], + "column-height.html": [ + "f9986221f4886a756584258e8e3d4ad01c39c81c", + [ + null, + {} + ] + ], "column-rule-color.html": [ "3d35b856d71f2de9c87e83aa1ace57b3b4d8cf5d", [ @@ -604882,6 +605850,13 @@ {} ] ], + "cursor-calc-hotspot.html": [ + "84f9ca35b79878972d61e132857640a9f5e86fa7", + [ + null, + {} + ] + ], "historical": { "moz-user-modify-01.html": [ "595df9440e523fc371cf55975e4042d569163136", @@ -605569,6 +606544,13 @@ {} ] ], + "calc-complex-unresolved-serialize.html": [ + "64bccd216abe357a3594d27f1b016d473c44f7a0", + [ + null, + {} + ] + ], "calc-in-color-001.html": [ "7db087def7552af2662524e26813aa51daae0cb1", [ @@ -606082,7 +607064,7 @@ ] ], "hypot-pow-sqrt-invalid.html": [ - "edecfceb13afe79ad0b13b6b5d29a9924f5fad9b", + "3e29889588399a53ddb7b1dbce84a9f2c0c36f7c", [ null, {} @@ -607274,7 +608256,7 @@ ] ], "pageswap-in-hidden-doc-should-skip-transition.html": [ - "aceced0dded84f88782356a99d96fec5febd40c3", + "2fddb7e17a4c7bdd006a255cb8e7d713c2c29660", [ null, { @@ -610816,8 +611798,26 @@ {} ] ], - "visual-scrollIntoView.html": [ - "78a3203c58587b6cf9d78faa607105dc8751179d", + "visual-scrollIntoView-001.html": [ + "825556be9691c2438be783df203e54d6b1c8d189", + [ + null, + { + "testdriver": true + } + ] + ], + "visual-scrollIntoView-002.html": [ + "7f9170654e3220807b7980bfb9c2e16c1821ce7b", + [ + null, + { + "testdriver": true + } + ] + ], + "visual-scrollIntoView-003.html": [ + "c0592098a90e7550781242a042c810d655b4c356", [ null, { @@ -617213,9 +618213,37 @@ ] ], "scrollend-event-fired-for-scrollIntoView.html": [ - "40aa77f4764b6c4301b8aba7221e1e42e768505d", + "e3e63f2820158623851bc83ec6b49d6da9adc0c2", [ - null, + "dom/events/scrolling/scrollend-event-fired-for-scrollIntoView.html?include=nested-scrollIntoView", + { + "testdriver": true, + "timeout": "long" + } + ], + [ + "dom/events/scrolling/scrollend-event-fired-for-scrollIntoView.html?include=root-inline-end-block-end-behavior-auto", + { + "testdriver": true, + "timeout": "long" + } + ], + [ + "dom/events/scrolling/scrollend-event-fired-for-scrollIntoView.html?include=root-inline-start-block-start-behavior-smooth", + { + "testdriver": true, + "timeout": "long" + } + ], + [ + "dom/events/scrolling/scrollend-event-fired-for-scrollIntoView.html?include=subframe-inline-end-block-end-behavior-auto", + { + "testdriver": true, + "timeout": "long" + } + ], + [ + "dom/events/scrolling/scrollend-event-fired-for-scrollIntoView.html?include=subframe-inline-start-block-start-behavior-smooth", { "testdriver": true, "timeout": "long" @@ -620999,7 +622027,7 @@ }, "ecmascript": { "locale-compat.html": [ - "74806987879e74befd087489285b6610d8107089", + "1f863b21ecb3b74287f9f5464303dec45c116c16", [ null, {} @@ -625738,6 +626766,33 @@ } ] ], + "delete-word-around-span.html": [ + "6250e9aec21620334d0d74e6d7642a21480ec0a1", + [ + "editing/whitespaces/delete-word-around-span.html?white-space=normal", + { + "testdriver": true + } + ], + [ + "editing/whitespaces/delete-word-around-span.html?white-space=pre", + { + "testdriver": true + } + ], + [ + "editing/whitespaces/delete-word-around-span.html?white-space=pre-line", + { + "testdriver": true + } + ], + [ + "editing/whitespaces/delete-word-around-span.html?white-space=pre-wrap", + { + "testdriver": true + } + ] + ], "forwarddelete-chars-following-collapsible-white-space.html": [ "2bf42ed18e521cfd0916307e14a3db98d6b2c439", [ @@ -625748,6 +626803,33 @@ } ] ], + "forwarddelete-word-around-span.html": [ + "ac7cbaee18654d43a657beb568bf0bd5ea426b69", + [ + "editing/whitespaces/forwarddelete-word-around-span.html?white-space=normal", + { + "testdriver": true + } + ], + [ + "editing/whitespaces/forwarddelete-word-around-span.html?white-space=pre", + { + "testdriver": true + } + ], + [ + "editing/whitespaces/forwarddelete-word-around-span.html?white-space=pre-line", + { + "testdriver": true + } + ], + [ + "editing/whitespaces/forwarddelete-word-around-span.html?white-space=pre-wrap", + { + "testdriver": true + } + ] + ], "inserttext-at-end-of-block-when-br-always-block.html": [ "922b8bd1c86230c1284fc0f14ce2031ab345c1ee", [ @@ -659026,7 +660108,7 @@ "fledge": { "tentative": { "abort.https.window.js": [ - "db6aae4604575fd0f096efeec45c86fe94e11e3d", + "e4a3189a30c823b9c7135c1733b0021ea8728684", [ "fledge/tentative/abort.https.window.html", { @@ -659057,7 +660139,7 @@ ] ], "additional-bids.https.window.js": [ - "edacb05512e968fb98668a4b40ec92c68c9a1410", + "384a9e620307bd05ba4594bb4494fd3382126333", [ "fledge/tentative/additional-bids.https.window.html?1-last", { @@ -659096,7 +660178,7 @@ ] ], "auction-config-passed-to-worklets.https.window.js": [ - "dec49b80a96967e86d318f9e31995c1786e95654", + "1fb59972b58768227e3e1e2e272ee3e8969d86dd", [ "fledge/tentative/auction-config-passed-to-worklets.https.window.html?1-5", { @@ -659519,7 +660601,7 @@ ] ], "auction-config.https.window.js": [ - "50b9cb9e9e6b071604522268fc1113a7f1a8a662", + "e32d8b31773295aa498db9109f20128109def8da", [ "fledge/tentative/auction-config.https.window.html?1-5", { @@ -660754,7 +661836,7 @@ ] ], "clear-origin-joined-ad-interest-groups.https.window.js": [ - "097978a7858523c759a70ac9843baec8eee65dc4", + "9f0818da2c4b1600d9c1f3ba7668c2e434f14cbe", [ "fledge/tentative/clear-origin-joined-ad-interest-groups.https.window.html?1-4", { @@ -661339,7 +662421,7 @@ ] ], "cross-origin.https.window.js": [ - "9669f2790bcfa492a5419c9f7f16d39b12da0f2c", + "6c95f74c1f597332e2b74d9c5dd18f7808d34124", [ "fledge/tentative/cross-origin.https.window.html?1-4", { @@ -661534,7 +662616,7 @@ ] ], "currency.https.window.js": [ - "f1b2bba87340340fdf04b5d4c065fe06707f53a1", + "b65dea5820ab69aad19839281dcda54ea7d0b1d1", [ "fledge/tentative/currency.https.window.html?1-4", { @@ -662149,7 +663231,7 @@ ] ], "deprecated-render-url-replacements.https.window.js": [ - "75377ca7aa348486fad8ed589e7d947f2dcb3b64", + "51daaf277975043f065c39fc2dfc043c5301af8d", [ "fledge/tentative/deprecated-render-url-replacements.https.window.html?1-5", { @@ -662344,7 +663426,7 @@ ] ], "direct-from-seller-signals.https.window.js": [ - "3f58b2c8ad541da98b1345bc7db3994d8ed5340e", + "a4e6911491d2c7b1f5df6f190139d0d7a15752e8", [ "fledge/tentative/direct-from-seller-signals.https.window.html?1-4", { @@ -662973,7 +664055,7 @@ ] ], "generate-bid-browser-signals.https.window.js": [ - "00c4bfdcc315c02211792888b0e377302df2e36d", + "e472fccdc4da37c1a2cebb80921809cab5788b54", [ "fledge/tentative/generate-bid-browser-signals.https.window.html?1-4", { @@ -663488,7 +664570,7 @@ ] ], "get-interest-group-auction-data.https.window.js": [ - "855e6b5a075cfbbba74772dc222e8a487fb3a118", + "de749e1e60a2d5f010c07dd98829ede5c7da21ea", [ "fledge/tentative/get-interest-group-auction-data.https.window.html?1-4", { @@ -663798,7 +664880,7 @@ ] ], "interest-group-passed-to-generate-bid.https.window.js": [ - "172cbab466440b4f2d8ffe3a1f937e9b4520461d", + "6b5602158ffcfe5930feeb653e0a85e3ab599b60", [ "fledge/tentative/interest-group-passed-to-generate-bid.https.window.html?1-5", { @@ -665501,7 +666583,7 @@ ] ], "interest-group-update.https.window.js": [ - "ceac2c79a6e93635f5f4ebb9e7e26256cb695a7b", + "041100547446369dd7566d2ab010319edc434135", [ "fledge/tentative/interest-group-update.https.window.html?1-4", { @@ -665764,7 +666846,7 @@ ] ], "join-leave-ad-interest-group-in-fenced-frame.https.window.js": [ - "1e2824666cc7c2b8c1fd8c19e2414bdea07f9714", + "2939d3847841357187e1999e4ad214510bac60cc", [ "fledge/tentative/join-leave-ad-interest-group-in-fenced-frame.https.window.html?1-4", { @@ -665899,7 +666981,7 @@ ] ], "join-leave-ad-interest-group.https.window.js": [ - "68a4e9d09c941493b8dd8c85c5a535a5d962d761", + "5e004ed1dc5dbb71216eb0f2f5e44cea41e722b5", [ "fledge/tentative/join-leave-ad-interest-group.https.window.html?1-10", { @@ -666514,7 +667596,7 @@ ] ], "kanon-status-below-threshold.https.window.js": [ - "6f3c2f572a198469607a27b51328c9ff8364d7a0", + "419b94bd7814756059a2029562510915a1c648ef", [ "fledge/tentative/kanon-status-below-threshold.https.window.html", { @@ -666544,7 +667626,7 @@ ] ], "kanon-status-not-calculated.https.window.js": [ - "87a66c106fbff5388e05905539840556ceb41e35", + "965082d8ffd0a2f4cbdedea298f19abddab1afa9", [ "fledge/tentative/kanon-status-not-calculated.https.window.html", { @@ -666769,7 +667851,7 @@ ] ], "no-winner.https.window.js": [ - "2632a95deeeb85eb9bc7be26194260af218c59ad", + "cfa0704dbc400248d48ed8bbfa771af86fc73dc6", [ "fledge/tentative/no-winner.https.window.html?1-5", { @@ -667492,7 +668574,7 @@ ] ], "private-aggregation.https.window.js": [ - "a1c261b6291495ffb778753f1444dac5f414b910", + "474bf4ced76c2214d9abc82e0e5b69fe7b787b82", [ "fledge/tentative/private-aggregation.https.window.html?1-5", { @@ -667703,7 +668785,7 @@ ] ], "real-time-reporting.https.window.js": [ - "5ebd20d19aec35f8c5fa14c314621f8724493126", + "84dce53844f44c9dc468ad63f168588bd973841d", [ "fledge/tentative/real-time-reporting.https.window.html?1-5", { @@ -667794,7 +668876,7 @@ ] ], "register-ad-beacon.https.window.js": [ - "d74f0dab5e56601c808d7cd28dc6dea78aa5b628", + "98b6a75c42f33bf5d8a900d817c5a20e718718da", [ "fledge/tentative/register-ad-beacon.https.window.html?1-5", { @@ -667929,7 +669011,7 @@ ] ], "reporting-arguments.https.window.js": [ - "a3b546f596476d95d36e6d0a6c7dd858c2a62e27", + "04af8ebc64354d6fe987c310352f08eb2d8a289f", [ "fledge/tentative/reporting-arguments.https.window.html?1-5", { @@ -668124,7 +669206,7 @@ ] ], "reporting-ids.https.window.js": [ - "43c78987f1e8610c5aff66f72ec37d2e58330dca", + "0019393008bc565c10aa8af9cd7ab28f82d102d1", [ "fledge/tentative/reporting-ids.https.window.html?1-5", { @@ -668207,7 +669289,7 @@ ] ], "round-a-value.https.window.js": [ - "2195b45ea5f81893699a6732f102d492f3d12bec", + "21bbf29572659789651de645f38a89d759f62dc0", [ "fledge/tentative/round-a-value.https.window.html", { @@ -668238,7 +669320,7 @@ ] ], "score-ad-browser-signals.https.window.js": [ - "23fee313af53b5431928f6d4c5cd406c3ccb915c", + "9acf994cf9fd9b0355561af7ca3b97ea5eb5ddc1", [ "fledge/tentative/score-ad-browser-signals.https.window.html?1-last", { @@ -668277,7 +669359,7 @@ ] ], "send-report-to.https.window.js": [ - "163443cb76d450e5a559fefcbd48ac26266e33dc", + "fa0f01ccfe8b403fcd6ceded435688481b37f467", [ "fledge/tentative/send-report-to.https.window.html?1-5", { @@ -668360,7 +669442,7 @@ ] ], "server-response-for-debugging-only.https.window.js": [ - "1b4edc66a89ce0577f14ef76b79d655492629a19", + "e6787e8a2d9bda86c78b289e26ac1361f1652c35", [ "fledge/tentative/server-response-for-debugging-only.https.window.html?1-last", { @@ -668411,7 +669493,7 @@ ] ], "server-response-private-aggregation.https.window.js": [ - "d7f21e16cf08506ec277985dec74ae81e350a2e6", + "6d9a8a887706eeb75506a95884271a754e4ee05e", [ "fledge/tentative/server-response-private-aggregation.https.window.html?1-6", { @@ -668518,7 +669600,7 @@ ] ], "server-response.https.window.js": [ - "d4eaf0d25123298a696f0116cb54c6fe144038d4", + "4241cc8e1c9025bfae29d72a1567fcf63be3242e", [ "fledge/tentative/server-response.https.window.html?1-6", { @@ -670357,7 +671439,7 @@ ] ], "service-worker-request-visibility.https.window.js": [ - "8b8618420e56e30d2a9e4428f24f22cc7d9053b9", + "41ebf839600bb2cd52bbb9f01b7a8118dc1eee13", [ "fledge/tentative/service-worker-request-visibility.https.window.html?1-last", { @@ -670396,7 +671478,7 @@ ] ], "tie.https.window.js": [ - "f528df8fb020382907a63d372452010217bf2b55", + "21be690c92ef4386d7100d1e600a1c3524f48809", [ "fledge/tentative/tie.https.window.html", { @@ -672929,7 +674011,7 @@ ] ], "utf8-helpers.https.window.js": [ - "4a712bf6269ea1fc2b9e7eb832a2b3cdcf2a9e07", + "9d8d0836419fd7f7223707be99d700b28ee39aca", [ "fledge/tentative/utf8-helpers.https.window.html?1-5", { @@ -684883,6 +685965,13 @@ "timeout": "long" } ] + ], + "open_initial_size.html": [ + "a3a82d7646891edc92008073c1bb66fab7d36fa6", + [ + null, + {} + ] ] }, "proxy-getOwnPropertyDescriptor.html": [ @@ -692947,6 +694036,20 @@ {} ] ], + "2d.text.measure.lang.html": [ + "a11e838799c635a33b35c2233bcf92f8d0b71b7d", + [ + null, + {} + ] + ], + "2d.text.measure.lang.inherit.html": [ + "565308a895bc2442c98087f0e5341cd7ac530697", + [ + null, + {} + ] + ], "2d.text.measure.selection-rects-baselines.tentative.html": [ "8ef5e83199c395d1de79b7730b47c2c9342d074e", [ @@ -706844,6 +707947,27 @@ {} ] ], + "2d.text.measure.lang.html": [ + "22183f9434296c0d6f99266fa06659a40194719f", + [ + null, + {} + ] + ], + "2d.text.measure.lang.inherit.html": [ + "8b630794e1d6daeb0c48953d71f07ee86adb24d1", + [ + null, + {} + ] + ], + "2d.text.measure.lang.worker.js": [ + "5bbb2317f243b09f6030b86895f3622993cd2f32", + [ + "html/canvas/offscreen/text/2d.text.measure.lang.worker.html", + {} + ] + ], "2d.text.measure.selection-rects-baselines.tentative.html": [ "fc1683bcce17a948e3580a64357da5a7927ce289", [ @@ -712776,14 +713900,14 @@ ] ], "nameditem-01.html": [ - "2b428aa65bd7d6cda28fee7e83ef2528a1b751f5", + "2caeed7dd000a7ca7951980ac59c724f251ee0f4", [ null, {} ] ], "nameditem-02.html": [ - "8c3155e7e4cabc69a58315d620ace5b20fa91b4c", + "84cf64c1ffc685164bda1f3e5493c2fe9db0bda8", [ null, {} @@ -712797,28 +713921,28 @@ ] ], "nameditem-04.html": [ - "b7c3ef8e9bb1697d57f451021672b5491a21e090", + "2b4a3c55b71d16660c680bc86e799b43565586ee", [ null, {} ] ], "nameditem-05.html": [ - "843ce357962e5990ed8e72674b46def587b2badc", + "b38872498b60fa728d7617243d4bdf206146609c", [ null, {} ] ], "nameditem-06.html": [ - "15a72b5f6bad01ca6a71eb432522acf905322340", + "592535f0d6a3172c711dd5b85919336616743921", [ null, {} ] ], "nameditem-07.html": [ - "fc3f06c01b9ec6f0c8ea51c0474da9adaa7c9d70", + "69a3bb0f09ac6311c3fc08a1a04f2e337341b6f0", [ null, {} @@ -713844,6 +714968,20 @@ {} ] ], + "element-render-blocking-040.html": [ + "3ef1fefc4f85bc6accb6b5d81c2f58bef821578e", + [ + null, + {} + ] + ], + "element-render-blocking-041.html": [ + "c6d87710f7e56fd3e80b60f21c79ac4a28431330", + [ + null, + {} + ] + ], "non-render-blocking-scripts.optional.html": [ "a4c32ea037b7b47490c54ddd7616b88bfebcdc76", [ @@ -717311,6 +718449,27 @@ {} ] ], + "fieldset-multicol-column-height.html": [ + "afd2425221f86878ec407064c8c87c528fdc6e78", + [ + null, + {} + ] + ], + "fieldset-multicol-only-column-count.html": [ + "9f794007a47e517a357818e007333277c486e47f", + [ + null, + {} + ] + ], + "fieldset-multicol-only-column-width.html": [ + "e3fd552439af219ca7b6f329e5719218c9365a51", + [ + null, + {} + ] + ], "fieldset-multicol.html": [ "bdb2c2fd94686b502ed5a663b1026180283af22f", [ @@ -725900,6 +727059,13 @@ } ] ], + "option-color-inheritance.html": [ + "d96124d008c50be1f62a7b2f4c3ddf153c62bdd6", + [ + null, + {} + ] + ], "option-computed-style.tentative.html": [ "ba2861a5c6181b72c3b8abc3e077a9f414f2cd99", [ @@ -727109,7 +728275,7 @@ ] ], "focus-after-close.html": [ - "93baf65cf60c17d9292525e110faff15bcbd52b9", + "7137edcd1a18080c96d627e5f40da13b1d36437f", [ null, { @@ -746918,7 +748084,7 @@ ] ], "decodingInfo.any.js": [ - "2fd3743b442cf8f3143ee2d4c3ccb02571036b15", + "e7a0e6ae430deb71e0f426f63bcac60e60d0448a", [ "media-capabilities/decodingInfo.any.html", { @@ -746988,7 +748154,7 @@ ] ], "encodingInfo.any.js": [ - "14612238e60cdb45cf716a6bd0d7037e1e2506a6", + "97b6c196f09d3c4fc3d46f92a916e4020c39d646", [ "media-capabilities/encodingInfo.any.html", {} @@ -748226,7 +749392,7 @@ ] ], "MediaRecorder-canvas-media-source.https.html": [ - "0c5f47f0ef83efe6d8e36d76a1ff88534b51c6ab", + "847e6618b3b66a5297f617959c37d70f1bf7d342", [ "mediacapture-record/MediaRecorder-canvas-media-source.https.html?mimeType=''", { @@ -748868,6 +750034,123 @@ } ] ], + "legacy": { + "MediaRecorder-canvas-media-source-legacy.https.html": [ + "bcfc2af2737716810d22826ff8441b5a0bc668a0", + [ + "mediacapture-record/legacy/MediaRecorder-canvas-media-source-legacy.https.html?mimeType=''", + { + "testdriver": true, + "timeout": "long" + } + ], + [ + "mediacapture-record/legacy/MediaRecorder-canvas-media-source-legacy.https.html?mimeType=video/mp4", + { + "testdriver": true, + "timeout": "long" + } + ], + [ + "mediacapture-record/legacy/MediaRecorder-canvas-media-source-legacy.https.html?mimeType=video/mp4;codecs=av01,mp4a.40.2", + { + "testdriver": true, + "timeout": "long" + } + ], + [ + "mediacapture-record/legacy/MediaRecorder-canvas-media-source-legacy.https.html?mimeType=video/mp4;codecs=av01,opus", + { + "testdriver": true, + "timeout": "long" + } + ], + [ + "mediacapture-record/legacy/MediaRecorder-canvas-media-source-legacy.https.html?mimeType=video/mp4;codecs=avc1.64003E,mp4a.40.2", + { + "testdriver": true, + "timeout": "long" + } + ], + [ + "mediacapture-record/legacy/MediaRecorder-canvas-media-source-legacy.https.html?mimeType=video/mp4;codecs=avc3.64003E,mp4a.40.2", + { + "testdriver": true, + "timeout": "long" + } + ], + [ + "mediacapture-record/legacy/MediaRecorder-canvas-media-source-legacy.https.html?mimeType=video/mp4;codecs=hev1.1.6.L186.B0,mp4a.40.2", + { + "testdriver": true, + "timeout": "long" + } + ], + [ + "mediacapture-record/legacy/MediaRecorder-canvas-media-source-legacy.https.html?mimeType=video/mp4;codecs=hev1.1.6.L186.B0,opus", + { + "testdriver": true, + "timeout": "long" + } + ], + [ + "mediacapture-record/legacy/MediaRecorder-canvas-media-source-legacy.https.html?mimeType=video/mp4;codecs=hvc1.1.6.L186.B0,mp4a.40.2", + { + "testdriver": true, + "timeout": "long" + } + ], + [ + "mediacapture-record/legacy/MediaRecorder-canvas-media-source-legacy.https.html?mimeType=video/mp4;codecs=hvc1.1.6.L186.B0,opus", + { + "testdriver": true, + "timeout": "long" + } + ], + [ + "mediacapture-record/legacy/MediaRecorder-canvas-media-source-legacy.https.html?mimeType=video/mp4;codecs=vp9,opus", + { + "testdriver": true, + "timeout": "long" + } + ], + [ + "mediacapture-record/legacy/MediaRecorder-canvas-media-source-legacy.https.html?mimeType=video/webm;codecs=av1,opus", + { + "testdriver": true, + "timeout": "long" + } + ], + [ + "mediacapture-record/legacy/MediaRecorder-canvas-media-source-legacy.https.html?mimeType=video/webm;codecs=vp8,opus", + { + "testdriver": true, + "timeout": "long" + } + ], + [ + "mediacapture-record/legacy/MediaRecorder-canvas-media-source-legacy.https.html?mimeType=video/webm;codecs=vp9,opus", + { + "testdriver": true, + "timeout": "long" + } + ], + [ + "mediacapture-record/legacy/MediaRecorder-canvas-media-source-legacy.https.html?mimeType=video/x-matroska;codecs=hev1.1.6.L186.B0,opus", + { + "testdriver": true, + "timeout": "long" + } + ], + [ + "mediacapture-record/legacy/MediaRecorder-canvas-media-source-legacy.https.html?mimeType=video/x-matroska;codecs=hvc1.1.6.L186.B0,opus", + { + "testdriver": true, + "timeout": "long" + } + ] + ] + }, "passthrough": { "MediaRecorder-passthrough.https.html": [ "6a8ebf50dd59c87eeef411566998bd5bb79ff9a9", @@ -777536,7 +778819,7 @@ ] ], "sanitizer-config.tentative.html": [ - "438e1db7eadc0a5f6404c4f7f2ce39d7f37c3eac", + "4a7b7ecc517fb2ecfc0bc1f800d1e650dbde86b6", [ null, {} @@ -779496,7 +780779,7 @@ ] ], "lock-sandboxed-iframe.html": [ - "ab954f04b4c5d9043d893e36892c4061ed446661", + "f78d7d72d538fd9384e9b5f7193d318a0ae69589", [ null, { @@ -779772,6 +781055,50 @@ ] }, "scroll-animations": { + "animation-trigger": { + "animation-trigger-alternate.tentative.html": [ + "aa92e32c5628392813cd576b64eb2bb32129e2ef", + [ + null, + {} + ] + ], + "animation-trigger-once-play-state.tentative.html": [ + "23c6aa8ce9f697cab4121e713556b544cb4202cf", + [ + null, + {} + ] + ], + "animation-trigger-once.tentative.html": [ + "e7603b458bc0793a9b5303d8bd72b8d6908ebf26", + [ + null, + {} + ] + ], + "animation-trigger-repeat.tentative.html": [ + "cfbe9d3c9334148789d4cebc7a01a2f9e848b22d", + [ + null, + {} + ] + ], + "animation-trigger-state.tentative.html": [ + "a9d58ae4c3268baa4c7b3ad61310b73cc00cf467", + [ + null, + {} + ] + ], + "animation-trigger.html": [ + "dd4820dfe5fe0a964044b0d27eea153b9fbbfb3e", + [ + null, + {} + ] + ] + }, "css": { "animation-duration-auto.tentative.html": [ "01982859137855c7f6c3c5011b013ea715c9c4ea", @@ -786192,6 +787519,15 @@ } ] ], + "text-selection-with-delegatesFocus-text-control.html": [ + "6474729b8b4a8c496b33e40d5b056a12b7232418", + [ + null, + { + "testdriver": true + } + ] + ], "text-selection-with-delegatesFocus.html": [ "7c92d35394f126d878780a1c04f2bdb49550ba86", [ @@ -790780,6 +792116,35 @@ } ] ], + "protocol-handler-register.https.html": [ + "af2df0f12abac3d7f8908e01a987e0cbd5e2fe25", + [ + null, + { + "testdriver": true, + "timeout": "long" + } + ] + ], + "protocol-handler-unregister.https.html": [ + "586ce43385445f85ee0a9d52105a77a447c1294c", + [ + null, + { + "testdriver": true, + "timeout": "long" + } + ] + ], + "protocol-handler-validation.https.html": [ + "613b9bfad087e1ca10c79c4481f99e841d1a56a3", + [ + null, + { + "timeout": "long" + } + ] + ], "referrer-policy-from-rules.html": [ "7e3b65fe6127c9ecd6f5448d0d31be8962ff8db2", [ @@ -791540,6 +792905,15 @@ } ] ], + "restrictions_shared_storage_worklet.https.html": [ + "72a46c3137ff9595147901a5d48297613d1033dd", + [ + null, + { + "timeout": "long" + } + ] + ], "sandbox-iframe.html": [ "469b8aadc31137d412faad400523af61922c6c0b", [ @@ -805020,7 +806394,7 @@ ] ], "accept-signature.window.js": [ - "efcbf0cdad6cb2816b47e989701835a30b777639", + "97e817e328c279149ac9668ed5014a30f811006d", [ "subresource-integrity/signatures/tentative/accept-signature.window.html", { @@ -808967,6 +810341,13 @@ {} ] ], + "SVGGraphicsElement-padding.svg": [ + "7bf47767a525a4950cf4be9f7da970ec9c8fdbe0", + [ + null, + {} + ] + ], "SVGGraphicsElement.getBBox-01.html": [ "773b06e5043d8d942b793a03d967a8acc925d5b1", [ @@ -810265,7 +811646,16 @@ ] ], "should-sink-type-mismatch-violation-be-blocked-by-csp-001.html": [ - "5662c64ac4ed531d2dee12356e8ab2c117a01c5f", + "add14466e57d6c7ead8690a7f19d89565eaca7e6", + [ + null, + { + "timeout": "long" + } + ] + ], + "should-sink-type-mismatch-violation-be-blocked-by-csp-002-worker.html": [ + "9a7b237f11a5c436141f8f658b1d21b816ceadff", [ null, { @@ -810300,6 +811690,15 @@ } ] ], + "should-trusted-type-policy-creation-be-blocked-by-csp-004-worker.html": [ + "7e928d2d7192e694d632ce5907c430a673653bf8", + [ + null, + { + "timeout": "long" + } + ] + ], "trusted-types-createHTMLDocument.html": [ "38223dac7016eb766d4c3369a4d1c912290bd14b", [ @@ -810336,21 +811735,14 @@ ] ], "trusted-types-eval-reporting-no-unsafe-eval.html": [ - "69b5bf3c1d1e901227a37d841f4bafae0401e362", + "27bd4644496e34bf6a253a80ffeff059a317770c", [ null, {} ] ], "trusted-types-eval-reporting-report-only.html": [ - "a9e14f09e4ab322d6dcb6935b83cc819aa55f412", - [ - null, - {} - ] - ], - "trusted-types-eval-reporting.html": [ - "d037c058d9b2b495a8b90954b17b89075b98ccf2", + "09b2f1c258574087b7de48d5a568a77dbdd2c2a9", [ null, {} @@ -810378,14 +811770,35 @@ ] ], "trusted-types-report-only.html": [ - "f4386f832f43f57b82c52edc5e7dbe16308b6255", + "7b1a9c7e302c9da93b65b420e316c7cc94823a99", [ null, {} ] ], - "trusted-types-reporting-check-report.html": [ - "ae5ac25052d34be4d64bada3fb23283c783978ee", + "trusted-types-reporting-check-report-DedicatedWorker-create-policy.html": [ + "71576c4ecc121a1005237773ed7d17b871ee7fd0", + [ + null, + {} + ] + ], + "trusted-types-reporting-check-report-DedicatedWorker-sink-mismatch.html": [ + "72354a99eed9d2d26f4b01ab811a6ab41b788551", + [ + null, + {} + ] + ], + "trusted-types-reporting-check-report-Window-create-policy.html": [ + "4c9506c5b435d41241d0aa905a357db0c739f211", + [ + null, + {} + ] + ], + "trusted-types-reporting-check-report-Window-sink-mismatch.html": [ + "ad855dfb2f15a85548c423fe587592925e9a962d", [ null, {} @@ -810398,6 +811811,41 @@ {} ] ], + "trusted-types-reporting-for-DedicatedWorker-DedicatedWorker-constructor.html": [ + "b70a074fc7fd2c07428a3aca281ec263825a6883", + [ + null, + {} + ] + ], + "trusted-types-reporting-for-DedicatedWorker-ServiceWorkerContainer-register.https.html": [ + "9db187a2f91600b83883226aedca2b339f01e77f", + [ + null, + {} + ] + ], + "trusted-types-reporting-for-DedicatedWorker-eval.html": [ + "184bc8ad333b855745c29ca3709bf55696a5fd8f", + [ + null, + {} + ] + ], + "trusted-types-reporting-for-DedicatedWorker-function-constructor.html": [ + "26d4e54634a218d504adc136eb10f4813e38a973", + [ + null, + {} + ] + ], + "trusted-types-reporting-for-DedicatedWorker-importScripts.html": [ + "5db284f715cfc67847cd61e8028c2887d4a20fe4", + [ + null, + {} + ] + ], "trusted-types-reporting-for-DedicatedWorker-setTimeout-setInterval.html": [ "7e44a12fd2df50ee5beaf478470c4c828ab9c2b8", [ @@ -810496,6 +811944,41 @@ {} ] ], + "trusted-types-reporting-for-ServiceWorker-ServiceWorkerContainer-register.https.html": [ + "ac853cd8f6e71245d561bdc0abf2342b6afb22d9", + [ + null, + {} + ] + ], + "trusted-types-reporting-for-ServiceWorker-eval.https.html": [ + "2d0b6315fb9dc160e03167d567845e82fafbcae8", + [ + null, + {} + ] + ], + "trusted-types-reporting-for-ServiceWorker-function-constructor.html": [ + "791663dfc792179e9c145bc33442fa0b81966f7a", + [ + null, + {} + ] + ], + "trusted-types-reporting-for-ServiceWorker-importScripts.https.html": [ + "865409aca1b55958a0c7ca3751b289820c8b8123", + [ + null, + {} + ] + ], + "trusted-types-reporting-for-ServiceWorker-setTimeout-setInterval.https.html": [ + "34b962df085e29da2301156ba495b336866a4554", + [ + null, + {} + ] + ], "trusted-types-reporting-for-ShadowRoot-innerHTML.html": [ "9aaf2d8aa4f50dd4712efb1f6f47bbe05b0dd2c9", [ @@ -810510,6 +811993,41 @@ {} ] ], + "trusted-types-reporting-for-SharedWorker-DedicatedWorker-constructor.html": [ + "3b382d8774a0c8bff47847118cfa5df5f5f09688", + [ + null, + {} + ] + ], + "trusted-types-reporting-for-SharedWorker-ServiceWorkerContainer-register.https.html": [ + "00e9a75dfb0443edbf789d42be9759db670b8930", + [ + null, + {} + ] + ], + "trusted-types-reporting-for-SharedWorker-eval.html": [ + "6ae0f60351f30ccb339c0e7af757fd9f991b1ec0", + [ + null, + {} + ] + ], + "trusted-types-reporting-for-SharedWorker-function-constructor.html": [ + "dc77be79640b692a618a853cea67cc9159e7eab4", + [ + null, + {} + ] + ], + "trusted-types-reporting-for-SharedWorker-importScripts.html": [ + "fb01333dd463c4860aa3f7fc25e1bbf1568a06ab", + [ + null, + {} + ] + ], "trusted-types-reporting-for-SharedWorker-setTimeout-setInterval.html": [ "7c97f644873f4ad4888c72d07e0ffbb4698cde05", [ @@ -810517,6 +812035,41 @@ {} ] ], + "trusted-types-reporting-for-Window-DedicatedWorker-constructor.html": [ + "3d2a91d74ca45fec8ecba500c6da50d02cb68cdb", + [ + null, + {} + ] + ], + "trusted-types-reporting-for-Window-ServiceWorkerContainer-register.https.html": [ + "482b9c333e3a9ea16de19d8e53fc8125b7250396", + [ + null, + {} + ] + ], + "trusted-types-reporting-for-Window-SharedWorker-constructor.html": [ + "a03dd21be9779b113eca42a46444d554faaf1d63", + [ + null, + {} + ] + ], + "trusted-types-reporting-for-Window-eval.html": [ + "7f4772aed149ee0ce2458d1f8df13500d2418f65", + [ + null, + {} + ] + ], + "trusted-types-reporting-for-Window-function-constructor.html": [ + "9b9617a9b5df7be69271bf7fe7a184b542c56491", + [ + null, + {} + ] + ], "trusted-types-reporting-for-Window-setTimeout-setInterval.html": [ "87e26060ab74a44db8ae902ff178642b1aa6081f", [ @@ -810525,7 +812078,7 @@ ] ], "trusted-types-reporting.html": [ - "5e7930382ad16c3def4ae4055148595cf64a2325", + "7432d3bded8c45b64e12eca00cc6c477349d4869", [ null, { @@ -810533,6 +812086,20 @@ } ] ], + "trusted-types-sandbox-allow-scripts.html": [ + "b89cb56710266c91fd06bb7462d953a3efd695ea", + [ + null, + {} + ] + ], + "trusted-types-sandbox-no-allow-scripts.html": [ + "c4e4683934ec2d59a521e5cb7f99e2d0799723fa", + [ + null, + {} + ] + ], "trusted-types-source-file-path.html": [ "105a04247f630ddb49a2813cfa2345226eac91aa", [ @@ -825956,7 +827523,7 @@ ] ], "style-change-events.html": [ - "d1c1c96f7b03e8f8cd6596f1ae24772d292e77b4", + "c64400e869df5e844e276facb7d975827027f68a", [ null, {} @@ -835465,7 +837032,7 @@ ] ], "video-decoder-no-size-in-configure.https.any.js": [ - "3481b465f9eb431ce3dc799f4f1e625fbe3d7c0c", + "2ad7040e08b72617ac77b19fb47efc967c95bea8", [ "webcodecs/video-decoder-no-size-in-configure.https.any.html?av1", { @@ -836727,6 +838294,55 @@ } ] ], + "video-encoder-orientation.https.any.js": [ + "de687f114987bc0172f0fc2fe5e343e268d72a45", + [ + "webcodecs/video-encoder-orientation.https.any.html", + { + "script_metadata": [ + [ + "global", + "window,dedicatedworker" + ], + [ + "script", + "/common/media.js" + ], + [ + "script", + "/webcodecs/utils.js" + ], + [ + "script", + "/webcodecs/video-encoder-utils.js" + ] + ] + } + ], + [ + "webcodecs/video-encoder-orientation.https.any.worker.html", + { + "script_metadata": [ + [ + "global", + "window,dedicatedworker" + ], + [ + "script", + "/common/media.js" + ], + [ + "script", + "/webcodecs/utils.js" + ], + [ + "script", + "/webcodecs/video-encoder-utils.js" + ] + ] + } + ] + ], "video-encoder-rescaling.https.any.js": [ "70bafa04964cba77acc1c86b3f7d6f4b8ce4b728", [ @@ -842858,6 +844474,117 @@ } ] ], + "constant-reshape-optimization.https.any.js": [ + "eaa232b7413ebd132509ae9a605d3f5e49dc8d17", + [ + "webnn/conformance_tests/constant-reshape-optimization.https.any.html?cpu", + { + "script_metadata": [ + [ + "title", + "test constant reshape optimization" + ], + [ + "global", + "window" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "variant", + "?npu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], + [ + "webnn/conformance_tests/constant-reshape-optimization.https.any.html?gpu", + { + "script_metadata": [ + [ + "title", + "test constant reshape optimization" + ], + [ + "global", + "window" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "variant", + "?npu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], + [ + "webnn/conformance_tests/constant-reshape-optimization.https.any.html?npu", + { + "script_metadata": [ + [ + "title", + "test constant reshape optimization" + ], + [ + "global", + "window" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "variant", + "?npu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ] + ], "conv2d.https.any.js": [ "9fe246c9395c6cacf7e2f5245dac420e295707be", [ @@ -846282,7 +848009,7 @@ ] ], "instance_normalization.https.any.js": [ - "26e0cd0aa935d473a7bdb84da59e46f534544066", + "08d7d6ca337e4b426825bdd1808026dd2a28ef11", [ "webnn/conformance_tests/instance_normalization.https.any.html?cpu", { @@ -850824,7 +852551,7 @@ ] ], "reshape.https.any.js": [ - "fe758193730c0c8a43ba226bd3c50cccb3224b70", + "05b8ea21e674796818f4c6143044a1beaaa3fb59", [ "webnn/conformance_tests/reshape.https.any.html?cpu", { @@ -853176,7 +854903,7 @@ ] ], "subgraph.https.any.js": [ - "9b21d6e4f9453fb72c3f7a6850c5690cc9ed87cf", + "a494a8b7a95d7ff9b4a4be717d7f876a1b061b26", [ "webnn/conformance_tests/subgraph.https.any.html?cpu", { @@ -870167,7 +871894,7 @@ ] ], "RTCIceCandidate-constructor.html": [ - "b760c7b05a565c97c9c75287d11ca8cc83258d1f", + "05c0849f7a040b08dabd6201e08825328bdc7a8b", [ null, {} @@ -870233,7 +871960,7 @@ ] ], "RTCPeerConnection-addIceCandidate.html": [ - "618ef7e33c69735338ec4e05f2e15cd40d34c063", + "4517554bc0bcd5fe0275a358b4c51e5dca7dfaa5", [ null, {} @@ -870796,7 +872523,7 @@ ] ], "RTCRtpReceiver-getSynchronizationSources.https.html": [ - "cb5336f3f3523d0684e48de42f2666a6e6a3aa50", + "de9ad184af0d7619a725bb302b0814bf57b70c62", [ null, { @@ -871345,6 +873072,15 @@ {} ] ], + "h265-loopback.https.html": [ + "c3a394ef8f4ce5fa03ff8b272eacbd1b61e6ff07", + [ + null, + { + "timeout": "long" + } + ] + ], "handover-datachannel.html": [ "8f224f822a76bb48924bc13e59d53f8a24d99f64", [ @@ -895704,7 +897440,7 @@ ] ], "send-redirect.htm": [ - "7d73f0f64cc4d7506e607f75d3bba37b9d3d74a9", + "de3899f5e5d3ccef28ac54dfa05a7dbf8af98bd9", [ null, {} @@ -895852,7 +897588,7 @@ ] ], "setrequestheader-case-insensitive.htm": [ - "1aed30d1c2a13fcb35e90a31e599a6cc963c6491", + "ce10482cad8d47f8f3933a55f321b44f88f663aa", [ null, {} diff --git a/tests/wpt/meta/css/compositing/root-element-background-margin-opacity.html.ini b/tests/wpt/meta/css/compositing/root-element-background-margin-opacity.html.ini new file mode 100644 index 00000000000..bc87205da82 --- /dev/null +++ b/tests/wpt/meta/css/compositing/root-element-background-margin-opacity.html.ini @@ -0,0 +1,2 @@ +[root-element-background-margin-opacity.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-animations/animate-with-background-color-oklch-001.html.ini b/tests/wpt/meta/css/css-animations/animate-with-background-color-oklch-001.html.ini new file mode 100644 index 00000000000..18f732010f3 --- /dev/null +++ b/tests/wpt/meta/css/css-animations/animate-with-background-color-oklch-001.html.ini @@ -0,0 +1,2 @@ +[animate-with-background-color-oklch-001.html] + expected: TIMEOUT diff --git a/tests/wpt/meta/css/css-animations/animate-with-background-color-oklch-002.html.ini b/tests/wpt/meta/css/css-animations/animate-with-background-color-oklch-002.html.ini new file mode 100644 index 00000000000..6a465429bf8 --- /dev/null +++ b/tests/wpt/meta/css/css-animations/animate-with-background-color-oklch-002.html.ini @@ -0,0 +1,6 @@ +[animate-with-background-color-oklch-002.html] + [Animate from legacy rgb to oklch] + expected: FAIL + + [Animate from legacy rgb to color-mix oklch] + expected: FAIL diff --git a/tests/wpt/meta/css/css-animations/crashtests/chrome-bug-404743651.html.ini b/tests/wpt/meta/css/css-animations/crashtests/chrome-bug-404743651.html.ini new file mode 100644 index 00000000000..d99d36b7a59 --- /dev/null +++ b/tests/wpt/meta/css/css-animations/crashtests/chrome-bug-404743651.html.ini @@ -0,0 +1,2 @@ +[chrome-bug-404743651.html] + expected: TIMEOUT diff --git a/tests/wpt/meta/css/css-borders/tentative/corner-shape/corner-shape-any.html.ini b/tests/wpt/meta/css/css-borders/tentative/corner-shape/corner-shape-any.html.ini index f1903acb386..c528fee0d39 100644 --- a/tests/wpt/meta/css/css-borders/tentative/corner-shape/corner-shape-any.html.ini +++ b/tests/wpt/meta/css/css-borders/tentative/corner-shape/corner-shape-any.html.ini @@ -27,3 +27,48 @@ [corner-shape-any.html?corner-shape=squircle&border-top-right-radius=30px] expected: FAIL + +[corner-shape-any.html?corner-top-left-shape=superellipse(0.2)&border-radius=40px] + expected: FAIL + +[corner-shape-any.html?corner-shape=squircle&border-radius=25%&border-width=20px] + expected: FAIL + +[corner-shape-any.html?corner-top-right-shape=bevel&border-width=10px&border-color=black] + expected: FAIL + +[corner-shape-any.html?corner-top-left-shape=bevel&border-radius=40px] + expected: FAIL + +[corner-shape-any.html?corner-bottom-right-shape=bevel&border-width=10px&border-radius=20px] + expected: FAIL + +[corner-shape-any.html?corner-top-left-shape=scoop&border-radius=40px] + expected: FAIL + +[corner-shape-any.html?corner-bottom-left-shape=bevel&border-width=10px&border-radius=20px] + expected: FAIL + +[corner-shape-any.html?corner-top-left-shape=superellipse(6)&border-radius=20%&border-width=10px] + expected: FAIL + +[corner-shape-any.html?corner-top-left-shape=bevel&border-radius=40px&border-width=10px] + expected: FAIL + +[corner-shape-any.html?corner-top-left-shape=superellipse(0.3)&border-radius=40%] + expected: FAIL + +[corner-shape-any.html?corner-shape=squircle&border-top-left-radius=25%&border-width=10px] + expected: FAIL + +[corner-shape-any.html?corner-top-left-shape=superellipse(0.8)&border-radius=40px] + expected: FAIL + +[corner-shape-any.html?corner-top-left-shape=superellipse(1.2)&border-radius=40px] + expected: FAIL + +[corner-shape-any.html?corner-bottom-right-shape=bevel&corner-bottom-left-shape=bevel] + expected: FAIL + +[corner-shape-any.html?corner-top-left-shape=bevel&border-width=10px&border-color=black] + expected: FAIL diff --git a/tests/wpt/meta/css/css-borders/tentative/corner-shape/corner-shape-render.html.ini b/tests/wpt/meta/css/css-borders/tentative/corner-shape/corner-shape-render.html.ini deleted file mode 100644 index cdeb8243f40..00000000000 --- a/tests/wpt/meta/css/css-borders/tentative/corner-shape/corner-shape-render.html.ini +++ /dev/null @@ -1,26 +0,0 @@ -[corner-shape-render.html?corner-bottom-left-shape=bevel] - expected: FAIL - -[corner-shape-render.html?corner-top-left-shape=bevel] - expected: FAIL - -[corner-shape-render.html?corner-bottom-right-shape=bevel&corner-bottom-left-shape=bevel] - expected: FAIL - -[corner-shape-render.html?corner-bottom-right-shape=bevel] - expected: FAIL - -[corner-shape-render.html?corner-top-right-shape=bevel&corner-bottom-right-shape=bevel&border-radius=80px] - expected: FAIL - -[corner-shape-render.html?corner-top-right-shape=bevel&corner-bottom-right-shape=bevel&border-bottom-right-radius=80px&border-width=32px] - expected: FAIL - -[corner-shape-render.html?corner-top-left-shape=bevel&border-radius=40px] - expected: FAIL - -[corner-shape-render.html?corner-shape=bevel] - expected: FAIL - -[corner-shape-render.html?corner-top-right-shape=bevel] - expected: FAIL diff --git a/tests/wpt/meta/css/css-conditional/at-supports-selector-details-content-before.html.ini b/tests/wpt/meta/css/css-conditional/at-supports-selector-details-content-before.html.ini new file mode 100644 index 00000000000..dfbeb3e7278 --- /dev/null +++ b/tests/wpt/meta/css/css-conditional/at-supports-selector-details-content-before.html.ini @@ -0,0 +1,2 @@ +[at-supports-selector-details-content-before.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-conditional/at-supports-selector-details-content.html.ini b/tests/wpt/meta/css/css-conditional/at-supports-selector-details-content.html.ini new file mode 100644 index 00000000000..6e22bf2f1b6 --- /dev/null +++ b/tests/wpt/meta/css/css-conditional/at-supports-selector-details-content.html.ini @@ -0,0 +1,2 @@ +[at-supports-selector-details-content.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-conditional/js/CSS-supports-details-content-pseudo-parsing.html.ini b/tests/wpt/meta/css/css-conditional/js/CSS-supports-details-content-pseudo-parsing.html.ini new file mode 100644 index 00000000000..ac733ce1164 --- /dev/null +++ b/tests/wpt/meta/css/css-conditional/js/CSS-supports-details-content-pseudo-parsing.html.ini @@ -0,0 +1,15 @@ +[CSS-supports-details-content-pseudo-parsing.html] + [selector() function accepts ::details-content] + expected: FAIL + + [selector() function accepts ::details-content followed by ::before] + expected: FAIL + + [selector() function accepts ::details-content followed by ::first-line] + expected: FAIL + + [selector() function accepts ::details-content followed by a state pseudo-class] + expected: FAIL + + [selector() function accepts ::details-content followed by :lang()] + expected: FAIL diff --git a/tests/wpt/meta/css/css-flexbox/flex-shorthand-calc.html.ini b/tests/wpt/meta/css/css-flexbox/flex-shorthand-calc.html.ini new file mode 100644 index 00000000000..4f43d0e7e64 --- /dev/null +++ b/tests/wpt/meta/css/css-flexbox/flex-shorthand-calc.html.ini @@ -0,0 +1,12 @@ +[flex-shorthand-calc.html] + [e.style['flex'\] = "sign(1em - 1px) sibling-index()" should set flex-basis] + expected: FAIL + + [e.style['flex'\] = "sign(1em - 1px) sibling-index()" should set flex-grow] + expected: FAIL + + [e.style['flex'\] = "sign(1em - 1px) sibling-index()" should set flex-shrink] + expected: FAIL + + [e.style['flex'\] = "sign(1em - 1px) sibling-index()" should not set unrelated longhands] + expected: FAIL diff --git a/tests/wpt/meta/css/css-flexbox/parsing/flex-computed.html.ini b/tests/wpt/meta/css/css-flexbox/parsing/flex-computed.html.ini new file mode 100644 index 00000000000..961cc35e1fd --- /dev/null +++ b/tests/wpt/meta/css/css-flexbox/parsing/flex-computed.html.ini @@ -0,0 +1,6 @@ +[flex-computed.html] + [Property flex value 'calc(10 + (sign(20cqw - 10px) * 5)) calc(10 + (sign(20cqw - 10px) * 5)) 1px'] + expected: FAIL + + [Property flex value '1 1 calc(10px + (sign(20cqw - 10px) * 5px))'] + expected: FAIL diff --git a/tests/wpt/meta/css/css-flexbox/parsing/flex-valid.html.ini b/tests/wpt/meta/css/css-flexbox/parsing/flex-valid.html.ini new file mode 100644 index 00000000000..b41d365170c --- /dev/null +++ b/tests/wpt/meta/css/css-flexbox/parsing/flex-valid.html.ini @@ -0,0 +1,6 @@ +[flex-valid.html] + [e.style['flex'\] = "calc(10 + (sign(20cqw - 10px) * 5)) calc(10 + (sign(20cqw - 10px) * 5)) 1px" should set the property value] + expected: FAIL + + [e.style['flex'\] = "1 1 calc(10px + (sign(20cqw - 10px) * 5px))" should set the property value] + expected: FAIL diff --git a/tests/wpt/meta/css/css-fonts/font-synthesis-08.html.ini b/tests/wpt/meta/css/css-fonts/font-synthesis-08.html.ini deleted file mode 100644 index 20db075c10c..00000000000 --- a/tests/wpt/meta/css/css-fonts/font-synthesis-08.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[font-synthesis-08.html] - expected: FAIL diff --git a/tests/wpt/meta/css/css-fonts/font-variation-settings-calc.html.ini b/tests/wpt/meta/css/css-fonts/font-variation-settings-calc.html.ini new file mode 100644 index 00000000000..1d2d3f28119 --- /dev/null +++ b/tests/wpt/meta/css/css-fonts/font-variation-settings-calc.html.ini @@ -0,0 +1,12 @@ +[font-variation-settings-calc.html] + [e.style['font-variation-settings'\] = "\\"wght\\" sign(1em - 1px)" should set the property value] + expected: FAIL + + [e.style['font-variation-settings'\] = "\\"wght\\" sibling-index()" should set the property value] + expected: FAIL + + [Property font-variation-settings value '"wght" sign(1em - 1px)'] + expected: FAIL + + [Property font-variation-settings value '"wght" sibling-index()'] + expected: FAIL diff --git a/tests/wpt/meta/css/css-gaps/tentative/grid/grid-gap-decorations-006.html.ini b/tests/wpt/meta/css/css-gaps/tentative/grid/grid-gap-decorations-006.html.ini new file mode 100644 index 00000000000..c7b6f64746b --- /dev/null +++ b/tests/wpt/meta/css/css-gaps/tentative/grid/grid-gap-decorations-006.html.ini @@ -0,0 +1,2 @@ +[grid-gap-decorations-006.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-gaps/tentative/grid/grid-gap-decorations-007.html.ini b/tests/wpt/meta/css/css-gaps/tentative/grid/grid-gap-decorations-007.html.ini new file mode 100644 index 00000000000..78c144577df --- /dev/null +++ b/tests/wpt/meta/css/css-gaps/tentative/grid/grid-gap-decorations-007.html.ini @@ -0,0 +1,2 @@ +[grid-gap-decorations-007.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-gaps/tentative/grid/grid-gap-decorations-008.html.ini b/tests/wpt/meta/css/css-gaps/tentative/grid/grid-gap-decorations-008.html.ini new file mode 100644 index 00000000000..0d707b027b1 --- /dev/null +++ b/tests/wpt/meta/css/css-gaps/tentative/grid/grid-gap-decorations-008.html.ini @@ -0,0 +1,2 @@ +[grid-gap-decorations-008.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-gaps/tentative/grid/grid-gap-decorations-009.html.ini b/tests/wpt/meta/css/css-gaps/tentative/grid/grid-gap-decorations-009.html.ini new file mode 100644 index 00000000000..47829d9a1f4 --- /dev/null +++ b/tests/wpt/meta/css/css-gaps/tentative/grid/grid-gap-decorations-009.html.ini @@ -0,0 +1,2 @@ +[grid-gap-decorations-009.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-gaps/tentative/grid/grid-gap-decorations-010.html.ini b/tests/wpt/meta/css/css-gaps/tentative/grid/grid-gap-decorations-010.html.ini new file mode 100644 index 00000000000..3604969e91b --- /dev/null +++ b/tests/wpt/meta/css/css-gaps/tentative/grid/grid-gap-decorations-010.html.ini @@ -0,0 +1,2 @@ +[grid-gap-decorations-010.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-gaps/tentative/grid/grid-gap-decorations-011.html.ini b/tests/wpt/meta/css/css-gaps/tentative/grid/grid-gap-decorations-011.html.ini new file mode 100644 index 00000000000..a19940da849 --- /dev/null +++ b/tests/wpt/meta/css/css-gaps/tentative/grid/grid-gap-decorations-011.html.ini @@ -0,0 +1,2 @@ +[grid-gap-decorations-011.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-gaps/tentative/grid/grid-gap-decorations-012.html.ini b/tests/wpt/meta/css/css-gaps/tentative/grid/grid-gap-decorations-012.html.ini new file mode 100644 index 00000000000..9d4c60da0ee --- /dev/null +++ b/tests/wpt/meta/css/css-gaps/tentative/grid/grid-gap-decorations-012.html.ini @@ -0,0 +1,2 @@ +[grid-gap-decorations-012.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-gaps/tentative/grid/grid-gap-decorations-013.html.ini b/tests/wpt/meta/css/css-gaps/tentative/grid/grid-gap-decorations-013.html.ini new file mode 100644 index 00000000000..e8909f26d4b --- /dev/null +++ b/tests/wpt/meta/css/css-gaps/tentative/grid/grid-gap-decorations-013.html.ini @@ -0,0 +1,2 @@ +[grid-gap-decorations-013.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-gaps/tentative/grid/grid-gap-decorations-014.html.ini b/tests/wpt/meta/css/css-gaps/tentative/grid/grid-gap-decorations-014.html.ini new file mode 100644 index 00000000000..c6bb632ecd6 --- /dev/null +++ b/tests/wpt/meta/css/css-gaps/tentative/grid/grid-gap-decorations-014.html.ini @@ -0,0 +1,2 @@ +[grid-gap-decorations-014.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-gaps/tentative/grid/grid-gap-decorations-015.html.ini b/tests/wpt/meta/css/css-gaps/tentative/grid/grid-gap-decorations-015.html.ini new file mode 100644 index 00000000000..82c738da9f5 --- /dev/null +++ b/tests/wpt/meta/css/css-gaps/tentative/grid/grid-gap-decorations-015.html.ini @@ -0,0 +1,2 @@ +[grid-gap-decorations-015.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-grid/masonry/tentative/order/masonry-order-002.html.ini b/tests/wpt/meta/css/css-grid/masonry/tentative/order/masonry-order-002.html.ini deleted file mode 100644 index 93e7786887e..00000000000 --- a/tests/wpt/meta/css/css-grid/masonry/tentative/order/masonry-order-002.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[masonry-order-002.html] - expected: FAIL diff --git a/tests/wpt/meta/css/css-grid/parsing/grid-area-computed.html.ini b/tests/wpt/meta/css/css-grid/parsing/grid-area-computed.html.ini new file mode 100644 index 00000000000..f4149d38b90 --- /dev/null +++ b/tests/wpt/meta/css/css-grid/parsing/grid-area-computed.html.ini @@ -0,0 +1,3 @@ +[grid-area-computed.html] + [Property grid-row-start value 'calc(10 + (sign(2cqw - 10px) * 5)) -a-'] + expected: FAIL diff --git a/tests/wpt/meta/css/css-images/gradient/conic-gradient-001.html.ini b/tests/wpt/meta/css/css-images/gradient/conic-gradient-001.html.ini new file mode 100644 index 00000000000..baebe61217c --- /dev/null +++ b/tests/wpt/meta/css/css-images/gradient/conic-gradient-001.html.ini @@ -0,0 +1,2 @@ +[conic-gradient-001.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-images/gradient/gradient-analogous-missing-components-004.html.ini b/tests/wpt/meta/css/css-images/gradient/gradient-analogous-missing-components-004.html.ini new file mode 100644 index 00000000000..5378b6b6110 --- /dev/null +++ b/tests/wpt/meta/css/css-images/gradient/gradient-analogous-missing-components-004.html.ini @@ -0,0 +1,2 @@ +[gradient-analogous-missing-components-004.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-overflow/scroll-marker-15.html.ini b/tests/wpt/meta/css/css-overflow/scroll-marker-15.html.ini new file mode 100644 index 00000000000..02bf8170bc2 --- /dev/null +++ b/tests/wpt/meta/css/css-overflow/scroll-marker-15.html.ini @@ -0,0 +1,6 @@ +[scroll-marker-15.html] + [::scroll-marker is not activated when its originating element is not scrolled into the view] + expected: FAIL + + [::scroll-marker is activated when its originating element is scrolled into the view] + expected: FAIL diff --git a/tests/wpt/meta/css/css-overflow/scroll-marker-contain-001.tentative.html.ini b/tests/wpt/meta/css/css-overflow/scroll-marker-contain-001.tentative.html.ini new file mode 100644 index 00000000000..0d5590a9293 --- /dev/null +++ b/tests/wpt/meta/css/css-overflow/scroll-marker-contain-001.tentative.html.ini @@ -0,0 +1,2 @@ +[scroll-marker-contain-001.tentative.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-overflow/scroll-marker-contain-002.tentative.html.ini b/tests/wpt/meta/css/css-overflow/scroll-marker-contain-002.tentative.html.ini new file mode 100644 index 00000000000..fd0d2f5788e --- /dev/null +++ b/tests/wpt/meta/css/css-overflow/scroll-marker-contain-002.tentative.html.ini @@ -0,0 +1,2 @@ +[scroll-marker-contain-002.tentative.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-overflow/scroll-marker-contain-003.tentative.html.ini b/tests/wpt/meta/css/css-overflow/scroll-marker-contain-003.tentative.html.ini new file mode 100644 index 00000000000..04e56713889 --- /dev/null +++ b/tests/wpt/meta/css/css-overflow/scroll-marker-contain-003.tentative.html.ini @@ -0,0 +1,2 @@ +[scroll-marker-contain-003.tentative.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-overflow/scroll-marker-contain-004.tentative.html.ini b/tests/wpt/meta/css/css-overflow/scroll-marker-contain-004.tentative.html.ini new file mode 100644 index 00000000000..908e3e40d04 --- /dev/null +++ b/tests/wpt/meta/css/css-overflow/scroll-marker-contain-004.tentative.html.ini @@ -0,0 +1,2 @@ +[scroll-marker-contain-004.tentative.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-sizing/aspect-ratio/replaced-element-013.html.ini b/tests/wpt/meta/css/css-sizing/aspect-ratio/replaced-element-013.html.ini deleted file mode 100644 index e31d7aaca38..00000000000 --- a/tests/wpt/meta/css/css-sizing/aspect-ratio/replaced-element-013.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[replaced-element-013.html] - expected: FAIL diff --git a/tests/wpt/meta/css/css-sizing/aspect-ratio/replaced-element-014.html.ini b/tests/wpt/meta/css/css-sizing/aspect-ratio/replaced-element-014.html.ini deleted file mode 100644 index 330d09977bd..00000000000 --- a/tests/wpt/meta/css/css-sizing/aspect-ratio/replaced-element-014.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[replaced-element-014.html] - expected: FAIL diff --git a/tests/wpt/meta/css/css-tables/table-cell-overflow-auto-scrolled.html.ini b/tests/wpt/meta/css/css-tables/table-cell-overflow-auto-scrolled.html.ini new file mode 100644 index 00000000000..55805c45ee2 --- /dev/null +++ b/tests/wpt/meta/css/css-tables/table-cell-overflow-auto-scrolled.html.ini @@ -0,0 +1,2 @@ +[table-cell-overflow-auto-scrolled.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-ui/cursor-calc-hotspot.html.ini b/tests/wpt/meta/css/css-ui/cursor-calc-hotspot.html.ini new file mode 100644 index 00000000000..2c6132a8ab9 --- /dev/null +++ b/tests/wpt/meta/css/css-ui/cursor-calc-hotspot.html.ini @@ -0,0 +1,6 @@ +[cursor-calc-hotspot.html] + [cursor hotspot with sign() depending on font relative units] + expected: FAIL + + [cursor hotspot depending on sibling-index()] + expected: FAIL diff --git a/tests/wpt/meta/css/css-values/calc-complex-unresolved-serialize.html.ini b/tests/wpt/meta/css/css-values/calc-complex-unresolved-serialize.html.ini new file mode 100644 index 00000000000..519f4a685c9 --- /dev/null +++ b/tests/wpt/meta/css/css-values/calc-complex-unresolved-serialize.html.ini @@ -0,0 +1,27 @@ +[calc-complex-unresolved-serialize.html] + ['calc(pow(2, sign(1em - 18px)))' as a computed value should serialize as '2'.] + expected: FAIL + + ['calc(pow(sign(1em - 18px), 2))' as a computed value should serialize as '1'.] + expected: FAIL + + ['calc(pow(sign(1em - 18px), sign(1em - 18px)))' as a computed value should serialize as '1'.] + expected: FAIL + + ['calc(pow(2, sibling-index())' as a specified value should serialize as 'calc(pow(2, sibling-index()))'.] + expected: FAIL + + ['calc(pow(2, sibling-index())' as a computed value should serialize as '2'.] + expected: FAIL + + ['calc(pow(sibling-index(), 2)' as a specified value should serialize as 'calc(pow(sibling-index(), 2))'.] + expected: FAIL + + ['calc(pow(sibling-index(), 2)' as a computed value should serialize as '1'.] + expected: FAIL + + ['calc(pow(sibling-index(), sibling-index())' as a specified value should serialize as 'calc(pow(sibling-index(), sibling-index()))'.] + expected: FAIL + + ['calc(pow(sibling-index(), sibling-index())' as a computed value should serialize as '1'.] + expected: FAIL diff --git a/tests/wpt/meta/css/filter-effects/feComposite-intersection-feTile-input.html.ini b/tests/wpt/meta/css/filter-effects/feComposite-intersection-feTile-input.html.ini new file mode 100644 index 00000000000..6fff47b1875 --- /dev/null +++ b/tests/wpt/meta/css/filter-effects/feComposite-intersection-feTile-input.html.ini @@ -0,0 +1,2 @@ +[feComposite-intersection-feTile-input.html] + expected: FAIL diff --git a/tests/wpt/meta/fetch/metadata/generated/css-font-face.https.sub.tentative.html.ini b/tests/wpt/meta/fetch/metadata/generated/css-font-face.https.sub.tentative.html.ini index d471ef76873..fb584b75a0b 100644 --- a/tests/wpt/meta/fetch/metadata/generated/css-font-face.https.sub.tentative.html.ini +++ b/tests/wpt/meta/fetch/metadata/generated/css-font-face.https.sub.tentative.html.ini @@ -47,9 +47,6 @@ [sec-fetch-user] expected: FAIL - [sec-fetch-dest] - expected: FAIL - [sec-fetch-storage-access - Same site] expected: FAIL diff --git a/tests/wpt/meta/html/browsers/browsing-the-web/navigating-across-documents/empty-iframe-load-event.html.ini b/tests/wpt/meta/html/browsers/browsing-the-web/navigating-across-documents/empty-iframe-load-event.html.ini new file mode 100644 index 00000000000..3e07e6b7d1f --- /dev/null +++ b/tests/wpt/meta/html/browsers/browsing-the-web/navigating-across-documents/empty-iframe-load-event.html.ini @@ -0,0 +1,6 @@ +[empty-iframe-load-event.html] + [Check execution order from nested timeout] + expected: FAIL + + [Check execution order on load handler] + expected: FAIL diff --git a/tests/wpt/meta/html/canvas/element/manual/imagebitmap/createImageBitmap-transfer.html.ini b/tests/wpt/meta/html/canvas/element/manual/imagebitmap/createImageBitmap-transfer.html.ini index 5d2657041d1..7e036a1c4e4 100644 --- a/tests/wpt/meta/html/canvas/element/manual/imagebitmap/createImageBitmap-transfer.html.ini +++ b/tests/wpt/meta/html/canvas/element/manual/imagebitmap/createImageBitmap-transfer.html.ini @@ -1,5 +1,5 @@ [createImageBitmap-transfer.html] - expected: ERROR + expected: TIMEOUT [Transfer ImageBitmap created from a vector HTMLImageElement] expected: FAIL diff --git a/tests/wpt/meta/html/canvas/element/manual/text/canvas.2d.disconnected.html.ini b/tests/wpt/meta/html/canvas/element/manual/text/canvas.2d.disconnected.html.ini new file mode 100644 index 00000000000..5cdcce07c65 --- /dev/null +++ b/tests/wpt/meta/html/canvas/element/manual/text/canvas.2d.disconnected.html.ini @@ -0,0 +1,2 @@ +[canvas.2d.disconnected.html] + expected: FAIL diff --git a/tests/wpt/meta/html/canvas/element/text/2d.text.measure.lang.html.ini b/tests/wpt/meta/html/canvas/element/text/2d.text.measure.lang.html.ini new file mode 100644 index 00000000000..069e5f18a03 --- /dev/null +++ b/tests/wpt/meta/html/canvas/element/text/2d.text.measure.lang.html.ini @@ -0,0 +1,3 @@ +[2d.text.measure.lang.html] + [Testing the lang attribute] + expected: FAIL diff --git a/tests/wpt/meta/html/canvas/element/text/2d.text.measure.lang.inherit.html.ini b/tests/wpt/meta/html/canvas/element/text/2d.text.measure.lang.inherit.html.ini new file mode 100644 index 00000000000..22dc67b5974 --- /dev/null +++ b/tests/wpt/meta/html/canvas/element/text/2d.text.measure.lang.inherit.html.ini @@ -0,0 +1,3 @@ +[2d.text.measure.lang.inherit.html] + [Testing the lang attribute] + expected: FAIL diff --git a/tests/wpt/meta/html/canvas/offscreen/manual/text/canvas.2d.offscreen.lang.html.ini b/tests/wpt/meta/html/canvas/offscreen/manual/text/canvas.2d.offscreen.lang.html.ini new file mode 100644 index 00000000000..5544627aa21 --- /dev/null +++ b/tests/wpt/meta/html/canvas/offscreen/manual/text/canvas.2d.offscreen.lang.html.ini @@ -0,0 +1,2 @@ +[canvas.2d.offscreen.lang.html] + expected: FAIL diff --git a/tests/wpt/meta/html/canvas/offscreen/manual/text/canvas.2d.offscreen.lang.inherit.html.ini b/tests/wpt/meta/html/canvas/offscreen/manual/text/canvas.2d.offscreen.lang.inherit.html.ini new file mode 100644 index 00000000000..46ed1107ac1 --- /dev/null +++ b/tests/wpt/meta/html/canvas/offscreen/manual/text/canvas.2d.offscreen.lang.inherit.html.ini @@ -0,0 +1,2 @@ +[canvas.2d.offscreen.lang.inherit.html] + expected: FAIL diff --git a/tests/wpt/meta/html/canvas/offscreen/manual/text/canvas.2d.offscreen.transferred.lang.html.ini b/tests/wpt/meta/html/canvas/offscreen/manual/text/canvas.2d.offscreen.transferred.lang.html.ini new file mode 100644 index 00000000000..2303d27219f --- /dev/null +++ b/tests/wpt/meta/html/canvas/offscreen/manual/text/canvas.2d.offscreen.transferred.lang.html.ini @@ -0,0 +1,2 @@ +[canvas.2d.offscreen.transferred.lang.html] + expected: FAIL diff --git a/tests/wpt/meta/html/canvas/offscreen/manual/text/canvas.2d.offscreen.transferred.lang.inherit.document.html.ini b/tests/wpt/meta/html/canvas/offscreen/manual/text/canvas.2d.offscreen.transferred.lang.inherit.document.html.ini new file mode 100644 index 00000000000..14cb2ad57df --- /dev/null +++ b/tests/wpt/meta/html/canvas/offscreen/manual/text/canvas.2d.offscreen.transferred.lang.inherit.document.html.ini @@ -0,0 +1,2 @@ +[canvas.2d.offscreen.transferred.lang.inherit.document.html] + expected: FAIL diff --git a/tests/wpt/meta/html/canvas/offscreen/manual/text/canvas.2d.offscreen.transferred.lang.inherit.html.ini b/tests/wpt/meta/html/canvas/offscreen/manual/text/canvas.2d.offscreen.transferred.lang.inherit.html.ini new file mode 100644 index 00000000000..3c2d2b828f8 --- /dev/null +++ b/tests/wpt/meta/html/canvas/offscreen/manual/text/canvas.2d.offscreen.transferred.lang.inherit.html.ini @@ -0,0 +1,2 @@ +[canvas.2d.offscreen.transferred.lang.inherit.html] + expected: FAIL diff --git a/tests/wpt/meta/html/canvas/offscreen/text/2d.text.measure.lang.html.ini b/tests/wpt/meta/html/canvas/offscreen/text/2d.text.measure.lang.html.ini new file mode 100644 index 00000000000..069e5f18a03 --- /dev/null +++ b/tests/wpt/meta/html/canvas/offscreen/text/2d.text.measure.lang.html.ini @@ -0,0 +1,3 @@ +[2d.text.measure.lang.html] + [Testing the lang attribute] + expected: FAIL diff --git a/tests/wpt/meta/html/canvas/offscreen/text/2d.text.measure.lang.inherit.html.ini b/tests/wpt/meta/html/canvas/offscreen/text/2d.text.measure.lang.inherit.html.ini new file mode 100644 index 00000000000..22dc67b5974 --- /dev/null +++ b/tests/wpt/meta/html/canvas/offscreen/text/2d.text.measure.lang.inherit.html.ini @@ -0,0 +1,3 @@ +[2d.text.measure.lang.inherit.html] + [Testing the lang attribute] + expected: FAIL diff --git a/tests/wpt/meta/html/canvas/offscreen/text/2d.text.measure.lang.worker.js.ini b/tests/wpt/meta/html/canvas/offscreen/text/2d.text.measure.lang.worker.js.ini new file mode 100644 index 00000000000..39980cbd9b7 --- /dev/null +++ b/tests/wpt/meta/html/canvas/offscreen/text/2d.text.measure.lang.worker.js.ini @@ -0,0 +1,3 @@ +[2d.text.measure.lang.worker.html] + [Testing the lang attribute] + expected: FAIL diff --git a/tests/wpt/meta/html/dom/documents/dom-tree-accessors/nameditem-01.html.ini b/tests/wpt/meta/html/dom/documents/dom-tree-accessors/nameditem-01.html.ini new file mode 100644 index 00000000000..50950d2751b --- /dev/null +++ b/tests/wpt/meta/html/dom/documents/dom-tree-accessors/nameditem-01.html.ini @@ -0,0 +1,9 @@ +[nameditem-01.html] + [img elements that have a name and id attribute with same value.] + expected: FAIL + + [Dynamically updating the name attribute from img elements, should be accessible by values.] + expected: FAIL + + [Dynamically updating the id attribute from img elements, should be accessible by values.] + expected: FAIL diff --git a/tests/wpt/meta/html/dom/documents/dom-tree-accessors/nameditem-05.html.ini b/tests/wpt/meta/html/dom/documents/dom-tree-accessors/nameditem-05.html.ini index 704c73f2085..bc9680580ee 100644 --- a/tests/wpt/meta/html/dom/documents/dom-tree-accessors/nameditem-05.html.ini +++ b/tests/wpt/meta/html/dom/documents/dom-tree-accessors/nameditem-05.html.ini @@ -13,3 +13,15 @@ [An id shouldn't affect getting an embed by name] expected: FAIL + + [Dynamically removing the name attribute from embed elements, should not be accessible.] + expected: FAIL + + [Dynamically updating the name attribute from embed elements, should be accessible by its name.] + expected: FAIL + + [Dynamically updating the id attribute from embed elements, should be accessible only by its name.] + expected: FAIL + + [embed elements that is removed, should not be accessible.] + expected: FAIL diff --git a/tests/wpt/meta/html/dom/documents/dom-tree-accessors/nameditem-07.html.ini b/tests/wpt/meta/html/dom/documents/dom-tree-accessors/nameditem-07.html.ini index 2829186d845..b23c03a5a9b 100644 --- a/tests/wpt/meta/html/dom/documents/dom-tree-accessors/nameditem-07.html.ini +++ b/tests/wpt/meta/html/dom/documents/dom-tree-accessors/nameditem-07.html.ini @@ -22,3 +22,18 @@ [An id shouldn't affect getting an object by name] expected: FAIL + + [Dynamically removing the name attribute from object elements, should not be accessible.] + expected: FAIL + + [Dynamically removing the id attribute from object elements, should not be accessible.] + expected: FAIL + + [Dynamically updating the name attribute from object elements, should be accessible by its name and id.] + expected: FAIL + + [Dynamically updating the id attribute from object elements, should be accessible by its name and id.] + expected: FAIL + + [object elements that is removed, should not be accessible.] + expected: FAIL diff --git a/tests/wpt/meta/html/dom/render-blocking/element-render-blocking-040.html.ini b/tests/wpt/meta/html/dom/render-blocking/element-render-blocking-040.html.ini new file mode 100644 index 00000000000..0193f3ac3ab --- /dev/null +++ b/tests/wpt/meta/html/dom/render-blocking/element-render-blocking-040.html.ini @@ -0,0 +1,3 @@ +[element-render-blocking-040.html] + [blocking defers frames until full parsing] + expected: FAIL diff --git a/tests/wpt/meta/html/dom/render-blocking/element-render-blocking-041.html.ini b/tests/wpt/meta/html/dom/render-blocking/element-render-blocking-041.html.ini new file mode 100644 index 00000000000..34e1dea6d54 --- /dev/null +++ b/tests/wpt/meta/html/dom/render-blocking/element-render-blocking-041.html.ini @@ -0,0 +1,3 @@ +[element-render-blocking-041.html] + [blocking defers frames until full parsing] + expected: FAIL diff --git a/tests/wpt/meta/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js.ini b/tests/wpt/meta/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js.ini deleted file mode 100644 index c8a80140995..00000000000 --- a/tests/wpt/meta/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js.ini +++ /dev/null @@ -1,12 +0,0 @@ -[structured-cloning-error-stack-optional.sub.window.html] - [web API-created TypeError (structuredClone())] - expected: FAIL - - [web API-created TypeError (worker)] - expected: FAIL - - [web API-created TypeError (cross-site iframe)] - expected: FAIL - - [web API-created TypeError (same-origin iframe)] - expected: FAIL diff --git a/tests/wpt/meta/html/rendering/replaced-elements/the-option-element/option-label-whitespace-2.html.ini b/tests/wpt/meta/html/rendering/replaced-elements/the-option-element/option-label-whitespace-2.html.ini new file mode 100644 index 00000000000..d0b62d151b9 --- /dev/null +++ b/tests/wpt/meta/html/rendering/replaced-elements/the-option-element/option-label-whitespace-2.html.ini @@ -0,0 +1,2 @@ +[option-label-whitespace-2.html] + expected: FAIL diff --git a/tests/wpt/meta/html/rendering/widgets/field-sizing-textarea-relayout.html.ini b/tests/wpt/meta/html/rendering/widgets/field-sizing-textarea-relayout.html.ini deleted file mode 100644 index 02d9bcc43ae..00000000000 --- a/tests/wpt/meta/html/rendering/widgets/field-sizing-textarea-relayout.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[field-sizing-textarea-relayout.html] - expected: FAIL diff --git a/tests/wpt/meta/html/semantics/embedded-content/media-elements/offsets-into-the-media-resource/currentTime.html.ini b/tests/wpt/meta/html/semantics/embedded-content/media-elements/offsets-into-the-media-resource/currentTime.html.ini new file mode 100644 index 00000000000..f374bb50e79 --- /dev/null +++ b/tests/wpt/meta/html/semantics/embedded-content/media-elements/offsets-into-the-media-resource/currentTime.html.ini @@ -0,0 +1,4 @@ +[currentTime.html] + expected: TIMEOUT + [setting currentTime when readyState is greater than HAVE_NOTHING] + expected: TIMEOUT diff --git a/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-2.html.ini b/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-2.html.ini index b83d68ddd33..68203d2a082 100644 --- a/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-2.html.ini +++ b/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-2.html.ini @@ -1,3 +1,4 @@ [iframe_sandbox_popups_escaping-2.html] + expected: CRASH [Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used] expected: TIMEOUT diff --git a/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini b/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini index 7da2bc5ac80..ef88bb2e2fd 100644 --- a/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini +++ b/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini @@ -1,4 +1,4 @@ [iframe_sandbox_popups_escaping-3.html] expected: TIMEOUT [Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used] - expected: TIMEOUT + expected: FAIL diff --git a/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini b/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini index c6f1e5d7d84..90c8bd71ded 100644 --- a/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini +++ b/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini @@ -1,4 +1,4 @@ [iframe_sandbox_popups_nonescaping-2.html] - expected: TIMEOUT + expected: CRASH [Check that popups from a sandboxed iframe do not escape the sandbox] expected: NOTRUN diff --git a/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini b/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini index d5fd800f09d..ff6467094b8 100644 --- a/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini +++ b/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini @@ -1,4 +1,3 @@ [iframe_sandbox_popups_nonescaping-3.html] - expected: TIMEOUT [Check that popups from a sandboxed iframe do not escape the sandbox] - expected: NOTRUN + expected: FAIL diff --git a/tests/wpt/meta/html/semantics/embedded-content/the-img-element/image-loading-lazy-subframe-detached-crash.html.ini b/tests/wpt/meta/html/semantics/embedded-content/the-img-element/image-loading-lazy-subframe-detached-crash.html.ini deleted file mode 100644 index 396e716c857..00000000000 --- a/tests/wpt/meta/html/semantics/embedded-content/the-img-element/image-loading-lazy-subframe-detached-crash.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[image-loading-lazy-subframe-detached-crash.html] - expected: TIMEOUT diff --git a/tests/wpt/meta/mixed-content/gen/top.http-rp/opt-in/audio-tag.https.html.ini b/tests/wpt/meta/mixed-content/gen/top.http-rp/opt-in/audio-tag.https.html.ini index f137b6ba51c..3af98fe9c4e 100644 --- a/tests/wpt/meta/mixed-content/gen/top.http-rp/opt-in/audio-tag.https.html.ini +++ b/tests/wpt/meta/mixed-content/gen/top.http-rp/opt-in/audio-tag.https.html.ini @@ -1,4 +1,5 @@ [audio-tag.https.html] + expected: TIMEOUT [Mixed-Content: Expects blocked for audio-tag to cross-http origin and keep-scheme redirection from https context.] expected: FAIL @@ -12,13 +13,13 @@ expected: FAIL [Mixed-Content: Expects blocked for audio-tag to same-http origin and keep-scheme redirection from https context.] - expected: FAIL + expected: NOTRUN [Mixed-Content: Expects blocked for audio-tag to same-http origin and no-redirect redirection from https context.] - expected: FAIL + expected: NOTRUN [Mixed-Content: Expects blocked for audio-tag to same-http origin and swap-scheme redirection from https context.] - expected: FAIL + expected: NOTRUN [Mixed-Content: Expects blocked for audio-tag to same-https origin and swap-scheme redirection from https context.] - expected: FAIL + expected: NOTRUN diff --git a/tests/wpt/meta/subresource-integrity/signatures/tentative/accept-signature.window.js.ini b/tests/wpt/meta/subresource-integrity/signatures/tentative/accept-signature.window.js.ini index 68b6e50ddde..5e485daa4cb 100644 --- a/tests/wpt/meta/subresource-integrity/signatures/tentative/accept-signature.window.js.ini +++ b/tests/wpt/meta/subresource-integrity/signatures/tentative/accept-signature.window.js.ini @@ -10,3 +10,12 @@ [ed25519-xDnP380zcL4rJ76rXYjeHlfMyPZEOqpJYjsjEppbuXE= malformed-thing ed25519-JrQLj5P/89iXES9+vFgrIy29clF9CC/oPPsw3c5D0bs=] expected: FAIL + + [ed25519-JrQLj5P/89iXES9+vFgrIy29clF9CC/oPPsw3c5D0bs= ed25519-JrQLj5P/89iXES9+vFgrIy29clF9CC/oPPsw3c5D0bs=] + expected: FAIL + + [ed25519-JrQLj5P/89iXES9+vFgrIy29clF9CC/oPPsw3c5D0bs= ed25519-xDnP380zcL4rJ76rXYjeHlfMyPZEOqpJYjsjEppbuXE=] + expected: FAIL + + [ed25519-JrQLj5P/89iXES9+vFgrIy29clF9CC/oPPsw3c5D0bs= malformed-thing ed25519-xDnP380zcL4rJ76rXYjeHlfMyPZEOqpJYjsjEppbuXE=] + expected: FAIL diff --git a/tests/wpt/meta/wasm/jsapi/global/type.tentative.any.js.ini b/tests/wpt/meta/wasm/jsapi/global/type.tentative.any.js.ini index 6bc8c09ae52..89330feabf4 100644 --- a/tests/wpt/meta/wasm/jsapi/global/type.tentative.any.js.ini +++ b/tests/wpt/meta/wasm/jsapi/global/type.tentative.any.js.ini @@ -123,4 +123,4 @@ expected: ERROR [type.tentative.https.any.shadowrealm-in-audioworklet.html] - expected: ERROR + expected: TIMEOUT diff --git a/tests/wpt/meta/wasm/jsapi/global/valueOf.any.js.ini b/tests/wpt/meta/wasm/jsapi/global/valueOf.any.js.ini index 9198393a92f..766d339198a 100644 --- a/tests/wpt/meta/wasm/jsapi/global/valueOf.any.js.ini +++ b/tests/wpt/meta/wasm/jsapi/global/valueOf.any.js.ini @@ -18,7 +18,7 @@ expected: ERROR [valueOf.https.any.shadowrealm-in-audioworklet.html] - expected: ERROR + expected: TIMEOUT [valueOf.any.shadowrealm-in-shadowrealm.html] expected: ERROR diff --git a/tests/wpt/meta/wasm/jsapi/memory/type.tentative.any.js.ini b/tests/wpt/meta/wasm/jsapi/memory/type.tentative.any.js.ini index bcc1dbe1112..f91dc75092c 100644 --- a/tests/wpt/meta/wasm/jsapi/memory/type.tentative.any.js.ini +++ b/tests/wpt/meta/wasm/jsapi/memory/type.tentative.any.js.ini @@ -54,7 +54,7 @@ expected: ERROR [type.tentative.https.any.shadowrealm-in-audioworklet.html] - expected: ERROR + expected: TIMEOUT [type.tentative.any.shadowrealm-in-dedicatedworker.html] expected: ERROR diff --git a/tests/wpt/tests/.github/workflows/docker.yml b/tests/wpt/tests/.github/workflows/docker.yml index 6d5c7c79a05..9119c018c2f 100644 --- a/tests/wpt/tests/.github/workflows/docker.yml +++ b/tests/wpt/tests/.github/workflows/docker.yml @@ -26,7 +26,7 @@ jobs: uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 # Based on https://docs.github.com/en/actions/publishing-packages/publishing-docker-images. - name: Log in to the Container registry - uses: docker/login-action@0d4c9c5ea7693da7b068278f7b52bda2a190a446 # v3.2.0 + uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3.4.0 with: registry: ${{ env.REGISTRY }} username: ${{ github.actor }} diff --git a/tests/wpt/tests/ai/language_detection/detector.https.tentative.any.js b/tests/wpt/tests/ai/language_detection/detector.https.tentative.any.js index 337f11d338d..98968415ddd 100644 --- a/tests/wpt/tests/ai/language_detection/detector.https.tentative.any.js +++ b/tests/wpt/tests/ai/language_detection/detector.https.tentative.any.js @@ -31,6 +31,12 @@ promise_test(async t => { await promise_rejects_dom(t, 'AbortError', createPromise); }, 'AILanguageDetectorFactory.create() call with an aborted signal.'); +promise_test(async t => { + await testAbortPromise(t, signal => { + return ai.languageDetector.create({signal}); + }); +}, 'Aborting AILanguageDetectorFactory.create().'); + promise_test(async t => { const controller = new AbortController(); controller.abort(); diff --git a/tests/wpt/tests/ai/translator/ai_translator_translate.tentative.https.any.js b/tests/wpt/tests/ai/translator/ai_translator_translate.tentative.https.any.js index 729cb04fb76..992215d9210 100644 --- a/tests/wpt/tests/ai/translator/ai_translator_translate.tentative.https.any.js +++ b/tests/wpt/tests/ai/translator/ai_translator_translate.tentative.https.any.js @@ -60,7 +60,7 @@ promise_test(async t => { await createTranslator({sourceLanguage: 'en', targetLanguage: 'ja'}); assert_equals(translator.sourceLanguage, 'en'); assert_equals(translator.targetLanguage, 'ja'); -}, 'AITranslator: sourceLanguage and targetLanguage are equal to their respective option passed in to AITranslatorFactory.create.') +}, 'AITranslator: sourceLanguage and targetLanguage are equal to their respective option passed in to AITranslatorFactory.create.'); promise_test(async (t) => { const translator = @@ -109,16 +109,22 @@ promise_test(async t => { promise_test(async t => { let monitorCalled = false; + let createdTranslator = false; const progressEvents = []; function monitor(m) { monitorCalled = true; m.addEventListener('downloadprogress', e => { + // No progress events should have been fired after we've created the + // translator. + assert_false(createdTranslator); + progressEvents.push(e); }); } await createTranslator({sourceLanguage: 'en', targetLanguage: 'ja', monitor}); + createdTranslator = true; // Monitor callback must be called. assert_true(monitorCalled); @@ -166,3 +172,41 @@ promise_test(async t => { assert_not_equals(translatedTranslatableString[i], translatableStrings[i]); } }, 'AITranslator.translate() echos non-translatable content'); + +promise_test(async t => { + const translator = + await createTranslator({sourceLanguage: 'en', targetLanguage: 'ja'}); + + const text = 'hello'; + const inputUsage = await translator.measureInputUsage(text); + + assert_greater_than_equal(translator.inputQuota, 0); + assert_greater_than_equal(inputUsage, 0); + + if (inputUsage < translator.inputQuota) { + assert_equals(await translator.translate(text), 'こんにちは'); + } else { + await promise_rejects_dom( + t, 'QuotaExceededError', translator.translate(text)); + } +}, 'AITranslator.measureInputUsage() and inputQuota basic usage.'); + +promise_test(async t => { + const controller = new AbortController(); + controller.abort(); + + const translator = + await createTranslator({sourceLanguage: 'en', targetLanguage: 'ja'}); + const measureInputUsagePromise = + translator.measureInputUsage('hello', {signal: controller.signal}); + + await promise_rejects_dom(t, 'AbortError', measureInputUsagePromise); +}, 'AITranslator.measureInputUsage() call with an aborted signal.'); + +promise_test(async t => { + const translator = + await createTranslator({sourceLanguage: 'en', targetLanguage: 'ja'}); + await testAbortPromise(t, signal => { + return translator.measureInputUsage('hello', {signal}); + }); +}, 'Aborting AITranslator.measureInputUsage().'); diff --git a/tests/wpt/tests/clear-site-data/clear-cache-partitioning.https.html b/tests/wpt/tests/clear-site-data/clear-cache-partitioning.https.html new file mode 100644 index 00000000000..2deadeef2d0 --- /dev/null +++ b/tests/wpt/tests/clear-site-data/clear-cache-partitioning.https.html @@ -0,0 +1,149 @@ + + + + + + + + + + diff --git a/tests/wpt/tests/clear-site-data/clear-cache.https.html b/tests/wpt/tests/clear-site-data/clear-cache.https.html index e356001d0c8..c75c2e16bec 100644 --- a/tests/wpt/tests/clear-site-data/clear-cache.https.html +++ b/tests/wpt/tests/clear-site-data/clear-cache.https.html @@ -4,100 +4,111 @@ + diff --git a/tests/wpt/tests/clear-site-data/clear-cache-partitioning.sub.https.html b/tests/wpt/tests/clear-site-data/support/clear-cache-helper.sub.js similarity index 55% rename from tests/wpt/tests/clear-site-data/clear-cache-partitioning.sub.https.html rename to tests/wpt/tests/clear-site-data/support/clear-cache-helper.sub.js index b3841450b5a..2b2d35abfc5 100644 --- a/tests/wpt/tests/clear-site-data/clear-cache-partitioning.sub.https.html +++ b/tests/wpt/tests/clear-site-data/support/clear-cache-helper.sub.js @@ -1,10 +1,7 @@ - - - - - - - - - diff --git a/tests/wpt/tests/css/compositing/root-element-background-margin-opacity-ref.html b/tests/wpt/tests/css/compositing/root-element-background-margin-opacity-ref.html new file mode 100644 index 00000000000..afe543029d8 --- /dev/null +++ b/tests/wpt/tests/css/compositing/root-element-background-margin-opacity-ref.html @@ -0,0 +1,3 @@ + +
diff --git a/tests/wpt/tests/css/compositing/root-element-background-margin-opacity.html b/tests/wpt/tests/css/compositing/root-element-background-margin-opacity.html new file mode 100644 index 00000000000..e1e7fed5a66 --- /dev/null +++ b/tests/wpt/tests/css/compositing/root-element-background-margin-opacity.html @@ -0,0 +1,14 @@ + + + + + + diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-center-htb-htb.html b/tests/wpt/tests/css/css-anchor-position/anchor-center-htb-htb.html index 50fc0906107..88e01619caf 100644 --- a/tests/wpt/tests/css/css-anchor-position/anchor-center-htb-htb.html +++ b/tests/wpt/tests/css/css-anchor-position/anchor-center-htb-htb.html @@ -59,7 +59,7 @@
-
+
@@ -80,7 +80,7 @@
-
+
diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-center-htb-vrl.html b/tests/wpt/tests/css/css-anchor-position/anchor-center-htb-vrl.html index eba72d64913..f777a2caf88 100644 --- a/tests/wpt/tests/css/css-anchor-position/anchor-center-htb-vrl.html +++ b/tests/wpt/tests/css/css-anchor-position/anchor-center-htb-vrl.html @@ -60,7 +60,7 @@
-
+
@@ -81,7 +81,7 @@
-
+
diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-center-vrl-htb.html b/tests/wpt/tests/css/css-anchor-position/anchor-center-vrl-htb.html index 8f7af0414ed..595f7ea1ecd 100644 --- a/tests/wpt/tests/css/css-anchor-position/anchor-center-vrl-htb.html +++ b/tests/wpt/tests/css/css-anchor-position/anchor-center-vrl-htb.html @@ -61,7 +61,7 @@
-
+
@@ -82,7 +82,7 @@
-
+
diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-center-vrl-vrl.html b/tests/wpt/tests/css/css-anchor-position/anchor-center-vrl-vrl.html index d8e90057dc3..e22391a8192 100644 --- a/tests/wpt/tests/css/css-anchor-position/anchor-center-vrl-vrl.html +++ b/tests/wpt/tests/css/css-anchor-position/anchor-center-vrl-vrl.html @@ -60,7 +60,7 @@
-
+
@@ -81,7 +81,7 @@
-
+
diff --git a/tests/wpt/tests/css/css-anchor-position/position-area-anchor-outside.html b/tests/wpt/tests/css/css-anchor-position/position-area-anchor-outside.html index d8fb5dbc98f..9b0c74170aa 100644 --- a/tests/wpt/tests/css/css-anchor-position/position-area-anchor-outside.html +++ b/tests/wpt/tests/css/css-anchor-position/position-area-anchor-outside.html @@ -8,6 +8,9 @@ position: relative; width: 400px; height: 400px; + margin: 0 auto; + border: 2px solid; + background: #eee; } #anchor { position: absolute; @@ -16,12 +19,15 @@ width: 100px; height: 100px; anchor-name: --anchor; + background: blue; } #anchored { position: absolute; align-self: stretch; justify-self: stretch; position-anchor: --anchor; + background: #FA08; + outline: 1px solid orange; }
@@ -40,17 +46,17 @@ }, "Offsets for position-area: " + position_area); } - test_position_area("span-all", {left:0, top:0, width:400, height:400}); + test_position_area("span-all", {left:-200, top:0, width:600, height:600}); - test_position_area("left span-all", {left:-200, top:0, width:0, height:400}); - test_position_area("span-left span-all", {left:-100, top:0, width:0, height:400}); - test_position_area("span-all center", {left:-200, top:0, width:100, height:400}); - test_position_area("span-right span-all", {left:-200, top:0, width:600, height:400}); - test_position_area("right span-all", {left:-100, top:0, width:500, height:400}); + test_position_area("left span-all", {left:-200, top:0, width:0, height:600}); + test_position_area("span-left span-all", {left:-200, top:0, width:100, height:600}); + test_position_area("span-all center", {left:-200, top:0, width:100, height:600}); + test_position_area("span-right span-all", {left:-200, top:0, width:600, height:600}); + test_position_area("right span-all", {left:-100, top:0, width:500, height:600}); - test_position_area("top span-all", {left:0, top:0, width:400, height:500}); - test_position_area("span-top span-all", {left:0, top:0, width:400, height:600}); - test_position_area("center span-all", {left:0, top:500, width:400, height:100}); - test_position_area("span-bottom span-all", {left:0, top:500, width:400, height:0}); - test_position_area("bottom span-all", {left:0, top:600, width:400, height:0}); + test_position_area("top span-all", {left:-200, top:0, width:600, height:500}); + test_position_area("span-top span-all", {left:-200, top:0, width:600, height:600}); + test_position_area("center span-all", {left:-200, top:500, width:600, height:100}); + test_position_area("span-bottom span-all", {left:-200, top:500, width:600, height:100}); + test_position_area("bottom span-all", {left:-200, top:600, width:600, height:0}); diff --git a/tests/wpt/tests/css/css-anchor-position/position-area-anchor-partially-outside.html b/tests/wpt/tests/css/css-anchor-position/position-area-anchor-partially-outside.html index e23cea47478..3dd537d26e0 100644 --- a/tests/wpt/tests/css/css-anchor-position/position-area-anchor-partially-outside.html +++ b/tests/wpt/tests/css/css-anchor-position/position-area-anchor-partially-outside.html @@ -8,6 +8,9 @@ position: relative; width: 400px; height: 400px; + margin: 100px auto; + border: 2px solid; + background: #eee; } #anchor { position: absolute; @@ -16,12 +19,15 @@ width: 100px; height: 100px; anchor-name: --anchor; + background: blue; } #anchored { position: absolute; align-self: stretch; justify-self: stretch; position-anchor: --anchor; + background: #FA08; + outline: 1px solid orange; }
@@ -40,17 +46,17 @@ }, "Offsets for position-area: " + position_area); } - test_position_area("span-all", {left:0, top:0, width:400, height:400}); + test_position_area("span-all", {left:0, top:-50, width:450, height:450}); - test_position_area("left span-all", {left:0, top:0, width:350, height:400}); - test_position_area("span-left span-all", {left:0, top:0, width:450, height:400}); - test_position_area("span-all center", {left:350, top:0, width:100, height:400}); - test_position_area("span-right span-all", {left:350, top:0, width:50, height:400}); - test_position_area("right span-all", {left:450, top:0, width:0, height:400}); + test_position_area("left span-all", {left:0, top:-50, width:350, height:450}); + test_position_area("span-left span-all", {left:0, top:-50, width:450, height:450}); + test_position_area("span-all center", {left:350, top:-50, width:100, height:450}); + test_position_area("span-right span-all", {left:350, top:-50, width:100, height:450}); + test_position_area("right span-all", {left:450, top:-50, width:0, height:450}); - test_position_area("top span-all", {left:0, top:-50, width:400, height:0}); - test_position_area("span-top span-all", {left:0, top:0, width:400, height:50}); - test_position_area("center span-all", {left:0, top:-50, width:400, height:100}); - test_position_area("span-bottom span-all", {left:0, top:-50, width:400, height:450}); - test_position_area("bottom span-all", {left:0, top:50, width:400, height:350}); + test_position_area("top span-all", {left:0, top:-50, width:450, height:0}); + test_position_area("span-top span-all", {left:0, top:-50, width:450, height:100}); + test_position_area("center span-all", {left:0, top:-50, width:450, height:100}); + test_position_area("span-bottom span-all", {left:0, top:-50, width:450, height:450}); + test_position_area("bottom span-all", {left:0, top:50, width:450, height:350}); diff --git a/tests/wpt/tests/css/css-anchor-position/position-area-basic.html b/tests/wpt/tests/css/css-anchor-position/position-area-basic.html index 6cbaf8e5014..2a568cc8028 100644 --- a/tests/wpt/tests/css/css-anchor-position/position-area-basic.html +++ b/tests/wpt/tests/css/css-anchor-position/position-area-basic.html @@ -26,12 +26,17 @@ position: absolute; width: 400px; height: 400px; + margin: 0 auto; + border: 2px solid; + background: #eee; } #anchored { position: absolute; align-self: stretch; justify-self: stretch; position-anchor: --anchor; + background: #FA08; + outline: 1px solid orange; } #anchor { margin-top: 150px; @@ -39,6 +44,7 @@ width: 150px; height: 75px; anchor-name: --anchor; + background: blue; }
diff --git a/tests/wpt/tests/css/css-animations/animate-with-background-color-oklch-001-ref.html b/tests/wpt/tests/css/css-animations/animate-with-background-color-oklch-001-ref.html new file mode 100644 index 00000000000..92b91077f3f --- /dev/null +++ b/tests/wpt/tests/css/css-animations/animate-with-background-color-oklch-001-ref.html @@ -0,0 +1,16 @@ + + + +CSS Animations Test: animation with background-color "oklch" + + + + +
+ diff --git a/tests/wpt/tests/css/css-animations/animate-with-background-color-oklch-001.html b/tests/wpt/tests/css/css-animations/animate-with-background-color-oklch-001.html new file mode 100644 index 00000000000..37d10e07cdb --- /dev/null +++ b/tests/wpt/tests/css/css-animations/animate-with-background-color-oklch-001.html @@ -0,0 +1,34 @@ + + + +CSS Animations Test: animation with background-color "oklch" + + + + + +
+ + diff --git a/tests/wpt/tests/css/css-animations/animate-with-background-color-oklch-002.html b/tests/wpt/tests/css/css-animations/animate-with-background-color-oklch-002.html new file mode 100644 index 00000000000..ee6847c11bf --- /dev/null +++ b/tests/wpt/tests/css/css-animations/animate-with-background-color-oklch-002.html @@ -0,0 +1,85 @@ + + + + + + CSS animations with background-color from legacy rgb to oklch + + + + + + + + + + +
+
+ + + diff --git a/tests/wpt/tests/css/css-animations/crashtests/chrome-bug-404743651.html b/tests/wpt/tests/css/css-animations/crashtests/chrome-bug-404743651.html new file mode 100644 index 00000000000..23886237402 --- /dev/null +++ b/tests/wpt/tests/css/css-animations/crashtests/chrome-bug-404743651.html @@ -0,0 +1,17 @@ + +CSS Animations: Chrome crash for getKeyframes() when animating background-image + + +
+ diff --git a/tests/wpt/tests/css/css-borders/tentative/corner-shape/corner-shape-any-ref.html b/tests/wpt/tests/css/css-borders/tentative/corner-shape/corner-shape-any-ref.html index 688f01c8668..36fc7a88825 100644 --- a/tests/wpt/tests/css/css-borders/tentative/corner-shape/corner-shape-any-ref.html +++ b/tests/wpt/tests/css/css-borders/tentative/corner-shape/corner-shape-any-ref.html @@ -5,6 +5,11 @@ + diff --git a/tests/wpt/tests/css/css-borders/tentative/corner-shape/corner-shape-render.html b/tests/wpt/tests/css/css-borders/tentative/corner-shape/corner-shape-render.html deleted file mode 100644 index 6b9acb3447f..00000000000 --- a/tests/wpt/tests/css/css-borders/tentative/corner-shape/corner-shape-render.html +++ /dev/null @@ -1,37 +0,0 @@ - - - -CSS Borders and Box Decorations 4: 'corner-shape' rendering - - - - - - - - - - - - - - - -
- - \ No newline at end of file diff --git a/tests/wpt/tests/css/css-borders/tentative/corner-shape/resources/corner-shape.js b/tests/wpt/tests/css/css-borders/tentative/corner-shape/resources/corner-shape.js index 2aaaf5ed289..6de6c9a5d7e 100644 --- a/tests/wpt/tests/css/css-borders/tentative/corner-shape/resources/corner-shape.js +++ b/tests/wpt/tests/css/css-borders/tentative/corner-shape/resources/corner-shape.js @@ -109,7 +109,7 @@ function render_rect_with_corner_shapes(style, ctx, width, height) { } function draw_inner_corner_from_params(params, phase = "both", direction) { - add_corner(ctx, ...params.inner_rect, params.shape, phase, direction); + add_corner(ctx, ...params.inner_rect, params.inner_shape, phase, direction); } function draw_inner_corner(corner, phase = "both", direction) { @@ -123,7 +123,7 @@ function render_rect_with_corner_shapes(style, ctx, width, height) { draw_outer_corner("bottom-left"); draw_outer_corner("top-left"); ctx.closePath(); - ctx.clip("nonzero"); + ctx.fill("nonzero"); const inner_rect = [ style["border-left-width"], diff --git a/tests/wpt/tests/css/css-borders/tentative/corner-shape/resources/corner-utils.js b/tests/wpt/tests/css/css-borders/tentative/corner-shape/resources/corner-utils.js index 39203aefc67..bacaaa8a6e4 100644 --- a/tests/wpt/tests/css/css-borders/tentative/corner-shape/resources/corner-utils.js +++ b/tests/wpt/tests/css/css-borders/tentative/corner-shape/resources/corner-utils.js @@ -7,8 +7,9 @@ function offset_for_curvature(curvature) { // Find the superellipse's control point. // we do that by approximating the superellipse as a quadratic // curve that has the same point at t = 0.5. - if (curvature <= 0.001) return [1, -1]; - const { x } = superellipse(curvature); + if (curvature <= 0.001) + return [1, -1]; + const {x} = superellipse(Math.min(2, Math.max(0.5, curvature))); const [a, b] = [x, 1 - x].map((m) => 2 * m - 0.5); const magnitude = Math.hypot(a, b); // Normalize a & b @@ -17,6 +18,19 @@ function offset_for_curvature(curvature) { return [norm_a, -norm_b]; } +function compute_inner_curvature(curvature, outer_length, inner_length) { + if (curvature === 0) + return 0; + if (curvature < 1) + return 1 / + compute_inner_curvature(1 / curvature, outer_length, inner_length); + const target_length = (inner_length - outer_length) / Math.SQRT2; + return Math.log(0.5) / + Math.log( + (Math.pow(0.5, 1 / curvature) * outer_length + target_length) / + inner_length); +} + /** * * @param {number} curvature @@ -91,36 +105,49 @@ function resolve_corner_params(style, width, height, outset = null) { }; return Object.fromEntries( - Object.entries(params).map(([corner, { outer, inset }]) => { - if (outset !== null) inset = [-outset, -outset]; - const shape = style[`corner-${corner}-shape`]; - const s1 = Math.sign(outer[2] - outer[0]); - const s2 = Math.sign(outer[3] - outer[1]); - const [sw1, sw2] = inset; - const inner_offset = [s1 * sw1, s2 * sw1, -s1 * sw2, -s2 * sw2]; + Object.entries(params).map(([corner, {outer, inset}]) => { + const outer_rect = outer; + if (outset !== null) + inset = [-outset, -outset]; + const shape = style[`corner-${corner}-shape`]; + const s1 = Math.sign(outer[2] - outer[0]); + const s2 = Math.sign(outer[3] - outer[1]); + const [sw1, sw2] = inset; + const inner_offset = [s1 * sw1, s2 * sw1, -s1 * sw2, -s2 * sw2]; - const offset = offset_for_curvature(shape); - if (Math.sign(inner_offset[0]) === Math.sign(inner_offset[1])) { - offset.reverse(); - } + const offset = offset_for_curvature(shape); + if (Math.sign(inner_offset[0]) === Math.sign(inner_offset[1])) { + offset.reverse(); + } - const inner_rect = [ - outer[0] + inner_offset[0] * offset[0], - outer[1] + inner_offset[1] * offset[1], - outer[2] + inner_offset[2] * offset[1], - outer[3] + inner_offset[3] * offset[0], - ]; + const inner_rect = [ + outer_rect[0] + inner_offset[0] * offset[0], + outer_rect[1] + inner_offset[1] * offset[1], + outer_rect[2] + inner_offset[2] * offset[1], + outer_rect[3] + inner_offset[3] * offset[0], + ]; - return [ - corner, - { - outer_rect: outer, - shape, - inset, - inner_rect, - inner_offset, - }, - ]; - }) - ); + let inner_shape = shape; + if (shape > 2 || shape < 0.5) { + const outer_length = Math.hypot( + outer_rect[2] - outer_rect[0], outer_rect[3] - outer_rect[1]); + const inner_length = Math.hypot( + inner_rect[2] - inner_rect[0], inner_rect[3] - inner_rect[1]) + inner_shape = + compute_inner_curvature(shape, outer_length, inner_length); + } + + return [ + corner, + { + outer_rect, + shape, + inner_shape, + inset, + inner_rect, + inner_offset, + inner_shape + }, + ]; + })); } diff --git a/tests/wpt/tests/css/css-borders/tentative/corner-shape/resources/resolve-corner-style.js b/tests/wpt/tests/css/css-borders/tentative/corner-shape/resources/resolve-corner-style.js index ea065f577e0..b584994b4ea 100644 --- a/tests/wpt/tests/css/css-borders/tentative/corner-shape/resources/resolve-corner-style.js +++ b/tests/wpt/tests/css/css-borders/tentative/corner-shape/resources/resolve-corner-style.js @@ -17,8 +17,8 @@ function resolve_corner_style(style, w, h) { style['corner-shape'] || 'round'; const match = shape.match(/superellipse\((\.?[0-9]+(.[0-9]+)?)\)/); shape = match ? +match[1] : keywords[shape]; - const hWidth = style[`border-${hSide}-width`] || style['border-width'] || 0; - const vWidth = style[`border-${vSide}-width`] || style['border-width'] || 0; + const hWidth = parseFloat(style[`border-${hSide}-width`] || style['border-width'] || 0); + const vWidth = parseFloat(style[`border-${vSide}-width`] || style['border-width'] || 0); let radius = style[`border-${vSide}-${hSide}-radius`] || style['border-radius'] || 0; if (!Array.isArray(radius)) diff --git a/tests/wpt/tests/css/css-color/parsing/color-computed-relative-color.html b/tests/wpt/tests/css/css-color/parsing/color-computed-relative-color.html index 23ee07d177a..9bb87459623 100644 --- a/tests/wpt/tests/css/css-color/parsing/color-computed-relative-color.html +++ b/tests/wpt/tests/css/css-color/parsing/color-computed-relative-color.html @@ -527,6 +527,8 @@ fuzzy_test_computed_color(`lch(from lch(0.7 45 30 / 40%) calc(l) calc(c) calc(h) / calc(alpha))`, `lch(0.7 45 30 / 0.4)`); fuzzy_test_computed_color(`lch(from lch(50 5 10 / 0.8) calc(l + 1) calc(c + 1) calc(h + 1) / calc(alpha + 0.01))`, `lch(51 6 11 / 0.81)`); fuzzy_test_computed_color(`lch(from lch(0.7 45 30) calc((l / 100) * 100%) calc((c / 150) * 100%) calc((h / 360) * 360deg) / calc(alpha * 100%))`, `lch(0.7 45 30)`); + fuzzy_test_computed_color(`lch(from red calc((49.44 - l) * infinity) 0 0)`, `lch(0 0 0)`); + fuzzy_test_computed_color(`lch(from blue calc((49.44 - l) * infinity) 0 0)`, `lch(100 0 0)`); // Alpha is clamped to [0,1] fuzzy_test_computed_color(`lch(from lch(from lch(0.7 45 30) l c h / calc(alpha + 0.5)) l c h / calc(alpha - 0.5))`, `lch(0.7 45 30 / 0.5)`); diff --git a/tests/wpt/tests/css/css-conditional/at-supports-selector-details-content-before.html b/tests/wpt/tests/css/css-conditional/at-supports-selector-details-content-before.html new file mode 100644 index 00000000000..731b2c4d6d2 --- /dev/null +++ b/tests/wpt/tests/css/css-conditional/at-supports-selector-details-content-before.html @@ -0,0 +1,24 @@ + + + + CSS Test (Conditional Rules): In @supports, ::details-content::before can be parsed successfully + + + + + + + +

Test passes if there is a filled green square and no red.

+
+ + diff --git a/tests/wpt/tests/css/css-conditional/at-supports-selector-details-content.html b/tests/wpt/tests/css/css-conditional/at-supports-selector-details-content.html new file mode 100644 index 00000000000..89e7606de5b --- /dev/null +++ b/tests/wpt/tests/css/css-conditional/at-supports-selector-details-content.html @@ -0,0 +1,24 @@ + + + + CSS Test (Conditional Rules): In @supports, ::details-content can be parsed successfully + + + + + + + +

Test passes if there is a filled green square and no red.

+
+ + diff --git a/tests/wpt/tests/css/css-conditional/js/CSS-supports-details-content-pseudo-parsing.html b/tests/wpt/tests/css/css-conditional/js/CSS-supports-details-content-pseudo-parsing.html new file mode 100644 index 00000000000..67a46fe82a2 --- /dev/null +++ b/tests/wpt/tests/css/css-conditional/js/CSS-supports-details-content-pseudo-parsing.html @@ -0,0 +1,41 @@ + + +CSS.supports() ::details-content parsing + + + + + + diff --git a/tests/wpt/tests/css/css-easing/linear-timing-functions-chrome-405004975-crash.html b/tests/wpt/tests/css/css-easing/linear-timing-functions-chrome-405004975-crash.html new file mode 100644 index 00000000000..510b51716ce --- /dev/null +++ b/tests/wpt/tests/css/css-easing/linear-timing-functions-chrome-405004975-crash.html @@ -0,0 +1,10 @@ + +Chrome crash bug 405004975 + + +

Passes if test does not fail any CHECKs or DCHECKs.

diff --git a/tests/wpt/tests/css/css-flexbox/flex-shorthand-calc.html b/tests/wpt/tests/css/css-flexbox/flex-shorthand-calc.html new file mode 100644 index 00000000000..6498988dd53 --- /dev/null +++ b/tests/wpt/tests/css/css-flexbox/flex-shorthand-calc.html @@ -0,0 +1,16 @@ + +CSS Flexbox Test: Allow complex calc expressions in flex shorthand + + + + +
+
+
+ diff --git a/tests/wpt/tests/css/css-flexbox/parsing/flex-computed.html b/tests/wpt/tests/css/css-flexbox/parsing/flex-computed.html index ea1f4f6fa45..074d0f7395c 100644 --- a/tests/wpt/tests/css/css-flexbox/parsing/flex-computed.html +++ b/tests/wpt/tests/css/css-flexbox/parsing/flex-computed.html @@ -9,13 +9,19 @@ -
+
+
+
diff --git a/tests/wpt/tests/css/css-flexbox/parsing/flex-invalid.html b/tests/wpt/tests/css/css-flexbox/parsing/flex-invalid.html index ae010d7b4b4..d47f8b67930 100644 --- a/tests/wpt/tests/css/css-flexbox/parsing/flex-invalid.html +++ b/tests/wpt/tests/css/css-flexbox/parsing/flex-invalid.html @@ -16,6 +16,8 @@ test_invalid_value("flex", "none 1"); test_invalid_value("flex", "2 3 4"); test_invalid_value("flex", "5px 7%"); test_invalid_value("flex", "9 none"); +test_invalid_value("flex", "1 2 calc(0)"); +test_invalid_value("flex", "1 2 calc(3 - 3)"); diff --git a/tests/wpt/tests/css/css-flexbox/parsing/flex-valid.html b/tests/wpt/tests/css/css-flexbox/parsing/flex-valid.html index f3eaf118da6..4c57fe4e253 100644 --- a/tests/wpt/tests/css/css-flexbox/parsing/flex-valid.html +++ b/tests/wpt/tests/css/css-flexbox/parsing/flex-valid.html @@ -9,15 +9,37 @@ + +
+
+
+ + + + + + +
+
a a a
+
a
+
+ + +
+
a a a
+
a
+
+ + +
+
a a a
+
a
+
+ + +
+
a a a
+
+ + +
+
a a a
+
a
+
+ + + +
+
a a a
+
+ + +
+
+
a a a
+
+
+ + +
+
+
a a a
+
+
+ + + + + diff --git a/tests/wpt/tests/css/css-fonts/font-variation-settings-calc.html b/tests/wpt/tests/css/css-fonts/font-variation-settings-calc.html new file mode 100644 index 00000000000..e3f5178952e --- /dev/null +++ b/tests/wpt/tests/css/css-fonts/font-variation-settings-calc.html @@ -0,0 +1,16 @@ + +CSS Fonts Test: Allow complex calc expressions in font-variation-settings + + + + + +
+
+
+ diff --git a/tests/wpt/tests/css/css-gaps/tentative/grid/grid-gap-decorations-006-ref.html b/tests/wpt/tests/css/css-gaps/tentative/grid/grid-gap-decorations-006-ref.html new file mode 100644 index 00000000000..f77ec2a9d43 --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/tentative/grid/grid-gap-decorations-006-ref.html @@ -0,0 +1,94 @@ + + + + + +
+
+
+
+
+
+
+
+
+
+ +
+
+
+ +
+
+
diff --git a/tests/wpt/tests/css/css-gaps/tentative/grid/grid-gap-decorations-006.html b/tests/wpt/tests/css/css-gaps/tentative/grid/grid-gap-decorations-006.html new file mode 100644 index 00000000000..7b1187c4e44 --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/tentative/grid/grid-gap-decorations-006.html @@ -0,0 +1,45 @@ + + + CSS Gap Decorations: *rule-break defaults to spanning-item and avoids painting behind spanners. + + + + + +
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/tests/css/css-gaps/tentative/grid/grid-gap-decorations-007-ref.html b/tests/wpt/tests/css/css-gaps/tentative/grid/grid-gap-decorations-007-ref.html new file mode 100644 index 00000000000..9d74fa00f41 --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/tentative/grid/grid-gap-decorations-007-ref.html @@ -0,0 +1,188 @@ + + + + +
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/tests/css/css-gaps/tentative/grid/grid-gap-decorations-007.html b/tests/wpt/tests/css/css-gaps/tentative/grid/grid-gap-decorations-007.html new file mode 100644 index 00000000000..adc98e4bc03 --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/tentative/grid/grid-gap-decorations-007.html @@ -0,0 +1,50 @@ + + + CSS Gap Decorations: setting *rule-break to intersection stops painting decorations at each intersection. + + + + + +
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/tests/css/css-gaps/tentative/grid/grid-gap-decorations-008-ref.html b/tests/wpt/tests/css/css-gaps/tentative/grid/grid-gap-decorations-008-ref.html new file mode 100644 index 00000000000..200a2621a21 --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/tentative/grid/grid-gap-decorations-008-ref.html @@ -0,0 +1,102 @@ + + + + +
+
+
+
+
+
+
+
+
+
+ +
+
+
+ +
+
+
diff --git a/tests/wpt/tests/css/css-gaps/tentative/grid/grid-gap-decorations-008.html b/tests/wpt/tests/css/css-gaps/tentative/grid/grid-gap-decorations-008.html new file mode 100644 index 00000000000..f8dc0df36e2 --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/tentative/grid/grid-gap-decorations-008.html @@ -0,0 +1,48 @@ + + + CSS Gap Decorations: setting *rule-break to none paints decorations from first grid line to last grid line. + + + + + +
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/tests/css/css-gaps/tentative/grid/grid-gap-decorations-009-ref.html b/tests/wpt/tests/css/css-gaps/tentative/grid/grid-gap-decorations-009-ref.html new file mode 100644 index 00000000000..11d8267235b --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/tentative/grid/grid-gap-decorations-009-ref.html @@ -0,0 +1,71 @@ + + + + +
+
+
+
+
+
+
+ +
+
+ +
+
diff --git a/tests/wpt/tests/css/css-gaps/tentative/grid/grid-gap-decorations-009.html b/tests/wpt/tests/css/css-gaps/tentative/grid/grid-gap-decorations-009.html new file mode 100644 index 00000000000..0756b9294be --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/tentative/grid/grid-gap-decorations-009.html @@ -0,0 +1,39 @@ + + + CSS Gap Decorations: Grid with 2x2 item, decorations are not painted within item when *-rule-break is spanning-item. + + + + + +
+
+
+
+
+
+
diff --git a/tests/wpt/tests/css/css-gaps/tentative/grid/grid-gap-decorations-010-ref.html b/tests/wpt/tests/css/css-gaps/tentative/grid/grid-gap-decorations-010-ref.html new file mode 100644 index 00000000000..747391cfedc --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/tentative/grid/grid-gap-decorations-010-ref.html @@ -0,0 +1,94 @@ + + + + + + +
+
+
+
+
+
+
+
+
+
+
+ + +
+
+ +
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/tests/css/css-gaps/tentative/grid/grid-gap-decorations-010.html b/tests/wpt/tests/css/css-gaps/tentative/grid/grid-gap-decorations-010.html new file mode 100644 index 00000000000..d9201b51cea --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/tentative/grid/grid-gap-decorations-010.html @@ -0,0 +1,46 @@ + + + CSS Gap Decorations: An outset of 0px aligns the ends of gap decorations with adjacent item. + + + + + +
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/tests/css/css-gaps/tentative/grid/grid-gap-decorations-011-ref.html b/tests/wpt/tests/css/css-gaps/tentative/grid/grid-gap-decorations-011-ref.html new file mode 100644 index 00000000000..c49eb95f72e --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/tentative/grid/grid-gap-decorations-011-ref.html @@ -0,0 +1,68 @@ + + + + +
+
+
+
+
+
+
+
+
+
+
+ +
+
+ +
+
diff --git a/tests/wpt/tests/css/css-gaps/tentative/grid/grid-gap-decorations-011.html b/tests/wpt/tests/css/css-gaps/tentative/grid/grid-gap-decorations-011.html new file mode 100644 index 00000000000..c0540398d05 --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/tentative/grid/grid-gap-decorations-011.html @@ -0,0 +1,43 @@ + + + CSS Gap Decorations: *rule-outset defaults to 50% and extends each decoration end halfway into its intersection. + + + + + +
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/tests/css/css-gaps/tentative/grid/grid-gap-decorations-012-ref.html b/tests/wpt/tests/css/css-gaps/tentative/grid/grid-gap-decorations-012-ref.html new file mode 100644 index 00000000000..ded98fa1c8d --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/tentative/grid/grid-gap-decorations-012-ref.html @@ -0,0 +1,71 @@ + + + + + + +
+
+
+
+
+
+
+
+
+
+
+ + +
+
+ +
+
diff --git a/tests/wpt/tests/css/css-gaps/tentative/grid/grid-gap-decorations-012.html b/tests/wpt/tests/css/css-gaps/tentative/grid/grid-gap-decorations-012.html new file mode 100644 index 00000000000..26ba45a14ff --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/tentative/grid/grid-gap-decorations-012.html @@ -0,0 +1,45 @@ + + + CSS Gap Decorations: An outset of 5px extends decorations slightly beyond the edges of adjacent items. + + + + + + + +
+
+
+
+
+
+
+
+
+
+
+ diff --git a/tests/wpt/tests/css/css-gaps/tentative/grid/grid-gap-decorations-013-ref.html b/tests/wpt/tests/css/css-gaps/tentative/grid/grid-gap-decorations-013-ref.html new file mode 100644 index 00000000000..bd8456f525e --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/tentative/grid/grid-gap-decorations-013-ref.html @@ -0,0 +1,94 @@ + + + + + + +
+
+
+
+
+
+
+
+
+
+
+ + +
+
+ +
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/tests/css/css-gaps/tentative/grid/grid-gap-decorations-013.html b/tests/wpt/tests/css/css-gaps/tentative/grid/grid-gap-decorations-013.html new file mode 100644 index 00000000000..4a056134089 --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/tentative/grid/grid-gap-decorations-013.html @@ -0,0 +1,49 @@ + + + CSS Gap Decorations: An outset of -5px shortens the ends of decorations relative to the edges of adjacent items. + + + + + + + +
+
+
+
+
+
+
+
+
+
+
+ diff --git a/tests/wpt/tests/css/css-gaps/tentative/grid/grid-gap-decorations-014-ref.html b/tests/wpt/tests/css/css-gaps/tentative/grid/grid-gap-decorations-014-ref.html new file mode 100644 index 00000000000..25a930a51af --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/tentative/grid/grid-gap-decorations-014-ref.html @@ -0,0 +1,68 @@ + + + + +
+
+
+
+
+
+
+
+
+
+
+ +
+
+ +
+
diff --git a/tests/wpt/tests/css/css-gaps/tentative/grid/grid-gap-decorations-014.html b/tests/wpt/tests/css/css-gaps/tentative/grid/grid-gap-decorations-014.html new file mode 100644 index 00000000000..97ad626e1f2 --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/tentative/grid/grid-gap-decorations-014.html @@ -0,0 +1,42 @@ + + + CSS Gap Decorations: An outset of 5px with rule-break: `none` extends decorations outside edge track lines. + + + + + +
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/tests/css/css-gaps/tentative/grid/grid-gap-decorations-015-ref.html b/tests/wpt/tests/css/css-gaps/tentative/grid/grid-gap-decorations-015-ref.html new file mode 100644 index 00000000000..0937a62da6f --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/tentative/grid/grid-gap-decorations-015-ref.html @@ -0,0 +1,95 @@ + + + + + +
+
+
+
+
+
+
+
+
+
+ +
+
+
+ +
+
+
diff --git a/tests/wpt/tests/css/css-gaps/tentative/grid/grid-gap-decorations-015.html b/tests/wpt/tests/css/css-gaps/tentative/grid/grid-gap-decorations-015.html new file mode 100644 index 00000000000..e575c134353 --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/tentative/grid/grid-gap-decorations-015.html @@ -0,0 +1,49 @@ + + + CSS Gap Decorations: An outset of 20px with rule-break: `spanning-item` extends decorations into spanning items and outside edge track lines. + + + + + +
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/tests/css/css-grid/alignment/grid-item-aspect-ratio-stretch-4-ref.html b/tests/wpt/tests/css/css-grid/alignment/grid-item-aspect-ratio-stretch-4-ref.html index 8d7fc870fae..8c251a9d9f0 100644 --- a/tests/wpt/tests/css/css-grid/alignment/grid-item-aspect-ratio-stretch-4-ref.html +++ b/tests/wpt/tests/css/css-grid/alignment/grid-item-aspect-ratio-stretch-4-ref.html @@ -39,7 +39,7 @@
- +
@@ -74,17 +73,6 @@ test_shorthand_value("grid", '10px / masonry', { 'grid-auto-flow': 'row' }); -test_valid_value("masonry-auto-flow", 'pack'); -test_valid_value("masonry-auto-flow", 'pack ordered', 'ordered'); -test_valid_value("masonry-auto-flow", 'ordered next', 'next ordered'); -test_valid_value("masonry-auto-flow", 'next definite-first', 'next'); -test_valid_value("masonry-auto-flow", 'definite-first pack', 'pack'); -test_invalid_value("masonry-auto-flow", 'auto'); -test_invalid_value("masonry-auto-flow", 'none'); -test_invalid_value("masonry-auto-flow", '10px'); -test_invalid_value("masonry-auto-flow", 'row'); -test_invalid_value("masonry-auto-flow", 'dense'); - diff --git a/tests/wpt/tests/css/css-grid/parsing/grid-area-computed.html b/tests/wpt/tests/css/css-grid/parsing/grid-area-computed.html index d1ae78c7023..9b31e2b23c6 100644 --- a/tests/wpt/tests/css/css-grid/parsing/grid-area-computed.html +++ b/tests/wpt/tests/css/css-grid/parsing/grid-area-computed.html @@ -7,9 +7,17 @@ + -
+
+
+
+ + + + + + diff --git a/tests/wpt/tests/css/css-overflow/line-clamp/line-clamp-auto-002-crash.html b/tests/wpt/tests/css/css-overflow/line-clamp/line-clamp-auto-002-crash.html new file mode 100644 index 00000000000..be5693c7045 --- /dev/null +++ b/tests/wpt/tests/css/css-overflow/line-clamp/line-clamp-auto-002-crash.html @@ -0,0 +1,27 @@ + + +CSS Overflow: `line-clamp: auto` box containing float after margins should not crash + + + + +
+
A
+
+
+ B +
+
diff --git a/tests/wpt/tests/css/css-overflow/scroll-marker-15.html b/tests/wpt/tests/css/css-overflow/scroll-marker-15.html new file mode 100644 index 00000000000..764e56b5543 --- /dev/null +++ b/tests/wpt/tests/css/css-overflow/scroll-marker-15.html @@ -0,0 +1,62 @@ + + +CSS Test: scroll tracking for ::scroll-marker with overflow: hidden + + + + + +
+
+
+
+ diff --git a/tests/wpt/tests/css/css-overflow/scroll-marker-contain-001-ref.tentative.html b/tests/wpt/tests/css/css-overflow/scroll-marker-contain-001-ref.tentative.html new file mode 100644 index 00000000000..69e9167cc33 --- /dev/null +++ b/tests/wpt/tests/css/css-overflow/scroll-marker-contain-001-ref.tentative.html @@ -0,0 +1,38 @@ + + +CSS Overflow Test Reference: scroll-marker-contain property makes anchor elements scroll markers + +
+ t1 + t2 + t3 + t4 +
+
+
+
+
+
+
+ diff --git a/tests/wpt/tests/css/css-overflow/scroll-marker-contain-001.tentative.html b/tests/wpt/tests/css/css-overflow/scroll-marker-contain-001.tentative.html new file mode 100644 index 00000000000..93d7df72508 --- /dev/null +++ b/tests/wpt/tests/css/css-overflow/scroll-marker-contain-001.tentative.html @@ -0,0 +1,44 @@ + + +CSS Overflow Test: scroll-marker-contain property makes anchor elements scroll markers + + + +
+ t1 + t2 + t3 + t4 +
+
+
+
+
+
+
+ diff --git a/tests/wpt/tests/css/css-overflow/scroll-marker-contain-002-ref.tentative.html b/tests/wpt/tests/css/css-overflow/scroll-marker-contain-002-ref.tentative.html new file mode 100644 index 00000000000..3fa777f7863 --- /dev/null +++ b/tests/wpt/tests/css/css-overflow/scroll-marker-contain-002-ref.tentative.html @@ -0,0 +1,41 @@ + + +CSS Overflow Test Reference: scroll-marker-contain property makes anchor elements scroll markers and does scroll tracking + +
+ t1 + t2 + t3 + t4 +
+
+
+
+
+
+
+ + diff --git a/tests/wpt/tests/css/css-overflow/scroll-marker-contain-002.tentative.html b/tests/wpt/tests/css/css-overflow/scroll-marker-contain-002.tentative.html new file mode 100644 index 00000000000..af2a5e668be --- /dev/null +++ b/tests/wpt/tests/css/css-overflow/scroll-marker-contain-002.tentative.html @@ -0,0 +1,48 @@ + + +CSS Overflow Test: scroll-marker-contain property makes anchor elements scroll markers and does scroll tracking + + + +
+ t1 + t2 + t3 + t4 +
+
+
+
+
+
+
+ + diff --git a/tests/wpt/tests/css/css-overflow/scroll-marker-contain-003-ref.tentative.html b/tests/wpt/tests/css/css-overflow/scroll-marker-contain-003-ref.tentative.html new file mode 100644 index 00000000000..09bb93d4ebc --- /dev/null +++ b/tests/wpt/tests/css/css-overflow/scroll-marker-contain-003-ref.tentative.html @@ -0,0 +1,49 @@ + + +CSS Overflow Test Reference: anchor scroll markers and pseudo element scroll markers + + +
+ t1 + t2 + t3 + t4 +
+
+
+
+
+
+
+ + + diff --git a/tests/wpt/tests/css/css-overflow/scroll-marker-contain-003.tentative.html b/tests/wpt/tests/css/css-overflow/scroll-marker-contain-003.tentative.html new file mode 100644 index 00000000000..59daa5cf5ce --- /dev/null +++ b/tests/wpt/tests/css/css-overflow/scroll-marker-contain-003.tentative.html @@ -0,0 +1,66 @@ + + +CSS Overflow Test: anchor scroll markers and pseudo element scroll markers + + + + + +
+ t1 + t2 + t3 + t4 +
+
+
+
+
+
+
+ + diff --git a/tests/wpt/tests/css/css-overflow/scroll-marker-contain-004.tentative.html b/tests/wpt/tests/css/css-overflow/scroll-marker-contain-004.tentative.html new file mode 100644 index 00000000000..2ec6f6bde76 --- /dev/null +++ b/tests/wpt/tests/css/css-overflow/scroll-marker-contain-004.tentative.html @@ -0,0 +1,47 @@ + + +CSS Overflow Test: scroll-marker-contain property makes anchor elements scroll markers inside size containers + + + +
+ t1 + t2 + t3 + t4 +
+
+
+
+
+
+
diff --git a/tests/wpt/tests/css/css-overscroll-behavior/overscroll-behavior-root.html b/tests/wpt/tests/css/css-overscroll-behavior/overscroll-behavior-root.html index 18c172b40a1..a116ead01b7 100644 --- a/tests/wpt/tests/css/css-overscroll-behavior/overscroll-behavior-root.html +++ b/tests/wpt/tests/css/css-overscroll-behavior/overscroll-behavior-root.html @@ -29,7 +29,8 @@ promise_test(async function() { assert_not_equals(originalScrollPos, 0, "Should have scrolled to get the iframe into view"); await new test_driver.Actions() - .scroll(bounds.left + bounds.width / 2, bounds.top + bounds.height / 2, 0, -100) + .scroll(Math.round(bounds.left + bounds.width / 2), + Math.round(bounds.top + bounds.height / 2), 0, -100) .send(); assert_equals(window.scrollY, originalScrollPos, "overscroll-behavior should work on the root"); diff --git a/tests/wpt/tests/css/css-position/sticky/position-sticky-table-pixel-rounding-ref.html b/tests/wpt/tests/css/css-position/sticky/position-sticky-table-pixel-rounding-ref.html new file mode 100644 index 00000000000..83313e0ad10 --- /dev/null +++ b/tests/wpt/tests/css/css-position/sticky/position-sticky-table-pixel-rounding-ref.html @@ -0,0 +1,23 @@ + + + + + + + + +
Content
+ diff --git a/tests/wpt/tests/css/css-position/sticky/position-sticky-table-pixel-rounding.html b/tests/wpt/tests/css/css-position/sticky/position-sticky-table-pixel-rounding.html new file mode 100644 index 00000000000..3bda20efc9d --- /dev/null +++ b/tests/wpt/tests/css/css-position/sticky/position-sticky-table-pixel-rounding.html @@ -0,0 +1,27 @@ + + + + + + + + + + + + +
Content
+ diff --git a/tests/wpt/tests/css/css-pseudo/focus-visible-originating-element.html b/tests/wpt/tests/css/css-pseudo/focus-visible-originating-element.html new file mode 100644 index 00000000000..05fc8232491 --- /dev/null +++ b/tests/wpt/tests/css/css-pseudo/focus-visible-originating-element.html @@ -0,0 +1,37 @@ + + +CSS Test: ::before matches when originating element has :focus-visible selector + + + + + + + + + diff --git a/tests/wpt/tests/css/css-scoping/host-has-internal-004.html b/tests/wpt/tests/css/css-scoping/host-has-internal-004.html new file mode 100644 index 00000000000..fe51186f59f --- /dev/null +++ b/tests/wpt/tests/css/css-scoping/host-has-internal-004.html @@ -0,0 +1,22 @@ + + +:has(...):host internal descendent + + +

Test passes if there is a filled green square.

+
+ +
diff --git a/tests/wpt/tests/css/css-scroll-snap/snap-after-relayout/resnap-on-oveflow-hidden-container.html b/tests/wpt/tests/css/css-scroll-snap/snap-after-relayout/resnap-on-oveflow-hidden-container.html new file mode 100644 index 00000000000..41e454b2789 --- /dev/null +++ b/tests/wpt/tests/css/css-scroll-snap/snap-after-relayout/resnap-on-oveflow-hidden-container.html @@ -0,0 +1,63 @@ + + + + + + + +
+
1
+
2
+
3
+
+ diff --git a/tests/wpt/tests/css/css-sizing/aspect-ratio/replaced-element-013.html b/tests/wpt/tests/css/css-sizing/aspect-ratio/replaced-element-013.html index bcbf653d68a..564858e360e 100644 --- a/tests/wpt/tests/css/css-sizing/aspect-ratio/replaced-element-013.html +++ b/tests/wpt/tests/css/css-sizing/aspect-ratio/replaced-element-013.html @@ -2,11 +2,11 @@ CSS aspect-ratio: img +

Test passes if there is a filled green square and no red.

- - + + diff --git a/tests/wpt/tests/css/css-sizing/aspect-ratio/replaced-element-014.html b/tests/wpt/tests/css/css-sizing/aspect-ratio/replaced-element-014.html index 4c1ad16ce86..8b7bdafc107 100644 --- a/tests/wpt/tests/css/css-sizing/aspect-ratio/replaced-element-014.html +++ b/tests/wpt/tests/css/css-sizing/aspect-ratio/replaced-element-014.html @@ -2,11 +2,11 @@ CSS aspect-ratio: img +

Test passes if there is a filled green square and no red.

- - + + diff --git a/tests/wpt/tests/css/css-sizing/aspect-ratio/replaced-element-045.html b/tests/wpt/tests/css/css-sizing/aspect-ratio/replaced-element-045.html new file mode 100644 index 00000000000..3339de4cb7d --- /dev/null +++ b/tests/wpt/tests/css/css-sizing/aspect-ratio/replaced-element-045.html @@ -0,0 +1,10 @@ + + + + + +

Test passes if there is a filled green square and no red.

+ + + + diff --git a/tests/wpt/tests/css/css-sizing/aspect-ratio/replaced-element-046.html b/tests/wpt/tests/css/css-sizing/aspect-ratio/replaced-element-046.html new file mode 100644 index 00000000000..13a9fd99513 --- /dev/null +++ b/tests/wpt/tests/css/css-sizing/aspect-ratio/replaced-element-046.html @@ -0,0 +1,10 @@ + + + + + +

Test passes if there is a filled green square and no red.

+ + + + diff --git a/tests/wpt/tests/css/css-sizing/contain-intrinsic-size/contain-intrinsic-size-028.html b/tests/wpt/tests/css/css-sizing/contain-intrinsic-size/contain-intrinsic-size-028.html index 15e8e0e8910..da31a1efead 100644 --- a/tests/wpt/tests/css/css-sizing/contain-intrinsic-size/contain-intrinsic-size-028.html +++ b/tests/wpt/tests/css/css-sizing/contain-intrinsic-size/contain-intrinsic-size-028.html @@ -31,6 +31,9 @@ .vertical { writing-mode: vertical-lr; } +canvas { + aspect-ratio: auto; +} diff --git a/tests/wpt/tests/css/css-sizing/contain-intrinsic-size/contain-intrinsic-size-logical-003.html b/tests/wpt/tests/css/css-sizing/contain-intrinsic-size/contain-intrinsic-size-logical-003.html index 48fedb11483..9ee60268d60 100644 --- a/tests/wpt/tests/css/css-sizing/contain-intrinsic-size/contain-intrinsic-size-logical-003.html +++ b/tests/wpt/tests/css/css-sizing/contain-intrinsic-size/contain-intrinsic-size-logical-003.html @@ -35,6 +35,9 @@ .vertical { writing-mode: vertical-lr; } +canvas { + aspect-ratio: auto; +} diff --git a/tests/wpt/tests/css/css-text/white-space/text-wrap-balance-before-after-001.html b/tests/wpt/tests/css/css-text/white-space/text-wrap-balance-before-after-001.html index 9f5741e2349..7176768b8df 100644 --- a/tests/wpt/tests/css/css-text/white-space/text-wrap-balance-before-after-001.html +++ b/tests/wpt/tests/css/css-text/white-space/text-wrap-balance-before-after-001.html @@ -1,5 +1,5 @@ - + +
+
+
+
+ diff --git a/tests/wpt/tests/css/css-values/calc-complex-unresolved-serialize.html b/tests/wpt/tests/css/css-values/calc-complex-unresolved-serialize.html new file mode 100644 index 00000000000..64bccd216ab --- /dev/null +++ b/tests/wpt/tests/css/css-values/calc-complex-unresolved-serialize.html @@ -0,0 +1,26 @@ + +CSS Values and Units Test: Serialization of non-simplified calc() expressions + + + + + +
+
+
+ diff --git a/tests/wpt/tests/css/css-values/hypot-pow-sqrt-invalid.html b/tests/wpt/tests/css/css-values/hypot-pow-sqrt-invalid.html index edecfceb13a..3e298895883 100644 --- a/tests/wpt/tests/css/css-values/hypot-pow-sqrt-invalid.html +++ b/tests/wpt/tests/css/css-values/hypot-pow-sqrt-invalid.html @@ -49,6 +49,8 @@ test_invalid_number('pow(1 * )'); test_invalid_number('pow(1 / )'); test_invalid_number('pow(1 2)'); test_invalid_number('pow(1, , 2)'); +test_invalid_number('pow(2px, 2)'); +test_invalid_number('pow(10, 1px)'); // General tests test_invalid_length('calc(1px * pow(1))'); @@ -64,4 +66,5 @@ test_invalid_length('pow())'); test_invalid_length('pow(1, 2)'); test_invalid_length('calc(sqrt())'); test_invalid_length('calc(sqrt(100, 200))'); +test_invalid_length('pow(10px, 1)'); diff --git a/tests/wpt/tests/css/css-view-transitions/navigation/pageswap-in-hidden-doc-should-skip-transition.html b/tests/wpt/tests/css/css-view-transitions/navigation/pageswap-in-hidden-doc-should-skip-transition.html index aceced0dded..2fddb7e17a4 100644 --- a/tests/wpt/tests/css/css-view-transitions/navigation/pageswap-in-hidden-doc-should-skip-transition.html +++ b/tests/wpt/tests/css/css-view-transitions/navigation/pageswap-in-hidden-doc-should-skip-transition.html @@ -9,7 +9,14 @@ promise_test(async t => { let popup; onload = () => { + // Need to restore this browser window once after the window got minimized. + window.set_original_window_rect = rect => { + t.add_cleanup(async () => { + await test_driver.set_window_rect(rect); + }); + }; popup = window.open("resources/navigate-after-hide.html"); + t.add_cleanup(() => popup.close()); }; diff --git a/tests/wpt/tests/css/css-view-transitions/navigation/resources/navigate-after-hide.html b/tests/wpt/tests/css/css-view-transitions/navigation/resources/navigate-after-hide.html index 0b6a3d669e8..9bed19eda2a 100644 --- a/tests/wpt/tests/css/css-view-transitions/navigation/resources/navigate-after-hide.html +++ b/tests/wpt/tests/css/css-view-transitions/navigation/resources/navigate-after-hide.html @@ -4,7 +4,8 @@ + + + + +
+
+
+
+
+
+ + + diff --git a/tests/wpt/tests/css/css-viewport/zoom/font-size-keyword-specified-ref.html b/tests/wpt/tests/css/css-viewport/zoom/font-size-keyword-specified-ref.html new file mode 100644 index 00000000000..3395465c5d5 --- /dev/null +++ b/tests/wpt/tests/css/css-viewport/zoom/font-size-keyword-specified-ref.html @@ -0,0 +1,5 @@ + +CSS zoom applies to font-size when specified by keywords +
+
This is some zoomed medium text
+
diff --git a/tests/wpt/tests/css/css-viewport/zoom/font-size-keyword-specified.html b/tests/wpt/tests/css/css-viewport/zoom/font-size-keyword-specified.html new file mode 100644 index 00000000000..fc724307f46 --- /dev/null +++ b/tests/wpt/tests/css/css-viewport/zoom/font-size-keyword-specified.html @@ -0,0 +1,7 @@ + +CSS zoom applies to font-size when specified by keywords + + +
+
This is some zoomed medium text
+
diff --git a/tests/wpt/tests/css/css-viewport/zoom/zoom-revert-layer-crash.html b/tests/wpt/tests/css/css-viewport/zoom/zoom-revert-layer-crash.html new file mode 100644 index 00000000000..c75b792e6de --- /dev/null +++ b/tests/wpt/tests/css/css-viewport/zoom/zoom-revert-layer-crash.html @@ -0,0 +1,4 @@ + +Don't crash when zooming revert-layer + +PASS if no crash diff --git a/tests/wpt/tests/css/css-writing-modes/wm-propagation-body-044-ref.html b/tests/wpt/tests/css/css-writing-modes/wm-propagation-body-044-ref.html index 9cf46c0b214..f61f97c9a1d 100644 --- a/tests/wpt/tests/css/css-writing-modes/wm-propagation-body-044-ref.html +++ b/tests/wpt/tests/css/css-writing-modes/wm-propagation-body-044-ref.html @@ -7,7 +7,10 @@ +
+
+ +
+ diff --git a/tests/wpt/tests/css/cssom-view/visual-scrollIntoView-003.html b/tests/wpt/tests/css/cssom-view/visual-scrollIntoView-003.html new file mode 100644 index 00000000000..c0592098a90 --- /dev/null +++ b/tests/wpt/tests/css/cssom-view/visual-scrollIntoView-003.html @@ -0,0 +1,67 @@ + + + + + + + + + + + + +
+
+ +
+ diff --git a/tests/wpt/tests/css/filter-effects/feComposite-intersection-feTile-input-ref.html b/tests/wpt/tests/css/filter-effects/feComposite-intersection-feTile-input-ref.html new file mode 100644 index 00000000000..4345e3d8ac1 --- /dev/null +++ b/tests/wpt/tests/css/filter-effects/feComposite-intersection-feTile-input-ref.html @@ -0,0 +1,5 @@ + + +
+
diff --git a/tests/wpt/tests/css/filter-effects/feComposite-intersection-feTile-input.html b/tests/wpt/tests/css/filter-effects/feComposite-intersection-feTile-input.html new file mode 100644 index 00000000000..1bf1f4b8fba --- /dev/null +++ b/tests/wpt/tests/css/filter-effects/feComposite-intersection-feTile-input.html @@ -0,0 +1,36 @@ + + + + + + + + + + + + + +
+ diff --git a/tests/wpt/tests/dom/events/scrolling/scrollend-event-fired-for-scrollIntoView.html b/tests/wpt/tests/dom/events/scrolling/scrollend-event-fired-for-scrollIntoView.html index 40aa77f4764..e3e63f28201 100644 --- a/tests/wpt/tests/dom/events/scrolling/scrollend-event-fired-for-scrollIntoView.html +++ b/tests/wpt/tests/dom/events/scrolling/scrollend-event-fired-for-scrollIntoView.html @@ -6,6 +6,12 @@ + + + + + + + + +

2d.text.measure.lang

+

Testing the lang attribute

+ + +A +

Actual output:

+

FAIL (fallback content)

+ +
    + + diff --git a/tests/wpt/tests/html/canvas/element/text/2d.text.measure.lang.inherit.html b/tests/wpt/tests/html/canvas/element/text/2d.text.measure.lang.inherit.html new file mode 100644 index 00000000000..565308a895b --- /dev/null +++ b/tests/wpt/tests/html/canvas/element/text/2d.text.measure.lang.inherit.html @@ -0,0 +1,48 @@ + + + +Canvas test: 2d.text.measure.lang.inherit + + + + + + + +

    2d.text.measure.lang.inherit

    +

    Testing the lang attribute

    + + +A +

    Actual output:

    +

    FAIL (fallback content)

    + +
      + + diff --git a/tests/wpt/tests/html/canvas/offscreen/text/2d.text.measure.lang.html b/tests/wpt/tests/html/canvas/offscreen/text/2d.text.measure.lang.html new file mode 100644 index 00000000000..22183f94342 --- /dev/null +++ b/tests/wpt/tests/html/canvas/offscreen/text/2d.text.measure.lang.html @@ -0,0 +1,37 @@ + + + +OffscreenCanvas test: 2d.text.measure.lang + + + + +

      2d.text.measure.lang

      +

      Testing the lang attribute

      + + + diff --git a/tests/wpt/tests/html/canvas/offscreen/text/2d.text.measure.lang.inherit.html b/tests/wpt/tests/html/canvas/offscreen/text/2d.text.measure.lang.inherit.html new file mode 100644 index 00000000000..8b630794e1d --- /dev/null +++ b/tests/wpt/tests/html/canvas/offscreen/text/2d.text.measure.lang.inherit.html @@ -0,0 +1,38 @@ + + + +OffscreenCanvas test: 2d.text.measure.lang.inherit + + + + +

      2d.text.measure.lang.inherit

      +

      Testing the lang attribute

      + + + diff --git a/tests/wpt/tests/html/canvas/offscreen/text/2d.text.measure.lang.worker.js b/tests/wpt/tests/html/canvas/offscreen/text/2d.text.measure.lang.worker.js new file mode 100644 index 00000000000..5bbb2317f24 --- /dev/null +++ b/tests/wpt/tests/html/canvas/offscreen/text/2d.text.measure.lang.worker.js @@ -0,0 +1,30 @@ +// DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. +// OffscreenCanvas test in a worker:2d.text.measure.lang +// Description:Testing the lang attribute +// Note: + +importScripts("/resources/testharness.js"); +importScripts("/html/canvas/resources/canvas-tests.js"); + +promise_test(async t => { + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); + + var f = new FontFace("Lato-Medium", "url('/fonts/Lato-Medium.ttf')"); + f.load(); + self.fonts.add(f); + await self.fonts.ready; + + ctx.font = '50px Lato-Medium'; + ctx.lang = 'tr'; + const text = 'fi'; + const tm_tr = ctx.measureText(text); + const tr_width = tm_tr.width; + + ctx.lang = 'en'; + const tm_en = ctx.measureText(text); + const en_width = tm_en.width; + + _assert(tr_width > en_width, "tr_width > en_width"); +}, "Testing the lang attribute"); +done(); diff --git a/tests/wpt/tests/html/canvas/resources/canvas-promise-test-worker.js b/tests/wpt/tests/html/canvas/resources/canvas-promise-test-worker.js index f5410efca5b..2cb50c322f7 100644 --- a/tests/wpt/tests/html/canvas/resources/canvas-promise-test-worker.js +++ b/tests/wpt/tests/html/canvas/resources/canvas-promise-test-worker.js @@ -9,7 +9,8 @@ function canvasPromiseTest( testBody, description, {testTypes = Object.values(CanvasTestType)} = {}) { if (testTypes.includes(CanvasTestType.WORKER)) { - promise_test(() => testBody(new OffscreenCanvas(300, 150)), + promise_test(() => testBody(new OffscreenCanvas(300, 150), + {canvasType: CanvasTestType.WORKER}), 'Worker: ' + description); } } diff --git a/tests/wpt/tests/html/canvas/resources/canvas-promise-test.js b/tests/wpt/tests/html/canvas/resources/canvas-promise-test.js index 1b2e2b3a584..09e01633ace 100644 --- a/tests/wpt/tests/html/canvas/resources/canvas-promise-test.js +++ b/tests/wpt/tests/html/canvas/resources/canvas-promise-test.js @@ -83,18 +83,20 @@ function canvasPromiseTest( } const canvas = document.createElement('canvas'); document.body.appendChild(canvas); - await testBody(canvas); + await testBody(canvas, {canvasType: CanvasTestType.HTML}); document.body.removeChild(canvas); }, 'HTMLCanvasElement: ' + description); } if (testTypes.includes(CanvasTestType.DETACHED_HTML)) { - promise_test(() => testBody(document.createElement('canvas')), + promise_test(() => testBody(document.createElement('canvas'), + {canvasType: CanvasTestType.DETACHED_HTML}), 'Detached HTMLCanvasElement: ' + description); } if (testTypes.includes(CanvasTestType.OFFSCREEN)) { - promise_test(() => testBody(new OffscreenCanvas(300, 150)), + promise_test(() => testBody(new OffscreenCanvas(300, 150), + {canvasType: CanvasTestType.OFFSCREEN}), 'OffscreenCanvas: ' + description); } } diff --git a/tests/wpt/tests/html/canvas/tools/yaml/text.yaml b/tests/wpt/tests/html/canvas/tools/yaml/text.yaml index 48a0429f267..900431860e2 100644 --- a/tests/wpt/tests/html/canvas/tools/yaml/text.yaml +++ b/tests/wpt/tests/html/canvas/tools/yaml/text.yaml @@ -2718,6 +2718,67 @@ @assert ctx.letterSpacing === '1px'; @assert ctx.wordSpacing === '10px'; +- name: 2d.text.measure.lang + desc: Testing the lang attribute + test_type: promise + fonts: + - Lato-Medium + code: | + {{ load_font }} + + ctx.font = '50px Lato-Medium'; + ctx.lang = 'tr'; + const text = 'fi'; + const tm_tr = ctx.measureText(text); + const tr_width = tm_tr.width; + + ctx.lang = 'en'; + const tm_en = ctx.measureText(text); + const en_width = tm_en.width; + + @assert tr_width > en_width; + variants: + - *load-font-variant-definition + +- name: 2d.text.measure.lang.inherit + desc: Testing the lang attribute + test_type: promise + canvas_types: ['HtmlCanvas', 'OffscreenCanvas'] + fonts: + - Lato-Medium + canvas: 'lang="tr"' + code: | + {{ load_font }} + + ctx.font = '50px Lato-Medium'; + ctx.lang = 'inherit'; + const text = 'fi'; + const tm_tr = ctx.measureText(text); + const tr_width = tm_tr.width; + + ctx.lang = 'en'; + const tm_en = ctx.measureText(text); + const en_width = tm_en.width; + + @assert tr_width > en_width; + variants: + - &load-font-variant-definitio-and-set-lang + HtmlCanvas: + append_variants_to_name: false + canvas_types: ['HtmlCanvas'] + load_font: |- + await document.fonts.ready; + OffscreenCanvas: + append_variants_to_name: false + canvas_types: ['OffscreenCanvas'] + load_font: |- + document.documentElement.setAttribute('lang','tr'); + var f = new FontFace("{{ fonts[0] }}", "url('/fonts/{{ fonts[0] }}.ttf')"); + f.load(); + {% set root = 'self' if canvas_type == 'Worker' else 'document' %} + {{ root }}.fonts.add(f); + await {{ root }}.fonts.ready; + - name: 2d.text.drawing.style.font-relative.spacing desc: Testing letter spacing and word spacing with font-relative length code: | diff --git a/tests/wpt/tests/html/dom/documents/dom-tree-accessors/nameditem-01.html b/tests/wpt/tests/html/dom/documents/dom-tree-accessors/nameditem-01.html index 2b428aa65bd..2caeed7dd00 100644 --- a/tests/wpt/tests/html/dom/documents/dom-tree-accessors/nameditem-01.html +++ b/tests/wpt/tests/html/dom/documents/dom-tree-accessors/nameditem-01.html @@ -8,12 +8,111 @@
      + + + + + +
      diff --git a/tests/wpt/tests/html/dom/documents/dom-tree-accessors/nameditem-02.html b/tests/wpt/tests/html/dom/documents/dom-tree-accessors/nameditem-02.html index 8c3155e7e4c..84cf64c1ffc 100644 --- a/tests/wpt/tests/html/dom/documents/dom-tree-accessors/nameditem-02.html +++ b/tests/wpt/tests/html/dom/documents/dom-tree-accessors/nameditem-02.html @@ -25,6 +25,14 @@ + + + + + + + +
      diff --git a/tests/wpt/tests/html/dom/documents/dom-tree-accessors/nameditem-04.html b/tests/wpt/tests/html/dom/documents/dom-tree-accessors/nameditem-04.html index b7c3ef8e9bb..2b4a3c55b71 100644 --- a/tests/wpt/tests/html/dom/documents/dom-tree-accessors/nameditem-04.html +++ b/tests/wpt/tests/html/dom/documents/dom-tree-accessors/nameditem-04.html @@ -26,6 +26,14 @@
      + +
      + +
      + +
      + +
      diff --git a/tests/wpt/tests/html/dom/documents/dom-tree-accessors/nameditem-05.html b/tests/wpt/tests/html/dom/documents/dom-tree-accessors/nameditem-05.html index 843ce357962..b38872498b6 100644 --- a/tests/wpt/tests/html/dom/documents/dom-tree-accessors/nameditem-05.html +++ b/tests/wpt/tests/html/dom/documents/dom-tree-accessors/nameditem-05.html @@ -26,6 +26,14 @@ + + + + + + + +
      diff --git a/tests/wpt/tests/html/dom/documents/dom-tree-accessors/nameditem-06.html b/tests/wpt/tests/html/dom/documents/dom-tree-accessors/nameditem-06.html index 15a72b5f6ba..592535f0d6a 100644 --- a/tests/wpt/tests/html/dom/documents/dom-tree-accessors/nameditem-06.html +++ b/tests/wpt/tests/html/dom/documents/dom-tree-accessors/nameditem-06.html @@ -23,9 +23,11 @@ - + - + + +
      diff --git a/tests/wpt/tests/html/dom/documents/dom-tree-accessors/nameditem-07.html b/tests/wpt/tests/html/dom/documents/dom-tree-accessors/nameditem-07.html index fc3f06c01b9..69a3bb0f09a 100644 --- a/tests/wpt/tests/html/dom/documents/dom-tree-accessors/nameditem-07.html +++ b/tests/wpt/tests/html/dom/documents/dom-tree-accessors/nameditem-07.html @@ -22,9 +22,15 @@ - + - + + + + + + +
      diff --git a/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-040.html b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-040.html new file mode 100644 index 00000000000..3ef1fefc4f8 --- /dev/null +++ b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-040.html @@ -0,0 +1,49 @@ + + + + + +`link rel=expect` is unblocked for dynamically inserted element + + + + + +
      + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
      + + + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. + + + +
      + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
      + diff --git a/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-041.html b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-041.html new file mode 100644 index 00000000000..c6d87710f7e --- /dev/null +++ b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-041.html @@ -0,0 +1,49 @@ + + + + + +`link rel=expect` is unblocked for dynamically inserted anchor with name + + + + + +
      + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
      + + + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. + + + +
      + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
      + diff --git a/tests/wpt/tests/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/fieldset-multicol-column-height.html b/tests/wpt/tests/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/fieldset-multicol-column-height.html new file mode 100644 index 00000000000..afd2425221f --- /dev/null +++ b/tests/wpt/tests/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/fieldset-multicol-column-height.html @@ -0,0 +1,32 @@ + +fieldset multicol with auto count, non-auto width + + + + + + +
      +

      1

      +

      2

      +

      3

      +

      4

      +

      5

      +
      +
      +

      1

      +

      2

      +

      3

      +

      4

      +

      5

      +
      + diff --git a/tests/wpt/tests/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/fieldset-multicol-only-column-count.html b/tests/wpt/tests/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/fieldset-multicol-only-column-count.html new file mode 100644 index 00000000000..9f794007a47 --- /dev/null +++ b/tests/wpt/tests/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/fieldset-multicol-only-column-count.html @@ -0,0 +1,30 @@ + +fieldset multicol with auto count, non-auto width + + + + +
      +

      1

      +

      2

      +

      3

      +

      4

      +

      5

      +
      +
      +

      1

      +

      2

      +

      3

      +

      4

      +

      5

      +
      + diff --git a/tests/wpt/tests/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/fieldset-multicol-only-column-width.html b/tests/wpt/tests/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/fieldset-multicol-only-column-width.html new file mode 100644 index 00000000000..e3fd552439a --- /dev/null +++ b/tests/wpt/tests/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/fieldset-multicol-only-column-width.html @@ -0,0 +1,30 @@ + +fieldset multicol with auto count, non-auto width + + + + +
      +

      1

      +

      2

      +

      3

      +

      4

      +

      5

      +
      +
      +

      1

      +

      2

      +

      3

      +

      4

      +

      5

      +
      + diff --git a/tests/wpt/tests/html/rendering/replaced-elements/the-option-element/option-label-whitespace-2-ref.html b/tests/wpt/tests/html/rendering/replaced-elements/the-option-element/option-label-whitespace-2-ref.html new file mode 100644 index 00000000000..b0567c2b4e3 --- /dev/null +++ b/tests/wpt/tests/html/rendering/replaced-elements/the-option-element/option-label-whitespace-2-ref.html @@ -0,0 +1,4 @@ + + diff --git a/tests/wpt/tests/html/rendering/replaced-elements/the-option-element/option-label-whitespace-2.html b/tests/wpt/tests/html/rendering/replaced-elements/the-option-element/option-label-whitespace-2.html new file mode 100644 index 00000000000..95b3a3c73db --- /dev/null +++ b/tests/wpt/tests/html/rendering/replaced-elements/the-option-element/option-label-whitespace-2.html @@ -0,0 +1,8 @@ + + + + + + diff --git a/tests/wpt/tests/html/rendering/widgets/field-sizing-textarea-relayout.html b/tests/wpt/tests/html/rendering/widgets/field-sizing-textarea-relayout.html index 1e18bd20703..579462ca2f5 100644 --- a/tests/wpt/tests/html/rendering/widgets/field-sizing-textarea-relayout.html +++ b/tests/wpt/tests/html/rendering/widgets/field-sizing-textarea-relayout.html @@ -2,7 +2,7 @@ - + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/option-color-inheritance.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/option-color-inheritance.html new file mode 100644 index 00000000000..d96124d008c --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/option-color-inheritance.html @@ -0,0 +1,21 @@ + + + + + + + + + + diff --git a/tests/wpt/tests/html/semantics/interactive-elements/the-dialog-element/focus-after-close.html b/tests/wpt/tests/html/semantics/interactive-elements/the-dialog-element/focus-after-close.html index 93baf65cf60..7137edcd1a1 100644 --- a/tests/wpt/tests/html/semantics/interactive-elements/the-dialog-element/focus-after-close.html +++ b/tests/wpt/tests/html/semantics/interactive-elements/the-dialog-element/focus-after-close.html @@ -167,7 +167,12 @@ async function test_move_focus_dont_scroll_viewport(showModal) { document.body.appendChild(outViewPortButton); await new Promise(resolve => { - document.addEventListener("scroll", resolve, { once: true }); + document.addEventListener("scroll", () => { + if (resolve && document.documentElement.scrollTop) { + resolve(); + resolve = null; + } + }); outViewPortButton.focus(); }); diff --git a/tests/wpt/tests/largest-contentful-paint/WEB_FEATURES.yml b/tests/wpt/tests/largest-contentful-paint/WEB_FEATURES.yml new file mode 100644 index 00000000000..fbd4cc58df9 --- /dev/null +++ b/tests/wpt/tests/largest-contentful-paint/WEB_FEATURES.yml @@ -0,0 +1,3 @@ +features: +- name: largest-contentful-paint + files: "**" diff --git a/tests/wpt/tests/lint.ignore b/tests/wpt/tests/lint.ignore index 65e22dccbc1..8df85b016fe 100644 --- a/tests/wpt/tests/lint.ignore +++ b/tests/wpt/tests/lint.ignore @@ -287,6 +287,8 @@ SET TIMEOUT: shadow-dom/scroll-to-the-fragment-in-shadow-tree.html SET TIMEOUT: shadow-dom/slotchange-event.html SET TIMEOUT: trusted-types/support/block-string-assignment-to-DOMWindowTimers-setTimeout-setInterval.js SET TIMEOUT: trusted-types/support/DOMWindowTimers-setTimeout-setInterval.js +SET TIMEOUT: trusted-types/support/should-sink-type-mismatch-violation-be-blocked-by-csp-002-worker.js +SET TIMEOUT: trusted-types/support/trusted-types-reporting-check-report-sink-mismatch.js SET TIMEOUT: trusted-types/support/trusted-types-reporting-for-DOMWindowTimers-setTimeout-setInterval.js SET TIMEOUT: user-timing/* SET TIMEOUT: web-animations/crashtests/reparent-animating-element-002.html diff --git a/tests/wpt/tests/media-capabilities/decodingInfo.any.js b/tests/wpt/tests/media-capabilities/decodingInfo.any.js index 2fd3743b442..e7a0e6ae430 100644 --- a/tests/wpt/tests/media-capabilities/decodingInfo.any.js +++ b/tests/wpt/tests/media-capabilities/decodingInfo.any.js @@ -225,97 +225,6 @@ promise_test(t => { })); }, "Test that decodingInfo rejects if the video configuration contentType has a codecs parameter that indicates both an audio and a video codec"); -promise_test(t => { - return promise_rejects_js(t, TypeError, navigator.mediaCapabilities.decodingInfo({ - type: 'file', - video: { - contentType: 'video/webm; codecs="vp09.00.10.08"', - width: 800, - height: 600, - bitrate: 3000, - framerate: '24000/1001', - } - })); -}, "Test that decodingInfo rejects framerate in the form of x/y"); - -promise_test(t => { - return promise_rejects_js(t, TypeError, navigator.mediaCapabilities.decodingInfo({ - type: 'file', - video: { - contentType: 'video/webm; codecs="vp09.00.10.08"', - width: 800, - height: 600, - bitrate: 3000, - framerate: '24000/0', - } - })); -}, "Test that decodingInfo rejects framerate in the form of x/0"); - -promise_test(t => { - return promise_rejects_js(t, TypeError, navigator.mediaCapabilities.decodingInfo({ - type: 'file', - video: { - contentType: 'video/webm; codecs="vp09.00.10.08"', - width: 800, - height: 600, - bitrate: 3000, - framerate: '0/10001', - } - })); -}, "Test that decodingInfo rejects framerate in the form of 0/y"); - -promise_test(t => { - return promise_rejects_js(t, TypeError, navigator.mediaCapabilities.decodingInfo({ - type: 'file', - video: { - contentType: 'video/webm; codecs="vp09.00.10.08"', - width: 800, - height: 600, - bitrate: 3000, - framerate: '-24000/10001', - } - })); -}, "Test that decodingInfo rejects framerate in the form of -x/y"); - -promise_test(t => { - return promise_rejects_js(t, TypeError, navigator.mediaCapabilities.decodingInfo({ - type: 'file', - video: { - contentType: 'video/webm; codecs="vp09.00.10.08"', - width: 800, - height: 600, - bitrate: 3000, - framerate: '24000/-10001', - } - })); -}, "Test that decodingInfo rejects framerate in the form of x/-y"); - -promise_test(t => { - return promise_rejects_js(t, TypeError, navigator.mediaCapabilities.decodingInfo({ - type: 'file', - video: { - contentType: 'video/webm; codecs="vp09.00.10.08"', - width: 800, - height: 600, - bitrate: 3000, - framerate: '24000/', - } - })); -}, "Test that decodingInfo rejects framerate in the form of x/"); - -promise_test(t => { - return promise_rejects_js(t, TypeError, navigator.mediaCapabilities.decodingInfo({ - type: 'file', - video: { - contentType: 'video/webm; codecs="vp09.00.10.08"', - width: 800, - height: 600, - bitrate: 3000, - framerate: '1/3x', - } - })); -}, "Test that decodingInfo rejects framerate with trailing unallowed characters"); - promise_test(t => { return promise_rejects_js(t, TypeError, navigator.mediaCapabilities.decodingInfo({ type: 'file', diff --git a/tests/wpt/tests/media-capabilities/encodingInfo.any.js b/tests/wpt/tests/media-capabilities/encodingInfo.any.js index 14612238e60..97b6c196f09 100644 --- a/tests/wpt/tests/media-capabilities/encodingInfo.any.js +++ b/tests/wpt/tests/media-capabilities/encodingInfo.any.js @@ -195,97 +195,6 @@ promise_test(t => { })); }, "Test that encodingInfo rejects if the video configuration contentType has a codecs parameter that indicates both an audio and a video codec"); -promise_test(t => { - return promise_rejects_js(t, TypeError, navigator.mediaCapabilities.encodingInfo({ - type: 'record', - video: { - contentType: 'video/webm; codecs="vp09.00.10.08"', - width: 800, - height: 600, - bitrate: 3000, - framerate: '24000/1001', - } - })); -}, "Test that encodingInfo rejects framerate in the form of x/y"); - -promise_test(t => { - return promise_rejects_js(t, TypeError, navigator.mediaCapabilities.encodingInfo({ - type: 'record', - video: { - contentType: 'video/webm; codecs="vp09.00.10.08"', - width: 800, - height: 600, - bitrate: 3000, - framerate: '24000/0', - } - })); -}, "Test that encodingInfo rejects framerate in the form of x/0"); - -promise_test(t => { - return promise_rejects_js(t, TypeError, navigator.mediaCapabilities.encodingInfo({ - type: 'record', - video: { - contentType: 'video/webm; codecs="vp09.00.10.08"', - width: 800, - height: 600, - bitrate: 3000, - framerate: '0/10001', - } - })); -}, "Test that encodingInfo rejects framerate in the form of 0/y"); - -promise_test(t => { - return promise_rejects_js(t, TypeError, navigator.mediaCapabilities.encodingInfo({ - type: 'record', - video: { - contentType: 'video/webm; codecs="vp09.00.10.08"', - width: 800, - height: 600, - bitrate: 3000, - framerate: '-24000/10001', - } - })); -}, "Test that encodingInfo rejects framerate in the form of -x/y"); - -promise_test(t => { - return promise_rejects_js(t, TypeError, navigator.mediaCapabilities.encodingInfo({ - type: 'record', - video: { - contentType: 'video/webm; codecs="vp09.00.10.08"', - width: 800, - height: 600, - bitrate: 3000, - framerate: '24000/-10001', - } - })); -}, "Test that encodingInfo rejects framerate in the form of x/-y"); - -promise_test(t => { - return promise_rejects_js(t, TypeError, navigator.mediaCapabilities.encodingInfo({ - type: 'record', - video: { - contentType: 'video/webm; codecs="vp09.00.10.08"', - width: 800, - height: 600, - bitrate: 3000, - framerate: '24000/', - } - })); -}, "Test that encodingInfo rejects framerate in the form of x/"); - -promise_test(t => { - return promise_rejects_js(t, TypeError, navigator.mediaCapabilities.encodingInfo({ - type: 'record', - video: { - contentType: 'video/webm; codecs="vp09.00.10.08"', - width: 800, - height: 600, - bitrate: 3000, - framerate: '1/3x', - } - })); -}, "Test that encodingInfo rejects framerate with trailing unallowed characters"); - promise_test(t => { return promise_rejects_js(t, TypeError, navigator.mediaCapabilities.encodingInfo({ type: 'record', diff --git a/tests/wpt/tests/mediacapture-record/MediaRecorder-canvas-media-source.https.html b/tests/wpt/tests/mediacapture-record/MediaRecorder-canvas-media-source.https.html index 0c5f47f0ef8..847e6618b3b 100644 --- a/tests/wpt/tests/mediacapture-record/MediaRecorder-canvas-media-source.https.html +++ b/tests/wpt/tests/mediacapture-record/MediaRecorder-canvas-media-source.https.html @@ -30,8 +30,14 @@ - diff --git a/tests/wpt/tests/mediacapture-record/legacy/MediaRecorder-canvas-media-source-legacy.https.html b/tests/wpt/tests/mediacapture-record/legacy/MediaRecorder-canvas-media-source-legacy.https.html new file mode 100644 index 00000000000..bcfc2af2737 --- /dev/null +++ b/tests/wpt/tests/mediacapture-record/legacy/MediaRecorder-canvas-media-source-legacy.https.html @@ -0,0 +1,165 @@ + + + + + + MediaRecorder canvas media source + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/wpt/tests/resources/testdriver.js b/tests/wpt/tests/resources/testdriver.js index 05301bf5589..b63d5b17663 100644 --- a/tests/wpt/tests/resources/testdriver.js +++ b/tests/wpt/tests/resources/testdriver.js @@ -1428,7 +1428,7 @@ * Causes a virtual pressure source to report a new reading. * * Matches the `Update virtual pressure source - * `_ + * `_ * WebDriver command. * * @param {String} source_type - A `virtual pressure source type @@ -1437,6 +1437,9 @@ * @param {String} sample - A `virtual pressure state * `_ * such as "critical". + * @param {number} estimate - Optional, A `virtual own contribution estimate` + * `_ + * @param {WindowProxy} [context=null] - Browsing context in which to * run the call, or null for the * current browsing context. @@ -1447,8 +1450,8 @@ * virtual pressure source of the given type does not * exist). */ - update_virtual_pressure_source: function(source_type, sample, context=null) { - return window.test_driver_internal.update_virtual_pressure_source(source_type, sample, context); + update_virtual_pressure_source: function(source_type, sample, estimate, context=null) { + return window.test_driver_internal.update_virtual_pressure_source(source_type, sample, estimate, context); }, /** @@ -1472,6 +1475,29 @@ */ remove_virtual_pressure_source: function(source_type, context=null) { return window.test_driver_internal.remove_virtual_pressure_source(source_type, context); + }, + + /** + * Sets which hashes are considered k-anonymous for the Protected + * Audience interest group with specified `owner` and `name`. + * + * Matches the `Set Protected Audience K-Anonymity + * + * WebDriver command. + * + * @param {String} owner - Origin of the owner of the interest group + * to modify + * @param {String} name - Name of the interest group to modify + * @param {Array} hashes - An array of strings, each of which is a + * base64 ecoded hash to consider k-anonymous. + * + * @returns {Promise} Fulfilled after the k-anonymity status for the + * specified Protected Audience interest group has + * been updated. + * + */ + set_protected_audience_k_anonymity: function(owner, name, hashes, context = null) { + return window.test_driver_internal.set_protected_audience_k_anonymity(owner, name, hashes, context); } }; @@ -1723,12 +1749,16 @@ throw new Error("create_virtual_pressure_source() is not implemented by testdriver-vendor.js"); }, - async update_virtual_pressure_source(source_type, sample, context=null) { + async update_virtual_pressure_source(source_type, sample, estimate, context=null) { throw new Error("update_virtual_pressure_source() is not implemented by testdriver-vendor.js"); }, async remove_virtual_pressure_source(source_type, context=null) { throw new Error("remove_virtual_pressure_source() is not implemented by testdriver-vendor.js"); + }, + + async set_protected_audience_k_anonymity(owner, name, hashes, context=null) { + throw new Error("set_protected_audience_k_anonymity() is not implemented by testdriver-vendor.js"); } }; })(); diff --git a/tests/wpt/tests/sanitizer-api/sanitizer-config.tentative.html b/tests/wpt/tests/sanitizer-api/sanitizer-config.tentative.html index 438e1db7ead..4a7b7ecc517 100644 --- a/tests/wpt/tests/sanitizer-api/sanitizer-config.tentative.html +++ b/tests/wpt/tests/sanitizer-api/sanitizer-config.tentative.html @@ -95,9 +95,10 @@ for (key of ["attributes", "removeAttributes"]) { test_normalization(key, {name: "href", namespace: null}, {name: "href", namespace: null}); + // https://wicg.github.io/sanitizer-api/#canonicalize-a-sanitizer-name, step 5 test_normalization(key, {name: "href", namespace: ""}, - {name: "href", namespace: null}); // ??? Is this correct? + {name: "href", namespace: null}); test_normalization(key, {name: "href", namespace: "https://www.w3.org/1999/xlink"}, {name: "href", namespace: "https://www.w3.org/1999/xlink"}); diff --git a/tests/wpt/tests/screen-orientation/lock-sandboxed-iframe.html b/tests/wpt/tests/screen-orientation/lock-sandboxed-iframe.html index ab954f04b4c..f78d7d72d53 100644 --- a/tests/wpt/tests/screen-orientation/lock-sandboxed-iframe.html +++ b/tests/wpt/tests/screen-orientation/lock-sandboxed-iframe.html @@ -18,14 +18,13 @@ resolve(evt.data.orientation); break; case "errored": - resolve(evt.data.name); + resolve(evt.data); break; default: assert_unreached(`Unexpected message: ${evt.data.result}`); return; } window.removeEventListener("message", callback); - resolve(evt.data.msg); } window.addEventListener("message", callback); }); @@ -38,10 +37,15 @@ }); const message = await wait_result(); assert_equals( - message, + message.lock_name, "SecurityError", "screen.lockOrientation() throws a SecurityError" ); + assert_equals( + message.unlock_name, + "SecurityError", + "screen.orientation.unlock() throws a SecurityError" + ); }, "Test without 'allow-orientation-lock' sandboxing directive"); promise_test(async (t) => { diff --git a/tests/wpt/tests/screen-orientation/resources/sandboxed-iframe-locking.html b/tests/wpt/tests/screen-orientation/resources/sandboxed-iframe-locking.html index 436c67f5b53..f4773535dbc 100644 --- a/tests/wpt/tests/screen-orientation/resources/sandboxed-iframe-locking.html +++ b/tests/wpt/tests/screen-orientation/resources/sandboxed-iframe-locking.html @@ -4,9 +4,6 @@ + + + + + + + +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      + + + diff --git a/tests/wpt/tests/scroll-animations/animation-trigger/animation-trigger-once-play-state.tentative.html b/tests/wpt/tests/scroll-animations/animation-trigger/animation-trigger-once-play-state.tentative.html new file mode 100644 index 00000000000..23c6aa8ce9f --- /dev/null +++ b/tests/wpt/tests/scroll-animations/animation-trigger/animation-trigger-once-play-state.tentative.html @@ -0,0 +1,114 @@ + + + + + + + + + + + + +
      +
      +
      +
      +
      +
      +
      +
      + + + diff --git a/tests/wpt/tests/scroll-animations/animation-trigger/animation-trigger-once.tentative.html b/tests/wpt/tests/scroll-animations/animation-trigger/animation-trigger-once.tentative.html new file mode 100644 index 00000000000..e7603b458bc --- /dev/null +++ b/tests/wpt/tests/scroll-animations/animation-trigger/animation-trigger-once.tentative.html @@ -0,0 +1,148 @@ + + + + + + + + + + + + +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      + + + diff --git a/tests/wpt/tests/scroll-animations/animation-trigger/animation-trigger-repeat.tentative.html b/tests/wpt/tests/scroll-animations/animation-trigger/animation-trigger-repeat.tentative.html new file mode 100644 index 00000000000..cfbe9d3c933 --- /dev/null +++ b/tests/wpt/tests/scroll-animations/animation-trigger/animation-trigger-repeat.tentative.html @@ -0,0 +1,163 @@ + + + + + + + + + + + + +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      + + + diff --git a/tests/wpt/tests/scroll-animations/animation-trigger/animation-trigger-state.tentative.html b/tests/wpt/tests/scroll-animations/animation-trigger/animation-trigger-state.tentative.html new file mode 100644 index 00000000000..a9d58ae4c32 --- /dev/null +++ b/tests/wpt/tests/scroll-animations/animation-trigger/animation-trigger-state.tentative.html @@ -0,0 +1,182 @@ + + + + + + + + + + + + +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      + + + diff --git a/tests/wpt/tests/scroll-animations/animation-trigger/animation-trigger.html b/tests/wpt/tests/scroll-animations/animation-trigger/animation-trigger.html new file mode 100644 index 00000000000..dd4820dfe5f --- /dev/null +++ b/tests/wpt/tests/scroll-animations/animation-trigger/animation-trigger.html @@ -0,0 +1,179 @@ + + + + + + + + + + + +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      + + + \ No newline at end of file diff --git a/tests/wpt/tests/scroll-animations/animation-trigger/support/support.js b/tests/wpt/tests/scroll-animations/animation-trigger/support/support.js new file mode 100644 index 00000000000..f5aa18e82f1 --- /dev/null +++ b/tests/wpt/tests/scroll-animations/animation-trigger/support/support.js @@ -0,0 +1,86 @@ + +// Assert that the user agent under test supports AnimationTrigger. +// AnimationTrigger tests should do this sanity check before proceeding. +function assertAnimationTriggerSupport() { + assert_true(document.documentElement.style.animationTrigger !== undefined); +} + +const setScrollTop = (scroller, y) => { + const scrollend_promise = + waitForScrollEndFallbackToDelayWithoutScrollEvent(scroller); + scroller.scrollTop = y; + return scrollend_promise; +} + +function getRangeBoundariesForTest(trigger_start, trigger_end, + exit_start, exit_end, scroller) { + let rangeBoundaries = { + scroller: scroller, + offsetWithinTriggerRange: (trigger_start + trigger_end) / 2, + offsetAboveTriggerRange: trigger_start - 10, + offsetBelowTriggerRange: trigger_end + 10, + offsetAboveExitRange: exit_start - 10, + offsetBelowExitRange: exit_end + 10, + }; + + rangeBoundaries.enterTriggerRange = async () => { + return setScrollTop(rangeBoundaries.scroller, + rangeBoundaries.offsetWithinTriggerRange); + }; + rangeBoundaries.exitTriggerRangeAbove = async () => { + return setScrollTop(rangeBoundaries.scroller, + rangeBoundaries.offsetAboveTriggerRange); + }; + rangeBoundaries.exitTriggerRangeBelow = async () => { + return setScrollTop(rangeBoundaries.scroller, + rangeBoundaries.offsetBelowTriggerRange); + }; + rangeBoundaries.exitExitRangeAbove = async () => { + return setScrollTop(rangeBoundaries.scroller, + rangeBoundaries.offsetAboveExitRange); + }; + rangeBoundaries.exitExitRangeBelow = async () => { + return setScrollTop(rangeBoundaries.scroller, + rangeBoundaries.offsetBelowExitRange); + }; + + return rangeBoundaries; +} + +// Helper function for animation-trigger tests. Aims to perform a scroll and +// observe the animation events indicated by |events_of_interest| and +// |events_should_fire| +async function testAnimationTrigger(test, scroll_fn, target, + events_of_interest, events_should_fire) { + assertAnimationTriggerSupport(); + + let evt_promises = []; + for (let idx = 0; idx < events_of_interest.length; idx++) { + const evt = events_of_interest[idx]; + const animationevent_promise = new Promise((resolve) => { + const watcher_func = () => { + if (!events_should_fire[idx]) { + test.unreached_func(`received unexpected event: ${evt}.`)(); + } + resolve(); + } + + target.addEventListener(evt, watcher_func, + { once: true }); + + // If we are not expecting the event, just wait for 3 frames before + // continuing the test. + if (!events_should_fire[idx]) { + waitForAnimationFrames(3).then(() => { + target.removeEventListener(evt, watcher_func); + resolve(); + }); + } + }); + + evt_promises.push(animationevent_promise); + } + + await scroll_fn(); + await Promise.all(evt_promises); +} diff --git a/tests/wpt/tests/shadow-dom/focus/text-selection-with-delegatesFocus-text-control.html b/tests/wpt/tests/shadow-dom/focus/text-selection-with-delegatesFocus-text-control.html new file mode 100644 index 00000000000..6474729b8b4 --- /dev/null +++ b/tests/wpt/tests/shadow-dom/focus/text-selection-with-delegatesFocus-text-control.html @@ -0,0 +1,63 @@ + + + + + + + + + + + + diff --git a/tests/wpt/tests/speculation-rules/prerender/protocol-handler-register.https.html b/tests/wpt/tests/speculation-rules/prerender/protocol-handler-register.https.html new file mode 100644 index 00000000000..af2df0f12ab --- /dev/null +++ b/tests/wpt/tests/speculation-rules/prerender/protocol-handler-register.https.html @@ -0,0 +1,107 @@ + + + + + + + + + + + + + diff --git a/tests/wpt/tests/speculation-rules/prerender/protocol-handler-unregister.https.html b/tests/wpt/tests/speculation-rules/prerender/protocol-handler-unregister.https.html new file mode 100644 index 00000000000..586ce433854 --- /dev/null +++ b/tests/wpt/tests/speculation-rules/prerender/protocol-handler-unregister.https.html @@ -0,0 +1,140 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/wpt/tests/speculation-rules/prerender/protocol-handler-validation.https.html b/tests/wpt/tests/speculation-rules/prerender/protocol-handler-validation.https.html new file mode 100644 index 00000000000..613b9bfad08 --- /dev/null +++ b/tests/wpt/tests/speculation-rules/prerender/protocol-handler-validation.https.html @@ -0,0 +1,57 @@ + +prerendered page calls to registerProtocolHandler should validate input synchronously + + + + + + + + + diff --git a/tests/wpt/tests/speculation-rules/prerender/resources/protocol-handler-service-worker.js b/tests/wpt/tests/speculation-rules/prerender/resources/protocol-handler-service-worker.js new file mode 100644 index 00000000000..cb6142db0e3 --- /dev/null +++ b/tests/wpt/tests/speculation-rules/prerender/resources/protocol-handler-service-worker.js @@ -0,0 +1,28 @@ +// This service worker script should be used by the +// protocol-handler-unregister.https.html test to detect unregistered URL +// schemes. +self.addEventListener('message', async eventInfo => { + let success = false; + let message = null; + + try { + const {clientUrlMatch, navigationUrl} = eventInfo.data; + const client = (await clients.matchAll()).find( + client => client.url === clientUrlMatch); + + if (client) { + try { + await client.navigate(navigationUrl); + success = true; + } catch (navigateException) { + message = `navigate failure: ${navigateException.name}`; + } + } else { + message = `no client found matching ${clientUrlMatch}`; + } + } catch (otherException) { + message = `other failure: ${otherException.name}`; + } + + eventInfo.source.postMessage({success, message}); +}); \ No newline at end of file diff --git a/tests/wpt/tests/speculation-rules/prerender/resources/protocol-handler.html b/tests/wpt/tests/speculation-rules/prerender/resources/protocol-handler.html new file mode 100644 index 00000000000..210b23aae21 --- /dev/null +++ b/tests/wpt/tests/speculation-rules/prerender/resources/protocol-handler.html @@ -0,0 +1,13 @@ + +Prerendering custom protocol handler + diff --git a/tests/wpt/tests/speculation-rules/prerender/resources/shared-storage-worklet.js b/tests/wpt/tests/speculation-rules/prerender/resources/shared-storage-worklet.js new file mode 100644 index 00000000000..92a1a7325bb --- /dev/null +++ b/tests/wpt/tests/speculation-rules/prerender/resources/shared-storage-worklet.js @@ -0,0 +1,5 @@ +class ReadOperation { + async run() { + return await this.sharedStorage.get("prerender"); + } +} diff --git a/tests/wpt/tests/speculation-rules/prerender/resources/shared-storage.https.html b/tests/wpt/tests/speculation-rules/prerender/resources/shared-storage.https.html index 53edf109698..408168e4c4c 100644 --- a/tests/wpt/tests/speculation-rules/prerender/resources/shared-storage.https.html +++ b/tests/wpt/tests/speculation-rules/prerender/resources/shared-storage.https.html @@ -19,9 +19,20 @@ if (!isPrerendering) { loadInitiatorPage(); } else { const prerenderEventCollector = new PrerenderEventCollector(); - prerenderEventCollector.start( - window.sharedStorage.set('prerender', 'yes'), 'window.sharedStorage.set'); + + if (params.get('type') === 'worklet') { + async function register() { + return window.sharedStorage.worklet.addModule( + "shared-storage-worklet.js"); + } + prerenderEventCollector.start( + register(), 'window.sharedStorage.worklet.addModule'); + } else { + prerenderEventCollector.start( + window.sharedStorage.set('prerender', 'yes'), + 'window.sharedStorage.set'); } +} diff --git a/tests/wpt/tests/speculation-rules/prerender/restrictions_shared_storage_worklet.https.html b/tests/wpt/tests/speculation-rules/prerender/restrictions_shared_storage_worklet.https.html new file mode 100644 index 00000000000..72a46c3137f --- /dev/null +++ b/tests/wpt/tests/speculation-rules/prerender/restrictions_shared_storage_worklet.https.html @@ -0,0 +1,58 @@ + +Worklet operations to Shared Storage API is deferred + + + + + + + + + diff --git a/tests/wpt/tests/subresource-integrity/signatures/tentative/accept-signature.window.js b/tests/wpt/tests/subresource-integrity/signatures/tentative/accept-signature.window.js index efcbf0cdad6..97e817e328c 100644 --- a/tests/wpt/tests/subresource-integrity/signatures/tentative/accept-signature.window.js +++ b/tests/wpt/tests/subresource-integrity/signatures/tentative/accept-signature.window.js @@ -12,16 +12,30 @@ let test_cases = [ integrity: `ed25519-${kValidKeys['rfc']} malformed-thing`, header: `sig0=("unencoded-digest";sf);keyid="${kValidKeys['rfc']}";tag="sri"`, }, + { + integrity: `ed25519-${kValidKeys['rfc']} ed25519-${kValidKeys['rfc']}`, + header: `sig0=("unencoded-digest";sf);keyid="${kValidKeys['rfc']}";tag="sri"`, + }, { integrity: `ed25519-${kValidKeys['arbitrary']} ed25519-${kValidKeys['rfc']}`, header: `sig0=("unencoded-digest";sf);keyid="${kValidKeys['arbitrary']}";tag="sri", ` + `sig1=("unencoded-digest";sf);keyid="${kValidKeys['rfc']}";tag="sri"`, }, + { + integrity: `ed25519-${kValidKeys['rfc']} ed25519-${kValidKeys['arbitrary']}`, + header: `sig0=("unencoded-digest";sf);keyid="${kValidKeys['rfc']}";tag="sri", ` + + `sig1=("unencoded-digest";sf);keyid="${kValidKeys['arbitrary']}";tag="sri"`, + }, { integrity: `ed25519-${kValidKeys['arbitrary']} malformed-thing ed25519-${kValidKeys['rfc']}`, header: `sig0=("unencoded-digest";sf);keyid="${kValidKeys['arbitrary']}";tag="sri", ` + `sig1=("unencoded-digest";sf);keyid="${kValidKeys['rfc']}";tag="sri"`, }, + { + integrity: `ed25519-${kValidKeys['rfc']} malformed-thing ed25519-${kValidKeys['arbitrary']}`, + header: `sig0=("unencoded-digest";sf);keyid="${kValidKeys['rfc']}";tag="sri", ` + + `sig1=("unencoded-digest";sf);keyid="${kValidKeys['arbitrary']}";tag="sri"`, + }, ]; let test_counter = 0; diff --git a/tests/wpt/tests/subresource-integrity/signatures/tentative/helper.js b/tests/wpt/tests/subresource-integrity/signatures/tentative/helper.js index e5e00ec7b53..458da38213a 100644 --- a/tests/wpt/tests/subresource-integrity/signatures/tentative/helper.js +++ b/tests/wpt/tests/subresource-integrity/signatures/tentative/helper.js @@ -112,7 +112,7 @@ function generate_fetch_test(request_data, options, expectation, description) { // in the header. if (options.integrity?.includes(`ed25519-${kInvalidKey}`)) { assert_equals(r.headers.get(kAcceptSignature), - `sig0=("unencoded-digest";sf);keyid="${kInvalidKey}";tag="sri", sig1=("unencoded-digest";sf);keyid="${kValidKeys['rfc']}";tag="sri"`, + `sig0=("unencoded-digest";sf);keyid="${kValidKeys['rfc']}";tag="sri", sig1=("unencoded-digest";sf);keyid="${kInvalidKey}";tag="sri"`, "`accept-signature` was set."); } else if (options.integrity?.includes(`ed25519-${kValidKeys['rfc']}`)) { assert_equals(r.headers.get(kAcceptSignature), diff --git a/tests/wpt/tests/svg/types/scripted/SVGGraphicsElement-padding.svg b/tests/wpt/tests/svg/types/scripted/SVGGraphicsElement-padding.svg new file mode 100644 index 00000000000..7bf47767a52 --- /dev/null +++ b/tests/wpt/tests/svg/types/scripted/SVGGraphicsElement-padding.svg @@ -0,0 +1,64 @@ + + + SVGGraphicsElement with padding + + + + + + + + + + + + + + diff --git a/tests/wpt/tests/tools/ci/requirements_build.txt b/tests/wpt/tests/tools/ci/requirements_build.txt index e74e4e5302d..60c09170a98 100644 --- a/tests/wpt/tests/tools/ci/requirements_build.txt +++ b/tests/wpt/tests/tools/ci/requirements_build.txt @@ -1,5 +1,5 @@ cairocffi==1.7.0 fonttools==4.51.0 genshi==0.7.7 -jinja2==3.1.4 +jinja2==3.1.6 pyyaml==6.0.1 diff --git a/tests/wpt/tests/tools/wptrunner/wptrunner/browsers/chrome.py b/tests/wpt/tests/tools/wptrunner/wptrunner/browsers/chrome.py index 76bc652075e..e3ef73de6a0 100644 --- a/tests/wpt/tests/tools/wptrunner/wptrunner/browsers/chrome.py +++ b/tests/wpt/tests/tools/wptrunner/wptrunner/browsers/chrome.py @@ -158,6 +158,9 @@ def executor_kwargs(logger, test_type, test_environment, run_info_data, subsuite chrome_options["args"].append( "--ip-address-space-overrides=" + address_space_overrides_arg) + # Disable overlay scrollbar animations to prevent flaky wpt screenshots based on timing. + chrome_options["args"].append("--disable-features=ScrollbarAnimations") + # Always disable antialiasing on the Ahem font. blink_features = ['DisableAhemAntialias'] diff --git a/tests/wpt/tests/tools/wptrunner/wptrunner/executors/actions.py b/tests/wpt/tests/tools/wptrunner/wptrunner/executors/actions.py index 859ce8f4fa6..06d58e7e87b 100644 --- a/tests/wpt/tests/tools/wptrunner/wptrunner/executors/actions.py +++ b/tests/wpt/tests/tools/wptrunner/wptrunner/executors/actions.py @@ -498,7 +498,8 @@ class UpdateVirtualPressureSourceAction: def __call__(self, payload): source_type = payload["source_type"] sample = payload["sample"] - return self.protocol.pressure.update_virtual_pressure_source(source_type, sample) + estimate = payload["estimate"] + return self.protocol.pressure.update_virtual_pressure_source(source_type, sample, estimate) class RemoveVirtualPressureSourceAction: name = "remove_virtual_pressure_source" @@ -511,6 +512,17 @@ class RemoveVirtualPressureSourceAction: source_type = payload["source_type"] return self.protocol.pressure.remove_virtual_pressure_source(source_type) +class SetProtectedAudienceKAnonymityAction: + name = "set_protected_audience_k_anonymity" + + def __init__(self, logger, protocol): + self.logger = logger + self.protocol = protocol + + def __call__(self, payload): + owner, name, hashes = payload["owner"], payload["name"], payload["hashes"] + return self.protocol.protected_audience.set_k_anonymity(owner, name, hashes) + actions = [ClickAction, DeleteAllCookiesAction, GetAllCookiesAction, @@ -550,4 +562,5 @@ actions = [ClickAction, RunBounceTrackingMitigationsAction, CreateVirtualPressureSourceAction, UpdateVirtualPressureSourceAction, - RemoveVirtualPressureSourceAction] + RemoveVirtualPressureSourceAction, + SetProtectedAudienceKAnonymityAction] diff --git a/tests/wpt/tests/tools/wptrunner/wptrunner/executors/executormarionette.py b/tests/wpt/tests/tools/wptrunner/wptrunner/executors/executormarionette.py index ebc4a4a5656..b4b5b2a3ea6 100644 --- a/tests/wpt/tests/tools/wptrunner/wptrunner/executors/executormarionette.py +++ b/tests/wpt/tests/tools/wptrunner/wptrunner/executors/executormarionette.py @@ -721,7 +721,7 @@ class MarionetteVirtualPressureSourceProtocolPart(VirtualPressureSourceProtocolP def create_virtual_pressure_source(self, source_type, metadata): raise NotImplementedError("create_virtual_pressure_source not yet implemented") - def update_virtual_pressure_source(self, source_type, sample): + def update_virtual_pressure_source(self, source_type, sample, estimate): raise NotImplementedError("update_virtual_pressure_source not yet implemented") def remove_virtual_pressure_source(self, source_type): diff --git a/tests/wpt/tests/tools/wptrunner/wptrunner/executors/executorwebdriver.py b/tests/wpt/tests/tools/wptrunner/wptrunner/executors/executorwebdriver.py index 95667480afe..bea6ab57ba8 100644 --- a/tests/wpt/tests/tools/wptrunner/wptrunner/executors/executorwebdriver.py +++ b/tests/wpt/tests/tools/wptrunner/wptrunner/executors/executorwebdriver.py @@ -45,6 +45,7 @@ from .protocol import (BaseProtocolPart, DevicePostureProtocolPart, StorageProtocolPart, VirtualPressureSourceProtocolPart, + ProtectedAudienceProtocolPart, merge_dicts) from typing import Any, List, Optional, Tuple @@ -684,13 +685,20 @@ class WebDriverVirtualPressureSourceProtocolPart(VirtualPressureSourceProtocolPa body.update(metadata) return self.webdriver.send_session_command("POST", "pressuresource", body) - def update_virtual_pressure_source(self, source_type, sample): - body = {"sample": sample} + def update_virtual_pressure_source(self, source_type, sample, estimate): + body = {"sample": sample, "estimate": estimate} return self.webdriver.send_session_command("POST", "pressuresource/%s" % source_type, body) def remove_virtual_pressure_source(self, source_type): return self.webdriver.send_session_command("DELETE", "pressuresource/%s" % source_type) +class WebDriverProtectedAudienceProtocolPart(ProtectedAudienceProtocolPart): + def setup(self): + self.webdriver = self.parent.webdriver + + def set_k_anonymity(self, owner, name, hashes): + body = {"owner": owner, "name": name, "hashes": hashes} + return self.webdriver.send_session_command("POST", "protected_audience/set_k_anonymity", body) class WebDriverProtocol(Protocol): enable_bidi = False @@ -715,7 +723,8 @@ class WebDriverProtocol(Protocol): WebDriverVirtualSensorPart, WebDriverDevicePostureProtocolPart, WebDriverStorageProtocolPart, - WebDriverVirtualPressureSourceProtocolPart] + WebDriverVirtualPressureSourceProtocolPart, + WebDriverProtectedAudienceProtocolPart] def __init__(self, executor, browser, capabilities, **kwargs): super().__init__(executor, browser) diff --git a/tests/wpt/tests/tools/wptrunner/wptrunner/executors/protocol.py b/tests/wpt/tests/tools/wptrunner/wptrunner/executors/protocol.py index 0940e87cdbd..53a7b437848 100644 --- a/tests/wpt/tests/tools/wptrunner/wptrunner/executors/protocol.py +++ b/tests/wpt/tests/tools/wptrunner/wptrunner/executors/protocol.py @@ -1009,9 +1009,19 @@ class VirtualPressureSourceProtocolPart(ProtocolPart): pass @abstractmethod - def update_virtual_pressure_source(self, source_type, sample): + def update_virtual_pressure_source(self, source_type, sample, estimate): pass @abstractmethod def remove_virtual_pressure_source(self, source_type): pass + +class ProtectedAudienceProtocolPart(ProtocolPart): + """Protocol part for Protected Audience""" + __metaclass__ = ABCMeta + + name = "protected_audience" + + @abstractmethod + def set_k_anonymity(self, owner, name, hashes): + pass diff --git a/tests/wpt/tests/tools/wptrunner/wptrunner/testdriver-extra.js b/tests/wpt/tests/tools/wptrunner/wptrunner/testdriver-extra.js index 9ddbe2e8df5..71c1be2732f 100644 --- a/tests/wpt/tests/tools/wptrunner/wptrunner/testdriver-extra.js +++ b/tests/wpt/tests/tools/wptrunner/wptrunner/testdriver-extra.js @@ -468,11 +468,17 @@ return create_context_action("create_virtual_pressure_source", context, {source_type, metadata}); }; - window.test_driver_internal.update_virtual_pressure_source = function(source_type, sample, context=null) { - return create_context_action("update_virtual_pressure_source", context, {source_type, sample}); + window.test_driver_internal.update_virtual_pressure_source = function(source_type, sample, estimate, context=null) { + return create_context_action("update_virtual_pressure_source", context, {source_type, sample, estimate}); }; window.test_driver_internal.remove_virtual_pressure_source = function(source_type, context=null) { return create_context_action("remove_virtual_pressure_source", context, {source_type}); }; + + window.test_driver_internal.set_protected_audience_k_anonymity = function( + owner, name, hashes, context=null) { + return create_context_action( + 'set_protected_audience_k_anonymity', context, {owner, name, hashes}); + } })(); diff --git a/tests/wpt/tests/trusted-types/should-sink-type-mismatch-violation-be-blocked-by-csp-001.html b/tests/wpt/tests/trusted-types/should-sink-type-mismatch-violation-be-blocked-by-csp-001.html index 5662c64ac4e..add14466e57 100644 --- a/tests/wpt/tests/trusted-types/should-sink-type-mismatch-violation-be-blocked-by-csp-001.html +++ b/tests/wpt/tests/trusted-types/should-sink-type-mismatch-violation-be-blocked-by-csp-001.html @@ -130,4 +130,24 @@ header(Content-Security-Policy-Report-Only,require-trusted-types-for 'script',Tr assert_true(results[0].exception instanceof TypeError); assert_equals(results[0].violatedPolicies.length, 1); }, `directive "require-trusted-types-for 'script' 'invalid'" (unknown sink group)`); + + promise_test(async t => { + let results = await trySendingPlainStringToTrustedTypeSink( + ["script"], + "header(Content-Security-Policy,require-trusted-types-for 'invalid' 'script',True)", + ); + assert_equals(results.length, 1); + assert_true(results[0].exception instanceof TypeError); + assert_equals(results[0].violatedPolicies.length, 1); + }, `directive "require-trusted-types-for 'invalid' 'script'" (unknown sink group)`); + + promise_test(async t => { + let results = await trySendingPlainStringToTrustedTypeSink( + ["script"], + "header(Content-Security-Policy,require-trusted-types-for 'invalid' 'script' 'also-invalid',True)", + ); + assert_equals(results.length, 1); + assert_true(results[0].exception instanceof TypeError); + assert_equals(results[0].violatedPolicies.length, 1); + }, `directive "require-trusted-types-for 'invalid' 'script' 'also-invalid" (unknown sink group)`); diff --git a/tests/wpt/tests/trusted-types/should-sink-type-mismatch-violation-be-blocked-by-csp-002-worker.html b/tests/wpt/tests/trusted-types/should-sink-type-mismatch-violation-be-blocked-by-csp-002-worker.html new file mode 100644 index 00000000000..9a7b237f11a --- /dev/null +++ b/tests/wpt/tests/trusted-types/should-sink-type-mismatch-violation-be-blocked-by-csp-002-worker.html @@ -0,0 +1,10 @@ + + + + + + diff --git a/tests/wpt/tests/trusted-types/should-trusted-type-policy-creation-be-blocked-by-csp-004-worker.html b/tests/wpt/tests/trusted-types/should-trusted-type-policy-creation-be-blocked-by-csp-004-worker.html new file mode 100644 index 00000000000..7e928d2d719 --- /dev/null +++ b/tests/wpt/tests/trusted-types/should-trusted-type-policy-creation-be-blocked-by-csp-004-worker.html @@ -0,0 +1,11 @@ + + + + + + + diff --git a/tests/wpt/tests/trusted-types/support/csp-violations.js b/tests/wpt/tests/trusted-types/support/csp-violations.js index 49649f45cd6..46c2ca1b30f 100644 --- a/tests/wpt/tests/trusted-types/support/csp-violations.js +++ b/tests/wpt/tests/trusted-types/support/csp-violations.js @@ -15,7 +15,7 @@ const cspDirectives = [ // the CSP directive connect-src 'none' and that fn is not itself triggering // a "connect-src" violation report. function trusted_type_violations_and_exception_for(fn) { - return new Promise((resolve, reject) => { + return new Promise(async (resolve, reject) => { // Listen for security policy violations. let result = { violations: [], exception: null }; let handler = e => { @@ -33,7 +33,7 @@ function trusted_type_violations_and_exception_for(fn) { // Run the specified function and record any exception. try { - fn(); + await fn(); } catch(e) { result.exception = e; } diff --git a/tests/wpt/tests/trusted-types/support/should-sink-type-mismatch-violation-be-blocked-by-csp-002-worker.js b/tests/wpt/tests/trusted-types/support/should-sink-type-mismatch-violation-be-blocked-by-csp-002-worker.js new file mode 100644 index 00000000000..dc3eb004c38 --- /dev/null +++ b/tests/wpt/tests/trusted-types/support/should-sink-type-mismatch-violation-be-blocked-by-csp-002-worker.js @@ -0,0 +1,35 @@ +const testSetupPolicy = trustedTypes.createPolicy("testSetupPolicy", { + createScriptURL: s => s }); + +importScripts(testSetupPolicy.createScriptURL("/resources/testharness.js")); +importScripts(testSetupPolicy.createScriptURL("csp-violations.js")); + +// For CSP applying to this file, please refer to +// should-sink-type-mismatch-violation-be-blocked-by-csp-002-worker.js.headers + +promise_test(async () => { + let {violations, exception} = await trusted_type_violations_and_exception_for(_ => setTimeout("unsafe")); + + // An exception is thrown for the violated enforced policies. + assert_true(exception instanceof TypeError, "TypeError is thrown"); + + // This violates all 'script' directives. + let sorted_violations = violations.map(v => { + return { policy: v.originalPolicy, disposition: v.disposition}; + }).sort(); + assert_equals(sorted_violations.length, 6); + assert_equals(sorted_violations[0].policy, "require-trusted-types-for 'script'"); + assert_equals(sorted_violations[0].disposition, "enforce"); + assert_equals(sorted_violations[1].policy, "require-trusted-types-for 'script' 'invalid'"); + assert_equals(sorted_violations[1].disposition, "enforce"); + assert_equals(sorted_violations[2].policy, "require-trusted-types-for 'invalid' 'script'"); + assert_equals(sorted_violations[2].disposition, "enforce"); + assert_equals(sorted_violations[3].policy, "require-trusted-types-for 'script'"); + assert_equals(sorted_violations[3].disposition, "report"); + assert_equals(sorted_violations[4].policy, "require-trusted-types-for 'script' 'invalid'"); + assert_equals(sorted_violations[4].disposition, "report"); + assert_equals(sorted_violations[5].policy, "require-trusted-types-for 'invalid' 'script'"); + assert_equals(sorted_violations[5].disposition, "report"); +}, "Checking reported violations for setTimeout('unsafe') from DedicatedWorker"); + +done(); diff --git a/tests/wpt/tests/trusted-types/support/should-sink-type-mismatch-violation-be-blocked-by-csp-002-worker.js.headers b/tests/wpt/tests/trusted-types/support/should-sink-type-mismatch-violation-be-blocked-by-csp-002-worker.js.headers new file mode 100644 index 00000000000..c17d57d19ae --- /dev/null +++ b/tests/wpt/tests/trusted-types/support/should-sink-type-mismatch-violation-be-blocked-by-csp-002-worker.js.headers @@ -0,0 +1,7 @@ +Content-Security-Policy: connect-src 'none' +Content-Security-Policy: require-trusted-types-for 'script' +Content-Security-Policy-Report-Only: require-trusted-types-for 'script' +Content-Security-Policy: require-trusted-types-for 'script' 'invalid' +Content-Security-Policy-Report-Only: require-trusted-types-for 'script' 'invalid' +Content-Security-Policy: require-trusted-types-for 'invalid' 'script' +Content-Security-Policy-Report-Only: require-trusted-types-for 'invalid' 'script' diff --git a/tests/wpt/tests/trusted-types/support/should-trusted-type-policy-creation-be-blocked-by-csp-004-worker.js b/tests/wpt/tests/trusted-types/support/should-trusted-type-policy-creation-be-blocked-by-csp-004-worker.js new file mode 100644 index 00000000000..c5c512d98a2 --- /dev/null +++ b/tests/wpt/tests/trusted-types/support/should-trusted-type-policy-creation-be-blocked-by-csp-004-worker.js @@ -0,0 +1,28 @@ +importScripts("/resources/testharness.js"); +importScripts("csp-violations.js"); + +// For CSP applying to this file, please refer to +// should-trusted-type-policy-creation-be-blocked-by-csp-004-worker.js.headers + +promise_test(async () => { + let {violations, exception} = await trusted_type_violations_and_exception_for(_ => trustedTypes.createPolicy("tt-policy-name")); + + // An exception is thrown for the violated enforced policies. + assert_true(exception instanceof TypeError, "TypeError is thrown"); + + // This violates other-policy-name and none directives. + let sorted_violations = violations.map(v => { + return { policy: v.originalPolicy, disposition: v.disposition}; + }).sort(); + assert_equals(sorted_violations.length, 4); + assert_equals(sorted_violations[0].policy, "trusted-types other-policy-name"); + assert_equals(sorted_violations[0].disposition, "enforce"); + assert_equals(sorted_violations[1].policy, "trusted-types none"); + assert_equals(sorted_violations[1].disposition, "enforce"); + assert_equals(sorted_violations[2].policy, "trusted-types other-policy-name"); + assert_equals(sorted_violations[2].disposition, "report"); + assert_equals(sorted_violations[3].policy, "trusted-types none"); + assert_equals(sorted_violations[3].disposition, "report"); +}, "Checking reported violations for createPolicy('tt-policy-name') from DedicatedWorker"); + +done(); diff --git a/tests/wpt/tests/trusted-types/support/should-trusted-type-policy-creation-be-blocked-by-csp-004-worker.js.headers b/tests/wpt/tests/trusted-types/support/should-trusted-type-policy-creation-be-blocked-by-csp-004-worker.js.headers new file mode 100644 index 00000000000..c27bd116d8d --- /dev/null +++ b/tests/wpt/tests/trusted-types/support/should-trusted-type-policy-creation-be-blocked-by-csp-004-worker.js.headers @@ -0,0 +1,9 @@ +Content-Security-Policy: connect-src 'none' +Content-Security-Policy: trusted-types tt-policy-name +Content-Security-Policy-Report-Only: trusted-types tt-policy-name +Content-Security-Policy: trusted-types other-policy-name +Content-Security-Policy-Report-Only: trusted-types other-policy-name +Content-Security-Policy: trusted-types * +Content-Security-Policy-Report-Only: trusted-types * +Content-Security-Policy: trusted-types none +Content-Security-Policy-Report-Only: trusted-types none diff --git a/tests/wpt/tests/trusted-types/support/trusted-types-reporting-check-report-create-policy-worker.js b/tests/wpt/tests/trusted-types/support/trusted-types-reporting-check-report-create-policy-worker.js new file mode 100644 index 00000000000..6bb346e3195 --- /dev/null +++ b/tests/wpt/tests/trusted-types/support/trusted-types-reporting-check-report-create-policy-worker.js @@ -0,0 +1,5 @@ +importScripts("/resources/testharness.js"); + +importScripts("trusted-types-reporting-check-report-create-policy.js"); + +done(); diff --git a/tests/wpt/tests/trusted-types/support/trusted-types-reporting-check-report-create-policy-worker.js.sub.headers b/tests/wpt/tests/trusted-types/support/trusted-types-reporting-check-report-create-policy-worker.js.sub.headers new file mode 100644 index 00000000000..58beda24183 --- /dev/null +++ b/tests/wpt/tests/trusted-types/support/trusted-types-reporting-check-report-create-policy-worker.js.sub.headers @@ -0,0 +1,6 @@ +Expires: Mon, 26 Jul 1997 05:00:00 GMT +Cache-Control: no-store, no-cache, must-revalidate +Cache-Control: post-check=0, pre-check=0, false +Pragma: no-cache +Set-Cookie: trusted-types-reporting-check-report-DedicatedWorker-create-policy={{$id:uuid()}}; Path=/trusted-types/ +Content-Security-Policy-Report-Only: trusted-types one two; report-uri /reporting/resources/report.py?op=put&reportID={{$id}} diff --git a/tests/wpt/tests/trusted-types/support/trusted-types-reporting-check-report-create-policy.js b/tests/wpt/tests/trusted-types/support/trusted-types-reporting-check-report-create-policy.js new file mode 100644 index 00000000000..5d96829727b --- /dev/null +++ b/tests/wpt/tests/trusted-types/support/trusted-types-reporting-check-report-create-policy.js @@ -0,0 +1,15 @@ +test(() => { + const p1 = trustedTypes.createPolicy("one", {}); // allowed policy name + assert_equals(p1.name, "one"); + + const p2 = trustedTypes.createPolicy("two", {}); // allowed policy name + assert_equals(p2.name, "two"); +}, "Creating policy works for policy in the allowlist."); + +test(() => { + const p3 = trustedTypes.createPolicy("three", {}); // forbidden policy name + assert_equals(p3.name, "three"); + + const p4 = trustedTypes.createPolicy("four", {}); // forbidden policy name + assert_equals(p4.name, "four"); +}, "Creating policy works for policy in the blocklist, since it's report-only."); diff --git a/tests/wpt/tests/trusted-types/support/trusted-types-reporting-check-report-sink-mismatch-worker.js b/tests/wpt/tests/trusted-types/support/trusted-types-reporting-check-report-sink-mismatch-worker.js new file mode 100644 index 00000000000..85910e2e926 --- /dev/null +++ b/tests/wpt/tests/trusted-types/support/trusted-types-reporting-check-report-sink-mismatch-worker.js @@ -0,0 +1,7 @@ +const testSetupPolicy = trustedTypes.createPolicy("p", { createScriptURL: s => s }); + +importScripts(testSetupPolicy.createScriptURL("/resources/testharness.js")); + +importScripts(testSetupPolicy.createScriptURL("trusted-types-reporting-check-report-sink-mismatch.js")); + +done(); diff --git a/tests/wpt/tests/trusted-types/support/trusted-types-reporting-check-report-sink-mismatch-worker.js.sub.headers b/tests/wpt/tests/trusted-types/support/trusted-types-reporting-check-report-sink-mismatch-worker.js.sub.headers new file mode 100644 index 00000000000..5fcdf6ccbfc --- /dev/null +++ b/tests/wpt/tests/trusted-types/support/trusted-types-reporting-check-report-sink-mismatch-worker.js.sub.headers @@ -0,0 +1,7 @@ +Expires: Mon, 26 Jul 1997 05:00:00 GMT +Cache-Control: no-store, no-cache, must-revalidate +Cache-Control: post-check=0, pre-check=0, false +Pragma: no-cache +Set-Cookie: trusted-types-reporting-check-report-DedicatedWorker-sink-mismatch={{$id:uuid()}}; Path=/trusted-types/ +Content-Security-Policy: script-src http: https: +Content-Security-Policy-Report-Only: require-trusted-types-for 'script'; report-uri /reporting/resources/report.py?op=put&reportID={{$id}} diff --git a/tests/wpt/tests/trusted-types/support/trusted-types-reporting-check-report-sink-mismatch.js b/tests/wpt/tests/trusted-types/support/trusted-types-reporting-check-report-sink-mismatch.js new file mode 100644 index 00000000000..96ad9c116b4 --- /dev/null +++ b/tests/wpt/tests/trusted-types/support/trusted-types-reporting-check-report-sink-mismatch.js @@ -0,0 +1,13 @@ +test(() => { + setTimeout(";"); // violation reported + setTimeout(";;"); // another violation reported +}, "Passing a plain string to setTimeout works since it's report-only."); + +test(() => { + let p = trustedTypes.createPolicy("dummy", {createScript: x => x}); + setTimeout(p.createScript(";;;")); // no violation reported +}, "Passing a TrustedScript to setTimeout works."); + +test(_ => { + assert_throws_js(EvalError, _ => eval(";;;;")); // violation reported +}, "Passing a plain string to eval throws."); diff --git a/tests/wpt/tests/trusted-types/support/trusted-types-reporting-for-DedicatedWorker-constructor-worker.js b/tests/wpt/tests/trusted-types/support/trusted-types-reporting-for-DedicatedWorker-constructor-worker.js new file mode 100644 index 00000000000..e5b09eb3707 --- /dev/null +++ b/tests/wpt/tests/trusted-types/support/trusted-types-reporting-for-DedicatedWorker-constructor-worker.js @@ -0,0 +1,11 @@ +const testSetupPolicy = trustedTypes.createPolicy("p", { createScriptURL: s => s }); + +importScripts(testSetupPolicy.createScriptURL("/resources/testharness.js")); +importScripts(testSetupPolicy.createScriptURL("helper.sub.js")); +importScripts(testSetupPolicy.createScriptURL("csp-violations.js")); + +importScripts(testSetupPolicy.createScriptURL( + "trusted-types-reporting-for-DedicatedWorker-constructor.js" +)); + +done(); diff --git a/tests/wpt/tests/trusted-types/support/trusted-types-reporting-for-DedicatedWorker-constructor-worker.js.headers b/tests/wpt/tests/trusted-types/support/trusted-types-reporting-for-DedicatedWorker-constructor-worker.js.headers new file mode 100644 index 00000000000..54d8b1d4c12 --- /dev/null +++ b/tests/wpt/tests/trusted-types/support/trusted-types-reporting-for-DedicatedWorker-constructor-worker.js.headers @@ -0,0 +1,2 @@ +Content-Security-Policy: require-trusted-types-for 'script'; +Content-Security-Policy: connect-src 'none' \ No newline at end of file diff --git a/tests/wpt/tests/trusted-types/support/trusted-types-reporting-for-DedicatedWorker-constructor.js b/tests/wpt/tests/trusted-types/support/trusted-types-reporting-for-DedicatedWorker-constructor.js new file mode 100644 index 00000000000..cb5ae4c8e2c --- /dev/null +++ b/tests/wpt/tests/trusted-types/support/trusted-types-reporting-for-DedicatedWorker-constructor.js @@ -0,0 +1,16 @@ +const policy = trustedTypes.createPolicy("dummy", { createScriptURL: x => x }); +const input = `data:text/javascript,${';'.repeat(100)}`; + +promise_test(async t => { + await no_trusted_type_violation_for(_ => + new Worker(policy.createScriptURL(input)) + ); +}, "No violation reported for Worker constructor with TrustedScriptURL."); + +promise_test(async t => { + let violation = await trusted_type_violation_for(TypeError, _ => + new Worker(input) + ); + assert_equals(violation.blockedURI, "trusted-types-sink"); + assert_equals(violation.sample, `Worker constructor|${clipSampleIfNeeded(input)}`); +}, "Violation report for Worker constructor with plain string."); diff --git a/tests/wpt/tests/trusted-types/support/trusted-types-reporting-for-ServiceWorkerContainer-register-worker.https.js b/tests/wpt/tests/trusted-types/support/trusted-types-reporting-for-ServiceWorkerContainer-register-worker.https.js new file mode 100644 index 00000000000..cce29cb2f7b --- /dev/null +++ b/tests/wpt/tests/trusted-types/support/trusted-types-reporting-for-ServiceWorkerContainer-register-worker.https.js @@ -0,0 +1,11 @@ +const testSetupPolicy = trustedTypes.createPolicy("p", { createScriptURL: s => s }); + +importScripts(testSetupPolicy.createScriptURL("/resources/testharness.js")); +importScripts(testSetupPolicy.createScriptURL("helper.sub.js")); +importScripts(testSetupPolicy.createScriptURL("csp-violations.js")); + +importScripts(testSetupPolicy.createScriptURL( + "trusted-types-reporting-for-ServiceWorkerContainer-register.https.js" +)); + +done(); diff --git a/tests/wpt/tests/trusted-types/support/trusted-types-reporting-for-ServiceWorkerContainer-register-worker.https.js.headers b/tests/wpt/tests/trusted-types/support/trusted-types-reporting-for-ServiceWorkerContainer-register-worker.https.js.headers new file mode 100644 index 00000000000..54d8b1d4c12 --- /dev/null +++ b/tests/wpt/tests/trusted-types/support/trusted-types-reporting-for-ServiceWorkerContainer-register-worker.https.js.headers @@ -0,0 +1,2 @@ +Content-Security-Policy: require-trusted-types-for 'script'; +Content-Security-Policy: connect-src 'none' \ No newline at end of file diff --git a/tests/wpt/tests/trusted-types/support/trusted-types-reporting-for-ServiceWorkerContainer-register.https.js b/tests/wpt/tests/trusted-types/support/trusted-types-reporting-for-ServiceWorkerContainer-register.https.js new file mode 100644 index 00000000000..f59799d4776 --- /dev/null +++ b/tests/wpt/tests/trusted-types/support/trusted-types-reporting-for-ServiceWorkerContainer-register.https.js @@ -0,0 +1,27 @@ +const policy = trustedTypes.createPolicy("dummy", { createScriptURL: x => x }); +let worker_url = "worker.https.js"; +let scope = `scope1/`; + +if (getGlobalThisStr().includes("Window")) { + worker_url = `support/${worker_url}`; + scope = `support/${scope}`; +} + +promise_test(async t => { + await no_trusted_type_violation_for(async _ => { + let reg = await self.navigator.serviceWorker.getRegistration(scope); + if (reg) await reg.unregister(); + reg = await self.navigator.serviceWorker.register(policy.createScriptURL(worker_url), {scope}); + await new Promise(r => reg.addEventListener("updatefound", r)); + }); +}, "No violation reported for ServiceWorkerContainer register with TrustedScriptURL."); + +promise_test(async t => { + let violation = await trusted_type_violation_for(TypeError, async _ => { + let reg = await self.navigator.serviceWorker.getRegistration(scope); + if (reg) await reg.unregister(); + await self.navigator.serviceWorker.register(worker_url, {scope}); + }); + assert_equals(violation.blockedURI, "trusted-types-sink"); + assert_equals(violation.sample, `ServiceWorkerContainer register|${clipSampleIfNeeded(worker_url)}`); +}, "Violation report for ServiceWorkerContainer register with plain string."); diff --git a/tests/wpt/tests/trusted-types/support/trusted-types-reporting-for-SharedWorker-constructor.js b/tests/wpt/tests/trusted-types/support/trusted-types-reporting-for-SharedWorker-constructor.js new file mode 100644 index 00000000000..a65731a2f9c --- /dev/null +++ b/tests/wpt/tests/trusted-types/support/trusted-types-reporting-for-SharedWorker-constructor.js @@ -0,0 +1,16 @@ +const policy = trustedTypes.createPolicy("dummy", { createScriptURL: x => x }); +const input = `data:text/javascript,${';'.repeat(100)}`; + +promise_test(async t => { + await no_trusted_type_violation_for(_ => + new SharedWorker(policy.createScriptURL(input)) + ); +}, "No violation reported for SharedWorker constructor with TrustedScriptURL."); + +promise_test(async t => { + let violation = await trusted_type_violation_for(TypeError, _ => + new SharedWorker(input) + ); + assert_equals(violation.blockedURI, "trusted-types-sink"); + assert_equals(violation.sample, `SharedWorker constructor|${clipSampleIfNeeded(input)}`); +}, "Violation report for SharedWorker constructor with plain string."); diff --git a/tests/wpt/tests/trusted-types/support/trusted-types-reporting-for-eval-worker.js b/tests/wpt/tests/trusted-types/support/trusted-types-reporting-for-eval-worker.js new file mode 100644 index 00000000000..2a4780dcbad --- /dev/null +++ b/tests/wpt/tests/trusted-types/support/trusted-types-reporting-for-eval-worker.js @@ -0,0 +1,11 @@ +const testSetupPolicy = trustedTypes.createPolicy("p", { createScriptURL: s => s }); + +importScripts(testSetupPolicy.createScriptURL("/resources/testharness.js")); +importScripts(testSetupPolicy.createScriptURL("helper.sub.js")); +importScripts(testSetupPolicy.createScriptURL("csp-violations.js")); + +importScripts(testSetupPolicy.createScriptURL( + "trusted-types-reporting-for-eval.js" +)); + +done(); diff --git a/tests/wpt/tests/trusted-types/support/trusted-types-reporting-for-eval-worker.js.headers b/tests/wpt/tests/trusted-types/support/trusted-types-reporting-for-eval-worker.js.headers new file mode 100644 index 00000000000..54d8b1d4c12 --- /dev/null +++ b/tests/wpt/tests/trusted-types/support/trusted-types-reporting-for-eval-worker.js.headers @@ -0,0 +1,2 @@ +Content-Security-Policy: require-trusted-types-for 'script'; +Content-Security-Policy: connect-src 'none' \ No newline at end of file diff --git a/tests/wpt/tests/trusted-types/support/trusted-types-reporting-for-eval.js b/tests/wpt/tests/trusted-types/support/trusted-types-reporting-for-eval.js new file mode 100644 index 00000000000..0f8120a7a1f --- /dev/null +++ b/tests/wpt/tests/trusted-types/support/trusted-types-reporting-for-eval.js @@ -0,0 +1,21 @@ +const policy = trustedTypes.createPolicy("dummy", { createScript: x => x }); + +promise_test(async t => { + let beacon = 'never_overwritten2'; + await no_trusted_type_violation_for(_ => + eval(policy.createScript('beacon="i ran"')) + ); + assert_equals(beacon, 'i ran'); +}, "No violation reported for eval with TrustedScript."); + +promise_test(async t => { + const input = 'beacon="should not run"'; + let beacon = 'never_overwritten'; + let violation = await trusted_type_violation_for(EvalError, _ => + eval(input) + ); + assert_true(violation.originalPolicy.includes("require-trusted-types-for 'script'")); + assert_equals(violation.blockedURI, "trusted-types-sink"); + assert_equals(violation.sample, `eval|${clipSampleIfNeeded(input)}`); + assert_equals(beacon, 'never_overwritten'); +}, "Violation report for eval with plain string."); \ No newline at end of file diff --git a/tests/wpt/tests/trusted-types/support/trusted-types-reporting-for-function-constructor-worker.js b/tests/wpt/tests/trusted-types/support/trusted-types-reporting-for-function-constructor-worker.js new file mode 100644 index 00000000000..ce73b913689 --- /dev/null +++ b/tests/wpt/tests/trusted-types/support/trusted-types-reporting-for-function-constructor-worker.js @@ -0,0 +1,11 @@ +const testSetupPolicy = trustedTypes.createPolicy("p", { createScriptURL: s => s }); + +importScripts(testSetupPolicy.createScriptURL("/resources/testharness.js")); +importScripts(testSetupPolicy.createScriptURL("helper.sub.js")); +importScripts(testSetupPolicy.createScriptURL("csp-violations.js")); + +importScripts(testSetupPolicy.createScriptURL( + "trusted-types-reporting-for-function-constructor.js" +)); + +done(); diff --git a/tests/wpt/tests/trusted-types/support/trusted-types-reporting-for-function-constructor-worker.js.headers b/tests/wpt/tests/trusted-types/support/trusted-types-reporting-for-function-constructor-worker.js.headers new file mode 100644 index 00000000000..54d8b1d4c12 --- /dev/null +++ b/tests/wpt/tests/trusted-types/support/trusted-types-reporting-for-function-constructor-worker.js.headers @@ -0,0 +1,2 @@ +Content-Security-Policy: require-trusted-types-for 'script'; +Content-Security-Policy: connect-src 'none' \ No newline at end of file diff --git a/tests/wpt/tests/trusted-types/support/trusted-types-reporting-for-function-constructor.js b/tests/wpt/tests/trusted-types/support/trusted-types-reporting-for-function-constructor.js new file mode 100644 index 00000000000..51d04b661f4 --- /dev/null +++ b/tests/wpt/tests/trusted-types/support/trusted-types-reporting-for-function-constructor.js @@ -0,0 +1,29 @@ +const policy = trustedTypes.createPolicy("dummy", { createScript: x => x }); + +const AsyncFunction = async function() {}.constructor; +const GeneratorFunction = function*() {}.constructor; +const AsyncGeneratorFunction = async function*() {}.constructor; + +const input = `return${';'.repeat(100)}`; +[Function, AsyncFunction, GeneratorFunction, AsyncGeneratorFunction].forEach(functionConstructor => { + promise_test(async t => { + await no_trusted_type_violation_for(_ => + new functionConstructor(policy.createScript(input)) + ); + }, `No violation reported for ${functionConstructor.name} with TrustedScript.`); + + promise_test(async t => { + await no_trusted_type_violation_for(_ => + new functionConstructor(policy.createScript('a'), policy.createScript(input)) + ); + }, `No violation reported for ${functionConstructor.name} with multiple TrustedScript args.`); + + promise_test(async t => { + let violation = await trusted_type_violation_for(EvalError, _ => + new functionConstructor(input) + ); + assert_true(violation.originalPolicy.includes("require-trusted-types-for 'script'")); + assert_equals(violation.blockedURI, "trusted-types-sink"); + assert_equals(violation.sample, `Function|${clipSampleIfNeeded(`(\n) {\n${input}\n}`)}`); + }, `Violation report for ${functionConstructor.name} with plain string.`); +}); diff --git a/tests/wpt/tests/trusted-types/support/trusted-types-reporting-for-importScripts.js b/tests/wpt/tests/trusted-types/support/trusted-types-reporting-for-importScripts.js new file mode 100644 index 00000000000..c8de9f8d5fd --- /dev/null +++ b/tests/wpt/tests/trusted-types/support/trusted-types-reporting-for-importScripts.js @@ -0,0 +1,24 @@ +const testSetupPolicy = trustedTypes.createPolicy("p", { createScriptURL: s => s }); + +importScripts(testSetupPolicy.createScriptURL("/resources/testharness.js")); +importScripts(testSetupPolicy.createScriptURL("helper.sub.js")); +importScripts(testSetupPolicy.createScriptURL("csp-violations.js")); + +const policy = trustedTypes.createPolicy("dummy", { createScriptURL: x => x }); +const input = `data:text/javascript,${`;`.repeat(100)}`; + +promise_test(async t => { + await no_trusted_type_violation_for(_ => + importScripts(policy.createScriptURL(input)) + ); +}, "No violation reported for importScripts with TrustedScriptURL."); + +promise_test(async t => { + let violation = await trusted_type_violation_for(TypeError, _ => + importScripts(input) + ); + assert_equals(violation.blockedURI, "trusted-types-sink"); + assert_equals(violation.sample, `WorkerGlobalScope importScripts|${clipSampleIfNeeded(input)}`); +}, "Violation report for importScripts with plain string."); + +done(); diff --git a/tests/wpt/tests/trusted-types/support/trusted-types-reporting-for-importScripts.js.headers b/tests/wpt/tests/trusted-types/support/trusted-types-reporting-for-importScripts.js.headers new file mode 100644 index 00000000000..54d8b1d4c12 --- /dev/null +++ b/tests/wpt/tests/trusted-types/support/trusted-types-reporting-for-importScripts.js.headers @@ -0,0 +1,2 @@ +Content-Security-Policy: require-trusted-types-for 'script'; +Content-Security-Policy: connect-src 'none' \ No newline at end of file diff --git a/tests/wpt/tests/trusted-types/support/trusted-types-sandbox-no-allow-scripts.html b/tests/wpt/tests/trusted-types/support/trusted-types-sandbox-no-allow-scripts.html new file mode 100644 index 00000000000..11967a4d97f --- /dev/null +++ b/tests/wpt/tests/trusted-types/support/trusted-types-sandbox-no-allow-scripts.html @@ -0,0 +1,7 @@ + + +

      Sandboxed frame without allow-scripts

      + diff --git a/tests/wpt/tests/trusted-types/support/trusted-types-sandbox-no-allow-scripts.html.headers b/tests/wpt/tests/trusted-types/support/trusted-types-sandbox-no-allow-scripts.html.headers new file mode 100644 index 00000000000..da0823c6bc5 --- /dev/null +++ b/tests/wpt/tests/trusted-types/support/trusted-types-sandbox-no-allow-scripts.html.headers @@ -0,0 +1,3 @@ +Content-Security-Policy: sandbox; +Content-Security-Policy: trusted-types AllowedPolicyName default; +Content-Security-Policy: require-trusted-types-for 'script'; diff --git a/tests/wpt/tests/trusted-types/trusted-types-eval-reporting-no-unsafe-eval.html b/tests/wpt/tests/trusted-types/trusted-types-eval-reporting-no-unsafe-eval.html index 69b5bf3c1d1..27bd4644496 100644 --- a/tests/wpt/tests/trusted-types/trusted-types-eval-reporting-no-unsafe-eval.html +++ b/tests/wpt/tests/trusted-types/trusted-types-eval-reporting-no-unsafe-eval.html @@ -3,24 +3,12 @@ + + + + - - - - - - diff --git a/tests/wpt/tests/trusted-types/trusted-types-eval-reporting.html.headers b/tests/wpt/tests/trusted-types/trusted-types-eval-reporting.html.headers deleted file mode 100644 index 1e57f8bf585..00000000000 --- a/tests/wpt/tests/trusted-types/trusted-types-eval-reporting.html.headers +++ /dev/null @@ -1,4 +0,0 @@ -Content-Security-Policy: script-src http: https: 'nonce-123' 'unsafe-eval' -Content-Security-Policy: connect-src 'none' -Content-Security-Policy: require-trusted-types-for 'script' - diff --git a/tests/wpt/tests/trusted-types/trusted-types-report-only.html b/tests/wpt/tests/trusted-types/trusted-types-report-only.html index f4386f832f4..7b1a9c7e302 100644 --- a/tests/wpt/tests/trusted-types/trusted-types-report-only.html +++ b/tests/wpt/tests/trusted-types/trusted-types-report-only.html @@ -3,7 +3,11 @@ - + + @@ -14,12 +18,6 @@ + + Check Trusted Type violation reports (DedicatedWorker, createPolicy) + + + + + + + diff --git a/tests/wpt/tests/trusted-types/trusted-types-reporting-check-report-DedicatedWorker-sink-mismatch.html b/tests/wpt/tests/trusted-types/trusted-types-reporting-check-report-DedicatedWorker-sink-mismatch.html new file mode 100644 index 00000000000..72354a99eed --- /dev/null +++ b/tests/wpt/tests/trusted-types/trusted-types-reporting-check-report-DedicatedWorker-sink-mismatch.html @@ -0,0 +1,31 @@ + + + + + + Check Trusted Type violation reports (DedicatedWorker, sink mismatch) + + + + + + + diff --git a/tests/wpt/tests/trusted-types/trusted-types-reporting-check-report.html b/tests/wpt/tests/trusted-types/trusted-types-reporting-check-report-Window-create-policy.html similarity index 57% rename from tests/wpt/tests/trusted-types/trusted-types-reporting-check-report.html rename to tests/wpt/tests/trusted-types/trusted-types-reporting-check-report-Window-create-policy.html index ae5ac25052d..4c9506c5b43 100644 --- a/tests/wpt/tests/trusted-types/trusted-types-reporting-check-report.html +++ b/tests/wpt/tests/trusted-types/trusted-types-reporting-check-report-Window-create-policy.html @@ -3,20 +3,18 @@ - Check Trusted Type violation reports + Check Trusted Type violation reports (Window, createPolicy) - - + + diff --git a/tests/wpt/tests/trusted-types/trusted-types-reporting-check-report.html.sub.headers b/tests/wpt/tests/trusted-types/trusted-types-reporting-check-report-Window-create-policy.html.sub.headers similarity index 72% rename from tests/wpt/tests/trusted-types/trusted-types-reporting-check-report.html.sub.headers rename to tests/wpt/tests/trusted-types/trusted-types-reporting-check-report-Window-create-policy.html.sub.headers index c055bdc6563..4653c9d7031 100644 --- a/tests/wpt/tests/trusted-types/trusted-types-reporting-check-report.html.sub.headers +++ b/tests/wpt/tests/trusted-types/trusted-types-reporting-check-report-Window-create-policy.html.sub.headers @@ -2,5 +2,5 @@ Expires: Mon, 26 Jul 1997 05:00:00 GMT Cache-Control: no-store, no-cache, must-revalidate Cache-Control: post-check=0, pre-check=0, false Pragma: no-cache -Set-Cookie: trusted-types-reporting-check-report={{$id:uuid()}}; Path=/trusted-types/ +Set-Cookie: trusted-types-reporting-check-report-Window-create-policy={{$id:uuid()}}; Path=/trusted-types/ Content-Security-Policy-Report-Only: trusted-types one two; report-uri /reporting/resources/report.py?op=put&reportID={{$id}} diff --git a/tests/wpt/tests/trusted-types/trusted-types-reporting-check-report-Window-sink-mismatch.html b/tests/wpt/tests/trusted-types/trusted-types-reporting-check-report-Window-sink-mismatch.html new file mode 100644 index 00000000000..ad855dfb2f1 --- /dev/null +++ b/tests/wpt/tests/trusted-types/trusted-types-reporting-check-report-Window-sink-mismatch.html @@ -0,0 +1,20 @@ + + + + + + Check Trusted Type violation reports (DedicatedWorker, sink mismatch) + + + + + + + + diff --git a/tests/wpt/tests/trusted-types/trusted-types-reporting-check-report-Window-sink-mismatch.html.sub.headers b/tests/wpt/tests/trusted-types/trusted-types-reporting-check-report-Window-sink-mismatch.html.sub.headers new file mode 100644 index 00000000000..62a0c13f0a3 --- /dev/null +++ b/tests/wpt/tests/trusted-types/trusted-types-reporting-check-report-Window-sink-mismatch.html.sub.headers @@ -0,0 +1,7 @@ +Expires: Mon, 26 Jul 1997 05:00:00 GMT +Cache-Control: no-store, no-cache, must-revalidate +Cache-Control: post-check=0, pre-check=0, false +Pragma: no-cache +Set-Cookie: trusted-types-reporting-check-report-Window-sink-mismatch={{$id:uuid()}}; Path=/trusted-types/ +Content-Security-Policy: script-src http: https: 'nonce-123' +Content-Security-Policy-Report-Only: require-trusted-types-for 'script'; report-uri /reporting/resources/report.py?op=put&reportID={{$id}} diff --git a/tests/wpt/tests/trusted-types/trusted-types-reporting-for-DedicatedWorker-DedicatedWorker-constructor.html b/tests/wpt/tests/trusted-types/trusted-types-reporting-for-DedicatedWorker-DedicatedWorker-constructor.html new file mode 100644 index 00000000000..b70a074fc7f --- /dev/null +++ b/tests/wpt/tests/trusted-types/trusted-types-reporting-for-DedicatedWorker-DedicatedWorker-constructor.html @@ -0,0 +1,9 @@ + + + + + diff --git a/tests/wpt/tests/trusted-types/trusted-types-reporting-for-DedicatedWorker-ServiceWorkerContainer-register.https.html b/tests/wpt/tests/trusted-types/trusted-types-reporting-for-DedicatedWorker-ServiceWorkerContainer-register.https.html new file mode 100644 index 00000000000..9db187a2f91 --- /dev/null +++ b/tests/wpt/tests/trusted-types/trusted-types-reporting-for-DedicatedWorker-ServiceWorkerContainer-register.https.html @@ -0,0 +1,9 @@ + + + + + diff --git a/tests/wpt/tests/trusted-types/trusted-types-reporting-for-DedicatedWorker-eval.html b/tests/wpt/tests/trusted-types/trusted-types-reporting-for-DedicatedWorker-eval.html new file mode 100644 index 00000000000..184bc8ad333 --- /dev/null +++ b/tests/wpt/tests/trusted-types/trusted-types-reporting-for-DedicatedWorker-eval.html @@ -0,0 +1,9 @@ + + + + + diff --git a/tests/wpt/tests/trusted-types/trusted-types-reporting-for-DedicatedWorker-function-constructor.html b/tests/wpt/tests/trusted-types/trusted-types-reporting-for-DedicatedWorker-function-constructor.html new file mode 100644 index 00000000000..26d4e54634a --- /dev/null +++ b/tests/wpt/tests/trusted-types/trusted-types-reporting-for-DedicatedWorker-function-constructor.html @@ -0,0 +1,9 @@ + + + + + diff --git a/tests/wpt/tests/trusted-types/trusted-types-reporting-for-DedicatedWorker-importScripts.html b/tests/wpt/tests/trusted-types/trusted-types-reporting-for-DedicatedWorker-importScripts.html new file mode 100644 index 00000000000..5db284f715c --- /dev/null +++ b/tests/wpt/tests/trusted-types/trusted-types-reporting-for-DedicatedWorker-importScripts.html @@ -0,0 +1,9 @@ + + + + + diff --git a/tests/wpt/tests/trusted-types/trusted-types-reporting-for-ServiceWorker-ServiceWorkerContainer-register.https.html b/tests/wpt/tests/trusted-types/trusted-types-reporting-for-ServiceWorker-ServiceWorkerContainer-register.https.html new file mode 100644 index 00000000000..ac853cd8f6e --- /dev/null +++ b/tests/wpt/tests/trusted-types/trusted-types-reporting-for-ServiceWorker-ServiceWorkerContainer-register.https.html @@ -0,0 +1,15 @@ + + + + + diff --git a/tests/wpt/tests/trusted-types/trusted-types-reporting-for-ServiceWorker-eval.https.html b/tests/wpt/tests/trusted-types/trusted-types-reporting-for-ServiceWorker-eval.https.html new file mode 100644 index 00000000000..2d0b6315fb9 --- /dev/null +++ b/tests/wpt/tests/trusted-types/trusted-types-reporting-for-ServiceWorker-eval.https.html @@ -0,0 +1,15 @@ + + + + + diff --git a/tests/wpt/tests/trusted-types/trusted-types-reporting-for-ServiceWorker-function-constructor.html b/tests/wpt/tests/trusted-types/trusted-types-reporting-for-ServiceWorker-function-constructor.html new file mode 100644 index 00000000000..791663dfc79 --- /dev/null +++ b/tests/wpt/tests/trusted-types/trusted-types-reporting-for-ServiceWorker-function-constructor.html @@ -0,0 +1,15 @@ + + + + + diff --git a/tests/wpt/tests/trusted-types/trusted-types-reporting-for-ServiceWorker-importScripts.https.html b/tests/wpt/tests/trusted-types/trusted-types-reporting-for-ServiceWorker-importScripts.https.html new file mode 100644 index 00000000000..865409aca1b --- /dev/null +++ b/tests/wpt/tests/trusted-types/trusted-types-reporting-for-ServiceWorker-importScripts.https.html @@ -0,0 +1,14 @@ + + + + + diff --git a/tests/wpt/tests/trusted-types/trusted-types-reporting-for-ServiceWorker-setTimeout-setInterval.https.html b/tests/wpt/tests/trusted-types/trusted-types-reporting-for-ServiceWorker-setTimeout-setInterval.https.html new file mode 100644 index 00000000000..34b962df085 --- /dev/null +++ b/tests/wpt/tests/trusted-types/trusted-types-reporting-for-ServiceWorker-setTimeout-setInterval.https.html @@ -0,0 +1,14 @@ + + + + + diff --git a/tests/wpt/tests/trusted-types/trusted-types-reporting-for-SharedWorker-DedicatedWorker-constructor.html b/tests/wpt/tests/trusted-types/trusted-types-reporting-for-SharedWorker-DedicatedWorker-constructor.html new file mode 100644 index 00000000000..3b382d8774a --- /dev/null +++ b/tests/wpt/tests/trusted-types/trusted-types-reporting-for-SharedWorker-DedicatedWorker-constructor.html @@ -0,0 +1,9 @@ + + + + + diff --git a/tests/wpt/tests/trusted-types/trusted-types-reporting-for-SharedWorker-ServiceWorkerContainer-register.https.html b/tests/wpt/tests/trusted-types/trusted-types-reporting-for-SharedWorker-ServiceWorkerContainer-register.https.html new file mode 100644 index 00000000000..00e9a75dfb0 --- /dev/null +++ b/tests/wpt/tests/trusted-types/trusted-types-reporting-for-SharedWorker-ServiceWorkerContainer-register.https.html @@ -0,0 +1,9 @@ + + + + + diff --git a/tests/wpt/tests/trusted-types/trusted-types-reporting-for-SharedWorker-eval.html b/tests/wpt/tests/trusted-types/trusted-types-reporting-for-SharedWorker-eval.html new file mode 100644 index 00000000000..6ae0f60351f --- /dev/null +++ b/tests/wpt/tests/trusted-types/trusted-types-reporting-for-SharedWorker-eval.html @@ -0,0 +1,9 @@ + + + + + diff --git a/tests/wpt/tests/trusted-types/trusted-types-reporting-for-SharedWorker-function-constructor.html b/tests/wpt/tests/trusted-types/trusted-types-reporting-for-SharedWorker-function-constructor.html new file mode 100644 index 00000000000..dc77be79640 --- /dev/null +++ b/tests/wpt/tests/trusted-types/trusted-types-reporting-for-SharedWorker-function-constructor.html @@ -0,0 +1,9 @@ + + + + + diff --git a/tests/wpt/tests/trusted-types/trusted-types-reporting-for-SharedWorker-importScripts.html b/tests/wpt/tests/trusted-types/trusted-types-reporting-for-SharedWorker-importScripts.html new file mode 100644 index 00000000000..fb01333dd46 --- /dev/null +++ b/tests/wpt/tests/trusted-types/trusted-types-reporting-for-SharedWorker-importScripts.html @@ -0,0 +1,9 @@ + + + + + diff --git a/tests/wpt/tests/trusted-types/trusted-types-reporting-for-Window-DedicatedWorker-constructor.html b/tests/wpt/tests/trusted-types/trusted-types-reporting-for-Window-DedicatedWorker-constructor.html new file mode 100644 index 00000000000..3d2a91d74ca --- /dev/null +++ b/tests/wpt/tests/trusted-types/trusted-types-reporting-for-Window-DedicatedWorker-constructor.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/tests/wpt/tests/trusted-types/trusted-types-reporting-for-Window-ServiceWorkerContainer-register.https.html b/tests/wpt/tests/trusted-types/trusted-types-reporting-for-Window-ServiceWorkerContainer-register.https.html new file mode 100644 index 00000000000..482b9c333e3 --- /dev/null +++ b/tests/wpt/tests/trusted-types/trusted-types-reporting-for-Window-ServiceWorkerContainer-register.https.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/tests/wpt/tests/trusted-types/trusted-types-reporting-for-Window-SharedWorker-constructor.html b/tests/wpt/tests/trusted-types/trusted-types-reporting-for-Window-SharedWorker-constructor.html new file mode 100644 index 00000000000..a03dd21be97 --- /dev/null +++ b/tests/wpt/tests/trusted-types/trusted-types-reporting-for-Window-SharedWorker-constructor.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/tests/wpt/tests/trusted-types/trusted-types-reporting-for-Window-eval.html b/tests/wpt/tests/trusted-types/trusted-types-reporting-for-Window-eval.html new file mode 100644 index 00000000000..7f4772aed14 --- /dev/null +++ b/tests/wpt/tests/trusted-types/trusted-types-reporting-for-Window-eval.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/tests/wpt/tests/trusted-types/trusted-types-reporting-for-Window-function-constructor.html b/tests/wpt/tests/trusted-types/trusted-types-reporting-for-Window-function-constructor.html new file mode 100644 index 00000000000..9b9617a9b5d --- /dev/null +++ b/tests/wpt/tests/trusted-types/trusted-types-reporting-for-Window-function-constructor.html @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/tests/wpt/tests/trusted-types/trusted-types-reporting.html b/tests/wpt/tests/trusted-types/trusted-types-reporting.html index 5e7930382ad..7432d3bded8 100644 --- a/tests/wpt/tests/trusted-types/trusted-types-reporting.html +++ b/tests/wpt/tests/trusted-types/trusted-types-reporting.html @@ -4,30 +4,18 @@ + + + + + diff --git a/tests/wpt/tests/trusted-types/trusted-types-sandbox-allow-scripts.html.headers b/tests/wpt/tests/trusted-types/trusted-types-sandbox-allow-scripts.html.headers new file mode 100644 index 00000000000..6bd66164613 --- /dev/null +++ b/tests/wpt/tests/trusted-types/trusted-types-sandbox-allow-scripts.html.headers @@ -0,0 +1,3 @@ +Content-Security-Policy: sandbox allow-scripts; +Content-Security-Policy: trusted-types AllowedPolicyName default; +Content-Security-Policy: require-trusted-types-for 'script'; diff --git a/tests/wpt/tests/trusted-types/trusted-types-sandbox-no-allow-scripts.html b/tests/wpt/tests/trusted-types/trusted-types-sandbox-no-allow-scripts.html new file mode 100644 index 00000000000..c4e4683934e --- /dev/null +++ b/tests/wpt/tests/trusted-types/trusted-types-sandbox-no-allow-scripts.html @@ -0,0 +1,18 @@ + + + + + + + diff --git a/tests/wpt/tests/urlpattern/resources/urlpatterntestdata.json b/tests/wpt/tests/urlpattern/resources/urlpatterntestdata.json index f92ab76b71d..75f1cf86945 100644 --- a/tests/wpt/tests/urlpattern/resources/urlpatterntestdata.json +++ b/tests/wpt/tests/urlpattern/resources/urlpatterntestdata.json @@ -1202,10 +1202,11 @@ { "pattern": [{ "protocol": "http", "port": "80 " }], "inputs": [{ "protocol": "http", "port": "80" }], - "exactly_empty_components": ["port"], - "expected_match": { - "protocol": { "input": "http", "groups": {} } - } + "expected_obj": { + "protocol": "http", + "port": "80" + }, + "expected_match": null }, { "pattern": [{ "protocol": "http", "port": "100000" }], @@ -1874,7 +1875,17 @@ { "pattern": [ "https://{sub.}?example{.com/}foo" ], "inputs": [ "https://example.com/foo" ], - "expected_obj": "error" + "exactly_empty_components": [ "port" ], + "expected_obj": { + "protocol": "https", + "hostname": "{sub.}?example.com", + "pathname": "*" + }, + "expected_match": { + "protocol": { "input": "https", "groups": {} }, + "hostname": { "input": "example.com", "groups": {} }, + "pathname": { "input": "/foo", "groups": { "0": "/foo" } } + } }, { "pattern": [ "{https://}example.com/foo" ], diff --git a/tests/wpt/tests/web-animations/animation-model/animation-types/property-list.js b/tests/wpt/tests/web-animations/animation-model/animation-types/property-list.js index f31ee8e4ccf..9cfd90d17f2 100644 --- a/tests/wpt/tests/web-animations/animation-model/animation-types/property-list.js +++ b/tests/wpt/tests/web-animations/animation-model/animation-types/property-list.js @@ -439,6 +439,12 @@ const gCSSProperties1 = { { type: 'discrete', options: [ [ 'auto', 'balance' ] ] } ] }, + 'column-wrap': { + // https://drafts.csswg.org/css-multicol-2/#cwr + types: [ + { type: 'discrete', options: [ [ 'nowrap', 'wrap' ] ] } + ] + }, 'column-rule-style': { // https://drafts.csswg.org/css-multicol/#propdef-column-rule-style types: [ @@ -460,6 +466,12 @@ const gCSSProperties1 = { { type: 'discrete', options: [ [ 'auto', '1px' ] ] } ] }, + 'column-height': { + // https://drafts.csswg.org/css-multicol-2/#ch + types: [ 'length', + { type: 'discrete', options: [ [ 'auto', '1px' ] ] } + ] + }, 'counter-increment': { // https://drafts.csswg.org/css-lists-3/#propdef-counter-increment types: [ diff --git a/tests/wpt/tests/web-animations/interfaces/Animation/style-change-events.html b/tests/wpt/tests/web-animations/interfaces/Animation/style-change-events.html index d1c1c96f7b0..c64400e869d 100644 --- a/tests/wpt/tests/web-animations/interfaces/Animation/style-change-events.html +++ b/tests/wpt/tests/web-animations/interfaces/Animation/style-change-events.html @@ -306,6 +306,13 @@ const tests = { ), }); }, + trigger: UsePropertyTest(animation => { + // Get the trigger property. + animation.trigger; + + // Set the trigger property. + animation.trigger = new AnimationTrigger(); + }) }; // Check that each enumerable property and the constructor follow the diff --git a/tests/wpt/tests/webcodecs/video-decoder-no-size-in-configure.https.any.js b/tests/wpt/tests/webcodecs/video-decoder-no-size-in-configure.https.any.js index 3481b465f9e..2ad7040e08b 100644 --- a/tests/wpt/tests/webcodecs/video-decoder-no-size-in-configure.https.any.js +++ b/tests/wpt/tests/webcodecs/video-decoder-no-size-in-configure.https.any.js @@ -72,6 +72,11 @@ promise_test(async t => { decoder.decode(encodedResult.chunk); await decoder.flush(); - assert_equals(decodedResult.codedWidth, encoderConfig.width, 'decoded frame width'); - assert_equals(decodedResult.codedHeight, encoderConfig.height, 'decoded frame height'); + // Note: Coded size may vary based on decoder requirements. + assert_equals( + decodedResult.visibleRect.width, encoderConfig.width, + 'decoded frame width'); + assert_equals( + decodedResult.visibleRect.height, encoderConfig.height, + 'decoded frame height'); }, 'Test configure() without setting width and height'); diff --git a/tests/wpt/tests/webcodecs/video-encoder-orientation.https.any.js b/tests/wpt/tests/webcodecs/video-encoder-orientation.https.any.js new file mode 100644 index 00000000000..de687f11498 --- /dev/null +++ b/tests/wpt/tests/webcodecs/video-encoder-orientation.https.any.js @@ -0,0 +1,107 @@ +// META: global=window,dedicatedworker +// META: script=/common/media.js +// META: script=/webcodecs/utils.js +// META: script=/webcodecs/video-encoder-utils.js + +const defaultConfig = { + codec: 'vp8', + width: 640, + height: 480 +}; + +promise_test(async t => { + let output_chunks = []; + let codecInit = getDefaultCodecInit(t); + let decoderConfig = null; + codecInit.output = (chunk, metadata) => { + assert_not_equals(metadata, null); + if (metadata.decoderConfig) + decoderConfig = metadata.decoderConfig; + output_chunks.push(chunk); + } + + let encoder = new VideoEncoder(codecInit); + let config = defaultConfig; + encoder.configure(config); + + let frame = createFrame(640, 480, 0, {rotation: 90, flip: true}); + encoder.encode(frame); + frame.close(); + await encoder.flush(); + encoder.close(); + assert_equals(output_chunks.length, 1); + assert_equals(decoderConfig.rotation, 90); + assert_equals(decoderConfig.flip, true); +}, 'Encode video frame with orientation'); + +promise_test(async t => { + let output_chunks = []; + let codecInit = getDefaultCodecInit(t); + let decoderConfig = null; + codecInit.output = (chunk, metadata) => { + assert_not_equals(metadata, null); + if (metadata.decoderConfig) + decoderConfig = metadata.decoderConfig; + output_chunks.push(chunk); + } + + let encoder = new VideoEncoder(codecInit); + let config = defaultConfig; + encoder.configure(config); + + let frame1 = createFrame(640, 480, 0, {rotation: 90, flip: true}); + let frame2 = createFrame(640, 480, 33333, {rotation: 90, flip: false}); + let frame3 = createFrame(640, 480, 66666, {rotation: 180, flip: true}); + let frame4 = createFrame(640, 480, 99999, {rotation: 90, flip: true}); + + encoder.encode(frame1); + assert_throws_dom('DataError', () => encoder.encode(frame2)); + assert_throws_dom('DataError', () => encoder.encode(frame3)); + encoder.encode(frame4); + + frame1.close(); + frame2.close(); + frame3.close(); + frame4.close(); + + await encoder.flush(); + encoder.close(); + assert_equals(output_chunks.length, 2); + assert_equals(decoderConfig.rotation, 90); + assert_equals(decoderConfig.flip, true); +}, 'Encode video frames with different orientation has non-fatal failures'); + +promise_test(async t => { + let output_chunks = []; + let codecInit = getDefaultCodecInit(t); + let decoderConfig = null; + codecInit.output = (chunk, metadata) => { + assert_not_equals(metadata, null); + if (metadata.decoderConfig) + decoderConfig = metadata.decoderConfig; + output_chunks.push(chunk); + } + + let encoder = new VideoEncoder(codecInit); + let config = defaultConfig; + encoder.configure(config); + + let frame = createFrame(640, 480, 0, {rotation: 90, flip: true}); + encoder.encode(frame); + frame.close(); + await encoder.flush(); + assert_equals(output_chunks.length, 1); + assert_equals(decoderConfig.rotation, 90); + assert_equals(decoderConfig.flip, true); + + encoder.configure(config); + frame = createFrame(640, 480, 0, {rotation: 270, flip: false}); + encoder.encode(frame); + frame.close(); + await encoder.flush(); + assert_equals(output_chunks.length, 2); + assert_equals(decoderConfig.rotation, 270); + assert_equals(decoderConfig.flip, false); + + encoder.close(); +}, 'Encode video frames with different orientations after reconfigure'); diff --git a/tests/wpt/tests/webcodecs/video-encoder-utils.js b/tests/wpt/tests/webcodecs/video-encoder-utils.js index 916f995156e..5c8d17e5bfe 100644 --- a/tests/wpt/tests/webcodecs/video-encoder-utils.js +++ b/tests/wpt/tests/webcodecs/video-encoder-utils.js @@ -81,13 +81,21 @@ function validateBlackDots(frame, count) { return true; } -function createFrame(width, height, ts = 0) { +function createFrame(width, height, ts = 0, additionalOptions = {}) { let duration = 33333; // 30fps let text = ts.toString(); let cnv = new OffscreenCanvas(width, height); var ctx = cnv.getContext('2d'); fourColorsFrame(ctx, width, height, text); - return new VideoFrame(cnv, { timestamp: ts, duration }); + + // Merge the default options with the provided additionalOptions + const videoFrameOptions = { + timestamp: ts, + duration, + ...additionalOptions, // Spread the additional options to merge them + }; + + return new VideoFrame(cnv, videoFrameOptions); } function createDottedFrame(width, height, dots, ts) { diff --git a/tests/wpt/tests/webnn/conformance_tests/constant-reshape-optimization.https.any.js b/tests/wpt/tests/webnn/conformance_tests/constant-reshape-optimization.https.any.js new file mode 100644 index 00000000000..eaa232b7413 --- /dev/null +++ b/tests/wpt/tests/webnn/conformance_tests/constant-reshape-optimization.https.any.js @@ -0,0 +1,96 @@ +// META: title=test constant reshape optimization +// META: global=window +// META: variant=?cpu +// META: variant=?gpu +// META: variant=?npu +// META: script=../resources/utils.js +// META: timeout=long + +'use strict'; + +const tests = [{ + 'name': 'reshape + reshape + reshape + instanceNormalization float32', + 'graph': { + 'inputs': { + 'originalInput': { + 'data': [ + -97.949951171875, 29.44037628173828, -73.92131042480469, + -38.11185836791992, 41.33772659301758, -59.77853012084961, + -74.66901397705078, -68.16508483886719, 35.82481384277344, + -6.948329448699951, 54.42462158203125, 47.53074645996094, + 66.93562316894531, 76.74034881591797, 5.6758809089660645, + 25.68659210205078, 37.37651062011719, 56.252689361572266, + -16.574905395507812, 42.949893951416016, 73.8739242553711, + -99.00035095214844, -33.11322784423828, -17.380685806274414 + ], + 'descriptor': {shape: [3, 8], dataType: 'float32'}, + 'constant': true + }, + 'originalScale': { + 'data': [-94.42772674560547, 66.69620513916016, -98.56572723388672], + 'descriptor': {shape: [1, 3, 1, 1], dataType: 'float32'}, + 'constant': true + }, + 'originalBias': { + 'data': [-33.048641204833984, 4.511423587799072, -37.93617248535156], + 'descriptor': {shape: [1, 3, 1, 1], dataType: 'float32'}, + 'constant': true + }, + }, + 'operators': [ + { + 'name': 'reshape', + 'arguments': [{'input': 'originalInput'}, {'newShape': [2, 3, 2, 2]}], + 'outputs': 'reshapedInput' + }, + { + 'name': 'reshape', + 'arguments': [{'input': 'originalScale'}, {'newShape': [3]}], + 'outputs': 'reshapedScale' + }, + { + 'name': 'reshape', + 'arguments': [{'input': 'originalBias'}, {'newShape': [3]}], + 'outputs': 'reshapedBias' + }, + { + 'name': 'instanceNormalization', + 'arguments': [ + {'input': 'reshapedInput'}, { + 'options': { + 'scale': 'reshapedScale', + 'bias': 'reshapedBias', + 'epsilon': 0.000001, + 'layout': 'nchw' + } + } + ], + 'outputs': 'instanceNormOutput' + } + ], + 'expectedOutputs': { + 'instanceNormOutput': { + 'data': [ + 70.77738189697266, -179.65554809570312, 23.540178298950195, + -46.8565788269043, 119.31526184082031, -22.847837448120117, + -43.782920837402344, -34.6388053894043, -50.821895599365234, + 126.01134490966797, -127.71744537353516, -99.2166976928711, + -108.09159851074219, -139.83889770507812, 90.26488494873047, + 25.471038818359375, 22.237276077270508, 67.60342407226562, + -107.4271011352539, 35.6320915222168, -186.15142822265625, + 90.01669311523438, -15.238543510437012, -40.37141418457031 + ], + 'descriptor': {shape: [2, 3, 2, 2], dataType: 'float32'} + } + } + } +}]; + +if (navigator.ml) { + tests.forEach((test) => { + webnn_conformance_test( + buildAndExecuteGraph, getInstanceNormPrecisionTolerance, test); + }); +} else { + test(() => assert_implements(navigator.ml, 'missing navigator.ml')); +} diff --git a/tests/wpt/tests/webnn/conformance_tests/instance_normalization.https.any.js b/tests/wpt/tests/webnn/conformance_tests/instance_normalization.https.any.js index 26e0cd0aa93..08d7d6ca337 100644 --- a/tests/wpt/tests/webnn/conformance_tests/instance_normalization.https.any.js +++ b/tests/wpt/tests/webnn/conformance_tests/instance_normalization.https.any.js @@ -21,16 +21,6 @@ // MLOperand instanceNormalization( // MLOperand input, optional MLInstanceNormalizationOptions options = {}); - -const getInstanceNormPrecisionTolerance = (graphResources) => { - // according to - // https://github.com/web-platform-tests/wpt/pull/43891#discussion_r1457026316 - const toleranceValueDict = {float32: 840, float16: 8400}; - const expectedDataType = - getExpectedDataTypeOfSingleOutput(graphResources.expectedOutputs); - return {metricType: 'ULP', value: toleranceValueDict[expectedDataType]}; -}; - const instanceNormTests = [ { 'name': 'instanceNormalization float32 4D tensor default options', diff --git a/tests/wpt/tests/webnn/conformance_tests/reshape.https.any.js b/tests/wpt/tests/webnn/conformance_tests/reshape.https.any.js index fe758193730..05b8ea21e67 100644 --- a/tests/wpt/tests/webnn/conformance_tests/reshape.https.any.js +++ b/tests/wpt/tests/webnn/conformance_tests/reshape.https.any.js @@ -56,6 +56,48 @@ const reshapeTests = [ } } }, + { + 'name': + 'reshape float32 constant tensor to a new shape (reorder all dimensions)', + 'graph': { + 'inputs': { + 'reshapeInput': { + 'data': [ + -30.0561466217041, 99.56941986083984, 88.04620361328125, + -91.87507629394531, -23.7972354888916, -91.28665161132812, + -63.15204620361328, 12.0669527053833, -96.1172866821289, + -44.77365493774414, -80.08650970458984, -64.43756866455078, + 27.64195442199707, -96.86306762695312, 83.6834716796875, + 50.599483489990234, -20.18765640258789, -1.3904608488082886, + -96.93603515625, 65.34143829345703, 34.835994720458984, + 62.01485824584961, -2.8698415756225586, 27.903749465942383 + ], + 'descriptor': {shape: [2, 3, 4], dataType: 'float32'}, + 'constant': true + } + }, + 'operators': [{ + 'name': 'reshape', + 'arguments': [{'input': 'reshapeInput'}, {'newShape': [4, 2, 3]}], + 'outputs': 'reshapeOutput' + }], + 'expectedOutputs': { + 'reshapeOutput': { + 'data': [ + -30.0561466217041, 99.56941986083984, 88.04620361328125, + -91.87507629394531, -23.7972354888916, -91.28665161132812, + -63.15204620361328, 12.0669527053833, -96.1172866821289, + -44.77365493774414, -80.08650970458984, -64.43756866455078, + 27.64195442199707, -96.86306762695312, 83.6834716796875, + 50.599483489990234, -20.18765640258789, -1.3904608488082886, + -96.93603515625, 65.34143829345703, 34.835994720458984, + 62.01485824584961, -2.8698415756225586, 27.903749465942383 + ], + 'descriptor': {shape: [4, 2, 3], dataType: 'float32'} + } + } + } + }, { 'name': 'reshape float32 tensor to a new shape (reduce dimensions)', 'graph': { diff --git a/tests/wpt/tests/webnn/conformance_tests/subgraph.https.any.js b/tests/wpt/tests/webnn/conformance_tests/subgraph.https.any.js index 9b21d6e4f94..a494a8b7a95 100644 --- a/tests/wpt/tests/webnn/conformance_tests/subgraph.https.any.js +++ b/tests/wpt/tests/webnn/conformance_tests/subgraph.https.any.js @@ -2523,6 +2523,137 @@ const subgraphTests = [ } } }, + { + 'name': 'quantized conv2d', + 'graph': { + 'inputs': { + 'input': { + 'data': [0.05605664849281311, 0.7114229798316956, 0.6529743671417236], + 'descriptor': {shape: [1, 1, 1, 3], dataType: 'float32'}, + 'constant': false + }, + 'inputScale': { + 'data': [0.003921568859368563], + 'descriptor': {shape: [1], dataType: 'float32'}, + 'constant': true + }, + 'inputZeroPoint': { + 'data': [-128], + 'descriptor': {shape: [1], dataType: 'int8'}, + 'constant': true + }, + 'filter': { + 'data': [2, 3, 4], + 'descriptor': {shape: [1, 1, 1, 3], dataType: 'int8'}, + 'constant': true + }, + 'filterScale': { + 'data': [0.023458752938762234], + 'descriptor': {shape: [1], dataType: 'float32'}, + 'constant': true + }, + 'filterZeroPoint': { + 'data': [0], + 'descriptor': {shape: [1], dataType: 'int8'}, + 'constant': true + }, + 'bias': { + 'data': [1], + 'descriptor': {shape: [1], dataType: 'int32'}, + 'constant': true + }, + 'biasScale': { + 'data': [0.000091995115004270], + 'descriptor': {shape: [1], dataType: 'float32'}, + 'constant': true + }, + 'biasZeroPoint': { + 'data': [0], + 'descriptor': {shape: [1], dataType: 'int32'}, + 'constant': true + }, + 'outputScale': { + 'data': [0.003921568859368563], + 'descriptor': {shape: [1], dataType: 'float32'}, + 'constant': true + }, + 'outputZeroPoint': { + 'data': [0], + 'descriptor': {shape: [1], dataType: 'int8'}, + 'constant': true + }, + }, + 'operators': [ + { + 'name': 'quantizeLinear', + 'arguments': [ + {'input': 'input'}, + {'scale': 'inputScale', 'zeroPoint': 'inputZeroPoint'} + ], + 'outputs': 'quantizedInput' + }, + { + 'name': 'dequantizeLinear', + 'arguments': [ + {'input': 'quantizedInput'}, + {'scale': 'inputScale', 'zeroPoint': 'inputZeroPoint'} + ], + 'outputs': 'dequantizedInput' + }, + { + 'name': 'dequantizeLinear', + 'arguments': [ + {'input': 'filter'}, + {'scale': 'filterScale', 'zeroPoint': 'filterZeroPoint'} + ], + 'outputs': 'dequantizedFilter' + }, + { + 'name': 'dequantizeLinear', + 'arguments': [ + {'input': 'bias'}, + {'scale': 'biasScale', 'zeroPoint': 'biasZeroPoint'} + ], + 'outputs': 'dequantizedBias' + }, + { + 'name': 'conv2d', + 'arguments': [ + {'input': 'dequantizedInput'}, {'filter': 'dequantizedFilter'}, { + 'options': { + 'inputLayout': 'nhwc', + 'bias': 'dequantizedBias', + 'filterLayout': 'ohwi' + } + } + ], + 'outputs': 'conv2dOutput' + }, + { + 'name': 'quantizeLinear', + 'arguments': [ + {'input': 'conv2dOutput'}, + {'scale': 'outputScale', 'zeroPoint': 'outputZeroPoint'} + ], + 'outputs': 'quantizedConv2dOutput' + }, + { + 'name': 'dequantizeLinear', + 'arguments': [ + {'input': 'quantizedConv2dOutput'}, + {'scale': 'outputScale', 'zeroPoint': 'outputZeroPoint'} + ], + 'outputs': 'output' + } + ], + 'expectedOutputs': { + 'output': { + 'data': [0.11372549831867218], + 'descriptor': {shape: [1, 1, 1, 1], dataType: 'float32'} + } + } + } + }, ]; if (navigator.ml) { diff --git a/tests/wpt/tests/webnn/resources/utils.js b/tests/wpt/tests/webnn/resources/utils.js index 7cecf29061f..70c97a8454c 100644 --- a/tests/wpt/tests/webnn/resources/utils.js +++ b/tests/wpt/tests/webnn/resources/utils.js @@ -975,6 +975,15 @@ const getConv2dPrecisionTolerance = return {metricType: 'ULP', value: toleranceValueDict[expectedDataType]}; }; +const getInstanceNormPrecisionTolerance = (graphResources) => { + // according to + // https://github.com/web-platform-tests/wpt/pull/43891#discussion_r1457026316 + const toleranceValueDict = {float32: 840, float16: 8400}; + const expectedDataType = + getExpectedDataTypeOfSingleOutput(graphResources.expectedOutputs); + return {metricType: 'ULP', value: toleranceValueDict[expectedDataType]}; +}; + const getExpectedDataTypeOfSingleOutput = (expectedOutput) => { const expectedDescriptor = expectedOutput[Object.keys(expectedOutput)[0]].descriptor; diff --git a/tests/wpt/tests/webrtc/RTCIceCandidate-constructor.html b/tests/wpt/tests/webrtc/RTCIceCandidate-constructor.html index b760c7b05a5..05c0849f7a0 100644 --- a/tests/wpt/tests/webrtc/RTCIceCandidate-constructor.html +++ b/tests/wpt/tests/webrtc/RTCIceCandidate-constructor.html @@ -151,12 +151,15 @@ assert_equals(candidate.usernameFragment, null, 'usernameFragment'); }, 'new RTCIceCandidate({ ... }) with invalid candidate string and sdpMid'); +["most", "all"].forEach(howMany => { test(t => { const candidate = new RTCIceCandidate({ candidate: candidateString, sdpMid: 'video', sdpMLineIndex: 1, - usernameFragment: 'test' + usernameFragment: 'test', + relayProtocol: 'udp', + url: 'stun:stun.example.org' }); assert_equals(candidate.candidate, candidateString, 'candidate'); @@ -175,14 +178,21 @@ assert_equals(candidate.tcpType, null, 'tcpType'); assert_equals(candidate.relatedAddress, null, 'relatedAddress'); assert_equals(candidate.relatedPort, null, 'relatedPort'); - }, 'new RTCIceCandidate({ ... }) with nondefault values for all fields'); + // The remaining fields are newer, so test them seperately + if (howMany != "most") { + assert_equals(candidate.relayProtocol, 'udp', 'relayProtocol'); + assert_equals(candidate.url, 'stun:stun.example.org', 'url'); + } + }, `new RTCIceCandidate({ ... }) with nondefault values for ${howMany} fields`); test(t => { const candidate = new RTCIceCandidate({ candidate: candidateString2, sdpMid: 'video', sdpMLineIndex: 1, - usernameFragment: 'user1' + usernameFragment: 'user1', + relayProtocol: 'tcp', + url: 'turn:turn.example.net' }); assert_equals(candidate.candidate, candidateString2, 'candidate'); @@ -201,7 +211,28 @@ assert_equals(candidate.tcpType, 'active', 'tcpType'); assert_equals(candidate.relatedAddress, 'www.example.com', 'relatedAddress'); assert_equals(candidate.relatedPort, 22222, 'relatedPort'); - }, 'new RTCIceCandidate({ ... }) with nondefault values for all fields, tcp candidate'); + // The remaining fields are newer, so test them seperately + if (howMany != "most") { + assert_equals(candidate.url, 'turn:turn.example.net', 'url'); + assert_equals(candidate.relayProtocol, 'tcp', 'relayProtocol'); + } + }, `new RTCIceCandidate({ ... }) with nondefault values for ${howMany} fields, tcp candidate`); +}); + + test(t => { + let candidate = new RTCIceCandidate(new RTCIceCandidate({ + sdpMid: 'video', + relayProtocol: 'tls', + url: 'turn:turn.example.net' + })); + + assert_equals(candidate.relayProtocol, 'tls', 'relayProtocol cloned'); + assert_equals(candidate.url, 'turn:turn.example.net', 'url cloned'); + + candidate = new RTCIceCandidate(JSON.parse(JSON.stringify(candidate))); + assert_equals(candidate.relayProtocol, null, 'relayProtocol not signaled'); + assert_equals(candidate.url, null, 'url not signaled'); + }, `new RTCIceCandidate({ relayProtocol, url }) cloned vs signaled`); test(t => { // sdpMid is not validated in RTCIceCandidate diff --git a/tests/wpt/tests/webrtc/RTCPeerConnection-addIceCandidate.html b/tests/wpt/tests/webrtc/RTCPeerConnection-addIceCandidate.html index 618ef7e33c6..4517554bc0b 100644 --- a/tests/wpt/tests/webrtc/RTCPeerConnection-addIceCandidate.html +++ b/tests/wpt/tests/webrtc/RTCPeerConnection-addIceCandidate.html @@ -641,4 +641,28 @@ a=rtcp-rsize usernameFragment: usernameFragment1 }))); }, 'Add candidate with sdpMid belonging to different usernameFragment should reject with OperationError'); + + promise_test(async t => { + const pc = new RTCPeerConnection(); + t.add_cleanup(() => pc.close()); + await pc.setRemoteDescription(sessionDesc); + const recognized = []; + await pc.addIceCandidate({ + candidate: candidateStr1, + sdpMid: sdpMid1, + get relayProtocol() { + recognized.push("relayProtocol"); + return null; + }, + get url() { + recognized.push("url"); + return null; + }, + get usernameFragment() { + recognized.push("usernameFragment"); + return null; + }, + }); + assert_array_equals(recognized, ['usernameFragment']); + }, 'addIceCandidate should not recognize relayProtocol or url'); diff --git a/tests/wpt/tests/webrtc/RTCRtpReceiver-getSynchronizationSources.https.html b/tests/wpt/tests/webrtc/RTCRtpReceiver-getSynchronizationSources.https.html index cb5336f3f35..de9ad184af0 100644 --- a/tests/wpt/tests/webrtc/RTCRtpReceiver-getSynchronizationSources.https.html +++ b/tests/wpt/tests/webrtc/RTCRtpReceiver-getSynchronizationSources.https.html @@ -100,14 +100,4 @@ promise_test(async t => { assert_less_than_equal(ssrc.audioLevel, 1); }, '[audio-only] RTCRtpSynchronizationSource.audioLevel is a number [0, 1]'); -// This test only passes if the implementation is sending the RFC 6464 extension -// header and the "vad" extension attribute is not "off", otherwise -// voiceActivityFlag is absent. TODO: Consider moving this test to an -// optional-to-implement subfolder? -promise_test(async t => { - const receiver = await initiateSingleTrackCallAndReturnReceiver(t, 'audio'); - const [ssrc] = await listenForSSRCs(t, receiver); - assert_equals(typeof ssrc.voiceActivityFlag, 'boolean'); -}, '[audio-only] RTCRtpSynchronizationSource.voiceActivityFlag is a boolean'); - diff --git a/tests/wpt/tests/webrtc/protocol/h265-loopback.https.html b/tests/wpt/tests/webrtc/protocol/h265-loopback.https.html new file mode 100644 index 00000000000..c3a394ef8f4 --- /dev/null +++ b/tests/wpt/tests/webrtc/protocol/h265-loopback.https.html @@ -0,0 +1,76 @@ + + + + + + + diff --git a/tests/wpt/tests/xhr/resources/redirect.py b/tests/wpt/tests/xhr/resources/redirect.py index 3839b635e02..e2786b45031 100644 --- a/tests/wpt/tests/xhr/resources/redirect.py +++ b/tests/wpt/tests/xhr/resources/redirect.py @@ -1,10 +1,15 @@ import time +from urllib.parse import parse_qs from wptserve.utils import isomorphic_encode def main(request, response): code = int(request.GET.first(b"code", 302)) location = request.GET.first(b"location", isomorphic_encode(request.url_parts.path + u"?followed")) + if location: + location = parse_qs(u"location=" + location.decode(u"UTF-8"))[u"location"][0] + if location.startswith(u"redirect.py"): + location += u"&code=" + str(code) if b"delay" in request.GET: delay = float(request.GET.first(b"delay")) diff --git a/tests/wpt/tests/xhr/send-redirect.htm b/tests/wpt/tests/xhr/send-redirect.htm index 7d73f0f64cc..de3899f5e5d 100644 --- a/tests/wpt/tests/xhr/send-redirect.htm +++ b/tests/wpt/tests/xhr/send-redirect.htm @@ -10,36 +10,73 @@
      diff --git a/tests/wpt/tests/xhr/setrequestheader-case-insensitive.htm b/tests/wpt/tests/xhr/setrequestheader-case-insensitive.htm index 1aed30d1c2a..ce10482cad8 100644 --- a/tests/wpt/tests/xhr/setrequestheader-case-insensitive.htm +++ b/tests/wpt/tests/xhr/setrequestheader-case-insensitive.htm @@ -9,26 +9,28 @@
      diff --git a/tests/wpt/webgl/meta/conformance/textures/image_bitmap_from_video/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html.ini b/tests/wpt/webgl/meta/conformance/textures/image_bitmap_from_video/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html.ini index dc7b31a735f..3f8b4a2e97d 100644 --- a/tests/wpt/webgl/meta/conformance/textures/image_bitmap_from_video/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html.ini +++ b/tests/wpt/webgl/meta/conformance/textures/image_bitmap_from_video/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html.ini @@ -2,3 +2,9 @@ expected: TIMEOUT [Overall test] expected: NOTRUN + + [WebGL test #1] + expected: FAIL + + [WebGL test #3] + expected: FAIL