diff --git a/tests/wpt/meta/MANIFEST.json b/tests/wpt/meta/MANIFEST.json index 72c930afccf..b5e319c83c3 100644 --- a/tests/wpt/meta/MANIFEST.json +++ b/tests/wpt/meta/MANIFEST.json @@ -411,10 +411,12 @@ "ai": { "language_detection": { "availability-detached-crash.https.html": [ - "5f76d59eb3540048bc0586f2a1ac5b3b313a147e", + "ee5e27e35b60e89f17f8008d809f4d6040e4eb5b", [ null, - {} + { + "testdriver": true + } ] ] } @@ -790,6 +792,13 @@ {} ] ], + "chrome-bug-405795970.html": [ + "5b45527fd9ccb2038fdd3f459bcf10a9514f199c", + [ + null, + {} + ] + ], "pseudo-element-animation-with-marker.html": [ "ba7fc2371abfdc463f8ed36e6f1bb39fb9ef6ef5", [ @@ -9893,6 +9902,13 @@ ] }, "styling": { + "cx-sibling-index-crash.html": [ + "9fe97b12d774a547a2cb3bf65f9a9ad8f1af8a58", + [ + null, + {} + ] + ], "font-size-number-calc-crash.svg": [ "6b56d9df2b426e2376f87668a98f5e21ee56e37b", [ @@ -10055,6 +10071,13 @@ null, {} ] + ], + "sibling-index-offset-crash.html": [ + "812a7952738231f4c1bc2bf22c0d87f9a39c86cd", + [ + null, + {} + ] ] }, "interfaces": { @@ -124262,6 +124285,32 @@ }, "css-align": { "abspos": { + "align-items-static-position-001.tentative.html": [ + "06c11e6cdb61a519fdbc77d377fb0ace0e92f6b1", + [ + null, + [ + [ + "/css/css-align/abspos/align-items-static-position-001-ref.tentative.html", + "==" + ] + ], + {} + ] + ], + "align-items-static-position-002.tentative.html": [ + "f90004b5672a1fef9f42cf32ae13b06fc085e0ec", + [ + null, + [ + [ + "/css/css-align/abspos/align-items-static-position-002-ref.tentative.html", + "==" + ] + ], + {} + ] + ], "align-items-static-position.html": [ "0b653ca5d6c2bbaf29b3834aec7d806169c8de55", [ @@ -124301,6 +124350,110 @@ {} ] ], + "align-self-static-position-003.html": [ + "39f871f4c2b837dc67b30d615e9c8ad0e4392d24", + [ + null, + [ + [ + "/css/css-align/abspos/align-self-static-position-003-ref.html", + "==" + ] + ], + {} + ] + ], + "align-self-static-position-004.html": [ + "afba7215b116506138434da5fa3c13ec832fb393", + [ + null, + [ + [ + "/css/css-align/abspos/align-self-static-position-004-ref.html", + "==" + ] + ], + {} + ] + ], + "align-self-static-position-005.html": [ + "e148f0ebda37797d5573f4c3a2d4b7c52e5a2f2e", + [ + null, + [ + [ + "/css/css-align/abspos/align-self-static-position-005-ref.html", + "==" + ] + ], + {} + ] + ], + "align-self-static-position-006.html": [ + "253b2a52f618a82fcf13b82bd61075bc2dcee8be", + [ + null, + [ + [ + "/css/css-align/abspos/align-self-static-position-006-ref.html", + "==" + ] + ], + {} + ] + ], + "align-self-static-position-007.html": [ + "ebe872aaab909e29abf3eed33840a577a616b34b", + [ + null, + [ + [ + "/css/css-align/abspos/align-self-static-position-007-ref.html", + "==" + ] + ], + {} + ] + ], + "align-self-static-position-008.html": [ + "187974884b4aded9a031c0c2fdc9d2caafd9ef5b", + [ + null, + [ + [ + "/css/css-align/abspos/align-self-static-position-008-ref.html", + "==" + ] + ], + {} + ] + ], + "align-self-stretch-auto-margins-aspect-ratio.html": [ + "4eaa9d2f3a6dbab63d3d931d4c58a427bc11976f", + [ + null, + [ + [ + "/css/reference/ref-filled-green-100px-square.xht", + "==" + ] + ], + {} + ] + ], + "align-self-stretch-auto-margins.html": [ + "9d1b6454c848c02b7fef360fb447d4d6b46ee8c0", + [ + null, + [ + [ + "/css/reference/ref-filled-green-100px-square.xht", + "==" + ] + ], + {} + ] + ], "align-self-stretch-auto-size.tentative.html": [ "74091feacfe63813aa4a6bbc3ef1b4d3e4e8a59c", [ @@ -124326,6 +124479,32 @@ ], {} ] + ], + "justify-self-stretch-auto-margins-aspect-ratio.html": [ + "c50b32f089b1b0043ac5d9dbd0f79906d82827f3", + [ + null, + [ + [ + "/css/reference/ref-filled-green-100px-square.xht", + "==" + ] + ], + {} + ] + ], + "justify-self-stretch-auto-margins.html": [ + "7d7b4bfc8570d3dde59fc903de7cb173b0b5baf8", + [ + null, + [ + [ + "/css/reference/ref-filled-green-100px-square.xht", + "==" + ] + ], + {} + ] ] }, "baseline-of-scrollable-1a.html": [ @@ -186631,6 +186810,192 @@ {} ] ] + }, + "tentative": { + "multicol": { + "multicol-gap-decorations-001.html": [ + "c3752156c7d54f6620ade9715b4562582c6135f6", + [ + null, + [ + [ + "/css/css-gaps/tentative/multicol/multicol-gap-decorations-001-ref.html", + "==" + ] + ], + {} + ] + ], + "multicol-gap-decorations-002.html": [ + "0b632fa94ace20a253f5f56079d29adbb7997135", + [ + null, + [ + [ + "/css/css-gaps/tentative/multicol/multicol-gap-decorations-002-ref.html", + "==" + ] + ], + {} + ] + ], + "multicol-gap-decorations-003.html": [ + "2f2473fd04686283e120abd29b5f273da40c3ef3", + [ + null, + [ + [ + "/css/css-gaps/tentative/multicol/multicol-gap-decorations-003-ref.html", + "==" + ] + ], + {} + ] + ], + "multicol-gap-decorations-004.html": [ + "0dcbeef4df82f4d9dc6e2ed2215ee2fa39773052", + [ + null, + [ + [ + "/css/css-gaps/tentative/multicol/multicol-gap-decorations-004-ref.html", + "==" + ] + ], + {} + ] + ], + "multicol-gap-decorations-005.html": [ + "daa65e904e71ee62c83ba2a16933d13311328539", + [ + null, + [ + [ + "/css/css-gaps/tentative/multicol/multicol-gap-decorations-005-ref.html", + "==" + ] + ], + {} + ] + ], + "multicol-gap-decorations-006.html": [ + "64b3b007ab5f6282c95bb79a39a3bcf89d10de88", + [ + null, + [ + [ + "/css/css-gaps/tentative/multicol/multicol-gap-decorations-006-ref.html", + "==" + ] + ], + {} + ] + ], + "multicol-gap-decorations-007.html": [ + "1f23ed7f7ca34602f4310627edb5ae96885028b8", + [ + null, + [ + [ + "/css/css-gaps/tentative/multicol/multicol-gap-decorations-007-ref.html", + "==" + ] + ], + {} + ] + ], + "multicol-gap-decorations-008.html": [ + "ed299b5d9f68e8560d99cdd58fcc9b3830929117", + [ + null, + [ + [ + "/css/css-gaps/tentative/multicol/multicol-gap-decorations-008-ref.html", + "==" + ] + ], + {} + ] + ], + "multicol-gap-decorations-009.html": [ + "b00c6a70f8abf9894e548d9e40882e396ed5b1f0", + [ + null, + [ + [ + "/css/css-gaps/tentative/multicol/multicol-gap-decorations-009-ref.html", + "==" + ] + ], + {} + ] + ], + "multicol-gap-decorations-010.html": [ + "61bb4a9b93314bb7d96a90b98f67b175a4cf86c6", + [ + null, + [ + [ + "/css/css-gaps/tentative/multicol/multicol-gap-decorations-010-ref.html", + "==" + ] + ], + {} + ] + ], + "multicol-gap-decorations-011.html": [ + "cf588ded41ea3e811c241984ec8909e5fbcf14be", + [ + null, + [ + [ + "/css/css-gaps/tentative/multicol/multicol-gap-decorations-011-ref.html", + "==" + ] + ], + {} + ] + ], + "multicol-gap-decorations-012.html": [ + "078b810cf8e608b16dd2a898136f4ce757325ed9", + [ + null, + [ + [ + "/css/css-gaps/tentative/multicol/multicol-gap-decorations-012-ref.html", + "==" + ] + ], + {} + ] + ], + "multicol-gap-decorations-013.html": [ + "d4170084f066688fd136b2abeb40da03b1243816", + [ + null, + [ + [ + "/css/css-gaps/tentative/multicol/multicol-gap-decorations-013-ref.html", + "==" + ] + ], + {} + ] + ], + "multicol-gap-decorations-014.html": [ + "1dcd393d99aa19021684e42e9f835e17281fc6a4", + [ + null, + [ + [ + "/css/css-gaps/tentative/multicol/multicol-gap-decorations-014-ref.html", + "==" + ] + ], + {} + ] + ] + } } }, "css-grid": { @@ -192732,6 +193097,32 @@ {} ] ], + "replaced-element-016.tentative.html": [ + "2d5b401b8d20ac682675b3eeb23f264239b83d49", + [ + null, + [ + [ + "/css/reference/ref-filled-green-100px-square-only.html", + "==" + ] + ], + {} + ] + ], + "replaced-element-017.tentative.html": [ + "575fa8c78179d3741948e0d987fc446534bb6a86", + [ + null, + [ + [ + "/css/reference/ref-filled-green-100px-square-only.html", + "==" + ] + ], + {} + ] + ], "table-with-infinite-max-intrinsic-width.html": [ "877e982cd4c5987f131587da33a23f3b7a49d538", [ @@ -249641,6 +250032,32 @@ {} ] ], + "intrinsic-percent-replaced-029.tentative.html": [ + "feff03bbe2e1a1e18a22429a58a9d20cc0f9987b", + [ + null, + [ + [ + "/css/reference/ref-filled-green-100px-square-only.html", + "==" + ] + ], + {} + ] + ], + "intrinsic-percent-replaced-030.tentative.html": [ + "5a6b103c22e20d23aa842e72ac6ffe6c9948156f", + [ + null, + [ + [ + "/css/reference/ref-filled-green-100px-square-only.html", + "==" + ] + ], + {} + ] + ], "intrinsic-percent-replaced-dynamic-001.html": [ "1128ffa1759f26011c0639d8b5f498322c6396ac", [ @@ -324194,6 +324611,19 @@ {} ] ], + "table-cell-align-006.html": [ + "a8d33f281fda76603ea312601933fdf170ddf64b", + [ + null, + [ + [ + "/css/css-writing-modes/reference/table-cell-align-006-ref.html", + "==" + ] + ], + {} + ] + ], "table-cell-valign-001.html": [ "f3026810dd58cd04f87df5f3ae2ad474d5c289db", [ @@ -347931,7 +348361,7 @@ ] ], "marquee-with-trusted-types.html": [ - "57f4985032165e989ba261c32c11c9acf0491908", + "f16c58bb85d71b011e4ee524dfb63184a5fca81a", [ null, [ @@ -353323,19 +353753,6 @@ } ] ], - "select-multiple-base-appearance.html": [ - "48673b446bc8e6e6cce72e6c4d29671bed313779", - [ - null, - [ - [ - "/html/semantics/forms/the-select-element/customizable-select/select-multiple-base-appearance-ref.html", - "==" - ] - ], - {} - ] - ], "select-only-button-opt-in.tentative.html": [ "b010d15e8adab1ebfe448842e195e29b24d332fb", [ @@ -353568,6 +353985,21 @@ ] ] }, + "customizable-select-in-page": { + "customizable-select-in-page-appearance.tentative.html": [ + "b3bf75eb0ff25df6d4737326940a498a11d264d2", + [ + null, + [ + [ + "/html/semantics/forms/the-select-element/customizable-select-in-page/customizable-select-in-page-appearance-ref.html", + "==" + ] + ], + {} + ] + ] + }, "reset-algorithm-rendering.html": [ "67da173ff2eb0d90c063294db486eaa34ea8878a", [ @@ -361587,7 +362019,7 @@ ] ], "animation-with-transform.html": [ - "f741cc634d732624186d8d0a034822bef831c872", + "323d984c98938fbb5bd224560d7adf0711149430", [ null, [ @@ -361652,7 +362084,7 @@ ] ], "two-animations-attach-to-same-scroll-timeline-cancel-one.html": [ - "ed8e8337a65af3033e3df4e158333d225d88a56d", + "28973d2d1858421ff53bae1d667c160152d6ecda", [ null, [ @@ -361665,7 +362097,7 @@ ] ], "two-animations-attach-to-same-scroll-timeline.html": [ - "de50599fbafb634e44ccd9546e18bea8ba7f7f7e", + "45ba3f99ccdbf9ef64f915c1c124d7f946a1f74f", [ null, [ @@ -370762,7 +371194,7 @@ [] ], "docker.yml": [ - "66794b69aba0f2ee5984c269434cdab2ee9a6cfc", + "5de0cc4bcb1faf6c919d41998bd9ec035e8594cf", [] ], "documentation.yml": [ @@ -371505,6 +371937,10 @@ "iframe-helper.html": [ "fe07de3f8abac59ddbd6ccfd706a5e69c5b8b4c4", [] + ], + "util.js": [ + "7cb3e7c2e13cb0415be019580ccfcc339cd7bd8f", + [] ] } }, @@ -374135,6 +374571,14 @@ "eb50cb54ef867844ea741fe1fdb01df970e4deea", [] ], + "clear-site-data-prefetchCache.py": [ + "3a332dd58b2012154b6a193410be34dc3f92a172", + [] + ], + "clear-site-data-prerenderCache.py": [ + "bf845cfb699c311c145357ad12a5b4b056d2c986", + [] + ], "controlled-endpoint.py": [ "bb4f464088e46438f993d66ae0da134bb4410c7b", [] @@ -413754,6 +414198,14 @@ [] ], "abspos": { + "align-items-static-position-001-ref.tentative.html": [ + "22c1fd03e38792a3d697659c1e087178c453f1ed", + [] + ], + "align-items-static-position-002-ref.tentative.html": [ + "6f53b04178707a83eb2822e5807cf42d3c547ca6", + [] + ], "align-items-static-position-ref.html": [ "fd7093f98748709d0f6d03c9dc9993a7a1447446", [] @@ -413766,6 +414218,30 @@ "d8bef63aa292aecd1ce6628e27abbc2c196f8a29", [] ], + "align-self-static-position-003-ref.html": [ + "132bbb7360fb5a40130e0a7af9ffb3a9d2baf753", + [] + ], + "align-self-static-position-004-ref.html": [ + "68130ee1d7e723a6b5c4c8a7e3b78d7bdb2f35da", + [] + ], + "align-self-static-position-005-ref.html": [ + "947bd2704481f757f3d1f4bf51105483978cc7ff", + [] + ], + "align-self-static-position-006-ref.html": [ + "5bbafc6484585ad25223cf1b5825214e90705836", + [] + ], + "align-self-static-position-007-ref.html": [ + "bc9b5f4f6502f647e97332401308a87a64c339f0", + [] + ], + "align-self-static-position-008-ref.html": [ + "79cf612b8f846920af1d2d7b188376693c789b3f", + [] + ], "align-self-with-flex-grid-parent-ref.html": [ "c87289d450e9ec95677c17a6d72d3e34dec4d05d", [] @@ -430722,6 +431198,66 @@ "7e0d9cbcd6ff64b17bc8fe57616a37ba29a9fd8e", [] ] + }, + "tentative": { + "multicol": { + "multicol-gap-decorations-001-ref.html": [ + "834c96ccd397fbc41abcfb80dbd298094cb929b1", + [] + ], + "multicol-gap-decorations-002-ref.html": [ + "d132f0ca6770be13d87ee66fb033f2f498d0e37b", + [] + ], + "multicol-gap-decorations-003-ref.html": [ + "cd26da243891f05c83c5d1eea17c747dcf390f05", + [] + ], + "multicol-gap-decorations-004-ref.html": [ + "002b1f2b594cf791b6d66613f48128e915517e01", + [] + ], + "multicol-gap-decorations-005-ref.html": [ + "6543021c97934a217568e567ac005166f7a9c0a0", + [] + ], + "multicol-gap-decorations-006-ref.html": [ + "4cb56d207fef4f801ec2063828103712267c030e", + [] + ], + "multicol-gap-decorations-007-ref.html": [ + "09973ddc690a899be9fb321e603b7831bfeb22a7", + [] + ], + "multicol-gap-decorations-008-ref.html": [ + "d49c2f50f1909d5b04be07798e62448d9b82ab72", + [] + ], + "multicol-gap-decorations-009-ref.html": [ + "124bf7eaeb1779d067d84f1c30560f45763add7c", + [] + ], + "multicol-gap-decorations-010-ref.html": [ + "9582ab4103d197d25823ed75dc8cafa83e0b1a7c", + [] + ], + "multicol-gap-decorations-011-ref.html": [ + "3387918d399cdbd3b39364ebe954a2a204a5145c", + [] + ], + "multicol-gap-decorations-012-ref.html": [ + "9fb5e85e920812d259e057c7538d35db56659b05", + [] + ], + "multicol-gap-decorations-013-ref.html": [ + "8e426d8ed32b25248e602e063e69678ca94b5e09", + [] + ], + "multicol-gap-decorations-014-ref.html": [ + "9d9674bd476896f0f1b03ec6835b069c97d9c8e5", + [] + ] + } } }, "css-gcpm": { @@ -454356,6 +454892,10 @@ "c5cd6fe28a97343b94989193c4583ddd2393538a", [] ], + "table-cell-align-006-ref.html": [ + "c5b52346fc0ad931aedb40339150146e067bc268", + [] + ], "table-cell-valign-001-ref.html": [ "03cb9ec9e4c6b1d7b6e0973b57f3c93ce293b1e4", [] @@ -460256,7 +460796,7 @@ }, "include": { "editor-test-utils.js": [ - "9c5600af77bf22c936cbe383a9667790d2cd8c10", + "f0c4f58399263a453b11a37e54d7152d935adec5", [] ], "implementation.js": [ @@ -464917,7 +465457,7 @@ [] ], "fledge-util.sub.js": [ - "0a18ea40d3d25e22acef6a7c32f0e644989294cf", + "49ebfd1c596c102970f0062592284b14da3841f9", [] ], "fledge_http_server_util.py": [ @@ -464936,6 +465476,14 @@ "54873674eb58783731237dde5ef299ce15947638", [] ], + "record-click.py": [ + "b4e76873d9b12227e350e2d4d01321cab05a44ce", + [] + ], + "record-view.py": [ + "d423b2d9c72930a1302738418eef197f28dfb661", + [] + ], "redirect-to-trusted-signals.py": [ "7da27cd6872f9119c8647be939aecc4452526e50", [] @@ -469620,6 +470168,10 @@ "2d.gradient.object.current.png": [ "d638d033868afd3aab0a7b26d5b2a0a2b95da010", [] + ], + "WEB_FEATURES.yml": [ + "319b5b8e04cb32161be0d8eb36cc4ba99eb6459c", + [] ] }, "filters": { @@ -470040,6 +470592,10 @@ ] }, "fill-and-stroke-styles": { + "WEB_FEATURES.yml": [ + "5d9106c1cd63b77005e44a30177d9e623f4e98df", + [] + ], "conic-gradient-expected.html": [ "f347abc9d3939fb52c4fe08d949f8d96c4de3386", [] @@ -470950,6 +471506,10 @@ "2d.gradient.hueInterpolationMethod-expected.html": [ "13ae67ad970eb6bc6a94d837d3f2c01c2ad9c3ba", [] + ], + "WEB_FEATURES.yml": [ + "319b5b8e04cb32161be0d8eb36cc4ba99eb6459c", + [] ] }, "filters": { @@ -472316,82 +472876,6 @@ "244167937219cfd784f13d8ed37eedead64665e9", [] ] - }, - "tentative": { - "restrict-properties": { - "README.md": [ - "b3c24c3f82d2dbf07eefa9fa2e88fcf3817473d2", - [] - ], - "coop-rp-in-navigation-chain.https.html.headers": [ - "073ce7adfbd81cb7c0b2f91f96c8349b6677f26c", - [] - ], - "iframe-popup-about-blank.https.window.js.headers": [ - "19d0dbe4e18df8ba52c2a564853f5614a0469b95", - [] - ], - "iframe-popup-to-so.https.html.headers": [ - "d5c99062d2bb8f9660b68c172754867b598ed43f", - [] - ], - "iframe-popup-to-soap.https.html.headers": [ - "d5c99062d2bb8f9660b68c172754867b598ed43f", - [] - ], - "iframe-popup-to-un.https.html.headers": [ - "d5c99062d2bb8f9660b68c172754867b598ed43f", - [] - ], - "iframe-popup.https.html.headers": [ - "d5c99062d2bb8f9660b68c172754867b598ed43f", - [] - ], - "popup-so.https.html.headers": [ - "46ad58d83bf6e98913ca4c564b7acb8f19fa0093", - [] - ], - "popup-soap.https.html.headers": [ - "d83ed86fb9b5d159b9f380424887402edc96cb75", - [] - ], - "popup-un.https.html.headers": [ - "073ce7adfbd81cb7c0b2f91f96c8349b6677f26c", - [] - ], - "popup-with-cross-origin.https.html.headers": [ - "d5c99062d2bb8f9660b68c172754867b598ed43f", - [] - ], - "popup-with-same-origin.https.html.headers": [ - "d5c99062d2bb8f9660b68c172754867b598ed43f", - [] - ], - "popup-with-same-site.https.html.headers": [ - "d5c99062d2bb8f9660b68c172754867b598ed43f", - [] - ], - "reporting-bcg-reuse.https.html.sub.headers": [ - "33abadd83dd9187bfa5ecf811f9fef7058412780", - [] - ], - "reporting-from-rp-ro.https.html.sub.headers": [ - "07ecad96f2493c7ddc70cc5f37d242c07f0cabb1", - [] - ], - "reporting-from-rp.https.html.sub.headers": [ - "a61e2919c8acb6be886ef16e764f1ba5dcabe9bc", - [] - ], - "reporting-to-rp-ro.https.html.headers": [ - "16903320bb50789e0a64f9620540f1cc8c0902fd", - [] - ], - "reporting-to-rp.https.html.headers": [ - "16903320bb50789e0a64f9620540f1cc8c0902fd", - [] - ] - } } }, "document-isolation-policy": { @@ -476387,6 +476871,12 @@ [] ] } + }, + "writing-suggestions": { + "WEB_FEATURES.yml": [ + "4700eca4a12b8b607c16d85ff987a8ef42ac81a3", + [] + ] } }, "the-hidden-attribute": { @@ -476998,7 +477488,7 @@ [] ], "marquee-with-trusted-types-ref.html": [ - "b177f47b757cc278abe79f5b59d9063f6911dbd3", + "5042557212e58741859ad6750543540cff563493", [] ] } @@ -479774,10 +480264,6 @@ "b351c80c273940c8422db8f66da959fb36e962cb", [] ], - "select-multiple-base-appearance-ref.html": [ - "45a74da7559c72ee5840c00842aef4fc23915e0e", - [] - ], "select-only-picker-opt-in-ref.html": [ "67a0abe43f2d1aad0b1d82da8b8cdfc77a25b549", [] @@ -479815,6 +480301,22 @@ [] ] }, + "customizable-select-in-page": { + "customizable-select-in-page-appearance-ref.html": [ + "57ea51e367cfad284ed80e71870698dfed0b26e4", + [] + ], + "resources": { + "customizable-select-in-page.css": [ + "deb080b4756cf51d2ece9d2b132e9fff6ccd6f7c", + [] + ], + "customizable-select-in-page.js": [ + "1323094332135c46297a1df5c9fed1922efe8f4a", + [] + ] + } + }, "reset-algorithm-rendering-ref.html": [ "acf192d1d55b7da110d04651093e3ebe0cd48214", [] @@ -483763,6 +484265,10 @@ }, "system-state-and-capabilities": { "the-navigator-object": { + "WEB_FEATURES.yml": [ + "a1af3e21a48f5941a078209963d1ae7bc379dd59", + [] + ], "resources": { "handler-sw.js": [ "5fd915d17f98d8fa9c3c81451f46d71bc6cd024e", @@ -484806,6 +485312,12 @@ [] ] }, + "emulation": { + "set_geolocation_override.https.html.ini": [ + "7de34991442711cd389fe324dabd6005605268af", + [] + ] + }, "permissions": { "set_permission.https.html.ini": [ "2101196fa2fe436c3f94c5f84451f1746501c84d", @@ -485268,10 +485780,6 @@ "035e1d233d6f5646768b78e878c9db43b84a0068", [] ], - "WebCryptoAPI.idl": [ - "ff7a89cd0d51be01760b9bfdb709393f4db5fd31", - [] - ], "accelerometer.idl": [ "a082224dc88e10e043d86d09cbf981616f6bb9a7", [] @@ -485597,7 +486105,7 @@ [] ], "fedcm.idl": [ - "215f375432e930afb63c26fb9bdc42365ca8c61d", + "5ce2d260f114ddcc25210905ee010a9b96b47410", [] ], "fenced-frame.idl": [ @@ -485689,7 +486197,7 @@ [] ], "image-capture.idl": [ - "21e03d4db8248d469671d8286be877e3ad7dc7b5", + "26cc7fab5cdf1f3209057cf159171961b779dcd5", [] ], "image-resource.idl": [ @@ -485829,7 +486337,7 @@ [] ], "mediastream-recording.idl": [ - "496bfcf2e27da7a7da6c653b8e7f27b702f7386f", + "68c891cdc918e7468de8add96acce35d6d63102f", [] ], "model-element.idl": [ @@ -486121,7 +486629,7 @@ [] ], "turtledove.idl": [ - "b9f50d47885cf9186c9a2dd3c2d08e1dc4054431", + "7f11cdc37908f411280ea6f79eeb759c85acbe62", [] ], "ua-client-hints.idl": [ @@ -486245,13 +486753,17 @@ [] ], "webcodecs.idl": [ - "274ef96578a3d16b9fcda6e817c25e12373ec824", + "3d4db1ed49d316c31005a5be857ad7d48eca378d", [] ], "webcrypto-secure-curves.idl": [ "01bb290b747827bb4e45ea6d0c8f6146e59b01ee", [] ], + "webcrypto.idl": [ + "ff7a89cd0d51be01760b9bfdb709393f4db5fd31", + [] + ], "webdriver.idl": [ "194e2d806adb2131f7cdc56a70a46d7784cb7d75", [] @@ -486265,7 +486777,7 @@ [] ], "webgpu.idl": [ - "de1f7c1e52bc401fed112469595f281736213027", + "4fec46a2557033a941b5da7a7481aa8125696ed2", [] ], "webhid.idl": [ @@ -486281,7 +486793,7 @@ [] ], "webnn.idl": [ - "57f2a4a9890147e24f10e91537a626732db1f617", + "37fcc32501efbeb38c9686a8fc96e1ce062eb30a", [] ], "webrtc-encoded-transform.idl": [ @@ -486337,7 +486849,7 @@ [] ], "webxr-depth-sensing.idl": [ - "9befd640646a132bff680de5f5b0d2edbe199e91", + "7ddbec7cc975dfd1c5be6f05f1a854fffe653e79", [] ], "webxr-dom-overlays.idl": [ @@ -486365,7 +486877,7 @@ [] ], "webxr.idl": [ - "1098000d6c2edae1a36f8e6a035f0c53432207c8", + "874994086a250df0f3c0a0eed03375d9429aeaa9", [] ], "webxrlayers.idl": [ @@ -486380,6 +486892,10 @@ "527c41deb6cda2de79780899d15bc43f02b281db", [] ], + "writing-assistance-apis.idl": [ + "916daee754e3ef992ad8fa282882c88dd9aa0734", + [] + ], "xhr.idl": [ "6ff75fd27741369f9671509998a21aeb9de3761a", [] @@ -494086,7 +494602,7 @@ [] ], "webxr-test.js": [ - "0885b559e6335d7bcd8a539b7d7e03f5843c74a5", + "ce2503b1bbcfbd5c4318c08b49020e9453c4b3a6", [] ], "webxr-test.js.headers": [ @@ -494575,7 +495091,7 @@ [] ], "testdriver.js": [ - "f127e2b2c8d9091a767b1ead849af1d18167070f", + "6e8410b7ea46064438c8d276274b6fbb689f81d2", [] ], "testdriver.js.headers": [ @@ -501392,7 +501908,7 @@ [] ], "requirements_tc.txt": [ - "cb4ba1947784f9b9ba39b3e43237640c7d1e802d", + "ada75c2f761904412048f3525f3010b658d174f9", [] ], "run_tc.py": [ @@ -502011,7 +502527,7 @@ [] ], "requirements_tests.txt": [ - "833fdb3b8761b3d790fcd9bf70ba536bd8dd3251", + "ca00b8f1f9835eea866a0462962b705a63366de6", [] ], "runner": { @@ -512782,7 +513298,7 @@ [] ], "asyncactions.py": [ - "71187ee76d7a1aff4803903a8506cb4dac4a8a04", + "9925a4b511def24fda82522acb5c5f0f9f3e80a1", [] ], "base.py": [ @@ -512814,7 +513330,7 @@ [] ], "executorwebdriver.py": [ - "123c89c98b21e9ec2616c6bfad3d91c5069ee89c", + "87403c2944d57e31c2612871262af9b77ce73235", [] ], "executorwktr.py": [ @@ -512830,7 +513346,7 @@ [] ], "protocol.py": [ - "7630fe1f3580f6cbb3554e89e05ab34c2fa3ee8e", + "833dff45636c7e22697e47cfe692ebecfcf2d76f", [] ], "pytestrunner": { @@ -512945,7 +513461,7 @@ [] ], "testdriver-extra.js": [ - "d83ba4192eb52487bf9265a5c2eea22f21e49c64", + "ab8b04ba3cdfc3d7c351ce99c6289de6e99b8f3e", [] ], "testdriver-vendor.js": [ @@ -515988,7 +516504,7 @@ [] ], "keyframe-tests.js": [ - "2bcce1ecf47f180d7f91a8160ad548e2ad06f5b9", + "34a84f45b20dea524016a6f479e9e0d0f5b7b2e7", [] ], "keyframe-utils.js": [ @@ -518920,7 +519436,7 @@ }, "resources": { "utils.js": [ - "d19cb7cf760f63d60b26f008af7329fad0a568a1", + "50d7911a9181a5139d9e16f7c866112dc54d6d01", [] ], "utils_validation.js": [ @@ -521793,6 +522309,10 @@ "0cc425955374e214cd5dd9bdb75a654c7c69faa9", [] ], + "matchDepthViewValues.js": [ + "597f9734d3fe66c2600c291a643a6d70ec908a25", + [] + ], "pauseResumeTests.js": [ "e7513ef61c13b856ea9e49ff93ad9088e57163b3", [] @@ -550205,14 +550725,14 @@ "ai": { "language_detection": { "detector-iframe.https.html": [ - "3e90d36b5aa63a556b82337cdf7a26410b80ac36", + "ddcf82bec684024f855217c649bb2da6cbd1f577", [ null, {} ] ], "detector-locale.https.window.js": [ - "a1c67db912961d8850bb4a430f92f7be4b450c87", + "80cbfa485e3944ba13de2aec3ba317e2cc84026f", [ "ai/language_detection/detector-locale.https.window.html", { @@ -550225,6 +550745,18 @@ "global", "window" ], + [ + "timeout", + "long" + ], + [ + "script", + "resources/util.js" + ], + [ + "script", + "/resources/testdriver.js" + ], [ "script", "../resources/util.js" @@ -550233,12 +550765,13 @@ "script", "../resources/locale-util.js" ] - ] + ], + "timeout": "long" } ] ], "detector.https.window.js": [ - "e85ea6d249b17d3ed1505f206f5ac6659b6dfd94", + "b0255bc552b0d2f7c71f8567bab9e0102702cd4c", [ "ai/language_detection/detector.https.window.html", { @@ -550251,6 +550784,18 @@ "global", "window" ], + [ + "timeout", + "long" + ], + [ + "script", + "resources/util.js" + ], + [ + "script", + "/resources/testdriver.js" + ], [ "script", "../resources/util.js" @@ -550259,12 +550804,13 @@ "script", "../resources/locale-util.js" ] - ] + ], + "timeout": "long" } ] ], "detector.optional.https.window.js": [ - "7ffa1362dd5f97b68e7c678463dd5afa186d10dc", + "1dd248a9ecab667355702d00e865341122a2ebe2", [ "ai/language_detection/detector.optional.https.window.html", { @@ -550277,11 +550823,24 @@ "global", "window" ], + [ + "timeout", + "long" + ], + [ + "script", + "resources/util.js" + ], + [ + "script", + "/resources/testdriver.js" + ], [ "script", "../resources/util.js" ] - ] + ], + "timeout": "long" } ] ] @@ -551304,7 +551863,7 @@ ] ], "setSinkId.https.html": [ - "be65f0ac81bc41a89e5085a43124f7ee991fea7b", + "662596910ee9adf94f83d536fe9c67a49db67f4b", [ null, { @@ -571991,7 +572550,7 @@ }, "cookie-store": { "change_eventhandler_for_already_expired.https.window.js": [ - "89d84b13d1b53ec4d424b363ace9b26ed9685685", + "f3bbe0ea560974e9486941384e75a58d2d6a4637", [ "cookie-store/change_eventhandler_for_already_expired.https.window.html", { @@ -572009,7 +572568,7 @@ ] ], "change_eventhandler_for_document_cookie.https.window.js": [ - "82b0f2baa2bb72f51d944e2138ad56f7a170ba7a", + "1937ebdae35942840dc3b641b5907f334048f3fb", [ "cookie-store/change_eventhandler_for_document_cookie.https.window.html", { @@ -572027,7 +572586,7 @@ ] ], "change_eventhandler_for_http_cookie_and_set_cookie_headers.https.window.js": [ - "8f5ef1cabbe7a742115ba81328e40ee789496edd", + "8517995acfe746bbff09243597d6d319e3af1bc2", [ "cookie-store/change_eventhandler_for_http_cookie_and_set_cookie_headers.https.window.html", { @@ -572044,6 +572603,24 @@ } ] ], + "change_eventhandler_for_no_change.https.window.js": [ + "5f9c2927433fc408c70c005789dc0bcc34d46caa", + [ + "cookie-store/change_eventhandler_for_no_change.https.window.html", + { + "script_metadata": [ + [ + "title", + "Cookie Store API: Test that setting a duplicate cookie does not fire a second event." + ], + [ + "script", + "resources/cookie-test-helpers.js" + ] + ] + } + ] + ], "change_eventhandler_for_no_name_and_no_value.https.window.js": [ "4498caf59689cc3da875d1c56937f6d2a235cb5d", [ @@ -580275,14 +580852,14 @@ ] ], "margin-trim-computed.html": [ - "ad2d17f2ef01d2f870a4f07cd3eccb226e4de0f2", + "c38adea9a68e1eeee53e8a42ba9d745546624f88", [ null, {} ] ], "margin-trim.html": [ - "0d92f80b9b96ee409b141487f26cb664ce67f8df", + "e8679f9cbf3fb606c542ae8ccc653e0b90b96bbc", [ null, {} @@ -584169,7 +584746,7 @@ ] ], "linear-timing-functions-syntax.html": [ - "0c949e9ea7dc50c86cd6877da1a10f7b2ba01625", + "408264b58dfe41dd7744d20419bae3a5fc7fd3eb", [ null, {} @@ -584183,7 +584760,7 @@ ] ], "step-timing-functions-syntax.html": [ - "4e8b21e4413f8000ae584396355ed7df1c44a447", + "e8465ff7a3304184046f7eb81f93d51a61c19dad", [ null, {} @@ -587335,7 +587912,7 @@ ] ], "font-palette-values-invalid.html": [ - "a3a0a88ba68c8fcc1f8b00054d7b12bc08d4b7af", + "32c9c4c5efeec345c24261b7bb0aa237f11d25e0", [ null, {} @@ -587756,7 +588333,7 @@ ] ], "test_font_feature_values_parsing.html": [ - "7a5844d56008eae798652b59a335d08d24b34032", + "08c20142449646123ebdecde6f023511b45feed4", [ null, {} @@ -595361,6 +595938,15 @@ } ] ], + "scroll-button-display-none.html": [ + "8b3068be6dad6d1ccbe1134b9833ecc1c8b0f594", + [ + null, + { + "testdriver": true + } + ] + ], "scroll-button-hover-remove.html": [ "af000012b4ec605fb0e30a34e50bc02119a9b925", [ @@ -595959,7 +596545,7 @@ ] ], "overscroll-behavior-root.html": [ - "a116ead01b71db7b72bfd483b10b35b2e83ea1b8", + "71c5f6573d6f31f1ef872c09302063919597d8da", [ null, { @@ -600437,6 +601023,13 @@ {} ] ], + "host-part-nesting.html": [ + "c0dc8e20eee9ab3fda124ef99cb7623146b8a321", + [ + null, + {} + ] + ], "host-stylesheet.html": [ "2e65c4b1b57bd9959c68e85e11b442c67f2c5a42", [ @@ -613595,6 +614188,13 @@ {} ] ], + "run_in_parallel.html": [ + "1afdae2be9d8092953746d360d2a77ea1a538ba1", + [ + null, + {} + ] + ], "start-view-transition.html": [ "a1bc95891956e6678c8ee2ecd51be7d6e94b70ca", [ @@ -622664,6 +623264,13 @@ ] ], "non-cancelable-when-passive": { + "generic-events-stay-cancelable.html": [ + "961794728d3799a2096bad18dd60e79f619533a4", + [ + null, + {} + ] + ], "non-passive-mousewheel-event-listener-on-body.html": [ "5574fe0acbcccb64ff05213fa518c49d4149e7e4", [ @@ -626771,7 +627378,7 @@ ] ], "XMLSerializer-serializeToString.html": [ - "c3b704bf18825c27e74c5db8177fa178925c9b26", + "6c294e464a5dc787abd4d10281ab2fe0555a0a3c", [ null, {} @@ -626875,6 +627482,13 @@ {} ] ], + "xml-parse-serialize-roundtrip.html": [ + "5195b9f04b5dd9f47937a5d11d2e82f09fdb9204", + [ + null, + {} + ] + ], "xml-serialization.xhtml": [ "852bbcc9fd1b1c91fd544dfc2fc462efc1195a4a", [ @@ -630433,7 +631047,7 @@ ] ], "selection-change-not-fired-if-selection-set-to-root.html": [ - "39e8b46e69b2c469b4b5d4ed40314bd67a2b3524", + "cac621ad3cdd3b1b8c9fcbbdf09cac739f9756ff", [ null, { @@ -669027,7 +669641,7 @@ ] ], "generate-bid-browser-signals.https.window.js": [ - "e472fccdc4da37c1a2cebb80921809cab5788b54", + "ee0cdd84efa4a3307bb674015c3eb5a8211fe962", [ "fledge/tentative/generate-bid-browser-signals.https.window.html?1-4", { @@ -669086,7 +669700,15 @@ ], [ "variant", - "?29-last" + "?29-32" + ], + [ + "variant", + "?33-36" + ], + [ + "variant", + "?37-last" ] ], "timeout": "long" @@ -669150,7 +669772,15 @@ ], [ "variant", - "?29-last" + "?29-32" + ], + [ + "variant", + "?33-36" + ], + [ + "variant", + "?37-last" ] ], "timeout": "long" @@ -669214,7 +669844,15 @@ ], [ "variant", - "?29-last" + "?29-32" + ], + [ + "variant", + "?33-36" + ], + [ + "variant", + "?37-last" ] ], "timeout": "long" @@ -669278,7 +669916,15 @@ ], [ "variant", - "?29-last" + "?29-32" + ], + [ + "variant", + "?33-36" + ], + [ + "variant", + "?37-last" ] ], "timeout": "long" @@ -669342,14 +669988,22 @@ ], [ "variant", - "?29-last" + "?29-32" + ], + [ + "variant", + "?33-36" + ], + [ + "variant", + "?37-last" ] ], "timeout": "long" } ], [ - "fledge/tentative/generate-bid-browser-signals.https.window.html?29-last", + "fledge/tentative/generate-bid-browser-signals.https.window.html?29-32", { "script_metadata": [ [ @@ -669406,7 +670060,159 @@ ], [ "variant", - "?29-last" + "?29-32" + ], + [ + "variant", + "?33-36" + ], + [ + "variant", + "?37-last" + ] + ], + "timeout": "long" + } + ], + [ + "fledge/tentative/generate-bid-browser-signals.https.window.html?33-36", + { + "script_metadata": [ + [ + "script", + "/resources/testdriver.js" + ], + [ + "script", + "/resources/testdriver-vendor.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "resources/fledge-util.sub.js" + ], + [ + "script", + "/common/subset-tests.js" + ], + [ + "timeout", + "long" + ], + [ + "variant", + "?1-4" + ], + [ + "variant", + "?5-8" + ], + [ + "variant", + "?9-12" + ], + [ + "variant", + "?13-16" + ], + [ + "variant", + "?17-20" + ], + [ + "variant", + "?21-24" + ], + [ + "variant", + "?25-28" + ], + [ + "variant", + "?29-32" + ], + [ + "variant", + "?33-36" + ], + [ + "variant", + "?37-last" + ] + ], + "timeout": "long" + } + ], + [ + "fledge/tentative/generate-bid-browser-signals.https.window.html?37-last", + { + "script_metadata": [ + [ + "script", + "/resources/testdriver.js" + ], + [ + "script", + "/resources/testdriver-vendor.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "resources/fledge-util.sub.js" + ], + [ + "script", + "/common/subset-tests.js" + ], + [ + "timeout", + "long" + ], + [ + "variant", + "?1-4" + ], + [ + "variant", + "?5-8" + ], + [ + "variant", + "?9-12" + ], + [ + "variant", + "?13-16" + ], + [ + "variant", + "?17-20" + ], + [ + "variant", + "?21-24" + ], + [ + "variant", + "?25-28" + ], + [ + "variant", + "?29-32" + ], + [ + "variant", + "?33-36" + ], + [ + "variant", + "?37-last" ] ], "timeout": "long" @@ -669470,7 +670276,15 @@ ], [ "variant", - "?29-last" + "?29-32" + ], + [ + "variant", + "?33-36" + ], + [ + "variant", + "?37-last" ] ], "timeout": "long" @@ -669534,7 +670348,15 @@ ], [ "variant", - "?29-last" + "?29-32" + ], + [ + "variant", + "?33-36" + ], + [ + "variant", + "?37-last" ] ], "timeout": "long" @@ -717289,342 +718111,6 @@ } ] ] - }, - "restrict-properties": { - "access-reporting-closed.https.html": [ - "1c315b35d7fa81188aabf59c1c3196a5d5d2a2ea", - [ - null, - {} - ] - ], - "access-reporting-openee-rp-ro.https.html": [ - "7a96f4f5762721378036b47d248c3ae1ef21dd2f", - [ - null, - { - "timeout": "long" - } - ] - ], - "access-reporting-opener-rp-ro.https.html": [ - "9e1e85b16a5876c3e78656b8300c2fcc9e3e3ab1", - [ - null, - { - "timeout": "long" - } - ] - ], - "access-reporting-post-message.https.html": [ - "5bc718e2a89a28a6867e83c0d85bc0cedefe39f6", - [ - null, - {} - ] - ], - "coop-rp-in-navigation-chain.https.html": [ - "e5c877517488f755e08f69233439a817dd444164", - [ - null, - { - "timeout": "long" - } - ] - ], - "iframe-popup-about-blank.https.window.js": [ - "1247400a4e37d2f6bd52b2731c2a3eb7f84a7185", - [ - "html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-about-blank.https.window.html", - { - "script_metadata": [ - [ - "script", - "/common/get-host-info.sub.js" - ], - [ - "script", - "/common/utils.js" - ], - [ - "script", - "/common/dispatcher/dispatcher.js" - ] - ] - } - ] - ], - "iframe-popup-to-so.https.html": [ - "8cf2679e190129e91de8e2af4ceef5b064fedba4", - [ - "html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-so.https.html?1-1", - { - "timeout": "long" - } - ], - [ - "html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-so.https.html?2-2", - { - "timeout": "long" - } - ], - [ - "html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-so.https.html?3-3", - { - "timeout": "long" - } - ], - [ - "html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-so.https.html?4-4", - { - "timeout": "long" - } - ], - [ - "html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-so.https.html?5-5", - { - "timeout": "long" - } - ], - [ - "html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-so.https.html?6-6", - { - "timeout": "long" - } - ], - [ - "html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-so.https.html?7-7", - { - "timeout": "long" - } - ], - [ - "html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-so.https.html?8-8", - { - "timeout": "long" - } - ], - [ - "html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-so.https.html?9-last", - { - "timeout": "long" - } - ] - ], - "iframe-popup-to-soap.https.html": [ - "f3af3ca7db1bad6506fef6b519c8f244d2080d0e", - [ - "html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-soap.https.html?1-2", - { - "timeout": "long" - } - ], - [ - "html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-soap.https.html?3-4", - { - "timeout": "long" - } - ], - [ - "html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-soap.https.html?5-6", - { - "timeout": "long" - } - ], - [ - "html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-soap.https.html?7-8", - { - "timeout": "long" - } - ], - [ - "html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-soap.https.html?9-last", - { - "timeout": "long" - } - ] - ], - "iframe-popup-to-un.https.html": [ - "560dfd90511dca11a8b5f4fb30d88beb093c538a", - [ - "html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-un.https.html?1-2", - { - "timeout": "long" - } - ], - [ - "html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-un.https.html?3-4", - { - "timeout": "long" - } - ], - [ - "html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-un.https.html?5-6", - { - "timeout": "long" - } - ], - [ - "html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-un.https.html?7-8", - { - "timeout": "long" - } - ], - [ - "html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-un.https.html?9-last", - { - "timeout": "long" - } - ] - ], - "iframe-popup.https.html": [ - "17840724d9e342aa52cdcc474356b25d554dfd63", - [ - "html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup.https.html?1-2", - { - "timeout": "long" - } - ], - [ - "html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup.https.html?3-4", - { - "timeout": "long" - } - ], - [ - "html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup.https.html?5-6", - { - "timeout": "long" - } - ], - [ - "html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup.https.html?7-8", - { - "timeout": "long" - } - ], - [ - "html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup.https.html?9-last", - { - "timeout": "long" - } - ] - ], - "named_targeting.https.html": [ - "10929847ee64d1f47e78b1c34af55c963871c055", - [ - null, - {} - ] - ], - "popup-so.https.html": [ - "e5313a6e222d5b7671747516b8d056fda7e9db8b", - [ - null, - { - "timeout": "long" - } - ] - ], - "popup-soap.https.html": [ - "595a10a84bbc9c23ba609411e84f5e0bf107e6ac", - [ - null, - { - "timeout": "long" - } - ] - ], - "popup-u.https.html": [ - "595a10a84bbc9c23ba609411e84f5e0bf107e6ac", - [ - null, - { - "timeout": "long" - } - ] - ], - "popup-un.https.html": [ - "595a10a84bbc9c23ba609411e84f5e0bf107e6ac", - [ - null, - { - "timeout": "long" - } - ] - ], - "popup-with-cross-origin.https.html": [ - "a84d52584e9b4fbd6a9a35e5472c5a990fdf2351", - [ - null, - { - "timeout": "long" - } - ] - ], - "popup-with-same-origin.https.html": [ - "c0020fa23a478fd75aa27b69edb95c84f3e3789a", - [ - null, - { - "timeout": "long" - } - ] - ], - "popup-with-same-site.https.html": [ - "7d115ac7e639a53c76f6bc1b7b7c9210d8d6bf89", - [ - null, - { - "timeout": "long" - } - ] - ], - "reporting-bcg-reuse.https.html": [ - "9bc171a269c5284de80cad871baafd58fb297da0", - [ - null, - { - "timeout": "long" - } - ] - ], - "reporting-from-rp-ro.https.html": [ - "b89030f218ffeb79da7269f70a3432f79700e95a", - [ - null, - { - "timeout": "long" - } - ] - ], - "reporting-from-rp.https.html": [ - "6b31f7e0098da78db34e91ba179ac1ef86e3035d", - [ - null, - { - "timeout": "long" - } - ] - ], - "reporting-to-rp-ro.https.html": [ - "c47e59cd8f1aeac7ee6b1dbe2177595730148a38", - [ - null, - { - "timeout": "long" - } - ] - ], - "reporting-to-rp.https.html": [ - "ff60e8c5afda67ff3ca1573dab5405769b2b2cc3", - [ - null, - { - "timeout": "long" - } - ] - ] } } }, @@ -732964,6 +733450,26 @@ ] ] }, + "customizable-select-in-page": { + "customizable-select-in-page-keyboard-behavior.tentative.html": [ + "24e6e39ea48236fc7b72604860913247b5f5f05c", + [ + null, + { + "testdriver": true + } + ] + ], + "customizable-select-in-page-mouse-behavior.tentative.html": [ + "d5b93693cf7d65b1202f459223a8cf6b8cff581a", + [ + null, + { + "testdriver": true + } + ] + ] + }, "inserted-or-removed.html": [ "0db2bf0e77a4a8a76ebcef1b0879cac9bb8c3fea", [ @@ -733685,7 +734191,7 @@ ] ], "dialog-focusability.html": [ - "1e000866099c7044ce07fc812229293f645c2f27", + "5afb407640b7d2ee1487454464df9adb41419a8a", [ null, { @@ -733795,7 +734301,7 @@ ] ], "dialog-requestclose.html": [ - "9a9c87167d5eaf93bd31c1f979450415dd9fba0d", + "6555f1b43bd399cc4e885f80a3a9cbee1dd752dc", [ null, { @@ -741574,6 +742080,13 @@ {} ] ], + "serializing-cdata-in-html-document.html": [ + "b2366285a41d946324981e771bfbfe2b157606f5", + [ + null, + {} + ] + ], "serializing-lt-gt.tentative.html": [ "6c74b443a838267be7f0d2ad8a8a80964c57209f", [ @@ -747382,6 +747895,20 @@ ] ] }, + "emulation": { + "set_geolocation_override.https.html": [ + "5cbcf546423c772a98fd3725531754c366ab7b91", + [ + null, + { + "testdriver": true, + "testdriver_features": [ + "bidi" + ] + } + ] + ] + }, "permissions": { "set_permission.https.html": [ "5b05e2374e2b4b451a0f98eabd36a6e72a03f933", @@ -756027,7 +756554,7 @@ ] ], "MediaDevices-enumerateDevices-per-origin-ids.sub.https.html": [ - "714355f5c1c0b2fe37cff162c7be6240540cc0e2", + "467cf5d50c71c28675e87445ec311df53815a100", [ null, { @@ -768929,7 +769456,7 @@ ] ], "pointerevent_pointerout_no_pointer_movement.html": [ - "856f2ce37cec59f70dc1a9ad4d3fe0436da3e4cd", + "1af166593266f671b1b4705e1911e46eb4c4b990", [ null, { @@ -787717,7 +788244,7 @@ ] ], "fieldset-source.html": [ - "d75f30e664e325f4e43277b4036da0cbb157a990", + "cdd2e0be40c87d0cb932a341c9f2f9bf842f96b8", [ null, {} @@ -793943,7 +794470,7 @@ ] ], "form.html": [ - "a4a5f37283848efcdb99b50b3aebb23df3235fe5", + "5ab144b05ed130409a09c116fcceecfc57cfaab5", [ null, { @@ -796397,8 +796924,8 @@ {} ] ], - "clear-prefetch-cache-after-clear-site-data-cache.https.html": [ - "c5796e48b768868f084ae5ad97a63fca5abf6992", + "clear-prefetch-cache-after-clear-site-data-cache.tentative.https.html": [ + "48f6264e852b0e32e6be06367e16b27f7cc6d14b", [ null, {} @@ -797364,8 +797891,8 @@ } ] ], - "cancel-prerendering-after-clear-site-data-cache-different-origins.https.html": [ - "34b77f8bc47346ecaac9e6f42856d2c5dcd66daf", + "cancel-prerendering-after-clear-site-data-cache-different-origins.tentative.https.html": [ + "db52e758750f2757f722c025e3accf6fce13a9cc", [ null, { @@ -797373,8 +797900,8 @@ } ] ], - "cancel-prerendering-after-clear-site-data-cache-same-origin.https.html": [ - "cb253d45eaa8f70da33b3bfb13f222280058e9b7", + "cancel-prerendering-after-clear-site-data-cache-same-origin.tentative.https.html": [ + "23d862c5130139bc5e20242e73cb8d2e4a93e332", [ null, { @@ -806073,7 +806600,7 @@ ], "crashtests": { "garbage-collection.any.js": [ - "b2ba5cd4c27e9120a9e69c358e6ff5be31b107fd", + "cf10f7f2e8317ed16dd5fe3a967c6f26efd0a335", [ "streams/readable-streams/crashtests/garbage-collection.any.html", { @@ -814625,6 +815152,13 @@ ] }, "embedded": { + "attr-image-fetchpriority.html": [ + "b083538a8b8ba723347860dda97afecadd1283ee", + [ + null, + {} + ] + ], "image-crossorigin.sub.html": [ "531512ec168003a55bd687b1b8db010e161f1b0e", [ @@ -814928,6 +815462,33 @@ ] ], "interact": { + "focus-inside-hidden-svg-containers-01.html": [ + "25765c5b93e66b597c3e66a3083e40e298491cb2", + [ + null, + { + "testdriver": true + } + ] + ], + "focus-inside-hidden-svg-containers-02.html": [ + "fd9fd34275d0784d82ec0ef847b295c3ad93bcca", + [ + null, + { + "testdriver": true + } + ] + ], + "focus-inside-hidden-svg-containers-03.html": [ + "097cff57b5ac8296f2e528f96e5333a7370e9722", + [ + null, + { + "testdriver": true + } + ] + ], "inheritance.svg": [ "e67f19ed43529af5e34683b6853ae870435be014", [ @@ -815805,6 +816366,13 @@ ] }, "scripted": { + "attr-script-fetchpriority.html": [ + "2f73e1e59a8a450d0a1ad74e45cbb6d25c70bf4a", + [ + null, + {} + ] + ], "script-invalid-script-type.html": [ "9602dd525bd4d2b77b8d4ffadebef9e568a98c77", [ @@ -822779,7 +823347,7 @@ }, "viewport": { "viewport-segments.html": [ - "64f0eb9caefb0b862faabcfe0ab23df52c00735d", + "cd24f2bd230b6ce60da9fd230554856ae43d6b64", [ null, {} @@ -822806,7 +823374,7 @@ ] ], "viewport-segments-segments-property.https.html": [ - "852e49fa7fecea5badf92dfafb6befa49800dd39", + "e6c9d8b4e169ad061ae7aef5ca270894dbb1db2c", [ null, { @@ -849414,7 +849982,7 @@ "webnn": { "conformance_tests": { "abs.https.any.js": [ - "fcf144200f665b7f9370c2c3f0867f6cfc80a059", + "de6a5761df443ab6977ee3a61afc764eedd31c2c", [ "webnn/conformance_tests/abs.https.any.html?cpu", { @@ -850674,7 +851242,7 @@ ] ], "concat.https.any.js": [ - "0208e2ec605387a8d4dac040b64a1465b61d6848", + "d41921720463d388eeb0e152b30e04d8246b40b0", [ "webnn/conformance_tests/concat.https.any.html?cpu", { @@ -856317,7 +856885,7 @@ ] ], "neg.https.any.js": [ - "c03afc52516e3e59bd84c500afbbefe6ef7ce7cf", + "8bc10475453e24ce6e7d4049d5470b21d8e7b147", [ "webnn/conformance_tests/neg.https.any.html?cpu", { @@ -857418,7 +857986,7 @@ ] ], "qdq_subgraph.https.any.js": [ - "8f6f2246b04f8a6fc9570eced30b31b841da5a06", + "3b59c3bb49d6441a77e83309f48a97dd982aea74", [ "webnn/conformance_tests/qdq_subgraph.https.any.html?cpu", { @@ -859185,7 +859753,7 @@ ] ], "relu.https.any.js": [ - "16cc2a3fa67b4ffa77f2555b94e91d8d398e87ff", + "63ef9fa9ff09d41d60a228b79b20fd29ff911a21", [ "webnn/conformance_tests/relu.https.any.html?cpu", { @@ -861648,7 +862216,7 @@ ] ], "sub.https.any.js": [ - "2f2fadf7282185eb92cbd7961ab3f1e9d35fd5a3", + "85b15f5a00051c0ece94f6202150c0b93b23260f", [ "webnn/conformance_tests/sub.https.any.html?cpu", { @@ -878590,7 +879158,7 @@ ] ], "RTCConfiguration-iceServers.html": [ - "aa66bfbb2bfff0febc9404e4b73e0637a3226a70", + "bc7831361ab5f417b46a507b0e5977bef9bedd49", [ null, {} @@ -878841,7 +879409,7 @@ ] ], "RTCPeerConnection-addTransceiver.https.html": [ - "3fd83a76fe2f687114de006bc877bc915a1809be", + "62df4293067e554dee9328f3f4f03556dedcdb10", [ null, {} @@ -880814,7 +881382,7 @@ ] ], "supported-stats.https.html": [ - "677736f3cd8f33963c53d4fa9bee0c52f4826a5f", + "81aef5f94b90da1ee83de617ecabf0d3e11ad21d", [ null, { @@ -897009,6 +897577,13 @@ {} ] ], + "depth_sensing_cpu_matchDepthViewIdentity.https.html": [ + "f3256106e904b2b66291834197a80a4537c3c682", + [ + null, + {} + ] + ], "depth_sensing_cpu_pauseResume.https.html": [ "47469f4a0ea186e981843db8c00a1d72bc938907", [ @@ -897074,6 +897649,13 @@ {} ] ], + "depth_sensing_gpu_matchDepthViewIdentity.https.html": [ + "1813ddd449ec40a9722d38795b23c3397e02dc16", + [ + null, + {} + ] + ], "depth_sensing_gpu_pauseResume.https.html": [ "d51edb8cd3b85192fc5904df9f488e7c32356080", [ @@ -926325,7 +926907,7 @@ ] ], "user_prompt_closed.py": [ - "fdb9e8b3ca7d5cc642ec69517f065887b16cdc24", + "8322829ebaf078152fd1874773ce0d110a0aac8e", [ null, {} @@ -926348,7 +926930,7 @@ ] ], "user_prompt_opened.py": [ - "c24128004f73a8b09a61991837b1dad103f91789", + "a9051f662c8124b6ee4a8c1fc657a5a1aaf2a2b9", [ null, {} @@ -926373,7 +926955,7 @@ ] ], "invalid.py": [ - "79241287fbc2b9a0dbd3c48e455d938e6bce7ad0", + "e804848e0be6c483340dcd8b3b4def10dddedce9", [ null, {} @@ -926825,7 +927407,7 @@ ] ], "before_request_sent_cached.py": [ - "9483a707eab1d4caa561a193d641611cf92ffa2e", + "e8119d29d9e259208a11bed7c330a9ecbca49886", [ null, {} diff --git a/tests/wpt/meta/WebCryptoAPI/idlharness.https.any.js.ini b/tests/wpt/meta/WebCryptoAPI/idlharness.https.any.js.ini new file mode 100644 index 00000000000..88bb87548ec --- /dev/null +++ b/tests/wpt/meta/WebCryptoAPI/idlharness.https.any.js.ini @@ -0,0 +1,8 @@ +[idlharness.https.any.html] + [idl_test setup] + expected: FAIL + + +[idlharness.https.any.worker.html] + [idl_test setup] + expected: FAIL diff --git a/tests/wpt/meta/css/css-align/abspos/align-self-static-position-003.html.ini b/tests/wpt/meta/css/css-align/abspos/align-self-static-position-003.html.ini new file mode 100644 index 00000000000..2f9fddf138a --- /dev/null +++ b/tests/wpt/meta/css/css-align/abspos/align-self-static-position-003.html.ini @@ -0,0 +1,2 @@ +[align-self-static-position-003.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-align/abspos/align-self-static-position-004.html.ini b/tests/wpt/meta/css/css-align/abspos/align-self-static-position-004.html.ini new file mode 100644 index 00000000000..f268ef7e7a6 --- /dev/null +++ b/tests/wpt/meta/css/css-align/abspos/align-self-static-position-004.html.ini @@ -0,0 +1,2 @@ +[align-self-static-position-004.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-align/abspos/align-self-static-position-006.html.ini b/tests/wpt/meta/css/css-align/abspos/align-self-static-position-006.html.ini new file mode 100644 index 00000000000..07f1806f326 --- /dev/null +++ b/tests/wpt/meta/css/css-align/abspos/align-self-static-position-006.html.ini @@ -0,0 +1,2 @@ +[align-self-static-position-006.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-align/abspos/align-self-static-position-007.html.ini b/tests/wpt/meta/css/css-align/abspos/align-self-static-position-007.html.ini new file mode 100644 index 00000000000..d5abf6545c2 --- /dev/null +++ b/tests/wpt/meta/css/css-align/abspos/align-self-static-position-007.html.ini @@ -0,0 +1,2 @@ +[align-self-static-position-007.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-align/abspos/align-self-static-position-008.html.ini b/tests/wpt/meta/css/css-align/abspos/align-self-static-position-008.html.ini new file mode 100644 index 00000000000..bfeba12b70e --- /dev/null +++ b/tests/wpt/meta/css/css-align/abspos/align-self-static-position-008.html.ini @@ -0,0 +1,2 @@ +[align-self-static-position-008.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-align/abspos/align-self-stretch-auto-margins-aspect-ratio.html.ini b/tests/wpt/meta/css/css-align/abspos/align-self-stretch-auto-margins-aspect-ratio.html.ini new file mode 100644 index 00000000000..6094b40bf56 --- /dev/null +++ b/tests/wpt/meta/css/css-align/abspos/align-self-stretch-auto-margins-aspect-ratio.html.ini @@ -0,0 +1,2 @@ +[align-self-stretch-auto-margins-aspect-ratio.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-align/abspos/align-self-stretch-auto-margins.html.ini b/tests/wpt/meta/css/css-align/abspos/align-self-stretch-auto-margins.html.ini new file mode 100644 index 00000000000..cfef366e7b3 --- /dev/null +++ b/tests/wpt/meta/css/css-align/abspos/align-self-stretch-auto-margins.html.ini @@ -0,0 +1,2 @@ +[align-self-stretch-auto-margins.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-align/abspos/justify-self-stretch-auto-margins-aspect-ratio.html.ini b/tests/wpt/meta/css/css-align/abspos/justify-self-stretch-auto-margins-aspect-ratio.html.ini new file mode 100644 index 00000000000..bfba165e645 --- /dev/null +++ b/tests/wpt/meta/css/css-align/abspos/justify-self-stretch-auto-margins-aspect-ratio.html.ini @@ -0,0 +1,2 @@ +[justify-self-stretch-auto-margins-aspect-ratio.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-align/abspos/justify-self-stretch-auto-margins.html.ini b/tests/wpt/meta/css/css-align/abspos/justify-self-stretch-auto-margins.html.ini new file mode 100644 index 00000000000..75934b08795 --- /dev/null +++ b/tests/wpt/meta/css/css-align/abspos/justify-self-stretch-auto-margins.html.ini @@ -0,0 +1,2 @@ +[justify-self-stretch-auto-margins.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-box/parsing/margin-trim-computed.html.ini b/tests/wpt/meta/css/css-box/parsing/margin-trim-computed.html.ini index 790872b29d0..ee2b86f6368 100644 --- a/tests/wpt/meta/css/css-box/parsing/margin-trim-computed.html.ini +++ b/tests/wpt/meta/css/css-box/parsing/margin-trim-computed.html.ini @@ -46,3 +46,21 @@ [Property margin-trim value 'inline-start inline-end block-start'] expected: FAIL + + [Property margin-trim value 'block-start inline-start block-end inline-end'] + expected: FAIL + + [Property margin-trim value 'block-start block-end inline-end inline-start'] + expected: FAIL + + [Property margin-trim value 'block-start block-end inline-start inline-end'] + expected: FAIL + + [Property margin-trim value 'inline-start block-end block-start inline-end'] + expected: FAIL + + [Property margin-trim value 'inline-start inline-end block-start block-end'] + expected: FAIL + + [Property margin-trim value 'inline-end block-end inline-start block-start'] + expected: FAIL diff --git a/tests/wpt/meta/css/css-box/parsing/margin-trim.html.ini b/tests/wpt/meta/css/css-box/parsing/margin-trim.html.ini index cd977b53207..b75bfe7845a 100644 --- a/tests/wpt/meta/css/css-box/parsing/margin-trim.html.ini +++ b/tests/wpt/meta/css/css-box/parsing/margin-trim.html.ini @@ -43,3 +43,21 @@ [e.style['margin-trim'\] = "inline-end block-end inline-start block-start" should set the property value] expected: FAIL + + [e.style['margin-trim'\] = "block inline" should set the property value] + expected: FAIL + + [e.style['margin-trim'\] = "inline block" should set the property value] + expected: FAIL + + [e.style['margin-trim'\] = "block-start block-end inline-end inline-start" should set the property value] + expected: FAIL + + [e.style['margin-trim'\] = "block-start block-end inline-start inline-end" should set the property value] + expected: FAIL + + [e.style['margin-trim'\] = "inline-start block-end block-start inline-end" should set the property value] + expected: FAIL + + [e.style['margin-trim'\] = "inline-start inline-end block-start block-end" should set the property value] + expected: FAIL diff --git a/tests/wpt/meta/css/css-fonts/parsing/font-palette-values-invalid.html.ini b/tests/wpt/meta/css/css-fonts/parsing/font-palette-values-invalid.html.ini index 86c285fb78a..0d491bce6a4 100644 --- a/tests/wpt/meta/css/css-fonts/parsing/font-palette-values-invalid.html.ini +++ b/tests/wpt/meta/css/css-fonts/parsing/font-palette-values-invalid.html.ini @@ -73,3 +73,6 @@ [CSS Fonts Module Level 4: parsing @font-palette-values 25] expected: FAIL + + [sibling-index() is invalid in base-palette descriptor] + expected: FAIL diff --git a/tests/wpt/meta/css/css-fonts/test_font_feature_values_parsing.html.ini b/tests/wpt/meta/css/css-fonts/test_font_feature_values_parsing.html.ini index 6b1969e3049..b0922321d1f 100644 --- a/tests/wpt/meta/css/css-fonts/test_font_feature_values_parsing.html.ini +++ b/tests/wpt/meta/css/css-fonts/test_font_feature_values_parsing.html.ini @@ -316,3 +316,6 @@ [basic parse tests - @font-feature-values bongo { @styleset { complex\\ blah: 1; } }] expected: FAIL + + [basic parse tests - @font-feature-values bongo { @stylistic { blah: sibling-index(); } }] + expected: FAIL diff --git a/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-001.html.ini b/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-001.html.ini new file mode 100644 index 00000000000..09b5c2407df --- /dev/null +++ b/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-001.html.ini @@ -0,0 +1,2 @@ +[multicol-gap-decorations-001.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-002.html.ini b/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-002.html.ini new file mode 100644 index 00000000000..d3d6008a74d --- /dev/null +++ b/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-002.html.ini @@ -0,0 +1,2 @@ +[multicol-gap-decorations-002.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-003.html.ini b/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-003.html.ini new file mode 100644 index 00000000000..be28f9f62c3 --- /dev/null +++ b/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-003.html.ini @@ -0,0 +1,2 @@ +[multicol-gap-decorations-003.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-004.html.ini b/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-004.html.ini new file mode 100644 index 00000000000..f2c19d9824a --- /dev/null +++ b/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-004.html.ini @@ -0,0 +1,2 @@ +[multicol-gap-decorations-004.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-005.html.ini b/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-005.html.ini new file mode 100644 index 00000000000..e63a9af4a63 --- /dev/null +++ b/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-005.html.ini @@ -0,0 +1,2 @@ +[multicol-gap-decorations-005.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-006.html.ini b/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-006.html.ini new file mode 100644 index 00000000000..e9fd7c8f430 --- /dev/null +++ b/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-006.html.ini @@ -0,0 +1,2 @@ +[multicol-gap-decorations-006.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-007.html.ini b/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-007.html.ini new file mode 100644 index 00000000000..f0da110b11d --- /dev/null +++ b/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-007.html.ini @@ -0,0 +1,2 @@ +[multicol-gap-decorations-007.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-008.html.ini b/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-008.html.ini new file mode 100644 index 00000000000..fecb739fed1 --- /dev/null +++ b/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-008.html.ini @@ -0,0 +1,2 @@ +[multicol-gap-decorations-008.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-009.html.ini b/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-009.html.ini new file mode 100644 index 00000000000..15809ab6be8 --- /dev/null +++ b/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-009.html.ini @@ -0,0 +1,2 @@ +[multicol-gap-decorations-009.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-010.html.ini b/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-010.html.ini new file mode 100644 index 00000000000..087a090d25e --- /dev/null +++ b/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-010.html.ini @@ -0,0 +1,2 @@ +[multicol-gap-decorations-010.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-011.html.ini b/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-011.html.ini new file mode 100644 index 00000000000..39cd43f8d3f --- /dev/null +++ b/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-011.html.ini @@ -0,0 +1,2 @@ +[multicol-gap-decorations-011.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-012.html.ini b/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-012.html.ini new file mode 100644 index 00000000000..c60637403c8 --- /dev/null +++ b/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-012.html.ini @@ -0,0 +1,2 @@ +[multicol-gap-decorations-012.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-013.html.ini b/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-013.html.ini new file mode 100644 index 00000000000..319ec1ea8c7 --- /dev/null +++ b/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-013.html.ini @@ -0,0 +1,2 @@ +[multicol-gap-decorations-013.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-014.html.ini b/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-014.html.ini new file mode 100644 index 00000000000..7baae0182e4 --- /dev/null +++ b/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-014.html.ini @@ -0,0 +1,2 @@ +[multicol-gap-decorations-014.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-grid/alignment/grid-content-alignment-with-abspos-001.html.ini b/tests/wpt/meta/css/css-grid/alignment/grid-content-alignment-with-abspos-001.html.ini new file mode 100644 index 00000000000..efff2a2620a --- /dev/null +++ b/tests/wpt/meta/css/css-grid/alignment/grid-content-alignment-with-abspos-001.html.ini @@ -0,0 +1,3 @@ +[grid-content-alignment-with-abspos-001.html] + [.grid 1] + expected: FAIL diff --git a/tests/wpt/meta/css/css-grid/grid-items/replaced-element-016.tentative.html.ini b/tests/wpt/meta/css/css-grid/grid-items/replaced-element-016.tentative.html.ini new file mode 100644 index 00000000000..39f8cc21286 --- /dev/null +++ b/tests/wpt/meta/css/css-grid/grid-items/replaced-element-016.tentative.html.ini @@ -0,0 +1,2 @@ +[replaced-element-016.tentative.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-grid/grid-items/replaced-element-017.tentative.html.ini b/tests/wpt/meta/css/css-grid/grid-items/replaced-element-017.tentative.html.ini new file mode 100644 index 00000000000..77a110a0e75 --- /dev/null +++ b/tests/wpt/meta/css/css-grid/grid-items/replaced-element-017.tentative.html.ini @@ -0,0 +1,2 @@ +[replaced-element-017.tentative.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-sizing/intrinsic-percent-replaced-030.tentative.html.ini b/tests/wpt/meta/css/css-sizing/intrinsic-percent-replaced-030.tentative.html.ini new file mode 100644 index 00000000000..1a4d7b6af62 --- /dev/null +++ b/tests/wpt/meta/css/css-sizing/intrinsic-percent-replaced-030.tentative.html.ini @@ -0,0 +1,2 @@ +[intrinsic-percent-replaced-030.tentative.html] + expected: FAIL diff --git a/tests/wpt/meta/domparsing/XMLSerializer-serializeToString.html.ini b/tests/wpt/meta/domparsing/XMLSerializer-serializeToString.html.ini index dda18d32621..ad2c6663e6c 100644 --- a/tests/wpt/meta/domparsing/XMLSerializer-serializeToString.html.ini +++ b/tests/wpt/meta/domparsing/XMLSerializer-serializeToString.html.ini @@ -67,3 +67,6 @@ [Check if a prefix bound to an empty namespace URI ("no namespace") serialize] expected: FAIL + + [Drop inconsistent xmlns="..." by matching on local name] + expected: FAIL diff --git a/tests/wpt/meta/domparsing/xml-parse-serialize-roundtrip.html.ini b/tests/wpt/meta/domparsing/xml-parse-serialize-roundtrip.html.ini new file mode 100644 index 00000000000..5424089439f --- /dev/null +++ b/tests/wpt/meta/domparsing/xml-parse-serialize-roundtrip.html.ini @@ -0,0 +1,6 @@ +[xml-parse-serialize-roundtrip.html] + [DOMParser and XMLSerializer should round trip with CDATA sections: large CDATA] + expected: FAIL + + [DOMParser and XMLSerializer should round trip with CDATA sections: multiple CDATAs] + expected: FAIL diff --git a/tests/wpt/meta/html/browsers/browsing-the-web/overlapping-navigations-and-traversals/cross-document-nav-cross-document-nav.html.ini b/tests/wpt/meta/html/browsers/browsing-the-web/overlapping-navigations-and-traversals/cross-document-nav-cross-document-nav.html.ini new file mode 100644 index 00000000000..407f9d191c7 --- /dev/null +++ b/tests/wpt/meta/html/browsers/browsing-the-web/overlapping-navigations-and-traversals/cross-document-nav-cross-document-nav.html.ini @@ -0,0 +1,3 @@ +[cross-document-nav-cross-document-nav.html] + [cross-document navigation then cross-document navigation] + expected: FAIL diff --git a/tests/wpt/meta/html/obsolete/requirements-for-implementations/the-marquee-element-0/marquee-with-trusted-types.html.ini b/tests/wpt/meta/html/obsolete/requirements-for-implementations/the-marquee-element-0/marquee-with-trusted-types.html.ini new file mode 100644 index 00000000000..ad3b45255f4 --- /dev/null +++ b/tests/wpt/meta/html/obsolete/requirements-for-implementations/the-marquee-element-0/marquee-with-trusted-types.html.ini @@ -0,0 +1,2 @@ +[marquee-with-trusted-types.html] + expected: FAIL 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 841bafc6eca..26704422bbe 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: TIMEOUT [Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used] - expected: FAIL + expected: TIMEOUT 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..a6591b318dc 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 [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-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 d89a1691435..d5fd800f09d 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,4 @@ [iframe_sandbox_popups_nonescaping-3.html] expected: TIMEOUT [Check that popups from a sandboxed iframe do not escape the sandbox] - expected: FAIL + expected: NOTRUN diff --git a/tests/wpt/meta/html/semantics/forms/the-select-element/customizable-select-in-page/customizable-select-in-page-appearance.tentative.html.ini b/tests/wpt/meta/html/semantics/forms/the-select-element/customizable-select-in-page/customizable-select-in-page-appearance.tentative.html.ini new file mode 100644 index 00000000000..8458e10e93e --- /dev/null +++ b/tests/wpt/meta/html/semantics/forms/the-select-element/customizable-select-in-page/customizable-select-in-page-appearance.tentative.html.ini @@ -0,0 +1,2 @@ +[customizable-select-in-page-appearance.tentative.html] + expected: FAIL diff --git a/tests/wpt/meta/html/semantics/scripting-1/the-script-element/module/dynamic-import/blob-url.any.js.ini b/tests/wpt/meta/html/semantics/scripting-1/the-script-element/module/dynamic-import/blob-url.any.js.ini index 8dba4e9c469..bdba8dadafa 100644 --- a/tests/wpt/meta/html/semantics/scripting-1/the-script-element/module/dynamic-import/blob-url.any.js.ini +++ b/tests/wpt/meta/html/semantics/scripting-1/the-script-element/module/dynamic-import/blob-url.any.js.ini @@ -15,3 +15,6 @@ [blob-url.any.html] [Different blob URLs pointing to the same blob resolve to different modules] expected: FAIL + + [Revoking a blob URL immediately after calling import will not fail] + expected: FAIL diff --git a/tests/wpt/meta/html/syntax/serializing-html-fragments/serializing-cdata-in-html-document.html.ini b/tests/wpt/meta/html/syntax/serializing-html-fragments/serializing-cdata-in-html-document.html.ini new file mode 100644 index 00000000000..d8b897fb81f --- /dev/null +++ b/tests/wpt/meta/html/syntax/serializing-html-fragments/serializing-cdata-in-html-document.html.ini @@ -0,0 +1,3 @@ +[serializing-cdata-in-html-document.html] + [Serializing CDATA in an HTML document] + expected: FAIL diff --git a/tests/wpt/meta/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini b/tests/wpt/meta/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini index a8e069b27e7..3bfb92e671a 100644 --- a/tests/wpt/meta/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini +++ b/tests/wpt/meta/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini @@ -760,3 +760,15 @@ [X Stitched sine-wave buffers at sample rate 43800 does not equal [0,0.06264832615852356,0.12505052983760834,0.18696144223213196,0.24813786149024963,0.308339387178421,0.36732959747314453,0.4248766601085663,0.480754554271698,0.5347436666488647,0.5866320133209229,0.6362156271934509,0.6832997798919678,0.7276994585990906,0.7692402601242065,0.8077589869499207...\] with an element-wise tolerance of {"absoluteThreshold":0.0038986,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[14680\]\t1.7249685451109781e-36\t2.0512369275093079e-1\t2.0512369275093079e-1\t1.0000000000000000e+0\t3.8985999999999999e-3\n\t[14681\]\t1.1480505578219891e-2\t1.4340442419052124e-1\t1.3192391861230135e-1\t9.1994315626575540e-1\t3.8985999999999999e-3\n\tMax AbsError of 2.0512369275093079e-1 at index of 14680.\n\tMax RelError of 1.0000000000000000e+0 at index of 14680.\n] expected: FAIL + + [X Stitched sine-wave buffers at sample rate 43800 does not equal [0,0.06264832615852356,0.12505052983760834,0.18696144223213196,0.24813786149024963,0.308339387178421,0.36732959747314453,0.4248766601085663,0.480754554271698,0.5347436666488647,0.5866320133209229,0.6362156271934509,0.6832997798919678,0.7276994585990906,0.7692402601242065,0.8077589869499207...\] with an element-wise tolerance of {"absoluteThreshold":0.0038986,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[14680\]\t-2.7021871583080320e+24\t2.0512369275093079e-1\t2.7021871583080320e+24\t1.3173452184234677e+25\t3.8985999999999999e-3\n\t[14681\]\t1.1480505578219891e-2\t1.4340442419052124e-1\t1.3192391861230135e-1\t9.1994315626575540e-1\t3.8985999999999999e-3\n\tMax AbsError of 2.7021871583080320e+24 at index of 14680.\n\tMax RelError of 1.3173452184234677e+25 at index of 14680.\n] + expected: FAIL + + [X SNR (-445.2002225707384 dB) is not greater than or equal to 65.737. Got -445.2002225707384.] + expected: FAIL + + [X Stitched sine-wave buffers at sample rate 43800 does not equal [0,0.06264832615852356,0.12505052983760834,0.18696144223213196,0.24813786149024963,0.308339387178421,0.36732959747314453,0.4248766601085663,0.480754554271698,0.5347436666488647,0.5866320133209229,0.6362156271934509,0.6832997798919678,0.7276994585990906,0.7692402601242065,0.8077589869499207...\] with an element-wise tolerance of {"absoluteThreshold":0.0038986,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[14680\]\t-4.2315589002308092e+19\t2.0512369275093079e-1\t4.2315589002308092e+19\t2.0629303438725304e+20\t3.8985999999999999e-3\n\t[14681\]\t1.1480505578219891e-2\t1.4340442419052124e-1\t1.3192391861230135e-1\t9.1994315626575540e-1\t3.8985999999999999e-3\n\tMax AbsError of 4.2315589002308092e+19 at index of 14680.\n\tMax RelError of 2.0629303438725304e+20 at index of 14680.\n] + expected: FAIL + + [X SNR (-349.0959218623025 dB) is not greater than or equal to 65.737. Got -349.0959218623025.] + expected: FAIL diff --git a/tests/wpt/meta/webxr/depth-sensing/cpu/depth_sensing_cpu_matchDepthViewIdentity.https.html.ini b/tests/wpt/meta/webxr/depth-sensing/cpu/depth_sensing_cpu_matchDepthViewIdentity.https.html.ini new file mode 100644 index 00000000000..ce3fb065178 --- /dev/null +++ b/tests/wpt/meta/webxr/depth-sensing/cpu/depth_sensing_cpu_matchDepthViewIdentity.https.html.ini @@ -0,0 +1,19 @@ +[depth_sensing_cpu_matchDepthViewIdentity.https.html] + expected: ERROR + [Ensures XRViewGeometry values are identity when matchDepthView is unset, `cpu-optimized` - webgl] + expected: TIMEOUT + + [Ensures XRViewGeometry values are identity when matchDepthView is unset, `cpu-optimized` - webgl2] + expected: NOTRUN + + [Ensures XRViewGeometry values are identity when matchDepthView=true, `cpu-optimized` - webgl] + expected: NOTRUN + + [Ensures XRViewGeometry values are identity when matchDepthView=true, `cpu-optimized` - webgl2] + expected: NOTRUN + + [Ensures session can be created when matchDepthView=false, `cpu-optimized` - webgl] + expected: NOTRUN + + [Ensures session can be created when matchDepthView=false, `cpu-optimized` - webgl2] + expected: NOTRUN diff --git a/tests/wpt/meta/webxr/depth-sensing/gpu/depth_sensing_gpu_matchDepthViewIdentity.https.html.ini b/tests/wpt/meta/webxr/depth-sensing/gpu/depth_sensing_gpu_matchDepthViewIdentity.https.html.ini new file mode 100644 index 00000000000..54901a8468a --- /dev/null +++ b/tests/wpt/meta/webxr/depth-sensing/gpu/depth_sensing_gpu_matchDepthViewIdentity.https.html.ini @@ -0,0 +1,19 @@ +[depth_sensing_gpu_matchDepthViewIdentity.https.html] + expected: ERROR + [Ensures XRViewGeometry values are identity when matchDepthView is unset, `gpu-optimized` - webgl] + expected: TIMEOUT + + [Ensures XRViewGeometry values are identity when matchDepthView is unset, `gpu-optimized` - webgl2] + expected: NOTRUN + + [Ensures XRViewGeometry values are identity when matchDepthView=true, `gpu-optimized` - webgl] + expected: NOTRUN + + [Ensures XRViewGeometry values are identity when matchDepthView=true, `gpu-optimized` - webgl2] + expected: NOTRUN + + [Ensures session can be created when matchDepthView=false, `gpu-optimized` - webgl] + expected: NOTRUN + + [Ensures session can be created when matchDepthView=false, `gpu-optimized` - webgl2] + expected: NOTRUN diff --git a/tests/wpt/tests/.github/workflows/docker.yml b/tests/wpt/tests/.github/workflows/docker.yml index 66794b69aba..5de0cc4bcb1 100644 --- a/tests/wpt/tests/.github/workflows/docker.yml +++ b/tests/wpt/tests/.github/workflows/docker.yml @@ -40,7 +40,7 @@ jobs: latest type=raw,value=${{ inputs.tag }} - name: Build and push the Docker image - uses: docker/build-push-action@471d1dc4e07e5cdedd4c2171150001c434f0b7a4 # v6.15.0 + uses: docker/build-push-action@14487ce63c7a62a4a324b0bfb37086795e31c6c1 # v6.16.0 with: context: ./tools/docker push: true diff --git a/tests/wpt/tests/ai/language_detection/availability-detached-crash.https.html b/tests/wpt/tests/ai/language_detection/availability-detached-crash.https.html index 5f76d59eb35..ee5e27e35b6 100644 --- a/tests/wpt/tests/ai/language_detection/availability-detached-crash.https.html +++ b/tests/wpt/tests/ai/language_detection/availability-detached-crash.https.html @@ -2,12 +2,19 @@ Assures no crash upon call of LanguageDetector.availability() on a detached document + + diff --git a/tests/wpt/tests/ai/language_detection/detector-iframe.https.html b/tests/wpt/tests/ai/language_detection/detector-iframe.https.html index 3e90d36b5aa..ddcf82bec68 100644 --- a/tests/wpt/tests/ai/language_detection/detector-iframe.https.html +++ b/tests/wpt/tests/ai/language_detection/detector-iframe.https.html @@ -37,6 +37,9 @@ function load_iframe(src, permission_policy) { }); } +// TODO(crbug.com/414428433): Tests in this file intermittently crash. +// Re-enable once potential causes in Permissions Policy implementation +// and test setup are addressed. promise_test(async t => { const src = HTTPS_NOTSAMESITE_ORIGIN + IFRAME_PATH; const iframe = await load_iframe(src, /*permission_policy=*/""); diff --git a/tests/wpt/tests/ai/language_detection/detector-locale.https.window.js b/tests/wpt/tests/ai/language_detection/detector-locale.https.window.js index a1c67db9129..80cbfa485e3 100644 --- a/tests/wpt/tests/ai/language_detection/detector-locale.https.window.js +++ b/tests/wpt/tests/ai/language_detection/detector-locale.https.window.js @@ -1,5 +1,8 @@ // META: title=Detect english // META: global=window +// META: timeout=long +// META: script=resources/util.js +// META: script=/resources/testdriver.js // META: script=../resources/util.js // META: script=../resources/locale-util.js @@ -45,7 +48,7 @@ promise_test(async t => { async function getExpectedInputLanguages(expectedInputLanguages) { - return (await LanguageDetector.create({expectedInputLanguages})) + return (await createLanguageDetector({expectedInputLanguages})) .expectedInputLanguages; } @@ -63,14 +66,14 @@ function uniqueCount(array) { promise_test(async t => { for (const [languageSubtag, variations] of Object.entries( valid_language_tags)) { - if (await getAvailability(languageSubtag) === 'unavailable') { + if (await getAvailability([languageSubtag]) === 'unavailable') { continue; } - await assert_valid_expected_input_languages(languageSubtag) + await assert_valid_expected_input_languages(languageSubtag); for (const variation of variations) { - await assert_valid_expected_input_languages(variation) + await assert_valid_expected_input_languages(variation); } const expectedInputLanguages = await getExpectedInputLanguages(variations); @@ -94,10 +97,10 @@ function assert_rejects_invalid_expected_input_languages( promise_test(async t => { for (const languageTag of invalid_language_tags) { assert_rejects_invalid_expected_input_languages( - t, LanguageDetector.create, [languageTag]); + t, createLanguageDetector, [languageTag]); } assert_rejects_invalid_expected_input_languages( - t, LanguageDetector.create, invalid_language_tags); + t, createLanguageDetector, invalid_language_tags); }, 'LanguageDetector.create() throws RangeError for invalid language tags'); promise_test(async t => { diff --git a/tests/wpt/tests/ai/language_detection/detector.https.window.js b/tests/wpt/tests/ai/language_detection/detector.https.window.js index e85ea6d249b..b0255bc552b 100644 --- a/tests/wpt/tests/ai/language_detection/detector.https.window.js +++ b/tests/wpt/tests/ai/language_detection/detector.https.window.js @@ -1,19 +1,32 @@ // META: title=Detect english // META: global=window +// META: timeout=long +// META: script=resources/util.js +// META: script=/resources/testdriver.js // META: script=../resources/util.js // META: script=../resources/locale-util.js 'use strict'; promise_test(async t => { - // Language detection is available after call to `create()`. - await LanguageDetector.create(); + // Creating the language detector without user activation rejects with + // NotAllowedError. + const createPromise = LanguageDetector.create(); + await promise_rejects_dom(t, 'NotAllowedError', createPromise); + + // Creating the translator with user activation succeeds. + await createLanguageDetector(); + + // Creating it should have switched it to available. const availability = await LanguageDetector.availability(); assert_equals(availability, 'available'); -}, 'Simple LanguageDetector.availability() call'); + + // Now that it is available, we should no longer need user activation. + await LanguageDetector.create(); +}, 'LanguageDetector.create() requires user activation when availability is "downloadable.'); promise_test(async t => { - const detector = await LanguageDetector.create(); + const detector = await createLanguageDetector(); const results = await detector.detect('Hello world!'); // must at least have the 'und' result. @@ -62,30 +75,30 @@ promise_test(async t => { throw error; } - await promise_rejects_exactly(t, error, LanguageDetector.create({monitor})); + await promise_rejects_exactly(t, error, createLanguageDetector({monitor})); }, 'If monitor throws an error, LanguageDetector.create() rejects with that error'); promise_test(async t => { - testMonitor(LanguageDetector.create); + testMonitor(createLanguageDetector); }, 'LanguageDetector.create() notifies its monitor on downloadprogress'); promise_test(async t => { const controller = new AbortController(); controller.abort(); - const createPromise = LanguageDetector.create({signal: controller.signal}); + const createPromise = createLanguageDetector({signal: controller.signal}); await promise_rejects_dom(t, 'AbortError', createPromise); }, 'LanguageDetector.create() call with an aborted signal.'); promise_test(async t => { await testAbortPromise(t, signal => { - return LanguageDetector.create({signal}); + return createLanguageDetector({signal}); }); -}, 'Aborting LanguageDetector.create().'); +}, 'Aborting createLanguageDetector().'); promise_test(async t => { - const detector = await LanguageDetector.create(); + const detector = await createLanguageDetector(); const text = 'Hello world!'; const promises = [detector.detect(text), detector.measureInputUsage(text)]; @@ -101,7 +114,7 @@ promise_test(async t => { promise_test(async t => { const controller = new AbortController(); - const detector = await LanguageDetector.create({signal: controller.signal}); + const detector = await createLanguageDetector({signal: controller.signal}); const text = 'Hello world!'; const promises = [detector.detect(text), detector.measureInputUsage(text)]; @@ -120,7 +133,7 @@ promise_test(async t => { const controller = new AbortController(); controller.abort(); - const detector = await LanguageDetector.create(); + const detector = await createLanguageDetector(); const detectPromise = detector.detect('Hello world!', {signal: controller.signal}); @@ -128,14 +141,14 @@ promise_test(async t => { }, 'LanguageDetector.detect() call with an aborted signal.'); promise_test(async t => { - const detector = await LanguageDetector.create(); + const detector = await createLanguageDetector(); await testAbortPromise(t, signal => { return detector.detect('Hello world!', {signal}); }); }, 'Aborting LanguageDetector.detect().'); promise_test(async t => { - const detector = await LanguageDetector.create(); + const detector = await createLanguageDetector(); const text = 'Hello world!'; const largeText = text.repeat(10000); @@ -157,7 +170,7 @@ promise_test(async t => { const controller = new AbortController(); controller.abort(); - const detector = await LanguageDetector.create(); + const detector = await createLanguageDetector(); const measureInputUsagePromise = detector.measureInputUsage('hello', {signal: controller.signal}); @@ -165,17 +178,17 @@ promise_test(async t => { }, 'LanguageDetector.measureInputUsage() call with an aborted signal.'); promise_test(async t => { - const detector = await LanguageDetector.create(); + const detector = await createLanguageDetector(); await testAbortPromise(t, signal => { return detector.measureInputUsage('hello', {signal}); }); }, 'Aborting LanguageDetector.measureInputUsage().'); promise_test(async () => { - const detector = await LanguageDetector.create(); + const detector = await createLanguageDetector(); assert_equals(detector.expectedInputLanguages, null); }, 'Creating LanguageDetector without expectedInputLanguages'); promise_test(async t => { - await testCreateMonitorWithAbort(t, LanguageDetector.create); + await testCreateMonitorWithAbort(t, createLanguageDetector); }, 'Progress events are not emitted after aborted.'); diff --git a/tests/wpt/tests/ai/language_detection/detector.optional.https.window.js b/tests/wpt/tests/ai/language_detection/detector.optional.https.window.js index 7ffa1362dd5..1dd248a9eca 100644 --- a/tests/wpt/tests/ai/language_detection/detector.optional.https.window.js +++ b/tests/wpt/tests/ai/language_detection/detector.optional.https.window.js @@ -1,5 +1,8 @@ // META: title=Detect english // META: global=window +// META: timeout=long +// META: script=resources/util.js +// META: script=/resources/testdriver.js // META: script=../resources/util.js 'use strict'; @@ -36,7 +39,7 @@ promise_test(async t => { const expectedInputLanguages = Object.keys(testInput); - const detector = await LanguageDetector.create({expectedInputLanguages}); + const detector = await createLanguageDetector({expectedInputLanguages}); for (const [language, input] of Object.entries(testInput)) { await assert_detects_correct_language(detector, input, language); @@ -45,7 +48,7 @@ promise_test(async t => { promise_test(async () => { const expectedInputLanguages = ['en', 'es']; - const detector = await LanguageDetector.create({expectedInputLanguages}); + const detector = await createLanguageDetector({expectedInputLanguages}); assert_array_equals(detector.expectedInputLanguages, expectedInputLanguages); assert_true(Object.isFrozen(detector.expectedInputLanguages)); }, 'Creating LanguageDetector with expectedInputLanguages'); diff --git a/tests/wpt/tests/ai/language_detection/resources/util.js b/tests/wpt/tests/ai/language_detection/resources/util.js new file mode 100644 index 00000000000..7cb3e7c2e13 --- /dev/null +++ b/tests/wpt/tests/ai/language_detection/resources/util.js @@ -0,0 +1,4 @@ +async function createLanguageDetector(options = {}) { + await test_driver.bless(); + return await LanguageDetector.create(options); +} diff --git a/tests/wpt/tests/audio-output/setSinkId.https.html b/tests/wpt/tests/audio-output/setSinkId.https.html index be65f0ac81b..662596910ee 100644 --- a/tests/wpt/tests/audio-output/setSinkId.https.html +++ b/tests/wpt/tests/audio-output/setSinkId.https.html @@ -26,14 +26,8 @@ promise_test(async t => { const list = await navigator.mediaDevices.enumerateDevices(); assert_greater_than(list.length, 0, "media device list includes at least one device"); - const audioInputList = list.filter(({kind}) => kind == "audioinput"); const outputDevicesList = list.filter(({kind}) => kind == "audiooutput"); - // List of exposed microphone groupIds - const exposedGroupIds = new Set(audioInputList.map(device => device.groupId)); - for (const { deviceId, groupId } of outputDevicesList) { - assert_true(exposedGroupIds.has(groupId), - "audiooutput device groupId must match an exposed microphone"); assert_greater_than(deviceId.length, 0, "deviceId.length"); const p1 = audio.setSinkId(deviceId); diff --git a/tests/wpt/tests/clear-site-data/support/clear-site-data-prefetchCache.py b/tests/wpt/tests/clear-site-data/support/clear-site-data-prefetchCache.py new file mode 100644 index 00000000000..3a332dd58b2 --- /dev/null +++ b/tests/wpt/tests/clear-site-data/support/clear-site-data-prefetchCache.py @@ -0,0 +1,18 @@ +def main(request, response): + headers = [(b"Content-Type", b"text/html")] + headers += [(b"Clear-Site-Data", b'"prefetchCache"')] + content = f''' + + + {request.url} + ''' + return 200, headers, content diff --git a/tests/wpt/tests/clear-site-data/support/clear-site-data-prerenderCache.py b/tests/wpt/tests/clear-site-data/support/clear-site-data-prerenderCache.py new file mode 100644 index 00000000000..bf845cfb699 --- /dev/null +++ b/tests/wpt/tests/clear-site-data/support/clear-site-data-prerenderCache.py @@ -0,0 +1,18 @@ +def main(request, response): + headers = [(b"Content-Type", b"text/html")] + headers += [(b"Clear-Site-Data", b'"prerenderCache"')] + content = f''' + + + {request.url} + ''' + return 200, headers, content diff --git a/tests/wpt/tests/cookie-store/change_eventhandler_for_already_expired.https.window.js b/tests/wpt/tests/cookie-store/change_eventhandler_for_already_expired.https.window.js index 89d84b13d1b..f3bbe0ea560 100644 --- a/tests/wpt/tests/cookie-store/change_eventhandler_for_already_expired.https.window.js +++ b/tests/wpt/tests/cookie-store/change_eventhandler_for_already_expired.https.window.js @@ -20,3 +20,22 @@ cookie_test(async t => { {deleted: [], changed: [{name: 'alt-cookie', value: 'IGNORE'}]}, 'Deletion not observed after document.cookie sets already-expired cookie'); }, 'CookieStore setting already-expired cookie should not be observed'); + +cookie_test(async t => { + const eventPromise = observeNextCookieChangeEvent(); + await cookieStore.set({ + name: 'cookie', + value: 'ALREADY-EXPIRED', + expires: new Date(new Date() - 10_000), + partitioned: true, + }); + await cookieStore.set('alt-cookie', 'IGNORE'); + assert_equals( + await getCookieString(), + 'alt-cookie=IGNORE', + 'Already-expired cookie not included in CookieStore'); + await verifyCookieChangeEvent( + eventPromise, + {deleted: [], changed: [{name: 'alt-cookie', value: 'IGNORE'}]}, + 'Deletion not observed after document.cookie sets already-expired cookie'); +}, 'CookieStore setting already-expired partitioned cookie should not be observed'); diff --git a/tests/wpt/tests/cookie-store/change_eventhandler_for_document_cookie.https.window.js b/tests/wpt/tests/cookie-store/change_eventhandler_for_document_cookie.https.window.js index 82b0f2baa2b..1937ebdae35 100644 --- a/tests/wpt/tests/cookie-store/change_eventhandler_for_document_cookie.https.window.js +++ b/tests/wpt/tests/cookie-store/change_eventhandler_for_document_cookie.https.window.js @@ -78,6 +78,21 @@ cookie_test(async t => { 'Deletion not observed after document.cookie sets already-expired cookie'); }, 'document.cookie set already-expired cookie should not be observed by CookieStore'); +cookie_test(async t => { + let eventPromise = observeNextCookieChangeEvent(); + await setCookieStringDocument('DOCUMENT-cookie=VALUE; path=/'); + await verifyCookieChangeEvent( + eventPromise, {changed: [{name: 'DOCUMENT-cookie', value: 'VALUE'}]}, + 'Original cookie is observed.'); + + eventPromise = observeNextCookieChangeEvent(); + // Overwrite the original cookie with a duplicate, this should not dispatch an event. + await setCookieStringDocument('DOCUMENT-cookie=VALUE; path=/'); + await setCookieStringDocument('DOCUMENT-alt-cookie=IGNORE; path=/'); + await verifyCookieChangeEvent( + eventPromise, {changed: [{name: 'DOCUMENT-alt-cookie', value: 'IGNORE'}]}, + 'Duplicate cookie is not observed.'); +}, 'document.cookie duplicate cookie should not be observed by CookieStore'); cookie_test(async t => { let eventPromise = observeNextCookieChangeEvent(); diff --git a/tests/wpt/tests/cookie-store/change_eventhandler_for_http_cookie_and_set_cookie_headers.https.window.js b/tests/wpt/tests/cookie-store/change_eventhandler_for_http_cookie_and_set_cookie_headers.https.window.js index 8f5ef1cabbe..8517995acfe 100644 --- a/tests/wpt/tests/cookie-store/change_eventhandler_for_http_cookie_and_set_cookie_headers.https.window.js +++ b/tests/wpt/tests/cookie-store/change_eventhandler_for_http_cookie_and_set_cookie_headers.https.window.js @@ -62,6 +62,22 @@ cookie_test(async t => { 'Deletion not observed after HTTP sets already-expired cookie'); }, 'HTTP set already-expired cookie should not be observed by CookieStore'); +cookie_test(async t => { + let eventPromise = observeNextCookieChangeEvent(); + await setCookieStringHttp('HTTP-cookie=VALUE; path=/'); + await verifyCookieChangeEvent( + eventPromise, {changed: [{name: 'HTTP-cookie', value: 'VALUE'}]}, + 'Original cookie is observed.'); + + eventPromise = observeNextCookieChangeEvent(); + // Overwrite the original cookie with a duplicate, this should not dispatch an event. + await setCookieStringHttp('HTTP-cookie=VALUE; path=/'); + await setCookieStringHttp('HTTP-alt-cookie=IGNORE; path=/'); + await verifyCookieChangeEvent( + eventPromise, {changed: [{name: 'HTTP-alt-cookie', value: 'IGNORE'}]}, + 'Duplicate cookie is not observed.'); +}, 'HTTP duplicate cookie should not be observed by CookieStore'); + cookie_test(async t => { let eventPromise = observeNextCookieChangeEvent(); diff --git a/tests/wpt/tests/cookie-store/change_eventhandler_for_no_change.https.window.js b/tests/wpt/tests/cookie-store/change_eventhandler_for_no_change.https.window.js new file mode 100644 index 00000000000..5f9c2927433 --- /dev/null +++ b/tests/wpt/tests/cookie-store/change_eventhandler_for_no_change.https.window.js @@ -0,0 +1,43 @@ +// META: title=Cookie Store API: Test that setting a duplicate cookie does not fire a second event. +// META: script=resources/cookie-test-helpers.js + +'use strict'; + +cookie_test(async t => { + let eventPromise = observeNextCookieChangeEvent(); + await cookieStore.set('cookie', 'VALUE'); + await verifyCookieChangeEvent( + eventPromise, {changed: [{name: 'cookie', value: 'VALUE'}]}, + 'Original cookie is observed.'); + + eventPromise = observeNextCookieChangeEvent(); + await cookieStore.set('cookie', 'VALUE'); + await cookieStore.set('alt-cookie', 'IGNORE'); + await verifyCookieChangeEvent( + eventPromise, {changed: [{name: 'alt-cookie', value: 'IGNORE'}]}, + 'Duplicate cookie is not observed.'); +}, 'CookieStore duplicate cookie should not be observed'); + +cookie_test(async t => { + let eventPromise = observeNextCookieChangeEvent(); + await cookieStore.set({ + name: 'cookie', + value: 'VALUE', + partitioned: true, + }); + await verifyCookieChangeEvent( + eventPromise, + {changed: [{name: 'cookie', value: 'VALUE', partitioned: true}]}, + 'Original cookie is observed.'); + + eventPromise = observeNextCookieChangeEvent(); + await cookieStore.set({ + name: 'cookie', + value: 'VALUE', + partitioned: true, + }); + await cookieStore.set('alt-cookie', 'IGNORE'); + await verifyCookieChangeEvent( + eventPromise, {changed: [{name: 'alt-cookie', value: 'IGNORE'}]}, + 'Duplicate cookie is not observed.'); +}, 'CookieStore duplicate partitioned cookie should not be observed'); diff --git a/tests/wpt/tests/css/css-align/abspos/align-items-static-position-001-ref.tentative.html b/tests/wpt/tests/css/css-align/abspos/align-items-static-position-001-ref.tentative.html new file mode 100644 index 00000000000..22c1fd03e38 --- /dev/null +++ b/tests/wpt/tests/css/css-align/abspos/align-items-static-position-001-ref.tentative.html @@ -0,0 +1,30 @@ + + +
+
+
diff --git a/tests/wpt/tests/css/css-align/abspos/align-items-static-position-001.tentative.html b/tests/wpt/tests/css/css-align/abspos/align-items-static-position-001.tentative.html new file mode 100644 index 00000000000..06c11e6cdb6 --- /dev/null +++ b/tests/wpt/tests/css/css-align/abspos/align-items-static-position-001.tentative.html @@ -0,0 +1,39 @@ + +Align-items only applies to OOF elements of block elements when statically positioned if it would apply if not OOF. + + + + + + + + +
+
+
diff --git a/tests/wpt/tests/css/css-align/abspos/align-items-static-position-002-ref.tentative.html b/tests/wpt/tests/css/css-align/abspos/align-items-static-position-002-ref.tentative.html new file mode 100644 index 00000000000..6f53b041787 --- /dev/null +++ b/tests/wpt/tests/css/css-align/abspos/align-items-static-position-002-ref.tentative.html @@ -0,0 +1,32 @@ + + + +
text +
+
text +
+ diff --git a/tests/wpt/tests/css/css-align/abspos/align-items-static-position-002.tentative.html b/tests/wpt/tests/css/css-align/abspos/align-items-static-position-002.tentative.html new file mode 100644 index 00000000000..f90004b5672 --- /dev/null +++ b/tests/wpt/tests/css/css-align/abspos/align-items-static-position-002.tentative.html @@ -0,0 +1,41 @@ + +Align-items doesn't apply to OOF elements of inline elements when statically positioned because they would apply if not OOF. + + + + + + + + + +
text +
+
text +
diff --git a/tests/wpt/tests/css/css-align/abspos/align-self-static-position-003-ref.html b/tests/wpt/tests/css/css-align/abspos/align-self-static-position-003-ref.html new file mode 100644 index 00000000000..132bbb7360f --- /dev/null +++ b/tests/wpt/tests/css/css-align/abspos/align-self-static-position-003-ref.html @@ -0,0 +1,59 @@ + + + + +
text +
+
+
text +
+
+
text +
+
+
+ +
text +
+
+
text +
+
+
text +
+
+
+ +
text +
+
+
text +
+
+
text +
+
diff --git a/tests/wpt/tests/css/css-align/abspos/align-self-static-position-003.html b/tests/wpt/tests/css/css-align/abspos/align-self-static-position-003.html new file mode 100644 index 00000000000..39f871f4c2b --- /dev/null +++ b/tests/wpt/tests/css/css-align/abspos/align-self-static-position-003.html @@ -0,0 +1,110 @@ + +Align-self applies to OOF elements of inline elements when statically positioned. + + + + + + + + + +
text +
+
text +
+
text +
+
text +
+
text +
+
text +
+
+ +
text +
+
text +
+
text +
+
text +
+
text +
+
text +
+
+ +
text +
+
text +
+
text +
+
text +
+
text +
+
text +
diff --git a/tests/wpt/tests/css/css-align/abspos/align-self-static-position-004-ref.html b/tests/wpt/tests/css/css-align/abspos/align-self-static-position-004-ref.html new file mode 100644 index 00000000000..68130ee1d7e --- /dev/null +++ b/tests/wpt/tests/css/css-align/abspos/align-self-static-position-004-ref.html @@ -0,0 +1,67 @@ + + + + +
text +
+
+
text +
+
+
text +
+
+
+ +
text +
+
+
text +
+
+
text +
+
+
+ +
text +
+
+
text +
+
+
text +
+
diff --git a/tests/wpt/tests/css/css-align/abspos/align-self-static-position-004.html b/tests/wpt/tests/css/css-align/abspos/align-self-static-position-004.html new file mode 100644 index 00000000000..afba7215b11 --- /dev/null +++ b/tests/wpt/tests/css/css-align/abspos/align-self-static-position-004.html @@ -0,0 +1,118 @@ + +Align-self applies to OOF elements of inline elements when statically positioned with different writing modes. + + + + + + + + + +
text +
+
text +
+
text +
+
text +
+
text +
+
text +
+
+ +
text +
+
text +
+
text +
+
text +
+
text +
+
text +
+
+ +
text +
+
text +
+
text +
+
text +
+
text +
+
text +
diff --git a/tests/wpt/tests/css/css-align/abspos/align-self-static-position-005-ref.html b/tests/wpt/tests/css/css-align/abspos/align-self-static-position-005-ref.html new file mode 100644 index 00000000000..947bd270448 --- /dev/null +++ b/tests/wpt/tests/css/css-align/abspos/align-self-static-position-005-ref.html @@ -0,0 +1,21 @@ + + + +
+ hello + hello + world + +
diff --git a/tests/wpt/tests/css/css-align/abspos/align-self-static-position-005.html b/tests/wpt/tests/css/css-align/abspos/align-self-static-position-005.html new file mode 100644 index 00000000000..e148f0ebda3 --- /dev/null +++ b/tests/wpt/tests/css/css-align/abspos/align-self-static-position-005.html @@ -0,0 +1,29 @@ + +Align-self applies to OOF elements of inline elements when statically positioned. + + + + + + + + + +
+ hello + hello + world + +
diff --git a/tests/wpt/tests/css/css-align/abspos/align-self-static-position-006-ref.html b/tests/wpt/tests/css/css-align/abspos/align-self-static-position-006-ref.html new file mode 100644 index 00000000000..5bbafc64845 --- /dev/null +++ b/tests/wpt/tests/css/css-align/abspos/align-self-static-position-006-ref.html @@ -0,0 +1,48 @@ + + + +
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/tests/css/css-align/abspos/align-self-static-position-006.html b/tests/wpt/tests/css/css-align/abspos/align-self-static-position-006.html new file mode 100644 index 00000000000..253b2a52f61 --- /dev/null +++ b/tests/wpt/tests/css/css-align/abspos/align-self-static-position-006.html @@ -0,0 +1,64 @@ + +Align-self:self-start/end applies to OOF elements of block elements when statically positioned. + + + + + + + + +
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/tests/css/css-align/abspos/align-self-static-position-007-ref.html b/tests/wpt/tests/css/css-align/abspos/align-self-static-position-007-ref.html new file mode 100644 index 00000000000..bc9b5f4f650 --- /dev/null +++ b/tests/wpt/tests/css/css-align/abspos/align-self-static-position-007-ref.html @@ -0,0 +1,48 @@ + + + + +
text +
+
+
text +
+
+
text +
+
+
+ +
text +
+
+
text +
+
+
text +
+
diff --git a/tests/wpt/tests/css/css-align/abspos/align-self-static-position-007.html b/tests/wpt/tests/css/css-align/abspos/align-self-static-position-007.html new file mode 100644 index 00000000000..ebe872aaab9 --- /dev/null +++ b/tests/wpt/tests/css/css-align/abspos/align-self-static-position-007.html @@ -0,0 +1,71 @@ + +Align-self:self-start/end applies to OOF elements of inline elements when statically positioned. + + + + + + + + + +
text +
+
text +
+
text +
+
text +
+
text +
+
text +
+
+ +
text +
+
text +
+
text +
+
text +
+
text +
+
text +
diff --git a/tests/wpt/tests/css/css-align/abspos/align-self-static-position-008-ref.html b/tests/wpt/tests/css/css-align/abspos/align-self-static-position-008-ref.html new file mode 100644 index 00000000000..79cf612b8f8 --- /dev/null +++ b/tests/wpt/tests/css/css-align/abspos/align-self-static-position-008-ref.html @@ -0,0 +1,103 @@ + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/tests/css/css-align/abspos/align-self-static-position-008.html b/tests/wpt/tests/css/css-align/abspos/align-self-static-position-008.html new file mode 100644 index 00000000000..187974884b4 --- /dev/null +++ b/tests/wpt/tests/css/css-align/abspos/align-self-static-position-008.html @@ -0,0 +1,110 @@ + +Align-self applies to OOF elements of block elements when statically positioned. + + + + + + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/tests/css/css-align/abspos/align-self-stretch-auto-margins-aspect-ratio.html b/tests/wpt/tests/css/css-align/abspos/align-self-stretch-auto-margins-aspect-ratio.html new file mode 100644 index 00000000000..4eaa9d2f3a6 --- /dev/null +++ b/tests/wpt/tests/css/css-align/abspos/align-self-stretch-auto-margins-aspect-ratio.html @@ -0,0 +1,30 @@ + + + + +

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

+
+
+
diff --git a/tests/wpt/tests/css/css-align/abspos/align-self-stretch-auto-margins.html b/tests/wpt/tests/css/css-align/abspos/align-self-stretch-auto-margins.html new file mode 100644 index 00000000000..9d1b6454c84 --- /dev/null +++ b/tests/wpt/tests/css/css-align/abspos/align-self-stretch-auto-margins.html @@ -0,0 +1,29 @@ + + + + +

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

+
+
+
diff --git a/tests/wpt/tests/css/css-align/abspos/justify-self-stretch-auto-margins-aspect-ratio.html b/tests/wpt/tests/css/css-align/abspos/justify-self-stretch-auto-margins-aspect-ratio.html new file mode 100644 index 00000000000..c50b32f089b --- /dev/null +++ b/tests/wpt/tests/css/css-align/abspos/justify-self-stretch-auto-margins-aspect-ratio.html @@ -0,0 +1,30 @@ + + + + +

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

+
+
+
diff --git a/tests/wpt/tests/css/css-align/abspos/justify-self-stretch-auto-margins.html b/tests/wpt/tests/css/css-align/abspos/justify-self-stretch-auto-margins.html new file mode 100644 index 00000000000..7d7b4bfc857 --- /dev/null +++ b/tests/wpt/tests/css/css-align/abspos/justify-self-stretch-auto-margins.html @@ -0,0 +1,29 @@ + + + + +

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

+
+
+
diff --git a/tests/wpt/tests/css/css-animations/crashtests/chrome-bug-405795970.html b/tests/wpt/tests/css/css-animations/crashtests/chrome-bug-405795970.html new file mode 100644 index 00000000000..5b45527fd9c --- /dev/null +++ b/tests/wpt/tests/css/css-animations/crashtests/chrome-bug-405795970.html @@ -0,0 +1,17 @@ + + + +

Pass if no crash

+
diff --git a/tests/wpt/tests/css/css-box/parsing/margin-trim-computed.html b/tests/wpt/tests/css/css-box/parsing/margin-trim-computed.html index ad2d17f2ef0..c38adea9a68 100644 --- a/tests/wpt/tests/css/css-box/parsing/margin-trim-computed.html +++ b/tests/wpt/tests/css/css-box/parsing/margin-trim-computed.html @@ -27,8 +27,13 @@ test_computed_value("margin-trim", "inline-start block-start", "block-start inli test_computed_value("margin-trim", "inline-end block-start", "block-start inline-end"); test_computed_value("margin-trim", "inline-end block-end", "block-end inline-end"); test_computed_value("margin-trim", "block-start block-end inline-start", "block-start inline-start block-end"); -test_computed_value("margin-trim", "inline-start block-start inline-end block-end", "block-start inline-start block-end inline-end"); -test_computed_value("margin-trim", "inline-start inline-end block-start", "block-start inline-start inline-end"); + +test_computed_value("margin-trim", "block-start inline-start block-end inline-end", "block inline"); +test_computed_value("margin-trim", "block-start block-end inline-end inline-start", "block inline"); +test_computed_value("margin-trim", "block-start block-end inline-start inline-end", "block inline"); +test_computed_value("margin-trim", "inline-start block-end block-start inline-end", "block inline"); +test_computed_value("margin-trim", "inline-start inline-end block-start block-end", "block inline"); +test_computed_value("margin-trim", "inline-end block-end inline-start block-start", "block inline"); diff --git a/tests/wpt/tests/css/css-box/parsing/margin-trim.html b/tests/wpt/tests/css/css-box/parsing/margin-trim.html index 0d92f80b9b9..e8679f9cbf3 100644 --- a/tests/wpt/tests/css/css-box/parsing/margin-trim.html +++ b/tests/wpt/tests/css/css-box/parsing/margin-trim.html @@ -21,6 +21,9 @@ test_valid_value("margin-trim", "block-end"); test_valid_value("margin-trim", "inline-start"); test_valid_value("margin-trim", "inline-end"); +test_valid_value("margin-trim", "block inline"); +test_valid_value("margin-trim", "inline block"); + // Serialize values into either block or inline test_valid_value("margin-trim", "block-start block-end", "block"); test_valid_value("margin-trim", "inline-start inline-end", "inline"); @@ -29,10 +32,15 @@ test_valid_value("margin-trim", "inline-end inline-start", "inline"); test_valid_value("margin-trim", "inline-start block-start"); test_valid_value("margin-trim", "inline-end block-start block-end"); -test_valid_value("margin-trim", "block-start inline-start block-end inline-end"); -test_valid_value("margin-trim", "inline-end block-end inline-start block-start"); -test_invalid_value("margin-trim", "block inline"); +// Serialize 4 values into "block inline" +test_valid_value("margin-trim", "block-start inline-start block-end inline-end", "block inline"); +test_valid_value("margin-trim", "block-start block-end inline-end inline-start", "block inline"); +test_valid_value("margin-trim", "block-start block-end inline-start inline-end", "block inline"); +test_valid_value("margin-trim", "inline-start block-end block-start inline-end", "block inline"); +test_valid_value("margin-trim", "inline-start inline-end block-start block-end", "block inline"); +test_valid_value("margin-trim", "inline-end block-end inline-start block-start", "block inline"); + test_invalid_value("margin-trim", "block block"); test_invalid_value("margin-trim", "inline inline"); test_invalid_value("margin-trim", "block inline-start inline-end"); diff --git a/tests/wpt/tests/css/css-easing/linear-timing-functions-syntax.html b/tests/wpt/tests/css/css-easing/linear-timing-functions-syntax.html index 0c949e9ea7d..408264b58df 100644 --- a/tests/wpt/tests/css/css-easing/linear-timing-functions-syntax.html +++ b/tests/wpt/tests/css/css-easing/linear-timing-functions-syntax.html @@ -26,6 +26,7 @@ test_valid_value("animation-timing-function", "linear(0, 0.5 25% 75%, 1 100% 100 test_valid_value("animation-timing-function", "linear(0, 1.3, 1, 0.92, 1, 0.99, 1, 0.998, 1 100% 100%)"); test_valid_value("animation-timing-function", "linear(0, 0 40%, 1, 0.5, 1)"); test_valid_value("animation-timing-function", "linear(0, 1.3, 1, 0.92, 1, 0.99, 1, 1.004, 0.998, 1 100% 100%)"); +test_valid_value("animation-timing-function", "linear(calc(0/0), 1)", "linear(0 0%, 1 100%)"); test_invalid_value("animation-timing-function", "linear()"); test_invalid_value("animation-timing-function", "linear(0)"); diff --git a/tests/wpt/tests/css/css-easing/step-timing-functions-syntax.html b/tests/wpt/tests/css/css-easing/step-timing-functions-syntax.html index 4e8b21e4413..e8465ff7a33 100644 --- a/tests/wpt/tests/css/css-easing/step-timing-functions-syntax.html +++ b/tests/wpt/tests/css/css-easing/step-timing-functions-syntax.html @@ -29,6 +29,7 @@ test_invalid_value("animation-timing-function", "steps(0, jump-start)"); test_invalid_value("animation-timing-function", "steps(0, jump-end)"); test_invalid_value("animation-timing-function", "steps(0, jump-both)"); test_invalid_value("animation-timing-function", "steps(1, jump-none)"); +test_invalid_value("animation-timing-function", "steps(calc(0/0), jump-none)"); diff --git a/tests/wpt/tests/css/css-fonts/parsing/font-palette-values-invalid.html b/tests/wpt/tests/css/css-fonts/parsing/font-palette-values-invalid.html index a3a0a88ba68..32c9c4c5efe 100644 --- a/tests/wpt/tests/css/css-fonts/parsing/font-palette-values-invalid.html +++ b/tests/wpt/tests/css/css-fonts/parsing/font-palette-values-invalid.html @@ -140,13 +140,18 @@ @font-palette-values --A { override-colors: 0 color-mix(in lch, red, color-mix(in lch, currentcolor, black)); } + +/* 24 */ +@font-palette-values --A { + base-palette: sibling-index(); +} diff --git a/tests/wpt/tests/css/css-fonts/test_font_feature_values_parsing.html b/tests/wpt/tests/css/css-fonts/test_font_feature_values_parsing.html index 7a5844d5600..08c20142449 100644 --- a/tests/wpt/tests/css/css-fonts/test_font_feature_values_parsing.html +++ b/tests/wpt/tests/css/css-fonts/test_font_feature_values_parsing.html @@ -81,6 +81,7 @@ var testrules = [ { rule: _("@styleset { ok-1: 1; }"), serializationSame: true }, { rule: _("@annotation { ok-1: 3; }"), serializationSame: true }, { rule: _("@stylistic { blah: 3; }"), serializationSame: true }, + { rule: _("@stylistic { blah: sibling-index(); }"), serializationNoValueDefn: true }, { rule: makeRule("bongo", "\n@styleset\n { blah: 3; super-blah: 4 5;\n more-blah: 5 6 7;\n }"), serializationSame: true }, { rule: makeRule("bongo", "\n@styleset\n {\n blah:\n 3\n;\n super-blah:\n 4\n 5\n;\n more-blah:\n 5 6\n 7;\n }"), serializationSame: true }, diff --git a/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-001-ref.html b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-001-ref.html new file mode 100644 index 00000000000..834c96ccd39 --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-001-ref.html @@ -0,0 +1,49 @@ + + + + + +
+
+
+
+
+
+
+
diff --git a/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-001.html b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-001.html new file mode 100644 index 00000000000..c3752156c7d --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-001.html @@ -0,0 +1,45 @@ + + + CSS Gap Decorations: Multicolumn gap decorations painted with column-wrap. + + + + + + +
+

+

+

+

+

+

+
diff --git a/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-002-ref.html b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-002-ref.html new file mode 100644 index 00000000000..d132f0ca677 --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-002-ref.html @@ -0,0 +1,96 @@ + + + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-002.html b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-002.html new file mode 100644 index 00000000000..0b632fa94ac --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-002.html @@ -0,0 +1,59 @@ + + + CSS Gap Decorations: Multicolumn gap decorations painted with column-wrap and a spanner. + + + + + + +
+

+

+

+ +

+

+

+

+

+

+
diff --git a/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-003-ref.html b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-003-ref.html new file mode 100644 index 00000000000..cd26da24389 --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-003-ref.html @@ -0,0 +1,59 @@ + + + + +
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-003.html b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-003.html new file mode 100644 index 00000000000..2f2473fd046 --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-003.html @@ -0,0 +1,35 @@ + + + CSS Gap Decorations: Multicolumn gap decorations painted basic case. + + + + + + +
+

+

+

+
diff --git a/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-004-ref.html b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-004-ref.html new file mode 100644 index 00000000000..002b1f2b594 --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-004-ref.html @@ -0,0 +1,78 @@ + + + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-004.html b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-004.html new file mode 100644 index 00000000000..0dcbeef4df8 --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-004.html @@ -0,0 +1,46 @@ + + + CSS Gap Decorations: Multicolumn gap decorations painted with smaller width than gap and column-wrap. + + + + + + +
+

+

+

+

+

+

+
diff --git a/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-005-ref.html b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-005-ref.html new file mode 100644 index 00000000000..6543021c979 --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-005-ref.html @@ -0,0 +1,64 @@ + + + + +
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-005.html b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-005.html new file mode 100644 index 00000000000..daa65e904e7 --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-005.html @@ -0,0 +1,64 @@ + + + CSS Gap Decorations: Multicolumn gap decorations painted with nested multicol with column wrap. + + + + + + +
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-006-ref.html b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-006-ref.html new file mode 100644 index 00000000000..4cb56d207fe --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-006-ref.html @@ -0,0 +1,52 @@ + + + + +
+
+
+
+
+
+
diff --git a/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-006.html b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-006.html new file mode 100644 index 00000000000..64b3b007ab5 --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-006.html @@ -0,0 +1,39 @@ + + + CSS Gap Decorations: Multicolumn gap decorations painted with nested fragmented multicol. + + + + + +
+
+
+
+
diff --git a/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-007-ref.html b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-007-ref.html new file mode 100644 index 00000000000..09973ddc690 --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-007-ref.html @@ -0,0 +1,133 @@ + + + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-007.html b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-007.html new file mode 100644 index 00000000000..1f23ed7f7ca --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-007.html @@ -0,0 +1,44 @@ + + + CSS Gap Decorations: Multicolumn gap decorations painted with nested fragmented multicol. + + + + + + +
+
+
+
+
+
+
diff --git a/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-008-ref.html b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-008-ref.html new file mode 100644 index 00000000000..d49c2f50f19 --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-008-ref.html @@ -0,0 +1,115 @@ + + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-008.html b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-008.html new file mode 100644 index 00000000000..ed299b5d9f6 --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-008.html @@ -0,0 +1,63 @@ + + + CSS Gap Decorations: Multicolumn gap decorations painted with 0px outset and rule-break intersection. + + + + + + +
+

+

+

+ +

+

+

+

+

+

+
diff --git a/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-009-ref.html b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-009-ref.html new file mode 100644 index 00000000000..124bf7eaeb1 --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-009-ref.html @@ -0,0 +1,116 @@ + + + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-009.html b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-009.html new file mode 100644 index 00000000000..b00c6a70f8a --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-009.html @@ -0,0 +1,63 @@ + + + CSS Gap Decorations: Multicolumn gap decorations painted with 2px outset and rule-break intersection. + + + + + + +
+

+

+

+ +

+

+

+

+

+

+
diff --git a/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-010-ref.html b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-010-ref.html new file mode 100644 index 00000000000..9582ab4103d --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-010-ref.html @@ -0,0 +1,135 @@ + + + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-010.html b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-010.html new file mode 100644 index 00000000000..61bb4a9b933 --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-010.html @@ -0,0 +1,63 @@ + + + CSS Gap Decorations: Multicolumn gap decorations painted with -2px outset and rule-break intersection. + + + + + + +
+

+

+

+ +

+

+

+

+

+

+
diff --git a/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-011-ref.html b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-011-ref.html new file mode 100644 index 00000000000..3387918d399 --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-011-ref.html @@ -0,0 +1,115 @@ + + + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-011.html b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-011.html new file mode 100644 index 00000000000..cf588ded41e --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-011.html @@ -0,0 +1,63 @@ + + + CSS Gap Decorations: Multicolumn gap decorations painted with 100% outset and rule-break intersection. + + + + + + +
+

+

+

+ +

+

+

+

+

+

+
diff --git a/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-012-ref.html b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-012-ref.html new file mode 100644 index 00000000000..9fb5e85e920 --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-012-ref.html @@ -0,0 +1,104 @@ + + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-012.html b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-012.html new file mode 100644 index 00000000000..078b810cf8e --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-012.html @@ -0,0 +1,60 @@ + + + CSS Gap Decorations: Multicolumn gap decorations painted with 2px width and rule-break none. + + + + + +
+

+

+

+ +

+

+

+

+

+

+
diff --git a/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-013-ref.html b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-013-ref.html new file mode 100644 index 00000000000..8e426d8ed32 --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-013-ref.html @@ -0,0 +1,41 @@ + + + +
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-013.html b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-013.html new file mode 100644 index 00000000000..d4170084f06 --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-013.html @@ -0,0 +1,28 @@ + + + + + + +
+
+
+
diff --git a/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-014-ref.html b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-014-ref.html new file mode 100644 index 00000000000..9d9674bd476 --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-014-ref.html @@ -0,0 +1,62 @@ + + + + + +
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-014.html b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-014.html new file mode 100644 index 00000000000..1dcd393d99a --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-014.html @@ -0,0 +1,47 @@ + + + CSS Gap Decorations: Multicolumn gap decorations painted with column-wrap, rule-break-intersection, and fewer + columns in last row. + + + + + + +
+

+

+

+

+
diff --git a/tests/wpt/tests/css/css-grid/grid-items/replaced-element-016.tentative.html b/tests/wpt/tests/css/css-grid/grid-items/replaced-element-016.tentative.html new file mode 100644 index 00000000000..2d5b401b8d2 --- /dev/null +++ b/tests/wpt/tests/css/css-grid/grid-items/replaced-element-016.tentative.html @@ -0,0 +1,13 @@ + + + + + + + + + +

Test passes if there is a filled green square.

+
+ +
diff --git a/tests/wpt/tests/css/css-grid/grid-items/replaced-element-017.tentative.html b/tests/wpt/tests/css/css-grid/grid-items/replaced-element-017.tentative.html new file mode 100644 index 00000000000..575fa8c7817 --- /dev/null +++ b/tests/wpt/tests/css/css-grid/grid-items/replaced-element-017.tentative.html @@ -0,0 +1,13 @@ + + + + + + + + + +

Test passes if there is a filled green square.

+
+ +
diff --git a/tests/wpt/tests/css/css-overflow/scroll-button-display-none.html b/tests/wpt/tests/css/css-overflow/scroll-button-display-none.html new file mode 100644 index 00000000000..8b3068be6da --- /dev/null +++ b/tests/wpt/tests/css/css-overflow/scroll-button-display-none.html @@ -0,0 +1,54 @@ + + +CSS Overflow Test: focused ::scroll-button() does not crash after becoming display none + + + + + + + +
+
+
+ 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 a116ead01b7..71c5f6573d6 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 @@ -33,6 +33,10 @@ promise_test(async function() { Math.round(bounds.top + bounds.height / 2), 0, -100) .send(); + // Await two animation frames to give a chance to scroll. + await new Promise(resolve => requestAnimationFrame(resolve)); + await new Promise(resolve => requestAnimationFrame(resolve)); + assert_equals(window.scrollY, originalScrollPos, "overscroll-behavior should work on the root"); }); diff --git a/tests/wpt/tests/css/css-shadow-parts/host-part-nesting.html b/tests/wpt/tests/css/css-shadow-parts/host-part-nesting.html new file mode 100644 index 00000000000..c0dc8e20eee --- /dev/null +++ b/tests/wpt/tests/css/css-shadow-parts/host-part-nesting.html @@ -0,0 +1,31 @@ + +CSS Shadow Parts - :host::part() in nesting + + + + + +
+ diff --git a/tests/wpt/tests/css/css-sizing/intrinsic-percent-replaced-029.tentative.html b/tests/wpt/tests/css/css-sizing/intrinsic-percent-replaced-029.tentative.html new file mode 100644 index 00000000000..feff03bbe2e --- /dev/null +++ b/tests/wpt/tests/css/css-sizing/intrinsic-percent-replaced-029.tentative.html @@ -0,0 +1,14 @@ + + + + + + + + + +

Test passes if there is a filled green square.

+
+ +
diff --git a/tests/wpt/tests/css/css-sizing/intrinsic-percent-replaced-030.tentative.html b/tests/wpt/tests/css/css-sizing/intrinsic-percent-replaced-030.tentative.html new file mode 100644 index 00000000000..5a6b103c22e --- /dev/null +++ b/tests/wpt/tests/css/css-sizing/intrinsic-percent-replaced-030.tentative.html @@ -0,0 +1,14 @@ + + + + + + + + + +

Test passes if there is a filled green square.

+
+ +
diff --git a/tests/wpt/tests/css/css-view-transitions/scoped/run_in_parallel.html b/tests/wpt/tests/css/css-view-transitions/scoped/run_in_parallel.html new file mode 100644 index 00000000000..1afdae2be9d --- /dev/null +++ b/tests/wpt/tests/css/css-view-transitions/scoped/run_in_parallel.html @@ -0,0 +1,128 @@ + + + + + + + + Scope view transitions run in parallel + + + + + +
+
+ + + diff --git a/tests/wpt/tests/css/css-writing-modes/reference/table-cell-align-006-ref.html b/tests/wpt/tests/css/css-writing-modes/reference/table-cell-align-006-ref.html new file mode 100644 index 00000000000..c5b52346fc0 --- /dev/null +++ b/tests/wpt/tests/css/css-writing-modes/reference/table-cell-align-006-ref.html @@ -0,0 +1,106 @@ + + +CSS Writing Modes reference: text-align in orthogonal table cell + + + + + + +
+ + + + + + + + + + +
X
X
X
X
X
X
X
X
X
X
X
 
 
 
X
+ + + + + + + + + + +
X
X
X
X
X
X
X
X
X
X
X
 
 
 
X
+
+ +
+ + + + + + + + + + +
X
X
X
X
X
X
X
X
X
X
X
 
 
 
X
+ + + + + + + + + + +
X
X
X
X
X
X
X
X
X
X
X
 
 
 
X
+
+ +
+ + + + + + + + +
XXXXX
X    
  X  
    X
X    
    X
X   X
+ + + + + + + + +
XXXXX
X    
  X  
    X
    X
X    
X   X
+
diff --git a/tests/wpt/tests/css/css-writing-modes/table-cell-align-006.html b/tests/wpt/tests/css/css-writing-modes/table-cell-align-006.html new file mode 100644 index 00000000000..a8d33f281fd --- /dev/null +++ b/tests/wpt/tests/css/css-writing-modes/table-cell-align-006.html @@ -0,0 +1,187 @@ + + +CSS Writing Modes test: text-align in orthogonal table cell + + + + + + + + + + + + + + + + + + + + + + +
XXXXXXXXXXX X
+ + + + + + + + + + +
XXXXXXXXXXX X
+ + +
+ + + + + + + + + + +
XXXXXXXXXXX X
+ + + + + + + + + + +
XXXXXXXXXXX X
+
+ +
+ + + + + + + + + + +
XXXXXXXXXXX X
+ + + + + + + + + + +
XXXXXXXXXXX X
+
diff --git a/tests/wpt/tests/dom/events/non-cancelable-when-passive/generic-events-stay-cancelable.html b/tests/wpt/tests/dom/events/non-cancelable-when-passive/generic-events-stay-cancelable.html new file mode 100644 index 00000000000..961794728d3 --- /dev/null +++ b/tests/wpt/tests/dom/events/non-cancelable-when-passive/generic-events-stay-cancelable.html @@ -0,0 +1,14 @@ + + + + + + diff --git a/tests/wpt/tests/domparsing/XMLSerializer-serializeToString.html b/tests/wpt/tests/domparsing/XMLSerializer-serializeToString.html index c3b704bf188..6c294e464a5 100644 --- a/tests/wpt/tests/domparsing/XMLSerializer-serializeToString.html +++ b/tests/wpt/tests/domparsing/XMLSerializer-serializeToString.html @@ -80,6 +80,25 @@ test(function() { assert_equals(serialize(root), ''); }, 'Check if inconsistent xmlns="..." is dropped.'); +test(function() { + const root1 = parse(''); + root1.setAttribute('xmlns', 'http://www.idpf.org/2007/opf'); + const manifest1 = root1.appendChild(root1.ownerDocument.createElement('manifest')); + manifest1.setAttribute('xmlns', 'http://www.idpf.org/2007/opf'); + assert_equals(serialize(root1), ''); + + const root2 = parse(''); + const manifest2 = root2.appendChild(root2.ownerDocument.createElement('manifest')); + manifest2.setAttribute('xmlns', 'http://www.idpf.org/2007/opf'); + assert_equals(serialize(root2), + ''); + + const root3 = parse(''); + const manifest3 = root3.appendChild(root3.ownerDocument.createElement('manifest')); + assert_equals(serialize(root3), + ''); +}, 'Drop inconsistent xmlns="..." by matching on local name'); + test(function() { let root = parse(''); root.setAttributeNS('uri', 'name', 'v'); diff --git a/tests/wpt/tests/domparsing/xml-parse-serialize-roundtrip.html b/tests/wpt/tests/domparsing/xml-parse-serialize-roundtrip.html new file mode 100644 index 00000000000..5195b9f04b5 --- /dev/null +++ b/tests/wpt/tests/domparsing/xml-parse-serialize-roundtrip.html @@ -0,0 +1,36 @@ + + + + + + + + diff --git a/tests/wpt/tests/editing/include/editor-test-utils.js b/tests/wpt/tests/editing/include/editor-test-utils.js index 9c5600af77b..f0c4f583992 100644 --- a/tests/wpt/tests/editing/include/editor-test-utils.js +++ b/tests/wpt/tests/editing/include/editor-test-utils.js @@ -568,5 +568,8 @@ class EditorTestUtils { }) - (${EditorTestUtils.getNodeDescription(range.endContainer)}, ${range.endOffset})`; } + static waitForRender() { + return new Promise(resolve => requestAnimationFrame(() => requestAnimationFrame(resolve))); + } } diff --git a/tests/wpt/tests/editing/other/selection-change-not-fired-if-selection-set-to-root.html b/tests/wpt/tests/editing/other/selection-change-not-fired-if-selection-set-to-root.html index 39e8b46e69b..cac621ad3cd 100644 --- a/tests/wpt/tests/editing/other/selection-change-not-fired-if-selection-set-to-root.html +++ b/tests/wpt/tests/editing/other/selection-change-not-fired-if-selection-set-to-root.html @@ -3,6 +3,7 @@ +
@@ -11,13 +12,13 @@ // Selectionchange event should not get fired if the selection is already set to the beginning of the root promise_test(async () => { let selectionChangeCount = 0; - document.getElementById("target").focus(); - await new Promise(resolve => step_timeout(resolve, 50)); + const target = document.getElementById("target"); + await new test_driver.click(target); + await EditorTestUtils.waitForRender(); document.addEventListener("selectionchange", () => ++selectionChangeCount); - test_driver.send_keys(target, "\uE003"); - // Waits a short time to allow any events to be processed. - await new Promise(resolve => step_timeout(resolve, 50)); + await new test_driver.send_keys(target, "\uE003"); + await EditorTestUtils.waitForRender(); assert_equals(selectionChangeCount, 0, "Selectionchange event should not get fired"); - }, "Selectionchange event not get fired when the selection is already set to the beginning of the root "); + }, "Selectionchange event should not get fired when the selection is already set to the beginning of the root "); \ No newline at end of file diff --git a/tests/wpt/tests/fledge/tentative/generate-bid-browser-signals.https.window.js b/tests/wpt/tests/fledge/tentative/generate-bid-browser-signals.https.window.js index e472fccdc4d..ee0cdd84efa 100644 --- a/tests/wpt/tests/fledge/tentative/generate-bid-browser-signals.https.window.js +++ b/tests/wpt/tests/fledge/tentative/generate-bid-browser-signals.https.window.js @@ -11,7 +11,9 @@ // META: variant=?17-20 // META: variant=?21-24 // META: variant=?25-28 -// META: variant=?29-last +// META: variant=?29-32 +// META: variant=?33-36 +// META: variant=?37-last "use strict"; @@ -35,7 +37,21 @@ subsetTest(promise_test, async test => { 'bidCount': 0, 'multiBidLimit': 1, 'prevWinsMs': [], - 'forDebuggingOnlySampling': false + 'forDebuggingOnlySampling': false, + 'viewCounts': { + 'pastHour': 0, + 'pastDay': 0, + 'pastWeek': 0, + 'past30Days': 0, + 'past90Days': 0 + }, + 'clickCounts': { + 'pastHour': 0, + 'pastDay': 0, + 'pastWeek': 0, + 'past30Days': 0, + 'past90Days': 0 + } }; let biddingLogicURL = createBiddingScriptURL({ generateBid: @@ -48,6 +64,17 @@ subsetTest(promise_test, async test => { expectedBrowserSignals.forDebuggingOnlyInCooldownOrLockout = browserSignals.forDebuggingOnlyInCooldownOrLockout; + // Don't check exact values of view/click reports. + function zeroCounts(object) { + object.pastHour = 0; + object.pastDay = 0; + object.pastWeek = 0; + object.past30Days = 0; + object.past90Days = 0; + } + zeroCounts(browserSignals.viewCounts); + zeroCounts(browserSignals.clickCounts); + // Remove deprecated field, if present. delete browserSignals.prevWins; @@ -947,3 +974,253 @@ subsetTest(promise_test, async test => { } }); }, 'browserSignals.wasmHelper.'); + + +// Generates 0 or 1 clicks, dependent on `produceAttributionSrc` & +// `produceUserAction`, and `numViews` views for `igOwner`, provided by +// `viewClickProvider`. +async function generateViewsAndClicks( + test, uuid, viewClickProvider, igOwner, numViews, produceAttributionSrc, + produceUserAction) { + let iframe = await createIframe(test, viewClickProvider); + let script = ` + // We use a wrapper iframe here so the original remains in communication. + let frame = document.createElement('iframe'); + document.body.appendChild(frame); + let frameDocument = frame.contentDocument; + let a = frameDocument.createElement('a'); + a.href = '${RESOURCE_PATH}/record-click.py?' + + 'eligible_origin=${igOwner}&num_views=${numViews}'; + if (${produceAttributionSrc}) { + a.attributionSrc = ''; + } + a.target = '_self'; + a.appendChild(frameDocument.createTextNode('Click me')); + frameDocument.body.appendChild(a); + + if (${produceUserAction}) { + // Note: test_driver.click() seems to not work well with Chrome's + // content_shell; while .bless() does... unreliably. + // headless_shell/chrome path seems to work reliably. User activation + // is used sparingly to work around content_shell flakiness. + await test_driver.bless('User-initiated click', () => { a.click() }); + } else { + a.click(); + } + `; + + await runInFrame(test, iframe, script); +} + +// Keep running a basic auction with an interest group in +// `interestGroupOverrides` until it succeeds; joining and leaving the +// IG every time to bypass caching which is permitted to provide stale +// view/click counts. +async function keepTryingAuctionUntilWinBypassCaching( + test, uuid, interestGroupOverrides) { + while (true) { + await joinInterestGroup(test, uuid, interestGroupOverrides); + let result = await runBasicFledgeAuction(test, uuid); + if (result !== null) { // Got a winner. + break; + } + await leaveInterestGroup(interestGroupOverrides); + } +} + +// Like keepTryingAuctionUntilWinBypassCaching but for auctions with +// cross-origin interest group, owned by `igOwner`. +async function crossOriginKeepTryingAuctionUntilWinBypassCaching( + test, uuid, igOwner, interestGroupOverrides) { + while (true) { + await joinCrossOriginInterestGroup( + test, uuid, igOwner, interestGroupOverrides); + const auctionConfigOverrides = {interestGroupBuyers: [igOwner]}; + let result = + await runBasicFledgeAuction(test, uuid, auctionConfigOverrides); + if (result !== null) { // Got a winner. + break; + } + await leaveCrossOriginInterestGroup( + test, uuid, igOwner, interestGroupOverrides); + } +} + +// Generates `numViews` views and 0 or 1 clicks based on `produceAttributionSrc` +// and `produceUserAction`, by `viewClickProvider` available to `igOwner`, then +// creates an interest group for `igOwner` with given +// `viewAndClickCountsProviders`, and runs an auction +// to make sure the events are eventually available. +async function testClickiness( + test, igOwner, viewClickProvider, numViews, produceAttributionSrc, + produceUserAction, viewAndClickCountsProviders = undefined) { + const uuid = generateUuid(test); + + await generateViewsAndClicks( + test, uuid, viewClickProvider, igOwner, numViews, produceAttributionSrc, + produceUserAction); + + // For clicks to be recorded, both attributionsrc attribution must exist + // and a user action must be used. If we don't expect clicks, we can expect + // that the number is exactly 0 since re-running the test won't break that. + // + // This is relying on all tests using Ad-Auction-Record-Event using distinct + // `viewClickProvider`s. + let clicksBadTest = + produceAttributionSrc && produceUserAction ? '< 1' : ' !== 0'; + + let viewsBadTest = (numViews > 0) ? `< ${numViews}` : ' !== 0'; + + // Join an IG to read view/click info back. We use a UUID for a name to make + // sure nothing old is cached, since view/clicks are permitted to be a bit + // stale. + let interestGroupOverrides = { + owner: igOwner, + name: uuid, + biddingLogicURL: createBiddingScriptURL({ + origin: igOwner, + generateBid: ` + // We should see at least one click and numViews views the test injects. + if (browserSignals.clickCounts.pastHour ${clicksBadTest} || + browserSignals.clickCounts.pastDay ${clicksBadTest} || + browserSignals.clickCounts.pastWeek ${clicksBadTest} || + browserSignals.clickCounts.past30Days ${clicksBadTest} || + browserSignals.clickCounts.past90Days ${clicksBadTest} || + browserSignals.viewCounts.pastHour ${viewsBadTest} || + browserSignals.viewCounts.pastDay ${viewsBadTest} || + browserSignals.viewCounts.pastWeek ${viewsBadTest} || + browserSignals.viewCounts.past30Days ${viewsBadTest} || + browserSignals.viewCounts.past90Days ${viewsBadTest}) { + return -1; + } + ` + }) + }; + + if (viewAndClickCountsProviders) { + interestGroupOverrides.viewAndClickCountsProviders = + viewAndClickCountsProviders; + } + + await crossOriginKeepTryingAuctionUntilWinBypassCaching( + test, uuid, igOwner, interestGroupOverrides); +} + +subsetTest(promise_test, async test => { + const IG_OWNER = OTHER_ORIGIN5; + const VIEW_CLICK_PROVIDER = OTHER_ORIGIN6; + await testClickiness( + test, IG_OWNER, VIEW_CLICK_PROVIDER, /*numViews=*/ 2, + /*produceAttributionSrc=*/ true, + /*produceUserAction=*/ true, [VIEW_CLICK_PROVIDER]); +}, 'browserSignals for clickiness.'); + +subsetTest(promise_test, async test => { + const IG_OWNER = OTHER_ORIGIN5; + const VIEW_CLICK_PROVIDER = OTHER_ORIGIN5; + + await testClickiness( + test, IG_OWNER, VIEW_CLICK_PROVIDER, /*numViews=*/ 4, + /*produceAttributionSrc=*/ false, + /*produceUserAction=*/ false); +}, 'IG owner is default clickiness provider if nothing is specified'); + +subsetTest(promise_test, async test => { + const IG_OWNER = OTHER_ORIGIN4; + const VIEW_CLICK_PROVIDER = OTHER_ORIGIN4; + + await testClickiness( + test, IG_OWNER, VIEW_CLICK_PROVIDER, /*numViews=*/ 6, + /*produceAttributionSrc=*/ true, + /*produceUserAction=*/ true, []); +}, 'IG owner is default clickiness provider if empty list provided'); + +subsetTest(promise_test, async test => { + const IG_OWNER = OTHER_ORIGIN3; + const VIEW_CLICK_PROVIDER = OTHER_ORIGIN3; + + await testClickiness( + test, IG_OWNER, VIEW_CLICK_PROVIDER, /*numViews=*/ 0, + /*produceAttributionSrc=*/ true, + /*produceUserAction=*/ true, []); +}, 'browserSignals for clickiness --- just a click'); + +subsetTest(promise_test, async test => { + const IG_OWNER = OTHER_ORIGIN2; + const VIEW_CLICK_PROVIDER = OTHER_ORIGIN2; + + await testClickiness( + test, IG_OWNER, VIEW_CLICK_PROVIDER, /*numViews=*/ 1, + /*produceAttributionSrc=*/ true, + /*produceUserAction=*/ false, [VIEW_CLICK_PROVIDER]); +}, 'browserSignals for clickiness --- no click report w/o user action'); + +subsetTest(promise_test, async test => { + const uuid = generateUuid(test); + const IG_OWNER = window.location.origin; + const VIEW_CLICK_PROVIDER1 = OTHER_ORIGIN1; + const VIEW_CLICK_PROVIDER2 = window.location.origin; + + // From provider 1 have click, no views. + // From provider 2 have views, no clicks; + await generateViewsAndClicks( + test, uuid, VIEW_CLICK_PROVIDER1, IG_OWNER, + /*numViews=*/ 0, /*produceAttributionSrc=*/ true, + /*produceUserAction=*/ true); + await generateViewsAndClicks( + test, uuid, VIEW_CLICK_PROVIDER2, IG_OWNER, + /*numViews=*/ 2, /*produceAttributionSrc=*/ false, + /*produceUserAction=*/ false); + + // Create an IG that subscribes only to provider 2 --- it should only see + // the views. + let interestGroupOverrides = { + name: uuid, + viewAndClickCountsProviders: [VIEW_CLICK_PROVIDER2], + biddingLogicURL: createBiddingScriptURL({ + generateBid: ` + if (browserSignals.clickCounts.pastHour !== 0 || + browserSignals.viewCounts.pastHour < 2) { + throw JSON.stringify(browserSignals); + } + ` + }) + }; + + await keepTryingAuctionUntilWinBypassCaching( + test, uuid, interestGroupOverrides); + + // Now see that subscribing only to 1 provides only the click. + interestGroupOverrides = { + name: uuid, + viewAndClickCountsProviders: [VIEW_CLICK_PROVIDER1], + biddingLogicURL: createBiddingScriptURL({ + generateBid: ` + if (browserSignals.clickCounts.pastHour < 1 || + browserSignals.viewCounts.pastHour !== 0) { + throw JSON.stringify(browserSignals); + } + ` + }) + }; + + await keepTryingAuctionUntilWinBypassCaching( + test, uuid, interestGroupOverrides); + + // Now subscribe to both. + interestGroupOverrides = { + name: uuid, + viewAndClickCountsProviders: [VIEW_CLICK_PROVIDER1, VIEW_CLICK_PROVIDER2], + biddingLogicURL: createBiddingScriptURL({ + generateBid: ` + if (browserSignals.clickCounts.pastHour < 1 || + browserSignals.viewCounts.pastHour < 2) { + throw JSON.stringify(browserSignals); + } + ` + }) + }; + + await keepTryingAuctionUntilWinBypassCaching( + test, uuid, interestGroupOverrides); +}, 'browserSignals for clickiness --- viewAndClickCountsProviders works.'); diff --git a/tests/wpt/tests/fledge/tentative/resources/fledge-util.sub.js b/tests/wpt/tests/fledge/tentative/resources/fledge-util.sub.js index 0a18ea40d3d..49ebfd1c596 100644 --- a/tests/wpt/tests/fledge/tentative/resources/fledge-util.sub.js +++ b/tests/wpt/tests/fledge/tentative/resources/fledge-util.sub.js @@ -695,6 +695,16 @@ async function joinCrossOriginInterestGroup(test, uuid, origin, interestGroupOve `await joinInterestGroup(test_instance, "${uuid}", ${interestGroup})`); } +// Leaves a cross-origin interest group, by running a leave in an iframe. +async function leaveCrossOriginInterestGroup(test, uuid, origin, interestGroupOverrides = {}) { + let interestGroup = JSON.stringify( + createInterestGroupForOrigin(uuid, origin, interestGroupOverrides)); + + let iframe = await createIframe(test, origin, 'join-ad-interest-group'); + await runInFrame(test, iframe, + `await leaveInterestGroup(${interestGroup})`); +} + // Joins an interest group in a top-level window, which has the same origin // as the joined interest group. async function joinInterestGroupInTopLevelWindow( diff --git a/tests/wpt/tests/fledge/tentative/resources/record-click.py b/tests/wpt/tests/fledge/tentative/resources/record-click.py new file mode 100644 index 00000000000..b4e76873d9b --- /dev/null +++ b/tests/wpt/tests/fledge/tentative/resources/record-click.py @@ -0,0 +1,21 @@ +# This responds with a page reporting a click event to the origin provided in +# the `eligible_origin` query param. The pages loads `num_views` copies of +# record-view.py as images in a clickiness-eligible way; with them reporting +# view events. +def main(request, response): + eligible_origin = request.GET.get(b"eligible_origin") + num_views = int(request.GET.get(b"num_views")) + response.status = (200, b"OK") + response.headers.set(b"Content-Type", b"text/html") + response.headers.set( + b"Ad-Auction-Record-Event", + b"type=\"click\", eligible-origins=(\"%s\")" % eligible_origin) + + result = b"" + img_template = b"" + for i in range(0, num_views): + view = img_template % (i, eligible_origin) + result = result + view + return result.decode("utf-8") + diff --git a/tests/wpt/tests/fledge/tentative/resources/record-view.py b/tests/wpt/tests/fledge/tentative/resources/record-view.py new file mode 100644 index 00000000000..d423b2d9c72 --- /dev/null +++ b/tests/wpt/tests/fledge/tentative/resources/record-view.py @@ -0,0 +1,19 @@ +# This responds with an image reporting a view event to the origin provided in +# the `eligible_origin` query param. +def main(request, response): + eligible_origin = request.GET.get(b"eligible_origin") + response.status = (200, b"OK") + response.headers.set(b"Content-Type", b"image/png") + response.headers.set( + b"Ad-Auction-Record-Event", + b"type=\"view\", eligible-origins=(\"%s\")" % eligible_origin) + png = b"\x89\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d" + \ + b"\x49\x48\x44\x52\x00\x00\x00\x05\x00\x00\x00\x05" + \ + b"\x08\x06\x00\x00\x00\x8d\x6f\x26\xe5\x00\x00\x00" + \ + b"\x09\x70\x48\x59\x73\x00\x00\x0e\xc4\x00\x00\x0e" + \ + b"\xc4\x01\x95\x2b\x0e\x1b\x00\x00\x00\x15\x49\x44" + \ + b"\x41\x54\x08\x99\x63\x64\xf8\xcf\xf0\x9f\x01\x0d" + \ + b"\x30\xa1\x0b\x50\x41\x10\x00\xcd\xaa\x02\x08\x0f" + \ + b"\x23\x6b\x59\x00\x00\x00\x00\x49\x45\x4e\x44\xae" + \ + b"\x42\x60\x82" + return png diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/WEB_FEATURES.yml b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/WEB_FEATURES.yml new file mode 100644 index 00000000000..319b5b8e04c --- /dev/null +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/WEB_FEATURES.yml @@ -0,0 +1,4 @@ +features: +- name: canvas-createconicgradient + files: + - 2d.gradient.conic.* diff --git a/tests/wpt/tests/html/canvas/element/manual/fill-and-stroke-styles/WEB_FEATURES.yml b/tests/wpt/tests/html/canvas/element/manual/fill-and-stroke-styles/WEB_FEATURES.yml new file mode 100644 index 00000000000..5d9106c1cd6 --- /dev/null +++ b/tests/wpt/tests/html/canvas/element/manual/fill-and-stroke-styles/WEB_FEATURES.yml @@ -0,0 +1,5 @@ +features: +- name: canvas-createconicgradient + files: + - conic-gradient.html + - conic-gradient-rotation.html diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/WEB_FEATURES.yml b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/WEB_FEATURES.yml new file mode 100644 index 00000000000..319b5b8e04c --- /dev/null +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/WEB_FEATURES.yml @@ -0,0 +1,4 @@ +features: +- name: canvas-createconicgradient + files: + - 2d.gradient.conic.* diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/README.md b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/README.md deleted file mode 100644 index b3c24c3f82d..00000000000 --- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/README.md +++ /dev/null @@ -1,9 +0,0 @@ -Because this test suite is run as a virtual suite and it's quite deep in the -folders, we have to use abbreviations for the test names to not run over 200 -characters, which is problematic on Windows. - -* unspecified -> "u" -* unsafe-none -> "un" -* same-origin -> "so" -* same-origin-allow-popups -> "soap" -* restrict-properties -> omitted diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/access-reporting-closed.https.html b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/access-reporting-closed.https.html deleted file mode 100644 index 1c315b35d7f..00000000000 --- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/access-reporting-closed.https.html +++ /dev/null @@ -1,19 +0,0 @@ - - Check openee.closed access is allowed for COOP: restrict-properties - - - - - - - - diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/access-reporting-openee-rp-ro.https.html b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/access-reporting-openee-rp-ro.https.html deleted file mode 100644 index 7a96f4f5762..00000000000 --- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/access-reporting-openee-rp-ro.https.html +++ /dev/null @@ -1,62 +0,0 @@ - - - COOP reports are sent to the openee when the openee used COOP-RO: - restrict-properties and its same-origin opener tries to access it. - - - - - - - - - - - diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/access-reporting-opener-rp-ro.https.html b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/access-reporting-opener-rp-ro.https.html deleted file mode 100644 index 9e1e85b16a5..00000000000 --- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/access-reporting-opener-rp-ro.https.html +++ /dev/null @@ -1,71 +0,0 @@ - - - COOP reports are sent to the opener when the opener used COOP-RO: - restrict-properties and its same-origin openee tries to access it. - - - - - - - - - - - diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/access-reporting-post-message.https.html b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/access-reporting-post-message.https.html deleted file mode 100644 index 5bc718e2a89..00000000000 --- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/access-reporting-post-message.https.html +++ /dev/null @@ -1,19 +0,0 @@ - - Check openee.postMessage() access is allowed for COOP: restrict-properties - - - - - - - - diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/coop-rp-in-navigation-chain.https.html b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/coop-rp-in-navigation-chain.https.html deleted file mode 100644 index e5c87751748..00000000000 --- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/coop-rp-in-navigation-chain.https.html +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - - - - - - diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/coop-rp-in-navigation-chain.https.html.headers b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/coop-rp-in-navigation-chain.https.html.headers deleted file mode 100644 index 073ce7adfbd..00000000000 --- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/coop-rp-in-navigation-chain.https.html.headers +++ /dev/null @@ -1 +0,0 @@ -Cross-Origin-Opener-Policy: unsafe-none diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-about-blank.https.window.js b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-about-blank.https.window.js deleted file mode 100644 index 1247400a4e3..00000000000 --- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-about-blank.https.window.js +++ /dev/null @@ -1,144 +0,0 @@ -// META: script=/common/get-host-info.sub.js -// META: script=/common/utils.js -// META: script=/common/dispatcher/dispatcher.js - -const executor_path = '/common/dispatcher/executor.html?pipe='; -const cross_origin = get_host_info().OTHER_ORIGIN; -const same_origin = get_host_info().ORIGIN; -const coep_require_corp_header = - '|header(Cross-Origin-Embedder-Policy,require-corp)'; -const corp_cross_origin_header = - '|header(Cross-Origin-Resource-Policy,cross-origin)'; -const coop_restrict_properties_header = - '|header(Cross-Origin-Opener-Policy,restrict-properties)'; - -function iframePopupAboutBlankTest( - origin, {expectedCrossOriginIsolated}, description) { - promise_test(async t => { - assert_true(crossOriginIsolated, 'Is main frame crossOriginIsolated?'); - assert_true( - 'SharedArrayBuffer' in globalThis, - 'Is SharedArrayBuffer defined in main frame?'); - - const reply_token = token(); - const iframe_token = token(); - - const iframe = document.createElement('iframe'); - iframe.src = origin + executor_path + coep_require_corp_header + - corp_cross_origin_header + `&uuid=${iframe_token}`; - document.body.appendChild(iframe); - - send(iframe_token, `send('${reply_token}', 'Iframe loaded');`); - assert_equals(await receive(reply_token), 'Iframe loaded'); - - send(iframe_token, ` - window.popup = window.open(); - send('${reply_token}', popup === null); - `); - assert_equals(await receive(reply_token), 'false', 'Is popup handle null?'); - - send( - iframe_token, - `send('${reply_token}', popup.window.crossOriginIsolated);`); - assert_equals( - await receive(reply_token), `${expectedCrossOriginIsolated}`, - 'Is popup crossOriginIsolated?'); - - send(iframe_token, ` - send('${reply_token}', 'SharedArrayBuffer' in popup.window.globalThis); - `); - assert_equals( - await receive(reply_token), `${expectedCrossOriginIsolated}`, - 'Is SharedArrayBuffer defined in popup?'); - - // Test whether the popup's subframe is crossOriginIsolated - const popup_iframe_token = token(); - const popup_iframe_src = origin + executor_path + coep_require_corp_header + - corp_cross_origin_header + `&uuid=${popup_iframe_token}`; - send(iframe_token, ` - const iframe = window.popup.document.createElement('iframe'); - iframe.src = '${popup_iframe_src}'; - popup.document.body.appendChild(iframe); - `); - - send(popup_iframe_token, ` - send('${reply_token}', 'Iframe in popup loaded'); - `); - assert_equals(await receive(reply_token), 'Iframe in popup loaded'); - - send(popup_iframe_token, ` - send('${reply_token}', crossOriginIsolated); - `); - assert_equals( - await receive(reply_token), `${expectedCrossOriginIsolated}`, - 'Is iframe in popup crossOriginIsolated?'); - - send(popup_iframe_token, ` - send('${reply_token}', 'SharedArrayBuffer' in globalThis); - `); - assert_equals( - await receive(reply_token), `${expectedCrossOriginIsolated}`, - 'Is SharedArrayBuffer defined in iframe in popup?'); - - // Test whether a nested iframe is crossOriginIsolated - const popup_nested_iframe_token = token(); - const popup_nested_iframe_src = origin + executor_path + - coep_require_corp_header + corp_cross_origin_header + - `&uuid=${popup_nested_iframe_token}`; - send(iframe_token, ` - blank_iframe = popup.document.createElement('iframe'); - blank_iframe.src = ''; - popup.document.body.appendChild(blank_iframe); - nested_iframe = - blank_iframe.contentDocument.createElement('iframe'); - nested_iframe.src = '${popup_nested_iframe_src}'; - blank_iframe.contentDocument.body.appendChild(nested_iframe); - `); - - send(popup_nested_iframe_token, ` - send('${reply_token}', 'Nested iframe in popup loaded'); - `); - assert_equals(await receive(reply_token), 'Nested iframe in popup loaded'); - - send(popup_nested_iframe_token, ` - send('${reply_token}', crossOriginIsolated); - `); - assert_equals( - await receive(reply_token), `${expectedCrossOriginIsolated}`, - 'Is nested iframe in popup crossOriginIsolated?'); - - send(popup_nested_iframe_token, ` - send('${reply_token}', 'SharedArrayBuffer' in globalThis); - `); - assert_equals( - await receive(reply_token), `${expectedCrossOriginIsolated}`, - 'Is SharedArrayBuffer defined in nested iframe in popup?'); - - // Navigate the popup out of the initial empty document, with COOP:RP and - // COEP: require-corp. Expect to be crossOriginIsolated. - const popup_token = token(); - const popup_src = origin + executor_path + coop_restrict_properties_header + - coep_require_corp_header + `&uuid=${popup_token}`; - send(iframe_token, `popup.window.location = '${popup_src}';`); - - send(popup_token, `send('${reply_token}', 'Popup loaded');`); - assert_equals(await receive(reply_token), 'Popup loaded'); - - send(popup_token, `send('${reply_token}', crossOriginIsolated);`); - assert_equals( - await receive(reply_token), 'true', - 'Is popup crossOriginIsolated after navigation?'); - - send(popup_token, ` - send('${reply_token}', 'SharedArrayBuffer' in globalThis); - `); - assert_equals( - await receive(reply_token), 'true', - 'Is SharedArrayBuffer defined in popup after navigation?'); - }, description); -} - -iframePopupAboutBlankTest( - cross_origin, {expectedCrossOriginIsolated: false}, 'Cross-origin iframe'); -iframePopupAboutBlankTest( - same_origin, {expectedCrossOriginIsolated: true}, 'Same-origin iframe'); diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-about-blank.https.window.js.headers b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-about-blank.https.window.js.headers deleted file mode 100644 index 19d0dbe4e18..00000000000 --- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-about-blank.https.window.js.headers +++ /dev/null @@ -1,2 +0,0 @@ -Cross-Origin-Opener-Policy: restrict-properties -Cross-Origin-Embedder-Policy: require-corp diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-so.https.html b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-so.https.html deleted file mode 100644 index 8cf2679e190..00000000000 --- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-so.https.html +++ /dev/null @@ -1,94 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-so.https.html.headers b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-so.https.html.headers deleted file mode 100644 index d5c99062d2b..00000000000 --- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-so.https.html.headers +++ /dev/null @@ -1 +0,0 @@ -Cross-Origin-Opener-Policy: restrict-properties diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-soap.https.html b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-soap.https.html deleted file mode 100644 index f3af3ca7db1..00000000000 --- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-soap.https.html +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-soap.https.html.headers b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-soap.https.html.headers deleted file mode 100644 index d5c99062d2b..00000000000 --- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-soap.https.html.headers +++ /dev/null @@ -1 +0,0 @@ -Cross-Origin-Opener-Policy: restrict-properties diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-un.https.html b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-un.https.html deleted file mode 100644 index 560dfd90511..00000000000 --- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-un.https.html +++ /dev/null @@ -1,90 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-un.https.html.headers b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-un.https.html.headers deleted file mode 100644 index d5c99062d2b..00000000000 --- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-un.https.html.headers +++ /dev/null @@ -1 +0,0 @@ -Cross-Origin-Opener-Policy: restrict-properties diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup.https.html b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup.https.html deleted file mode 100644 index 17840724d9e..00000000000 --- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup.https.html +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup.https.html.headers b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup.https.html.headers deleted file mode 100644 index d5c99062d2b..00000000000 --- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup.https.html.headers +++ /dev/null @@ -1 +0,0 @@ -Cross-Origin-Opener-Policy: restrict-properties diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/named_targeting.https.html b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/named_targeting.https.html deleted file mode 100644 index 10929847ee6..00000000000 --- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/named_targeting.https.html +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - - - - - diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-so.https.html b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-so.https.html deleted file mode 100644 index e5313a6e222..00000000000 --- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-so.https.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - - diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-so.https.html.headers b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-so.https.html.headers deleted file mode 100644 index 46ad58d83bf..00000000000 --- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-so.https.html.headers +++ /dev/null @@ -1 +0,0 @@ -Cross-Origin-Opener-Policy: same-origin diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-soap.https.html b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-soap.https.html deleted file mode 100644 index 595a10a84bb..00000000000 --- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-soap.https.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - - diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-soap.https.html.headers b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-soap.https.html.headers deleted file mode 100644 index d83ed86fb9b..00000000000 --- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-soap.https.html.headers +++ /dev/null @@ -1 +0,0 @@ -Cross-Origin-Opener-Policy: same-origin-allow-popups diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-u.https.html b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-u.https.html deleted file mode 100644 index 595a10a84bb..00000000000 --- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-u.https.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - - diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-un.https.html b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-un.https.html deleted file mode 100644 index 595a10a84bb..00000000000 --- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-un.https.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - - diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-un.https.html.headers b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-un.https.html.headers deleted file mode 100644 index 073ce7adfbd..00000000000 --- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-un.https.html.headers +++ /dev/null @@ -1 +0,0 @@ -Cross-Origin-Opener-Policy: unsafe-none diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-with-cross-origin.https.html b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-with-cross-origin.https.html deleted file mode 100644 index a84d52584e9..00000000000 --- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-with-cross-origin.https.html +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - - - - - diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-with-cross-origin.https.html.headers b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-with-cross-origin.https.html.headers deleted file mode 100644 index d5c99062d2b..00000000000 --- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-with-cross-origin.https.html.headers +++ /dev/null @@ -1 +0,0 @@ -Cross-Origin-Opener-Policy: restrict-properties diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-with-same-origin.https.html b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-with-same-origin.https.html deleted file mode 100644 index c0020fa23a4..00000000000 --- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-with-same-origin.https.html +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - - - - - diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-with-same-origin.https.html.headers b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-with-same-origin.https.html.headers deleted file mode 100644 index d5c99062d2b..00000000000 --- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-with-same-origin.https.html.headers +++ /dev/null @@ -1 +0,0 @@ -Cross-Origin-Opener-Policy: restrict-properties diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-with-same-site.https.html b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-with-same-site.https.html deleted file mode 100644 index 7d115ac7e63..00000000000 --- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-with-same-site.https.html +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - - - - - diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-with-same-site.https.html.headers b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-with-same-site.https.html.headers deleted file mode 100644 index d5c99062d2b..00000000000 --- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-with-same-site.https.html.headers +++ /dev/null @@ -1 +0,0 @@ -Cross-Origin-Opener-Policy: restrict-properties diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/reporting-bcg-reuse.https.html b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/reporting-bcg-reuse.https.html deleted file mode 100644 index 9bc171a269c..00000000000 --- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/reporting-bcg-reuse.https.html +++ /dev/null @@ -1,62 +0,0 @@ - - - Verify that we consider browsing context group reuse for COOP reporting. - - - - - - - - - - - diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/reporting-bcg-reuse.https.html.sub.headers b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/reporting-bcg-reuse.https.html.sub.headers deleted file mode 100644 index 33abadd83dd..00000000000 --- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/reporting-bcg-reuse.https.html.sub.headers +++ /dev/null @@ -1,2 +0,0 @@ -Cross-Origin-Opener-Policy-Report-Only: restrict-properties; report-to="coop-report-only-endpoint" -Reporting-Endpoints: coop-report-endpoint="https://{{host}}:{{ports[https][0]}}/reporting/resources/report.py?reportID=f1e361ab5854f2dcfe0224b19bc53199", coop-report-only-endpoint="https://{{host}}:{{ports[https][0]}}/reporting/resources/report.py?reportID=b6fe666b74547291d52d72790adde05c" diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/reporting-from-rp-ro.https.html b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/reporting-from-rp-ro.https.html deleted file mode 100644 index b89030f218f..00000000000 --- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/reporting-from-rp-ro.https.html +++ /dev/null @@ -1,55 +0,0 @@ - - -Opening a restrict-properties - - - - - - - - - - diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/reporting-from-rp-ro.https.html.sub.headers b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/reporting-from-rp-ro.https.html.sub.headers deleted file mode 100644 index 07ecad96f24..00000000000 --- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/reporting-from-rp-ro.https.html.sub.headers +++ /dev/null @@ -1,2 +0,0 @@ -Cross-Origin-Opener-Policy-Report-Only: restrict-properties; report-to="coop-report-only-endpoint" -Reporting-Endpoints: coop-report-endpoint="https://{{host}}:{{ports[https][0]}}/reporting/resources/report.py?reportID=fb054dadb3a9ec17b5cd5c0152d2a7dd", coop-report-only-endpoint="https://{{host}}:{{ports[https][0]}}/reporting/resources/report.py?reportID=c265b07fbb3bffa2cd2a5179d686ced2" diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/reporting-from-rp.https.html b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/reporting-from-rp.https.html deleted file mode 100644 index 6b31f7e0098..00000000000 --- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/reporting-from-rp.https.html +++ /dev/null @@ -1,55 +0,0 @@ - - -Opening a restrict-properties - - - - - - - - - - diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/reporting-from-rp.https.html.sub.headers b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/reporting-from-rp.https.html.sub.headers deleted file mode 100644 index a61e2919c8a..00000000000 --- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/reporting-from-rp.https.html.sub.headers +++ /dev/null @@ -1,2 +0,0 @@ -Cross-Origin-Opener-Policy: restrict-properties; report-to="coop-report-endpoint" -Reporting-Endpoints: coop-report-endpoint="https://{{host}}:{{ports[https][0]}}/reporting/resources/report.py?reportID=ed5a8be35e4e21c2ba960e6574e0a32c", coop-report-only-endpoint="https://{{host}}:{{ports[https][0]}}/reporting/resources/report.py?reportID=fa22ddc676642edae42c75defb82ba2e" diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/reporting-to-rp-ro.https.html b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/reporting-to-rp-ro.https.html deleted file mode 100644 index c47e59cd8f1..00000000000 --- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/reporting-to-rp-ro.https.html +++ /dev/null @@ -1,43 +0,0 @@ - - -reporting same origin with report-to - - - - - - - - - - diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/reporting-to-rp-ro.https.html.headers b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/reporting-to-rp-ro.https.html.headers deleted file mode 100644 index 16903320bb5..00000000000 --- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/reporting-to-rp-ro.https.html.headers +++ /dev/null @@ -1,2 +0,0 @@ -Cross-Origin-Opener-Policy: unsafe-none -Referrer-Policy: origin diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/reporting-to-rp.https.html b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/reporting-to-rp.https.html deleted file mode 100644 index ff60e8c5afd..00000000000 --- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/reporting-to-rp.https.html +++ /dev/null @@ -1,43 +0,0 @@ - - -reporting same origin with report-to - - - - - - - - - - diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/reporting-to-rp.https.html.headers b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/reporting-to-rp.https.html.headers deleted file mode 100644 index 16903320bb5..00000000000 --- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/reporting-to-rp.https.html.headers +++ /dev/null @@ -1,2 +0,0 @@ -Cross-Origin-Opener-Policy: unsafe-none -Referrer-Policy: origin diff --git a/tests/wpt/tests/html/editing/editing-0/writing-suggestions/WEB_FEATURES.yml b/tests/wpt/tests/html/editing/editing-0/writing-suggestions/WEB_FEATURES.yml new file mode 100644 index 00000000000..4700eca4a12 --- /dev/null +++ b/tests/wpt/tests/html/editing/editing-0/writing-suggestions/WEB_FEATURES.yml @@ -0,0 +1,3 @@ +features: +- name: writingsuggestions + files: "**" diff --git a/tests/wpt/tests/html/obsolete/requirements-for-implementations/the-marquee-element-0/marquee-with-trusted-types-ref.html b/tests/wpt/tests/html/obsolete/requirements-for-implementations/the-marquee-element-0/marquee-with-trusted-types-ref.html index b177f47b757..5042557212e 100644 --- a/tests/wpt/tests/html/obsolete/requirements-for-implementations/the-marquee-element-0/marquee-with-trusted-types-ref.html +++ b/tests/wpt/tests/html/obsolete/requirements-for-implementations/the-marquee-element-0/marquee-with-trusted-types-ref.html @@ -1,8 +1,8 @@ -
- m +
+
diff --git a/tests/wpt/tests/html/obsolete/requirements-for-implementations/the-marquee-element-0/marquee-with-trusted-types.html b/tests/wpt/tests/html/obsolete/requirements-for-implementations/the-marquee-element-0/marquee-with-trusted-types.html index 57f49850321..f16c58bb85d 100644 --- a/tests/wpt/tests/html/obsolete/requirements-for-implementations/the-marquee-element-0/marquee-with-trusted-types.html +++ b/tests/wpt/tests/html/obsolete/requirements-for-implementations/the-marquee-element-0/marquee-with-trusted-types.html @@ -1,12 +1,12 @@ - - + + -
- m -
+ +
+
diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select-in-page/customizable-select-in-page-appearance-ref.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select-in-page/customizable-select-in-page-appearance-ref.html new file mode 100644 index 00000000000..57ea51e367c --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select-in-page/customizable-select-in-page-appearance-ref.html @@ -0,0 +1,49 @@ + + + + + +
+
select multiple
+
two
+
three
+
+ +
+
select size=4
+
two
+
three
+
+ +
+
select disabled
+
two
+
three
+
disabled
+
+ + +
+ +
+
with disabled option
+
two
+
three
+
disabled
+
+ +
+
optgroup
+
option in optgroup
+
option out of optgroup
+
+ +
+
disabled optgroup
+
option in optgroup
+
option out of optgroup
+
+ + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select-in-page/customizable-select-in-page-appearance.tentative.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select-in-page/customizable-select-in-page-appearance.tentative.html new file mode 100644 index 00000000000..b3bf75eb0ff --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select-in-page/customizable-select-in-page-appearance.tentative.html @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + +
+ + + + + + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select-in-page/customizable-select-in-page-keyboard-behavior.tentative.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select-in-page/customizable-select-in-page-keyboard-behavior.tentative.html new file mode 100644 index 00000000000..24e6e39ea48 --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select-in-page/customizable-select-in-page-keyboard-behavior.tentative.html @@ -0,0 +1,192 @@ + + + + + + + + + + + + + + + + + + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select-in-page/customizable-select-in-page-mouse-behavior.tentative.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select-in-page/customizable-select-in-page-mouse-behavior.tentative.html new file mode 100644 index 00000000000..d5b93693cf7 --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select-in-page/customizable-select-in-page-mouse-behavior.tentative.html @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select-in-page/resources/customizable-select-in-page.css b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select-in-page/resources/customizable-select-in-page.css new file mode 100644 index 00000000000..deb080b4756 --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select-in-page/resources/customizable-select-in-page.css @@ -0,0 +1,14 @@ +.customizable-select-in-page { + display: inline-block; + border: 1px solid; + overflow-inline: hidden; + overflow-block: scroll; +} + +.customizable-select-in-page.disabled { + color: color-mix(in lab, currentColor 50%, transparent); +} + +.customizable-select-in-page:not(.disabled) .customizable-select-legend.disabled { + color: color-mix(in lab, currentColor 50%, transparent); +} diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select-in-page/resources/customizable-select-in-page.js b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select-in-page/resources/customizable-select-in-page.js new file mode 100644 index 00000000000..13230943321 --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select-in-page/resources/customizable-select-in-page.js @@ -0,0 +1,13 @@ +function updateCustomizableSelectInPageSize() { + document.querySelectorAll('.customizable-select-in-page').forEach(select => { + const size = Number(select.getAttribute('size')); + if (size) { + let optionHeight = 0; + select.querySelectorAll('.customizable-select-option').forEach(option => { + const rect = option.getBoundingClientRect(); + optionHeight = Math.max(optionHeight, rect.height); + }); + select.style.height = (optionHeight * size) + 'px'; + } + }); +} diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-multiple-base-appearance-ref.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-multiple-base-appearance-ref.html deleted file mode 100644 index 45a74da7559..00000000000 --- a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-multiple-base-appearance-ref.html +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-multiple-base-appearance.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-multiple-base-appearance.html deleted file mode 100644 index 48673b446bc..00000000000 --- a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-multiple-base-appearance.html +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - - - - - diff --git a/tests/wpt/tests/html/semantics/interactive-elements/the-dialog-element/dialog-focusability.html b/tests/wpt/tests/html/semantics/interactive-elements/the-dialog-element/dialog-focusability.html index 1e000866099..5afb407640b 100644 --- a/tests/wpt/tests/html/semantics/interactive-elements/the-dialog-element/dialog-focusability.html +++ b/tests/wpt/tests/html/semantics/interactive-elements/the-dialog-element/dialog-focusability.html @@ -48,11 +48,9 @@ } } - async_test((t) => { - window.onload = async () => { - await assert_focus_order([before,within1,after1,dialog2,within2,after2, - within3,after3,dialog4,within4,after4]); - t.done(); - }; + promise_test(async () => { + await new Promise(resolve => window.onload = resolve); + await assert_focus_order([before,within1,after1,dialog2,within2,after2, + within3,after3,dialog4,within4,after4]); }, "The dialog element itself should not be keyboard focusable."); diff --git a/tests/wpt/tests/html/semantics/interactive-elements/the-dialog-element/dialog-requestclose.html b/tests/wpt/tests/html/semantics/interactive-elements/the-dialog-element/dialog-requestclose.html index 9a9c87167d5..6555f1b43bd 100644 --- a/tests/wpt/tests/html/semantics/interactive-elements/the-dialog-element/dialog-requestclose.html +++ b/tests/wpt/tests/html/semantics/interactive-elements/the-dialog-element/dialog-requestclose.html @@ -35,14 +35,8 @@ function openDialog(openMethod) { assert_true(dialog.matches(':open')); assert_equals(dialog.matches(':modal'),openMethod === 'modal'); } -function getSignal(t) { - const controller = new AbortController(); - const signal = controller.signal; - t.add_cleanup(() => controller.abort()); - return signal; -} -async function setup(t,closedby) { +function setup(t,closedby) { t.add_cleanup(() => { dialog.close(); dialog.removeAttribute('closedby'); @@ -52,16 +46,14 @@ async function setup(t,closedby) { if (closedby) { dialog.setAttribute('closedby',closedby); } - // Be sure any pending close events (from prior test cleanups) get fired. - await waitForRender(); - return getSignal(t); + return t.get_signal(); } ['modeless','modal','open'].forEach(openMethod => { [null,'any','closedrequest','none'].forEach(closedby => { const testDescription = `for ${openMethod} dialog with closedby=${closedby}`; promise_test(async (t) => { - await setup(t,closedby); + setup(t,closedby); openDialog(openMethod); dialog.requestClose(); assert_false(dialog.open); @@ -69,25 +61,35 @@ async function setup(t,closedby) { },`requestClose basic behavior ${testDescription}`); promise_test(async (t) => { - const signal = await setup(t,closedby); + const signal = setup(t,closedby); let events = []; + const { promise: untilFullyClosed, resolve: hasClosed } = Promise.withResolvers(); dialog.addEventListener('cancel',() => events.push('cancel'),{signal}); - dialog.addEventListener('close',() => events.push('close'),{signal}); + dialog.addEventListener('close',() => { + events.push('close'); + hasClosed(); + },{signal}); openDialog(openMethod); assert_array_equals(events,[]); dialog.requestClose(); assert_false(dialog.open); assert_false(dialog.matches(':open')); assert_array_equals(events,['cancel'],'close is scheduled'); - await waitForRender(); + await untilFullyClosed; assert_array_equals(events,['cancel','close']); },`requestClose fires both cancel and close ${testDescription}`); promise_test(async (t) => { - const signal = await setup(t,'none'); + const signal = setup(t,'none'); let events = []; + const { promise: untilFullyClosed, resolve: hasClosed } = Promise.withResolvers(); + const { promise: untilFullyClosedAgain, resolve: hasClosedAgain } = Promise.withResolvers(); + const closeResolvers = [hasClosed, hasClosedAgain]; dialog.addEventListener('cancel',() => events.push('cancel'),{signal}); - dialog.addEventListener('close',() => events.push('close'),{signal}); + dialog.addEventListener('close',() => { + events.push('close'); + closeResolvers.shift()(); + },{signal}); openDialog(openMethod); dialog.setAttribute('closedby',closedby); assert_array_equals(events,[]); @@ -95,6 +97,7 @@ async function setup(t,closedby) { assert_false(dialog.open,'Adding closedby after dialog is open'); assert_false(dialog.matches(':open')); assert_array_equals(events,['cancel']); + await untilFullyClosed; events=[]; openDialog(openMethod); dialog.removeAttribute('closedby'); @@ -102,11 +105,13 @@ async function setup(t,closedby) { dialog.requestClose(); assert_false(dialog.open,'Removing closedby after dialog is open'); assert_array_equals(events,['cancel']); + await untilFullyClosedAgain; + assert_array_equals(events,['cancel', 'close']); },`closedby has no effect on dialog.requestClose() ${testDescription}`); if (closedby != "none") { promise_test(async (t) => { - const signal = await setup(t,closedby); + const signal = setup(t,closedby); let shouldPreventDefault = true; dialog.addEventListener('cancel',(e) => { if (shouldPreventDefault) { @@ -124,7 +129,7 @@ async function setup(t,closedby) { },`requestClose can be cancelled ${testDescription}`); promise_test(async (t) => { - const signal = await setup(t,closedby); + const signal = setup(t,closedby); dialog.addEventListener('cancel',(e) => e.preventDefault(),{signal}); openDialog(openMethod); // No user activation here. @@ -136,7 +141,7 @@ async function setup(t,closedby) { },`requestClose avoids abuse prevention logic ${testDescription}`); promise_test(async (t) => { - await setup(t,closedby); + setup(t,closedby); openDialog(openMethod); assert_equals(dialog.returnValue,'','Return value starts out empty'); const returnValue = 'The return value'; @@ -153,7 +158,7 @@ async function setup(t,closedby) { },`requestClose(returnValue) passes along the return value ${testDescription}`); promise_test(async (t) => { - await setup(t,closedby); + setup(t,closedby); dialog.addEventListener('cancel',(e) => e.preventDefault(),{once:true}); openDialog(openMethod); dialog.returnValue = 'foo'; @@ -168,23 +173,27 @@ async function setup(t,closedby) { }); promise_test(async (t) => { - await setup(t); + setup(t); dialog.open = true; dialog.requestClose(); assert_false(dialog.open); },`requestClose basic behavior when dialog is open via attribute`); promise_test(async (t) => { - const signal = await setup(t); + const signal = setup(t); let events = []; + const { promise: untilFullyClosed, resolve: hasClosed } = Promise.withResolvers(); dialog.addEventListener('cancel',() => events.push('cancel'),{signal}); - dialog.addEventListener('close',() => events.push('close'),{signal}); + dialog.addEventListener('close',() => { + events.push('close') + hasClosed(); + },{signal}); dialog.open = true; assert_array_equals(events,[]); dialog.requestClose(); assert_false(dialog.open); assert_array_equals(events,['cancel'],'close is scheduled'); - await waitForRender(); + await untilFullyClosed; assert_array_equals(events,['cancel','close']); },`requestClose fires cancel and close when dialog is open via attribute`); diff --git a/tests/wpt/tests/html/syntax/serializing-html-fragments/serializing-cdata-in-html-document.html b/tests/wpt/tests/html/syntax/serializing-html-fragments/serializing-cdata-in-html-document.html new file mode 100644 index 00000000000..b2366285a41 --- /dev/null +++ b/tests/wpt/tests/html/syntax/serializing-html-fragments/serializing-cdata-in-html-document.html @@ -0,0 +1,12 @@ + +Serializing CDATA in an HTML document + + + + diff --git a/tests/wpt/tests/html/webappapis/system-state-and-capabilities/the-navigator-object/WEB_FEATURES.yml b/tests/wpt/tests/html/webappapis/system-state-and-capabilities/the-navigator-object/WEB_FEATURES.yml new file mode 100644 index 00000000000..a1af3e21a48 --- /dev/null +++ b/tests/wpt/tests/html/webappapis/system-state-and-capabilities/the-navigator-object/WEB_FEATURES.yml @@ -0,0 +1,4 @@ +features: +- name: pdf-viewer + files: + - plugins-and-mimetypes.html diff --git a/tests/wpt/tests/infrastructure/metadata/infrastructure/testdriver/bidi/emulation/set_geolocation_override.https.html.ini b/tests/wpt/tests/infrastructure/metadata/infrastructure/testdriver/bidi/emulation/set_geolocation_override.https.html.ini new file mode 100644 index 00000000000..7de34991442 --- /dev/null +++ b/tests/wpt/tests/infrastructure/metadata/infrastructure/testdriver/bidi/emulation/set_geolocation_override.https.html.ini @@ -0,0 +1,3 @@ +[set_geolocation_override.https.html] + expected: + if product != "chrome": ERROR diff --git a/tests/wpt/tests/infrastructure/testdriver/bidi/emulation/set_geolocation_override.https.html b/tests/wpt/tests/infrastructure/testdriver/bidi/emulation/set_geolocation_override.https.html new file mode 100644 index 00000000000..5cbcf546423 --- /dev/null +++ b/tests/wpt/tests/infrastructure/testdriver/bidi/emulation/set_geolocation_override.https.html @@ -0,0 +1,71 @@ + + +TestDriver bidi.emulation.set_geolocation_override method + + + + + + diff --git a/tests/wpt/tests/interfaces/fedcm.idl b/tests/wpt/tests/interfaces/fedcm.idl index 215f375432e..5ce2d260f11 100644 --- a/tests/wpt/tests/interfaces/fedcm.idl +++ b/tests/wpt/tests/interfaces/fedcm.idl @@ -84,8 +84,10 @@ dictionary IdentityProviderAPIConfig { dictionary IdentityProviderAccount { required USVString id; - required USVString name; - required USVString email; + USVString name; + USVString email; + USVString tel; + USVString username; USVString given_name; USVString picture; sequence approved_clients; diff --git a/tests/wpt/tests/interfaces/image-capture.idl b/tests/wpt/tests/interfaces/image-capture.idl index 21e03d4db82..26cc7fab5cd 100644 --- a/tests/wpt/tests/interfaces/image-capture.idl +++ b/tests/wpt/tests/interfaces/image-capture.idl @@ -3,7 +3,7 @@ // (https://github.com/w3c/webref) // Source: MediaStream Image Capture (https://w3c.github.io/mediacapture-image/) -[Exposed=Window] +[Exposed=Window, SecureContext] interface ImageCapture { constructor(MediaStreamTrack videoTrack); Promise takePhoto(optional PhotoSettings photoSettings = {}); diff --git a/tests/wpt/tests/interfaces/mediastream-recording.idl b/tests/wpt/tests/interfaces/mediastream-recording.idl index 496bfcf2e27..68c891cdc91 100644 --- a/tests/wpt/tests/interfaces/mediastream-recording.idl +++ b/tests/wpt/tests/interfaces/mediastream-recording.idl @@ -56,7 +56,7 @@ interface BlobEvent : Event { readonly attribute DOMHighResTimeStamp timecode; }; -dictionary BlobEventInit { +dictionary BlobEventInit : EventInit { required Blob data; DOMHighResTimeStamp timecode; }; diff --git a/tests/wpt/tests/interfaces/turtledove.idl b/tests/wpt/tests/interfaces/turtledove.idl index b9f50d47885..7f11cdc3790 100644 --- a/tests/wpt/tests/interfaces/turtledove.idl +++ b/tests/wpt/tests/interfaces/turtledove.idl @@ -206,6 +206,7 @@ partial interface Navigator { [Exposed=InterestGroupScriptRunnerGlobalScope] interface InterestGroupScriptRunnerGlobalScope { readonly attribute PrivateAggregation? privateAggregation; + readonly attribute ProtectedAudienceUtilities protectedAudience; }; dictionary PASignalValue { @@ -220,6 +221,12 @@ dictionary PAExtendedHistogramContribution { bigint filteringId = 0; }; +[Exposed=InterestGroupScriptRunnerGlobalScope] +interface ProtectedAudienceUtilities { + Uint8Array encodeUtf8(USVString input); + USVString decodeUtf8(Uint8Array bytes); +}; + [Exposed=InterestGroupBiddingAndScoringScriptRunnerGlobalScope] interface ForDebuggingOnly { undefined reportAdAuctionWin(USVString url); diff --git a/tests/wpt/tests/interfaces/webcodecs.idl b/tests/wpt/tests/interfaces/webcodecs.idl index 274ef96578a..3d4db1ed49d 100644 --- a/tests/wpt/tests/interfaces/webcodecs.idl +++ b/tests/wpt/tests/interfaces/webcodecs.idl @@ -141,7 +141,7 @@ dictionary AudioDecoderConfig { required DOMString codec; [EnforceRange] required unsigned long sampleRate; [EnforceRange] required unsigned long numberOfChannels; - BufferSource description; + AllowSharedBufferSource description; }; dictionary VideoDecoderConfig { diff --git a/tests/wpt/tests/interfaces/WebCryptoAPI.idl b/tests/wpt/tests/interfaces/webcrypto.idl similarity index 100% rename from tests/wpt/tests/interfaces/WebCryptoAPI.idl rename to tests/wpt/tests/interfaces/webcrypto.idl diff --git a/tests/wpt/tests/interfaces/webgpu.idl b/tests/wpt/tests/interfaces/webgpu.idl index de1f7c1e52b..4fec46a2557 100644 --- a/tests/wpt/tests/interfaces/webgpu.idl +++ b/tests/wpt/tests/interfaces/webgpu.idl @@ -109,6 +109,7 @@ dictionary GPUDeviceDescriptor }; enum GPUFeatureName { + "core-features-and-limits", "depth-clip-control", "depth32float-stencil8", "texture-compression-bc", diff --git a/tests/wpt/tests/interfaces/webnn.idl b/tests/wpt/tests/interfaces/webnn.idl index 57f2a4a9890..37fcc32501e 100644 --- a/tests/wpt/tests/interfaces/webnn.idl +++ b/tests/wpt/tests/interfaces/webnn.idl @@ -36,6 +36,8 @@ interface MLContext { undefined dispatch(MLGraph graph, MLNamedTensors inputs, MLNamedTensors outputs); Promise createTensor(MLTensorDescriptor descriptor); + Promise createConstantTensor( + MLOperandDescriptor descriptor, AllowSharedBufferSource inputData); Promise readTensor(MLTensor tensor); Promise readTensor(MLTensor tensor, AllowSharedBufferSource outputData); @@ -133,6 +135,7 @@ interface MLTensor { readonly attribute FrozenArray shape; readonly attribute boolean readable; readonly attribute boolean writable; + readonly attribute boolean constant; undefined destroy(); }; @@ -154,6 +157,9 @@ interface MLGraphBuilder { // Create a scalar operand from the specified number of the specified type. MLOperand constant(MLOperandDataType type, MLNumber value); + // Create an operand from a specified constant tensor. + MLOperand constant(MLTensor tensor); + // Compile the graph up to the specified output operands asynchronously. Promise build(MLNamedOperands outputs); }; diff --git a/tests/wpt/tests/interfaces/webxr-depth-sensing.idl b/tests/wpt/tests/interfaces/webxr-depth-sensing.idl index 9befd640646..7ddbec7cc97 100644 --- a/tests/wpt/tests/interfaces/webxr-depth-sensing.idl +++ b/tests/wpt/tests/interfaces/webxr-depth-sensing.idl @@ -34,6 +34,10 @@ partial interface XRSession { readonly attribute XRDepthUsage depthUsage; readonly attribute XRDepthDataFormat depthDataFormat; readonly attribute XRDepthType? depthType; + readonly attribute boolean? depthActive; + + undefined pauseDepthSensing(); + undefined resumeDepthSensing(); }; [SecureContext, Exposed=Window] @@ -43,9 +47,10 @@ interface XRDepthInformation { [SameObject] readonly attribute XRRigidTransform normDepthBufferFromNormView; readonly attribute float rawValueToMeters; - readonly attribute XRView? view; }; +XRDepthInformation includes XRViewGeometry; + [Exposed=Window] interface XRCPUDepthInformation : XRDepthInformation { [SameObject] readonly attribute ArrayBuffer data; diff --git a/tests/wpt/tests/interfaces/webxr.idl b/tests/wpt/tests/interfaces/webxr.idl index 1098000d6c2..874994086a2 100644 --- a/tests/wpt/tests/interfaces/webxr.idl +++ b/tests/wpt/tests/interfaces/webxr.idl @@ -118,6 +118,11 @@ interface XRBoundedReferenceSpace : XRReferenceSpace { readonly attribute FrozenArray boundsGeometry; }; +[SecureContext, Exposed=Window] interface mixin XRViewGeometry { + readonly attribute Float32Array projectionMatrix; + [SameObject] readonly attribute XRRigidTransform transform; +}; + enum XREye { "none", "left", @@ -126,13 +131,13 @@ enum XREye { [SecureContext, Exposed=Window] interface XRView { readonly attribute XREye eye; - readonly attribute Float32Array projectionMatrix; - [SameObject] readonly attribute XRRigidTransform transform; readonly attribute double? recommendedViewportScale; undefined requestViewportScale(double? scale); }; +XRView includes XRViewGeometry; + [SecureContext, Exposed=Window] interface XRViewport { readonly attribute long x; readonly attribute long y; diff --git a/tests/wpt/tests/interfaces/writing-assistance-apis.idl b/tests/wpt/tests/interfaces/writing-assistance-apis.idl new file mode 100644 index 00000000000..916daee754e --- /dev/null +++ b/tests/wpt/tests/interfaces/writing-assistance-apis.idl @@ -0,0 +1,193 @@ +// GENERATED CONTENT - DO NOT EDIT +// Content was automatically extracted by Reffy into webref +// (https://github.com/w3c/webref) +// Source: Writing Assistance APIs (https://webmachinelearning.github.io/writing-assistance-apis/) + +[Exposed=Window, SecureContext] +interface Summarizer { + static Promise create(optional SummarizerCreateOptions options = {}); + static Promise availability(optional SummarizerCreateCoreOptions options = {}); + + Promise summarize( + DOMString input, + optional SummarizerSummarizeOptions options = {} + ); + ReadableStream summarizeStreaming( + DOMString input, + optional SummarizerSummarizeOptions options = {} + ); + + readonly attribute DOMString sharedContext; + readonly attribute SummarizerType type; + readonly attribute SummarizerFormat format; + readonly attribute SummarizerLength length; + + readonly attribute FrozenArray? expectedInputLanguages; + readonly attribute FrozenArray? expectedContextLanguages; + readonly attribute DOMString? outputLanguage; + + Promise measureInputUsage( + DOMString input, + optional SummarizerSummarizeOptions options = {} + ); + readonly attribute unrestricted double inputQuota; +}; +Summarizer includes DestroyableModel; + +dictionary SummarizerCreateCoreOptions { + SummarizerType type = "key-points"; + SummarizerFormat format = "markdown"; + SummarizerLength length = "short"; + + sequence expectedInputLanguages; + sequence expectedContextLanguages; + DOMString outputLanguage; +}; + +dictionary SummarizerCreateOptions : SummarizerCreateCoreOptions { + AbortSignal signal; + CreateMonitorCallback monitor; + + DOMString sharedContext; +}; + +dictionary SummarizerSummarizeOptions { + AbortSignal signal; + DOMString context; +}; + +enum SummarizerType { "tl;dr", "teaser", "key-points", "headline" }; +enum SummarizerFormat { "plain-text", "markdown" }; +enum SummarizerLength { "short", "medium", "long" }; + +[Exposed=Window, SecureContext] +interface Writer { + static Promise create(optional WriterCreateOptions options = {}); + static Promise availability(optional WriterCreateCoreOptions options = {}); + + Promise write( + DOMString input, + optional WriterWriteOptions options = {} + ); + ReadableStream writeStreaming( + DOMString input, + optional WriterWriteOptions options = {} + ); + + readonly attribute DOMString sharedContext; + readonly attribute WriterTone tone; + readonly attribute WriterFormat format; + readonly attribute WriterLength length; + + readonly attribute FrozenArray? expectedInputLanguages; + readonly attribute FrozenArray? expectedContextLanguages; + readonly attribute DOMString? outputLanguage; + + Promise measureInputUsage( + DOMString input, + optional WriterWriteOptions options = {} + ); + readonly attribute unrestricted double inputQuota; +}; +Writer includes DestroyableModel; + +dictionary WriterCreateCoreOptions { + WriterTone tone = "neutral"; + WriterFormat format = "markdown"; + WriterLength length = "short"; + + sequence expectedInputLanguages; + sequence expectedContextLanguages; + DOMString outputLanguage; +}; + +dictionary WriterCreateOptions : WriterCreateCoreOptions { + AbortSignal signal; + CreateMonitorCallback monitor; + + DOMString sharedContext; +}; + +dictionary WriterWriteOptions { + DOMString context; + AbortSignal signal; +}; + +enum WriterTone { "formal", "neutral", "casual" }; +enum WriterFormat { "plain-text", "markdown" }; +enum WriterLength { "short", "medium", "long" }; + +[Exposed=Window, SecureContext] +interface Rewriter { + static Promise create(optional RewriterCreateOptions options = {}); + static Promise availability(optional RewriterCreateCoreOptions options = {}); + + Promise rewrite( + DOMString input, + optional RewriterRewriteOptions options = {} + ); + ReadableStream rewriteStreaming( + DOMString input, + optional RewriterRewriteOptions options = {} + ); + + readonly attribute DOMString sharedContext; + readonly attribute RewriterTone tone; + readonly attribute RewriterFormat format; + readonly attribute RewriterLength length; + + readonly attribute FrozenArray? expectedInputLanguages; + readonly attribute FrozenArray? expectedContextLanguages; + readonly attribute DOMString? outputLanguage; + + Promise measureInputUsage( + DOMString input, + optional RewriterRewriteOptions options = {} + ); + readonly attribute unrestricted double inputQuota; +}; +Rewriter includes DestroyableModel; + +dictionary RewriterCreateCoreOptions { + RewriterTone tone = "as-is"; + RewriterFormat format = "as-is"; + RewriterLength length = "as-is"; + + sequence expectedInputLanguages; + sequence expectedContextLanguages; + DOMString outputLanguage; +}; + +dictionary RewriterCreateOptions : RewriterCreateCoreOptions { + AbortSignal signal; + CreateMonitorCallback monitor; + + DOMString sharedContext; +}; + +dictionary RewriterRewriteOptions { + DOMString context; + AbortSignal signal; +}; + +enum RewriterTone { "as-is", "more-formal", "more-casual" }; +enum RewriterFormat { "as-is", "plain-text", "markdown" }; +enum RewriterLength { "as-is", "shorter", "longer" }; + +[Exposed=Window, SecureContext] +interface CreateMonitor : EventTarget { + attribute EventHandler ondownloadprogress; +}; + +callback CreateMonitorCallback = undefined (CreateMonitor monitor); + +enum Availability { + "unavailable", + "downloadable", + "downloading", + "available" +}; + +interface mixin DestroyableModel { + undefined destroy(); +}; diff --git a/tests/wpt/tests/mediacapture-streams/MediaDevices-enumerateDevices-per-origin-ids.sub.https.html b/tests/wpt/tests/mediacapture-streams/MediaDevices-enumerateDevices-per-origin-ids.sub.https.html index 714355f5c1c..467cf5d50c7 100644 --- a/tests/wpt/tests/mediacapture-streams/MediaDevices-enumerateDevices-per-origin-ids.sub.https.html +++ b/tests/wpt/tests/mediacapture-streams/MediaDevices-enumerateDevices-per-origin-ids.sub.https.html @@ -9,8 +9,8 @@ - - + + + - - -

The pointerout event should not be fired if the pointer doesn't move

-

- Test Description: This test checks if the pointerout event dispatched unexpectedly. -
    -
  1. Click on the black rectangle. -
  2. Don't move mouse after clicking. -
-

-

-
- - diff --git a/tests/wpt/tests/resources/chromium/webxr-test.js b/tests/wpt/tests/resources/chromium/webxr-test.js index 0885b559e63..ce2503b1bbc 100644 --- a/tests/wpt/tests/resources/chromium/webxr-test.js +++ b/tests/wpt/tests/resources/chromium/webxr-test.js @@ -757,30 +757,34 @@ class MockRuntime { const viewport_size = 20; return [{ eye: vrMojom.XREye.kLeft, - fieldOfView: { - upDegrees: 48.316, - downDegrees: 50.099, - leftDegrees: 50.899, - rightDegrees: 35.197 + geometry: { + fieldOfView: { + upDegrees: 48.316, + downDegrees: 50.099, + leftDegrees: 50.899, + rightDegrees: 35.197 + }, + mojoFromView: this._getMojoFromViewerWithOffset(composeGFXTransform({ + position: [-0.032, 0, 0], + orientation: [0, 0, 0, 1] + })) }, - mojoFromView: this._getMojoFromViewerWithOffset(composeGFXTransform({ - position: [-0.032, 0, 0], - orientation: [0, 0, 0, 1] - })), viewport: { x: 0, y: 0, width: viewport_size, height: viewport_size } }, { eye: vrMojom.XREye.kRight, - fieldOfView: { - upDegrees: 48.316, - downDegrees: 50.099, - leftDegrees: 50.899, - rightDegrees: 35.197 + geometry: { + fieldOfView: { + upDegrees: 48.316, + downDegrees: 50.099, + leftDegrees: 50.899, + rightDegrees: 35.197 + }, + mojoFromView: this._getMojoFromViewerWithOffset(composeGFXTransform({ + position: [0.032, 0, 0], + orientation: [0, 0, 0, 1] + })) }, - mojoFromView: this._getMojoFromViewerWithOffset(composeGFXTransform({ - position: [0.032, 0, 0], - orientation: [0, 0, 0, 1] - })), viewport: { x: viewport_size, y: 0, width: viewport_size, height: viewport_size } }]; } @@ -835,13 +839,15 @@ class MockRuntime { return { eye: viewEye, - fieldOfView: fov, - mojoFromView: this._getMojoFromViewerWithOffset(composeGFXTransform(fakeXRViewInit.viewOffset)), + geometry: { + fieldOfView: fov, + mojoFromView: this._getMojoFromViewerWithOffset(composeGFXTransform(fakeXRViewInit.viewOffset)) + }, viewport: { x: xOffset, - y: 0, - width: fakeXRViewInit.resolution.width, - height: fakeXRViewInit.resolution.height + y: 0, + width: fakeXRViewInit.resolution.width, + height: fakeXRViewInit.resolution.height }, isFirstPersonObserver: fakeXRViewInit.isFirstPersonObserver ? true : false, viewOffset: composeGFXTransform(fakeXRViewInit.viewOffset) @@ -915,12 +921,12 @@ class MockRuntime { let frame_views = this.primaryViews_; for (let i = 0; i < this.primaryViews_.length; i++) { - this.primaryViews_[i].mojoFromView = + this.primaryViews_[i].geometry.mojoFromView = this._getMojoFromViewerWithOffset(this.primaryViews_[i].viewOffset); } if (this.enabledFeatures_.includes(xrSessionMojom.XRSessionFeature.SECONDARY_VIEWS)) { for (let i = 0; i < this.secondaryViews_.length; i++) { - this.secondaryViews_[i].mojoFromView = + this.secondaryViews_[i].geometry.mojoFromView = this._getMojoFromViewerWithOffset(this.secondaryViews_[i].viewOffset); } diff --git a/tests/wpt/tests/resources/testdriver.js b/tests/wpt/tests/resources/testdriver.js index f127e2b2c8d..6e8410b7ea4 100644 --- a/tests/wpt/tests/resources/testdriver.js +++ b/tests/wpt/tests/resources/testdriver.js @@ -254,12 +254,57 @@ } }, /** - * `log `_ module. + * `emulation `_ module. + */ + emulation: { + /** + * Overrides the geolocation coordinates for the specified + * browsing contexts. + * Matches the `emulation.setGeolocationOverride + * `_ + * WebDriver BiDi command. + * + * @example + * await test_driver.bidi.emulation.set_geolocation_override({ + * coordinates: { + * latitude: 52.51, + * longitude: 13.39, + * accuracy: 0.5, + * altitude: 34, + * altitudeAccuracy: 0.75, + * heading: 180, + * speed: 2.77 + * } + * }); + * + * @param {object} params - Parameters for the command. + * @param {null|object} params.coordinates - The optional + * geolocation coordinates to set. Matches the + * `emulation.GeolocationCoordinates `_ + * value. If null or omitted, the emulation will be removed. + * @param {null|Array.<(Context)>} [params.contexts] The + * optional contexts parameter specifies which browsing contexts + * to set the geolocation override on. It should be either an + * array of Context objects (window or browsing context id), or + * null. If null or omitted, the override will be set on the + * current browsing context. + * @returns {Promise} Resolves when the geolocation + * override is successfully set. + */ + set_geolocation_override: function (params) { + // Ensure the bidi feature is enabled before calling the internal method + assertBidiIsEnabled(); + return window.test_driver_internal.bidi.emulation.set_geolocation_override( + params); + }, + }, + /** + * `log `_ module. */ log: { entry_added: { /** - * @typedef {object} LogEntryAdded `log.entryAdded `_ event. + * @typedef {object} LogEntryAdded `log.entryAdded `_ event. */ /** @@ -1576,6 +1621,12 @@ } } }, + emulation: { + set_geolocation_override: function (params) { + throw new Error( + "bidi.emulation.set_geolocation_override is not implemented by testdriver-vendor.js"); + } + }, log: { entry_added: { async subscribe() { diff --git a/tests/wpt/tests/scroll-animations/scroll-timelines/animation-with-transform.html b/tests/wpt/tests/scroll-animations/scroll-timelines/animation-with-transform.html index f741cc634d7..323d984c989 100644 --- a/tests/wpt/tests/scroll-animations/scroll-timelines/animation-with-transform.html +++ b/tests/wpt/tests/scroll-animations/scroll-timelines/animation-with-transform.html @@ -21,7 +21,7 @@ } #scroller { - overflow: auto; + overflow: hidden; height: 100px; width: 100px; will-change: transform; /* force compositing */ diff --git a/tests/wpt/tests/scroll-animations/scroll-timelines/two-animations-attach-to-same-scroll-timeline-cancel-one.html b/tests/wpt/tests/scroll-animations/scroll-timelines/two-animations-attach-to-same-scroll-timeline-cancel-one.html index ed8e8337a65..28973d2d185 100644 --- a/tests/wpt/tests/scroll-animations/scroll-timelines/two-animations-attach-to-same-scroll-timeline-cancel-one.html +++ b/tests/wpt/tests/scroll-animations/scroll-timelines/two-animations-attach-to-same-scroll-timeline-cancel-one.html @@ -22,7 +22,7 @@ } #scroller { - overflow: auto; + overflow: hidden; height: 100px; width: 100px; will-change: transform; /* force compositing */ diff --git a/tests/wpt/tests/scroll-animations/scroll-timelines/two-animations-attach-to-same-scroll-timeline.html b/tests/wpt/tests/scroll-animations/scroll-timelines/two-animations-attach-to-same-scroll-timeline.html index de50599fbaf..45ba3f99ccd 100644 --- a/tests/wpt/tests/scroll-animations/scroll-timelines/two-animations-attach-to-same-scroll-timeline.html +++ b/tests/wpt/tests/scroll-animations/scroll-timelines/two-animations-attach-to-same-scroll-timeline.html @@ -22,7 +22,7 @@ drive two animations"> } #scroller { - overflow: auto; + overflow: hidden; height: 100px; width: 100px; will-change: transform; /* force compositing */ diff --git a/tests/wpt/tests/scroll-animations/view-timelines/fieldset-source.html b/tests/wpt/tests/scroll-animations/view-timelines/fieldset-source.html index d75f30e664e..cdd2e0be40c 100644 --- a/tests/wpt/tests/scroll-animations/view-timelines/fieldset-source.html +++ b/tests/wpt/tests/scroll-animations/view-timelines/fieldset-source.html @@ -87,7 +87,7 @@ parseFloat(getComputedStyle(fieldset).borderBottom); // Validate the start and end offsets for each view timeline. - anims.forEach(async (anim) => { + for (let anim of anims) { assert_equals(anim.timeline.source.id, 'fieldset'); assert_equals(anim.timeline.subject.tagName, 'INPUT'); const bounds = anim.effect.target.getBoundingClientRect(); @@ -96,13 +96,13 @@ const expectedEndOffset = bounds.bottom - fieldsetContentTop; assert_approx_equals( parseFloat(anim.timeline.startOffset), - expectedStartOffset, 0.1, + expectedStartOffset, 0.5, `Unexpected start offset for ${anim.effect.target.id}`); assert_approx_equals( parseFloat(anim.timeline.endOffset), - expectedEndOffset, 0.1, + expectedEndOffset, 0.5, `Unexpected end offset for ${anim.effect.target.id}`); - }); + }; }, 'Fieldset is a valid source for a view timeline'); } diff --git a/tests/wpt/tests/shadow-dom/reference-target/tentative/form.html b/tests/wpt/tests/shadow-dom/reference-target/tentative/form.html index a4a5f372838..5ab144b05ed 100644 --- a/tests/wpt/tests/shadow-dom/reference-target/tentative/form.html +++ b/tests/wpt/tests/shadow-dom/reference-target/tentative/form.html @@ -9,6 +9,13 @@ +
+ +
+