From d969099d4637a02aeddb9da49b6ae3231e9d636d Mon Sep 17 00:00:00 2001 From: Mozilla Releng Treescript Date: Thu, 21 Mar 2024 07:08:41 +0000 Subject: [PATCH 001/132] no bug - Bumping Firefox l10n changesets r=release a=l10n-bump DONTBUILD CLOSED TREE ast -> c9a1711eb6f85327545d3547189851cc578a8bcb be -> c67b2f6a03d89082c7a47750e78429038050522f br -> 258e0005ec6ca39630f089c9123e732907356e5b ca -> e1cb447e28cc16dae2146029eab57cecd8230011 ca-valencia -> 17e74ca85bd06858f86277f8c9de3ef115df6095 cak -> a2d5c0ad5d7390250b0c9ffe903b18e59ca203b4 cs -> 4b63e91a6a2fd7d9e6a5813aaf32fd31d08ac862 cy -> 355823e7f5d1c8188cfb0893eac26b5a27d1e67f da -> 9b2dd555f2c87519a6b77767b84383207fdbbcd8 de -> 6dfdfb7a734ed5132205cc4fbb11e3f1f145b7d2 dsb -> 7c9202aff6dc20259c40d3a9d65e5f1ecda09872 el -> d8aeb32babefd3f728945cbbf42d8ab122cdf7d6 en-CA -> e916f7fbf514d9dc942fbff336264f9b0a590292 en-GB -> e7a098e4b205c47359b810eef9be0707b77a26d6 eo -> be2d96bc035e8debfab89769d51da105de9dfd34 es-AR -> a7a50d3770969455c330f57c841d76d05ae05a39 es-CL -> 960e284b1b0718276062a2a0438594a1f42c6cd7 es-ES -> dfd907374a269dda0db9e25a82b571d0f63e2aa7 es-MX -> ea977981fb26e99974c8b18bc73bcfb1a874601b et -> d8d81aca4fa5fff97916fddcdd465d79200b9d87 eu -> 7dc9ec4036cc6678eccc3ff3828e9c275ec042b4 fa -> 71df6acd8ae7e6899297e21feac1506aca030657 fi -> 66e341d2dde916d1d39309fdeb6132174b005a51 fr -> eae6a34702d9e87e079889fd05eb479b7c6b03f8 fur -> 509bad3946982421facb883fe6df215d5665c76b fy-NL -> 8f2dc038dfb10ed54dfbe185fc6874dcfb9f9747 gd -> 8d5b6f49ece7c9b8f100087f782272ad512bde5d gl -> 59f020aa7d7bce53c85cdcce21cbaeede864e040 gn -> f3dddeef672ee6b6de4e80f4411793d91814e237 he -> bef1510a38ca8f22bfd59ec439d846acf128cdcf hsb -> e31b9d935e9881e4a08db70cb99b343eefc04f2d hu -> 0b0541b90c59f34f2bd39354c607eb9ad6cd9d2d hy-AM -> 9fc355a0f1613b8f4c4bbc86d66cc298b6f7c70d hye -> 8d1f2122537faeecdceaa196d4c93491aea59f01 ia -> f40a0a4aba1a2d9296a7679e9c912932f73854d1 id -> e7a8c852ef4d63a854835168b4d9365e517a3775 is -> 41e2499fee367e6723db7a6145bfbe49397d7351 it -> a3ee6bd28c3a1863d3cfe35e6d1a29c7e4c27c8e ja -> 3503de5b47747eaf61164e1e90dbd3a5938e3d2e ja-JP-mac -> 4c9e23e20cbc16123d6142e3c2ea3111d544ddf0 ka -> f3a1cad438c5e86032c887aff53d7af542370988 kab -> af985ee5430012d27329de6bfd679791a5bd96a4 kk -> 5c84c53b3993a530d47c4ae230c181c050286201 ko -> 1330d82c2f349d0fb65ddfad902d42b096432b68 lt -> c3f12ebb8c79e1c352be2ea0b784a9d48932b9c4 nb-NO -> 450f1172b261c10767e522a7be814f0d2eb55e68 nl -> 4149bf188d3527689e31f13faae04b4a69205bc2 nn-NO -> 1837d226473d2120782f2fad5196ed8aa97dd3d1 oc -> 9c393420d2312fb36157e2a55b32313b8313f13d pa-IN -> 2513114fbf289bf56e495571d5c17707d33fba63 pl -> 5b7210f8c9ab4b607a5329129df9d3efb1838342 pt-BR -> 12b01a5b77b17cfecfaa1346bbffb0445c562f2f pt-PT -> c4bae66ea82c042ef66f820e00040c40b93a5fa1 rm -> e4b9d46661465f5cf8e1c8917614b8e3610f0dda ro -> 6476ae1d66c5a085a6d8ac667576badf80603e62 ru -> c3e94600cee0c97011371926edddffc751b20387 sat -> cd501b70ad3dae902500f6a64e26141707c3810b sc -> 84b9feea7d84bcfe4b7153e28c0b8cb0971a23a7 sco -> ca67bbd939c70d9cde5ed0ace904c98e30964e8f si -> 92528652d1ebf2aacd1e3cf5dd81bc152cf7cf78 sk -> ba2ccad03f6e44bab1065ffa071eb057a6e425fb skr -> 104f80527e3585f6f105f0dd9e8c152499e153a9 sl -> 077b23859a2f46a04e127db2fe8c1231cc8eccc3 sq -> 37b30cfbb16f5b8d31169baed8823c37b50807be sr -> a5caf259904267d850886cc7a3fec1444e0fcedc sv-SE -> f3914c518eff1a8ad99b5a153647ae396dfc162f szl -> cd60661eb4caa7f759d496cbb2a52a8489e3e587 tg -> 1ef2e595be24616f1962bce85d11ac27e2ac7e4a th -> 12f795d3d2112bbf17dfa30c59aed6c51981b2be tr -> f0c0016f7cc2f62fe753ebff5c347984e9189f76 uk -> 67b737c154a82cef8971cc5c9af135dd70440f30 vi -> 7b0c4d4162be56a4c56a3dc2f2dc21bcaf664cf8 zh-CN -> 4850d9cc6562f0e37b36852b35c6c0c713c4e6f5 zh-TW -> 8e65e290e271f0f16efa7f021c7277dbbd3840a6 --- browser/locales/l10n-changesets.json | 148 +++++++++++++-------------- 1 file changed, 74 insertions(+), 74 deletions(-) diff --git a/browser/locales/l10n-changesets.json b/browser/locales/l10n-changesets.json index a75e2eb4ca05d..840962cc2e37c 100644 --- a/browser/locales/l10n-changesets.json +++ b/browser/locales/l10n-changesets.json @@ -87,7 +87,7 @@ "win64-aarch64-devedition", "win64-devedition" ], - "revision": "e108773daf853d2bb7c26ea872e0a685da2727c9" + "revision": "c9a1711eb6f85327545d3547189851cc578a8bcb" }, "az": { "pin": false, @@ -123,7 +123,7 @@ "win64-aarch64-devedition", "win64-devedition" ], - "revision": "e2e72a41915c529975eea008cb23f0b8421335ce" + "revision": "c67b2f6a03d89082c7a47750e78429038050522f" }, "bg": { "pin": false, @@ -195,7 +195,7 @@ "win64-aarch64-devedition", "win64-devedition" ], - "revision": "de4ee0d4cce6abdb6c956ad1111c899b4ae04532" + "revision": "258e0005ec6ca39630f089c9123e732907356e5b" }, "brx": { "pin": false, @@ -249,7 +249,7 @@ "win64-aarch64-devedition", "win64-devedition" ], - "revision": "af77f39dc801618332b7144bf6961ad20cdad902" + "revision": "e1cb447e28cc16dae2146029eab57cecd8230011" }, "ca-valencia": { "pin": false, @@ -267,7 +267,7 @@ "win64-aarch64-devedition", "win64-devedition" ], - "revision": "7f8da14938a4aa9f4cc9fead0c9ad7f2ebe05169" + "revision": "17e74ca85bd06858f86277f8c9de3ef115df6095" }, "cak": { "pin": false, @@ -285,7 +285,7 @@ "win64-aarch64-devedition", "win64-devedition" ], - "revision": "ff0de5d234059855978daf562ad77189afe0a586" + "revision": "a2d5c0ad5d7390250b0c9ffe903b18e59ca203b4" }, "ckb": { "pin": false, @@ -321,7 +321,7 @@ "win64-aarch64-devedition", "win64-devedition" ], - "revision": "fe4457de072b973de7cc7555fd09412da63dc506" + "revision": "4b63e91a6a2fd7d9e6a5813aaf32fd31d08ac862" }, "cy": { "pin": false, @@ -339,7 +339,7 @@ "win64-aarch64-devedition", "win64-devedition" ], - "revision": "10b753486cbb25a5703790948f05e2bc6bc93bd8" + "revision": "355823e7f5d1c8188cfb0893eac26b5a27d1e67f" }, "da": { "pin": false, @@ -357,7 +357,7 @@ "win64-aarch64-devedition", "win64-devedition" ], - "revision": "a7efb19f09da188d1dd40b7ea32c35cfc7558cff" + "revision": "9b2dd555f2c87519a6b77767b84383207fdbbcd8" }, "de": { "pin": false, @@ -375,7 +375,7 @@ "win64-aarch64-devedition", "win64-devedition" ], - "revision": "93577ce5cb462834c170aeeae85217be64dc8d34" + "revision": "6dfdfb7a734ed5132205cc4fbb11e3f1f145b7d2" }, "dsb": { "pin": false, @@ -393,7 +393,7 @@ "win64-aarch64-devedition", "win64-devedition" ], - "revision": "5e6dd550d46ffd8ee75732c675365902738233ed" + "revision": "7c9202aff6dc20259c40d3a9d65e5f1ecda09872" }, "el": { "pin": false, @@ -411,7 +411,7 @@ "win64-aarch64-devedition", "win64-devedition" ], - "revision": "47a07fb6800406fe4a7b69a4e82980f7bd1d7357" + "revision": "d8aeb32babefd3f728945cbbf42d8ab122cdf7d6" }, "en-CA": { "pin": false, @@ -429,7 +429,7 @@ "win64-aarch64-devedition", "win64-devedition" ], - "revision": "f68b9240614a72186d3a9e3ad972e50733223378" + "revision": "e916f7fbf514d9dc942fbff336264f9b0a590292" }, "en-GB": { "pin": false, @@ -447,7 +447,7 @@ "win64-aarch64-devedition", "win64-devedition" ], - "revision": "0aad8c6f5e76149f917a4aae726ecd3ebe40ccb8" + "revision": "e7a098e4b205c47359b810eef9be0707b77a26d6" }, "eo": { "pin": false, @@ -465,7 +465,7 @@ "win64-aarch64-devedition", "win64-devedition" ], - "revision": "0703bd4dc6605ebc478e0b5d60196ac82a6481db" + "revision": "be2d96bc035e8debfab89769d51da105de9dfd34" }, "es-AR": { "pin": false, @@ -483,7 +483,7 @@ "win64-aarch64-devedition", "win64-devedition" ], - "revision": "eb8a4249ff12a04de2a8698c9487999a23377c7e" + "revision": "a7a50d3770969455c330f57c841d76d05ae05a39" }, "es-CL": { "pin": false, @@ -501,7 +501,7 @@ "win64-aarch64-devedition", "win64-devedition" ], - "revision": "0ca2c4d1fc5da296d3ad0269bb144c8622bfb90c" + "revision": "960e284b1b0718276062a2a0438594a1f42c6cd7" }, "es-ES": { "pin": false, @@ -519,7 +519,7 @@ "win64-aarch64-devedition", "win64-devedition" ], - "revision": "34ab15c46dabe35394e52ee9e15f90bd624e4707" + "revision": "dfd907374a269dda0db9e25a82b571d0f63e2aa7" }, "es-MX": { "pin": false, @@ -537,7 +537,7 @@ "win64-aarch64-devedition", "win64-devedition" ], - "revision": "149690523cf68e68d054767a4768ee28a82cfacf" + "revision": "ea977981fb26e99974c8b18bc73bcfb1a874601b" }, "et": { "pin": false, @@ -555,7 +555,7 @@ "win64-aarch64-devedition", "win64-devedition" ], - "revision": "0e1b079fd67d92a3ae75d4da71171d69f20f5025" + "revision": "d8d81aca4fa5fff97916fddcdd465d79200b9d87" }, "eu": { "pin": false, @@ -573,7 +573,7 @@ "win64-aarch64-devedition", "win64-devedition" ], - "revision": "b6c43671f4115e36b9fc50aeba83fb42e03c67f3" + "revision": "7dc9ec4036cc6678eccc3ff3828e9c275ec042b4" }, "fa": { "pin": false, @@ -591,7 +591,7 @@ "win64-aarch64-devedition", "win64-devedition" ], - "revision": "631d86697a7a82e53c80ad989beb5f70a96b1301" + "revision": "71df6acd8ae7e6899297e21feac1506aca030657" }, "ff": { "pin": false, @@ -627,7 +627,7 @@ "win64-aarch64-devedition", "win64-devedition" ], - "revision": "941f0ea66c058ebdf129bf9b3da28d07eb04d741" + "revision": "66e341d2dde916d1d39309fdeb6132174b005a51" }, "fr": { "pin": false, @@ -645,7 +645,7 @@ "win64-aarch64-devedition", "win64-devedition" ], - "revision": "d552eccc32abb95c18c22b9bd4154e0940daeea1" + "revision": "eae6a34702d9e87e079889fd05eb479b7c6b03f8" }, "fur": { "pin": false, @@ -663,7 +663,7 @@ "win64-aarch64-devedition", "win64-devedition" ], - "revision": "f59eb2e13771ca44ad9270684059845c130d4eeb" + "revision": "509bad3946982421facb883fe6df215d5665c76b" }, "fy-NL": { "pin": false, @@ -681,7 +681,7 @@ "win64-aarch64-devedition", "win64-devedition" ], - "revision": "4d33dd0871d6e0f32f8c6e03f076b4d311cdb39d" + "revision": "8f2dc038dfb10ed54dfbe185fc6874dcfb9f9747" }, "ga-IE": { "pin": false, @@ -717,7 +717,7 @@ "win64-aarch64-devedition", "win64-devedition" ], - "revision": "ddbbbdb5eab841b95d00b6defcc86593a1b5253a" + "revision": "8d5b6f49ece7c9b8f100087f782272ad512bde5d" }, "gl": { "pin": false, @@ -735,7 +735,7 @@ "win64-aarch64-devedition", "win64-devedition" ], - "revision": "7759f48de6b417c8a9eb296dbf8a8e548639de6a" + "revision": "59f020aa7d7bce53c85cdcce21cbaeede864e040" }, "gn": { "pin": false, @@ -753,7 +753,7 @@ "win64-aarch64-devedition", "win64-devedition" ], - "revision": "126977b57acf6e9f1dcf3c7f3c9c242c7f0dd44e" + "revision": "f3dddeef672ee6b6de4e80f4411793d91814e237" }, "gu-IN": { "pin": false, @@ -789,7 +789,7 @@ "win64-aarch64-devedition", "win64-devedition" ], - "revision": "d61ad7e9821e55466c6c19fc6718d95196f78628" + "revision": "bef1510a38ca8f22bfd59ec439d846acf128cdcf" }, "hi-IN": { "pin": false, @@ -843,7 +843,7 @@ "win64-aarch64-devedition", "win64-devedition" ], - "revision": "da8982fb4d724ec9ad9a7b138c829ad8b23a2c0b" + "revision": "e31b9d935e9881e4a08db70cb99b343eefc04f2d" }, "hu": { "pin": false, @@ -861,7 +861,7 @@ "win64-aarch64-devedition", "win64-devedition" ], - "revision": "ee1d74c1b01ccbdc38d1f59e2f30cce21d649bde" + "revision": "0b0541b90c59f34f2bd39354c607eb9ad6cd9d2d" }, "hy-AM": { "pin": false, @@ -879,7 +879,7 @@ "win64-aarch64-devedition", "win64-devedition" ], - "revision": "e0cb54af70d42174a17078ecfcc52ed309bc235d" + "revision": "9fc355a0f1613b8f4c4bbc86d66cc298b6f7c70d" }, "hye": { "pin": false, @@ -897,7 +897,7 @@ "win64-aarch64-devedition", "win64-devedition" ], - "revision": "ca4162a68506e26d7786212c3de98f2ba5628c55" + "revision": "8d1f2122537faeecdceaa196d4c93491aea59f01" }, "ia": { "pin": false, @@ -915,7 +915,7 @@ "win64-aarch64-devedition", "win64-devedition" ], - "revision": "77d434d098092f38a91a7d6ab84fe7b8180dee02" + "revision": "f40a0a4aba1a2d9296a7679e9c912932f73854d1" }, "id": { "pin": false, @@ -933,7 +933,7 @@ "win64-aarch64-devedition", "win64-devedition" ], - "revision": "fac640f92b280128f208e308178a9efc9b378d6c" + "revision": "e7a8c852ef4d63a854835168b4d9365e517a3775" }, "is": { "pin": false, @@ -951,7 +951,7 @@ "win64-aarch64-devedition", "win64-devedition" ], - "revision": "991ab0f2c52401704588fd1195bf3766a86a096f" + "revision": "41e2499fee367e6723db7a6145bfbe49397d7351" }, "it": { "pin": false, @@ -969,7 +969,7 @@ "win64-aarch64-devedition", "win64-devedition" ], - "revision": "fa060e0b95c06e442b36032e76418eddf303dea5" + "revision": "a3ee6bd28c3a1863d3cfe35e6d1a29c7e4c27c8e" }, "ja": { "pin": false, @@ -985,7 +985,7 @@ "win64-aarch64-devedition", "win64-devedition" ], - "revision": "fc85259a7e8f5e53ebda328267f3b91693acf6aa" + "revision": "3503de5b47747eaf61164e1e90dbd3a5938e3d2e" }, "ja-JP-mac": { "pin": false, @@ -993,7 +993,7 @@ "macosx64", "macosx64-devedition" ], - "revision": "2b68173e13fea3c5bfb33940fdb46972c5ab9a22" + "revision": "4c9e23e20cbc16123d6142e3c2ea3111d544ddf0" }, "ka": { "pin": false, @@ -1011,7 +1011,7 @@ "win64-aarch64-devedition", "win64-devedition" ], - "revision": "9525652bf79359f6daa8a739cf91a05d116f1bad" + "revision": "f3a1cad438c5e86032c887aff53d7af542370988" }, "kab": { "pin": false, @@ -1029,7 +1029,7 @@ "win64-aarch64-devedition", "win64-devedition" ], - "revision": "f959276edde43449c904df23671012999c7b0f13" + "revision": "af985ee5430012d27329de6bfd679791a5bd96a4" }, "kk": { "pin": false, @@ -1047,7 +1047,7 @@ "win64-aarch64-devedition", "win64-devedition" ], - "revision": "1162e18a9e14e80efc77c17a93f48705d703da07" + "revision": "5c84c53b3993a530d47c4ae230c181c050286201" }, "km": { "pin": false, @@ -1101,7 +1101,7 @@ "win64-aarch64-devedition", "win64-devedition" ], - "revision": "f9c723b672316247a6d76bb16601b9db460654dd" + "revision": "1330d82c2f349d0fb65ddfad902d42b096432b68" }, "lij": { "pin": false, @@ -1155,7 +1155,7 @@ "win64-aarch64-devedition", "win64-devedition" ], - "revision": "ce52f16cb4f53c2fbc156e00a895aa479a0293f9" + "revision": "c3f12ebb8c79e1c352be2ea0b784a9d48932b9c4" }, "ltg": { "pin": false, @@ -1299,7 +1299,7 @@ "win64-aarch64-devedition", "win64-devedition" ], - "revision": "cf9b9dd62119df367d28be8806c7ff06952e75c4" + "revision": "450f1172b261c10767e522a7be814f0d2eb55e68" }, "ne-NP": { "pin": false, @@ -1335,7 +1335,7 @@ "win64-aarch64-devedition", "win64-devedition" ], - "revision": "34c6326ea7ad00a55d7d147ceb7316ab50181370" + "revision": "4149bf188d3527689e31f13faae04b4a69205bc2" }, "nn-NO": { "pin": false, @@ -1353,7 +1353,7 @@ "win64-aarch64-devedition", "win64-devedition" ], - "revision": "e5d527f246cd7c6cb5bdc70835c38c25c1caab72" + "revision": "1837d226473d2120782f2fad5196ed8aa97dd3d1" }, "oc": { "pin": false, @@ -1371,7 +1371,7 @@ "win64-aarch64-devedition", "win64-devedition" ], - "revision": "314ebebf11519e1940d38feee1001c002bd55d49" + "revision": "9c393420d2312fb36157e2a55b32313b8313f13d" }, "pa-IN": { "pin": false, @@ -1389,7 +1389,7 @@ "win64-aarch64-devedition", "win64-devedition" ], - "revision": "fc0a99f3cb10239b8b75b9e780bf1e592159a78f" + "revision": "2513114fbf289bf56e495571d5c17707d33fba63" }, "pl": { "pin": false, @@ -1407,7 +1407,7 @@ "win64-aarch64-devedition", "win64-devedition" ], - "revision": "af87979d5d113759d5a77d33e4e5044c303a51aa" + "revision": "5b7210f8c9ab4b607a5329129df9d3efb1838342" }, "pt-BR": { "pin": false, @@ -1425,7 +1425,7 @@ "win64-aarch64-devedition", "win64-devedition" ], - "revision": "4cb689f2f4a337765da69b2ff5286fe7526e8255" + "revision": "12b01a5b77b17cfecfaa1346bbffb0445c562f2f" }, "pt-PT": { "pin": false, @@ -1443,7 +1443,7 @@ "win64-aarch64-devedition", "win64-devedition" ], - "revision": "b25f902bf15fc25a0277733497538ce48dd024d5" + "revision": "c4bae66ea82c042ef66f820e00040c40b93a5fa1" }, "rm": { "pin": false, @@ -1461,7 +1461,7 @@ "win64-aarch64-devedition", "win64-devedition" ], - "revision": "8bb7b89fa9b324ec367b3f80527cebba3a428b95" + "revision": "e4b9d46661465f5cf8e1c8917614b8e3610f0dda" }, "ro": { "pin": false, @@ -1479,7 +1479,7 @@ "win64-aarch64-devedition", "win64-devedition" ], - "revision": "014649510be0915aa21e83e96bf30fce92c9b547" + "revision": "6476ae1d66c5a085a6d8ac667576badf80603e62" }, "ru": { "pin": false, @@ -1497,7 +1497,7 @@ "win64-aarch64-devedition", "win64-devedition" ], - "revision": "8a40e1fc46bfb1662fe5f4c9a2140f3c868f74e3" + "revision": "c3e94600cee0c97011371926edddffc751b20387" }, "sat": { "pin": false, @@ -1515,7 +1515,7 @@ "win64-aarch64-devedition", "win64-devedition" ], - "revision": "cc8aeb497943c42bd693bbe3b9bc5d34b16de227" + "revision": "cd501b70ad3dae902500f6a64e26141707c3810b" }, "sc": { "pin": false, @@ -1533,7 +1533,7 @@ "win64-aarch64-devedition", "win64-devedition" ], - "revision": "2beb703b2da66326ef740fd61ee6d168c7a332e5" + "revision": "84b9feea7d84bcfe4b7153e28c0b8cb0971a23a7" }, "scn": { "pin": false, @@ -1569,7 +1569,7 @@ "win64-aarch64-devedition", "win64-devedition" ], - "revision": "607fe5d66eeb1cf0cb6e91ed4217dc7affbbf87a" + "revision": "ca67bbd939c70d9cde5ed0ace904c98e30964e8f" }, "si": { "pin": false, @@ -1587,7 +1587,7 @@ "win64-aarch64-devedition", "win64-devedition" ], - "revision": "af5f9ae08dd57027884ee287b840225431b20aa3" + "revision": "92528652d1ebf2aacd1e3cf5dd81bc152cf7cf78" }, "sk": { "pin": false, @@ -1605,7 +1605,7 @@ "win64-aarch64-devedition", "win64-devedition" ], - "revision": "7b0e743b070c3facf56ebfe4018a5d3f278e1e34" + "revision": "ba2ccad03f6e44bab1065ffa071eb057a6e425fb" }, "skr": { "pin": false, @@ -1623,7 +1623,7 @@ "win64-aarch64-devedition", "win64-devedition" ], - "revision": "206804bd0f1ca91307b6bf4ba9e513841a76f58b" + "revision": "104f80527e3585f6f105f0dd9e8c152499e153a9" }, "sl": { "pin": false, @@ -1641,7 +1641,7 @@ "win64-aarch64-devedition", "win64-devedition" ], - "revision": "e2bc17b96da16f4b56f5ee030d61ee5cc418f2d6" + "revision": "077b23859a2f46a04e127db2fe8c1231cc8eccc3" }, "son": { "pin": false, @@ -1677,7 +1677,7 @@ "win64-aarch64-devedition", "win64-devedition" ], - "revision": "b504e5c0c959db076eed2ab763e532ca87334066" + "revision": "37b30cfbb16f5b8d31169baed8823c37b50807be" }, "sr": { "pin": false, @@ -1695,7 +1695,7 @@ "win64-aarch64-devedition", "win64-devedition" ], - "revision": "d296ac219c6775bc4bffdff40d6ab9c73c225821" + "revision": "a5caf259904267d850886cc7a3fec1444e0fcedc" }, "sv-SE": { "pin": false, @@ -1713,7 +1713,7 @@ "win64-aarch64-devedition", "win64-devedition" ], - "revision": "24f9ce0f0610a5da54c93e0d25fa3c198a77ed38" + "revision": "f3914c518eff1a8ad99b5a153647ae396dfc162f" }, "szl": { "pin": false, @@ -1731,7 +1731,7 @@ "win64-aarch64-devedition", "win64-devedition" ], - "revision": "2bcba850238885e2e7fb9b12ae2b6fd1da7056ec" + "revision": "cd60661eb4caa7f759d496cbb2a52a8489e3e587" }, "ta": { "pin": false, @@ -1785,7 +1785,7 @@ "win64-aarch64-devedition", "win64-devedition" ], - "revision": "161d2e09c39d1d94e90caf3e1fa55f60fa2ae5bb" + "revision": "1ef2e595be24616f1962bce85d11ac27e2ac7e4a" }, "th": { "pin": false, @@ -1803,7 +1803,7 @@ "win64-aarch64-devedition", "win64-devedition" ], - "revision": "0967000f9c3a3393bfec4289e6d9141b33ee2d71" + "revision": "12f795d3d2112bbf17dfa30c59aed6c51981b2be" }, "tl": { "pin": false, @@ -1839,7 +1839,7 @@ "win64-aarch64-devedition", "win64-devedition" ], - "revision": "7806c03b34370e05e6c9a55ab3923e9768ec05b1" + "revision": "f0c0016f7cc2f62fe753ebff5c347984e9189f76" }, "trs": { "pin": false, @@ -1875,7 +1875,7 @@ "win64-aarch64-devedition", "win64-devedition" ], - "revision": "bf6c118e97347b2f1419c0b6d921cdc1a46492f2" + "revision": "67b737c154a82cef8971cc5c9af135dd70440f30" }, "ur": { "pin": false, @@ -1929,7 +1929,7 @@ "win64-aarch64-devedition", "win64-devedition" ], - "revision": "42a9ca0268484ca04db8f7d9689762439f285199" + "revision": "7b0c4d4162be56a4c56a3dc2f2dc21bcaf664cf8" }, "wo": { "pin": false, @@ -1983,7 +1983,7 @@ "win64-aarch64-devedition", "win64-devedition" ], - "revision": "f8e99455ccbe25e4b6fe2111e997fe74c7cdb3d3" + "revision": "4850d9cc6562f0e37b36852b35c6c0c713c4e6f5" }, "zh-TW": { "pin": false, @@ -2001,6 +2001,6 @@ "win64-aarch64-devedition", "win64-devedition" ], - "revision": "7cbec681e6a8153799feb3a79a71c73ef09543ef" + "revision": "8e65e290e271f0f16efa7f021c7277dbbd3840a6" } } \ No newline at end of file From 0dac15206bf8b672ae4cae8693086ee96608c9e9 Mon Sep 17 00:00:00 2001 From: Hubert Boma Manilla Date: Thu, 21 Mar 2024 07:48:58 +0000 Subject: [PATCH 002/132] Bug 1882060 - [devtools] Add support for empty lines markers to codemirror 6 r=devtools-reviewers,nchevobbe In this patch 1) Adds the `setLineGutterMarkers` function to the editor which enables defining gutter markers the line number gutter component. This also updates the line number gutter when the viewport (visible ranges) change (This usually happens when the editor is scrolled). 2)The first use of the `setLineGutterMarkers` is for rendering empty lines Differential Revision: https://phabricator.services.mozilla.com/D202716 --- .../debugger/src/components/Editor/index.js | 36 +++++++ .../client/debugger/src/utils/editor/index.js | 8 ++ devtools/client/shared/sourceeditor/editor.js | 102 ++++++++++++++++++ devtools/client/themes/dark-theme.css | 4 +- devtools/client/themes/light-theme.css | 4 +- 5 files changed, 152 insertions(+), 2 deletions(-) diff --git a/devtools/client/debugger/src/components/Editor/index.js b/devtools/client/debugger/src/components/Editor/index.js index 6b8835628fb83..f87917b692653 100644 --- a/devtools/client/debugger/src/components/Editor/index.js +++ b/devtools/client/debugger/src/components/Editor/index.js @@ -12,6 +12,7 @@ import { connect } from "devtools/client/shared/vendor/react-redux"; import { getLineText, isLineBlackboxed } from "./../../utils/source"; import { createLocation } from "./../../utils/location"; import { getIndentation } from "../../utils/indentation"; +import { isWasm } from "../../utils/wasm"; import { features } from "../../utils/prefs"; import { @@ -50,6 +51,7 @@ import Exceptions from "./Exceptions"; import BlackboxLines from "./BlackboxLines"; import { + fromEditorLine, showSourceText, setDocument, resetLineNumberFormat, @@ -276,6 +278,36 @@ class Editor extends PureComponent { } }; + componentDidUpdate(prevProps) { + const { selectedSource, breakableLines } = this.props; + const { editor } = this.state; + + if (!selectedSource) { + return; + } + + const shouldUpdateBreakableLines = + prevProps.breakableLines.size !== this.props.breakableLines.size || + prevProps.selectedSource?.id !== selectedSource.id; + // Sets the breakables lines for codemirror 6 + if (features.codemirrorNext && editor && shouldUpdateBreakableLines) { + const isSourceWasm = isWasm(selectedSource.id); + editor.setLineGutterMarkers([ + { + gutterLineClassName: "empty-line", + condition: line => { + const lineNumber = fromEditorLine( + selectedSource.id, + line, + isSourceWasm + ); + return !breakableLines.has(lineNumber); + }, + }, + ]); + } + } + componentWillUnmount() { if (!features.codemirrorNext) { const { editor } = this.state; @@ -723,6 +755,10 @@ class Editor extends PureComponent { } = this.props; const { editor } = this.state; + if (features.codemirrorNext) { + return null; + } + if (!selectedSource || !editor || !getDocument(selectedSource.id)) { return null; } diff --git a/devtools/client/debugger/src/utils/editor/index.js b/devtools/client/debugger/src/utils/editor/index.js index dccfa52ea0022..e729388acf9d6 100644 --- a/devtools/client/debugger/src/utils/editor/index.js +++ b/devtools/client/debugger/src/utils/editor/index.js @@ -66,6 +66,10 @@ export function toEditorLine(sourceId, lineOrOffset) { return wasmOffsetToLine(sourceId, lineOrOffset) || 0; } + if (features.codemirrorNext) { + return lineOrOffset; + } + return lineOrOffset ? lineOrOffset - 1 : 1; } @@ -74,6 +78,10 @@ export function fromEditorLine(sourceId, line, sourceIsWasm) { return lineToWasmOffset(sourceId, line) || 0; } + if (features.codemirrorNext) { + return line; + } + return line + 1; } diff --git a/devtools/client/shared/sourceeditor/editor.js b/devtools/client/shared/sourceeditor/editor.js index 0e7e10def3311..745a0cb7ca358 100644 --- a/devtools/client/shared/sourceeditor/editor.js +++ b/devtools/client/shared/sourceeditor/editor.js @@ -166,6 +166,7 @@ class Editor extends EventEmitter { #ownerDoc; #prefObserver; #win; + #lineGutterMarkers = new Map(); #updateListener = null; @@ -623,12 +624,14 @@ class Editor extends EventEmitter { const indentCompartment = new Compartment(); const lineWrapCompartment = new Compartment(); const lineNumberCompartment = new Compartment(); + const lineNumberMarkersCompartment = new Compartment(); this.#compartments = { tabSizeCompartment, indentCompartment, lineWrapCompartment, lineNumberCompartment, + lineNumberMarkersCompartment, }; const indentStr = (this.config.indentWithTabs ? "\t" : " ").repeat( @@ -657,10 +660,19 @@ class Editor extends EventEmitter { }), codemirrorLanguage.syntaxHighlighting(lezerHighlight.classHighlighter), EditorView.updateListener.of(v => { + if (v.viewportChanged || v.docChanged) { + // reset line gutter markers for the new visible ranges + // when the viewport changes(e.g when the page is scrolled). + if (this.#lineGutterMarkers.size > 0) { + this.setLineGutterMarkers(); + } + } + // Any custom defined update listener should be called if (typeof this.#updateListener == "function") { this.#updateListener(v); } }), + lineNumberMarkersCompartment.of([]), // keep last so other extension take precedence codemirror.minimalSetup, ]; @@ -705,6 +717,95 @@ class Editor extends EventEmitter { }); } + /** + * This supports adding/removing of line classes or markers on the + * line number gutter based on the defined conditions. This only supports codemirror 6. + * + * @param {Array} markers - The list of marker objects which defines the rules + * for rendering each marker. + * @property {object} marker - The rule rendering a marker or class. This is required. + * @property {string} marker.gutterLineClassName - The css class to add to the line. This is required. + * @property {function} marker.condition - The condition that decides if the marker/class gets added or removed. + * @property {function=} marker.createGutterLineElementNode - This gets the line as an argument and should return the DOM element which + * is used for the marker. This is optional. + */ + setLineGutterMarkers(markers) { + const cm = editors.get(this); + + if (markers) { + // Cache the markers for use later. See next comment + for (const marker of markers) { + this.#lineGutterMarkers.set(marker.gutterLineClassName, marker); + } + } + // When no markers are passed, the cached markers are used to update the line gutters. + // This is useful for re-rendering the line gutters when the viewport changes + // (note: the visible ranges will be different) in this case, mainly when the editor is scrolled. + else if (!this.#lineGutterMarkers.size) { + return; + } + markers = Array.from(this.#lineGutterMarkers.values()); + + const { + codemirrorView: { lineNumberMarkers, GutterMarker }, + codemirrorState: { RangeSetBuilder }, + } = this.#CodeMirror6; + + // This creates a new GutterMarker https://codemirror.net/docs/ref/#view.GutterMarker + // to represents how each line gutter is rendered in the view. + // This is set as the value for the Range https://codemirror.net/docs/ref/#state.Range + // which represents the line. + class LineGutterMarker extends GutterMarker { + constructor(className, lineNumber, createElementNode) { + super(); + this.elementClass = className || null; + this.toDOM = createElementNode + ? () => createElementNode(lineNumber) + : null; + } + } + + // Loop through the visible ranges https://codemirror.net/docs/ref/#view.EditorView.visibleRanges + // (representing the lines in the current viewport) and generate a new rangeset for updating the line gutter + // based on the conditions defined in the markers(for each line) provided. + const builder = new RangeSetBuilder(); + for (const { from, to } of cm.visibleRanges) { + for (let pos = from; pos <= to; ) { + const line = cm.state.doc.lineAt(pos); + for (const { + gutterLineClassName, + condition, + createGutterLineElementNode, + } of markers) { + if (typeof condition !== "function") { + throw new Error("The `condition` is not a valid function"); + } + if (condition(line.number)) { + builder.add( + line.from, + line.to, + new LineGutterMarker( + gutterLineClassName, + line.number, + createGutterLineElementNode + ) + ); + } + } + pos = line.to + 1; + } + } + + // To update the state with the newly generated marker range set, a dispatch is called on the view + // with an transaction effect created by the lineNumberMarkersCompartment, which is used to update the + // lineNumberMarkers extension configuration. + cm.dispatch({ + effects: this.#compartments.lineNumberMarkersCompartment.reconfigure( + lineNumberMarkers.of(builder.finish()) + ), + }); + } + /** * Returns a boolean indicating whether the editor is ready to * use. Use appendTo(el).then(() => {}) for most cases @@ -1699,6 +1800,7 @@ class Editor extends EventEmitter { this.version = null; this.#ownerDoc = null; this.#updateListener = null; + this.#lineGutterMarkers.clear(); if (this.#prefObserver) { this.#prefObserver.off(KEYMAP_PREF, this.setKeyMap); diff --git a/devtools/client/themes/dark-theme.css b/devtools/client/themes/dark-theme.css index 8433bc75c4399..c93928e419856 100644 --- a/devtools/client/themes/dark-theme.css +++ b/devtools/client/themes/dark-theme.css @@ -261,7 +261,9 @@ div.CodeMirror span.marked-text { } -.cm-s-mozilla .empty-line .CodeMirror-linenumber { +.cm-s-mozilla .empty-line .CodeMirror-linenumber, +/* Codemirror 6 */ +.cm-editor .cm-gutterElement.empty-line { color: var(--grey-50); } diff --git a/devtools/client/themes/light-theme.css b/devtools/client/themes/light-theme.css index d54bfffef3876..fcd983a2f0f24 100644 --- a/devtools/client/themes/light-theme.css +++ b/devtools/client/themes/light-theme.css @@ -248,7 +248,9 @@ div.CodeMirror span.marked-text { margin-inline-end: -1px; } -.cm-s-mozilla .empty-line .CodeMirror-linenumber { +.cm-s-mozilla .empty-line .CodeMirror-linenumber, +/* Codemirror 6 */ +.cm-editor .cm-gutterElement.empty-line { color: var(--grey-40); } From 70a84b5d5e28ed8f90d6c48ccacbacbb96e85c99 Mon Sep 17 00:00:00 2001 From: Hubert Boma Manilla Date: Thu, 21 Mar 2024 07:48:59 +0000 Subject: [PATCH 003/132] Bug 1882060 - [devtools] Add line breakpoint classes and display gutter breakpoint markers r=devtools-reviewers,nchevobbe Highlights - This fixes gutter breakpoints - Disabling breakpoints should work Note: Log breakpoints & Conditional Breakpoints don't work Differential Revision: https://phabricator.services.mozilla.com/D203451 --- .../src/components/Editor/Breakpoint.js | 2 +- .../src/components/Editor/Breakpoints.css | 26 +++- .../src/components/Editor/Breakpoints.js | 113 ++++++++++++++++++ .../debugger/src/components/Editor/Editor.css | 13 -- .../debugger/src/components/Editor/index.js | 4 +- 5 files changed, 141 insertions(+), 17 deletions(-) diff --git a/devtools/client/debugger/src/components/Editor/Breakpoint.js b/devtools/client/debugger/src/components/Editor/Breakpoint.js index 4559a20289fa7..40de6d47c78b2 100644 --- a/devtools/client/debugger/src/components/Editor/Breakpoint.js +++ b/devtools/client/debugger/src/components/Editor/Breakpoint.js @@ -59,7 +59,7 @@ class Breakpoint extends PureComponent { selectedSource, } = this.props; - // ignore right clicks + // ignore ctrl + click and right clicks when clicking on the breakpoint if ((event.ctrlKey && event.button === 0) || event.button === 2) { return; } diff --git a/devtools/client/debugger/src/components/Editor/Breakpoints.css b/devtools/client/debugger/src/components/Editor/Breakpoints.css index 1269f73f82c2f..c90f655bdfcc1 100644 --- a/devtools/client/debugger/src/components/Editor/Breakpoints.css +++ b/devtools/client/debugger/src/components/Editor/Breakpoints.css @@ -36,7 +36,7 @@ pointer-events: none; } -.editor-wrapper :not(.empty-line, .new-breakpoint) +.editor-wrapper :not(.empty-line, .new-breakpoint .cm6-gutter-breakpoint) > .CodeMirror-gutter-wrapper > .CodeMirror-linenumber:hover::after { content: ""; @@ -55,6 +55,27 @@ mask-position: right; } +/* Codemirror 6*/ +.cm6-gutter-breakpoint .breakpoint-marker svg { + fill: var(--breakpoint-fill); + stroke: var(--breakpoint-stroke); + height: 14px; + position: absolute; + right: -8px; + z-index: -99; +} + +/* set the linenumber white when there is a breakpoint */ +.editor-wrapper:not(.skip-pausing) .new-breakpoint .CodeMirror-gutter-wrapper .CodeMirror-linenumber, + .editor-wrapper:not(.skip-pausing) .cm6-gutter-breakpoint { + color: white; +} + +/* move the breakpoint below the other gutter elements */ +.new-breakpoint .CodeMirror-gutter-elt:nth-child(2) { + z-index: 0; +} + .editor.new-breakpoint svg { fill: var(--breakpoint-fill); stroke: var(--breakpoint-stroke); @@ -85,7 +106,8 @@ } .editor.new-breakpoint.breakpoint-disabled svg, -.blackboxed-line .editor.new-breakpoint svg { +.blackboxed-line .editor.new-breakpoint svg, +.cm6-gutter-breakpoint .breakpoint-marker.breakpoint-disabled svg { fill-opacity: var(--breakpoint-disabled-opacity); stroke-opacity: var(--breakpoint-disabled-opacity); } diff --git a/devtools/client/debugger/src/components/Editor/Breakpoints.js b/devtools/client/debugger/src/components/Editor/Breakpoints.js index 6d1d088f11a75..e7d3a192244cd 100644 --- a/devtools/client/debugger/src/components/Editor/Breakpoints.js +++ b/devtools/client/debugger/src/components/Editor/Breakpoints.js @@ -11,9 +11,31 @@ import { getSelectedSource, getFirstVisibleBreakpoints, } from "../../selectors/index"; +import { getSelectedLocation } from "../../utils/selected-location"; import { makeBreakpointId } from "../../utils/breakpoint/index"; import { connect } from "devtools/client/shared/vendor/react-redux"; +import { fromEditorLine } from "../../utils/editor/index"; import actions from "../../actions/index"; +import { features } from "../../utils/prefs"; +const classnames = require("resource://devtools/client/shared/classnames.js"); + +const isMacOS = Services.appinfo.OS === "Darwin"; + +const breakpointSvg = document.createElement("div"); +const svg = document.createElementNS("http://www.w3.org/2000/svg", "svg"); +svg.setAttribute("viewBox", "0 0 60 15"); +svg.setAttribute("width", 60); +svg.setAttribute("height", 15); + +const path = document.createElementNS("http://www.w3.org/2000/svg", "path"); +path.setAttributeNS( + null, + "d", + "M53.07.5H1.5c-.54 0-1 .46-1 1v12c0 .54.46 1 1 1h51.57c.58 0 1.15-.26 1.53-.7l4.7-6.3-4.7-6.3c-.38-.44-.95-.7-1.53-.7z" +); + +svg.appendChild(path); +breakpointSvg.appendChild(svg); class Breakpoints extends Component { static get propTypes() { @@ -27,6 +49,92 @@ class Breakpoints extends Component { showEditorEditBreakpointContextMenu: PropTypes.func, }; } + + constructor(props) { + super(props); + } + + componentDidUpdate(prevProps) { + const { selectedSource, breakpoints, editor } = this.props; + + // Only for codemirror 6 + if (!features.codemirrorNext) { + return; + } + + if (!selectedSource || !breakpoints || !editor) { + return; + } + + const markers = [ + { + gutterLineClassName: "cm6-gutter-breakpoint", + condition: line => { + const lineNumber = fromEditorLine(selectedSource.id, line); + return breakpoints.some(bp => bp.location.line === lineNumber); + }, + createGutterLineElementNode: line => { + const lineNumber = fromEditorLine(selectedSource.id, line); + const breakpoint = breakpoints.find( + bp => bp.location.line === lineNumber + ); + + const breakpointNode = breakpointSvg.cloneNode(true); + breakpointNode.appendChild(document.createTextNode(lineNumber)); + breakpointNode.className = classnames("breakpoint-marker", { + "breakpoint-disabled": breakpoint.disabled, + "has-condition": breakpoint?.options.condition, + "has-log": breakpoint?.options.logValue, + }); + breakpointNode.onclick = event => this.onClick(event, breakpoint); + breakpointNode.oncontextmenu = event => + this.onContextMenu(event, breakpoint); + return breakpointNode; + }, + }, + ]; + editor.setLineGutterMarkers(markers); + } + + onClick = (event, breakpoint) => { + const { + continueToHere, + toggleBreakpointsAtLine, + removeBreakpointsAtLine, + selectedSource, + } = this.props; + + event.stopPropagation(); + event.preventDefault(); + + // ignore right clicks when clicking on the breakpoint + if (event.button === 2) { + return; + } + + const selectedLocation = getSelectedLocation(breakpoint, selectedSource); + const ctrlOrCmd = isMacOS ? event.metaKey : event.ctrlKey; + + if (ctrlOrCmd) { + continueToHere(selectedLocation); + return; + } + + if (event.shiftKey) { + toggleBreakpointsAtLine(!breakpoint.disabled, selectedLocation.line); + return; + } + + removeBreakpointsAtLine(selectedLocation.source, selectedLocation.line); + }; + + onContextMenu = (event, breakpoint) => { + event.stopPropagation(); + event.preventDefault(); + + this.props.showEditorEditBreakpointContextMenu(event, breakpoint); + }; + render() { const { breakpoints, @@ -41,6 +149,11 @@ class Breakpoints extends Component { if (!selectedSource || !breakpoints) { return null; } + + if (features.codemirrorNext) { + return null; + } + return div( null, breakpoints.map(breakpoint => { diff --git a/devtools/client/debugger/src/components/Editor/Editor.css b/devtools/client/debugger/src/components/Editor/Editor.css index d0c0ee4ac47ff..f067509eee3bd 100644 --- a/devtools/client/debugger/src/components/Editor/Editor.css +++ b/devtools/client/debugger/src/components/Editor/Editor.css @@ -80,19 +80,6 @@ html[dir="rtl"] .editor-mount { line-height: var(--theme-code-line-height); } -/* set the linenumber white when there is a breakpoint */ -.editor-wrapper:not(.skip-pausing) - .new-breakpoint - .CodeMirror-gutter-wrapper - .CodeMirror-linenumber { - color: white; -} - -/* move the breakpoint below the other gutter elements */ -.new-breakpoint .CodeMirror-gutter-elt:nth-child(2) { - z-index: 0; -} - .theme-dark .editor-wrapper .CodeMirror-line .cm-comment { color: var(--theme-comment); } diff --git a/devtools/client/debugger/src/components/Editor/index.js b/devtools/client/debugger/src/components/Editor/index.js index f87917b692653..7e50bd5b515a0 100644 --- a/devtools/client/debugger/src/components/Editor/index.js +++ b/devtools/client/debugger/src/components/Editor/index.js @@ -756,7 +756,9 @@ class Editor extends PureComponent { const { editor } = this.state; if (features.codemirrorNext) { - return null; + return React.createElement(Breakpoints, { + editor, + }); } if (!selectedSource || !editor || !getDocument(selectedSource.id)) { From b2de26bb4773fba85240df8dd2a3d081cb733bca Mon Sep 17 00:00:00 2001 From: Hubert Boma Manilla Date: Thu, 21 Mar 2024 07:48:59 +0000 Subject: [PATCH 004/132] Bug 1882060 - [devtools] Render blackbox lines markers in gutter for codemirror 6 r=devtools-reviewers,nchevobbe Differential Revision: https://phabricator.services.mozilla.com/D204049 --- .../src/components/Editor/Breakpoints.css | 3 +- .../debugger/src/components/Editor/index.js | 72 ++++++++++++++----- devtools/client/themes/dark-theme.css | 4 +- devtools/client/themes/light-theme.css | 4 +- 4 files changed, 63 insertions(+), 20 deletions(-) diff --git a/devtools/client/debugger/src/components/Editor/Breakpoints.css b/devtools/client/debugger/src/components/Editor/Breakpoints.css index c90f655bdfcc1..92121e0f466bf 100644 --- a/devtools/client/debugger/src/components/Editor/Breakpoints.css +++ b/devtools/client/debugger/src/components/Editor/Breakpoints.css @@ -107,7 +107,8 @@ .editor.new-breakpoint.breakpoint-disabled svg, .blackboxed-line .editor.new-breakpoint svg, -.cm6-gutter-breakpoint .breakpoint-marker.breakpoint-disabled svg { +.cm6-gutter-breakpoint .breakpoint-marker.breakpoint-disabled svg, +.cm6-gutter-breakpoint.blackboxed-line .breakpoint-marker svg { fill-opacity: var(--breakpoint-disabled-opacity); stroke-opacity: var(--breakpoint-disabled-opacity); } diff --git a/devtools/client/debugger/src/components/Editor/index.js b/devtools/client/debugger/src/components/Editor/index.js index 7e50bd5b515a0..2c03e475a3277 100644 --- a/devtools/client/debugger/src/components/Editor/index.js +++ b/devtools/client/debugger/src/components/Editor/index.js @@ -279,32 +279,70 @@ class Editor extends PureComponent { }; componentDidUpdate(prevProps) { - const { selectedSource, breakableLines } = this.props; + const { + selectedSource, + blackboxedRanges, + isSourceOnIgnoreList, + breakableLines, + } = this.props; const { editor } = this.state; if (!selectedSource) { return; } - const shouldUpdateBreakableLines = - prevProps.breakableLines.size !== this.props.breakableLines.size || - prevProps.selectedSource?.id !== selectedSource.id; // Sets the breakables lines for codemirror 6 - if (features.codemirrorNext && editor && shouldUpdateBreakableLines) { + if (features.codemirrorNext && editor) { + const shouldUpdateBreakableLines = + prevProps.breakableLines.size !== this.props.breakableLines.size || + prevProps.selectedSource?.id !== selectedSource.id; + const isSourceWasm = isWasm(selectedSource.id); - editor.setLineGutterMarkers([ - { - gutterLineClassName: "empty-line", - condition: line => { - const lineNumber = fromEditorLine( - selectedSource.id, - line, - isSourceWasm - ); - return !breakableLines.has(lineNumber); + + if (shouldUpdateBreakableLines) { + editor.setLineGutterMarkers([ + { + gutterLineClassName: "empty-line", + condition: line => { + const lineNumber = fromEditorLine( + selectedSource.id, + line, + isSourceWasm + ); + return !breakableLines.has(lineNumber); + }, + }, + ]); + } + + const blackboxedRangesForSelectedSource = + blackboxedRanges[selectedSource.url]; + const shouldUpdateBlackboxedLines = + prevProps.blackboxedRanges[selectedSource.url]?.length !== + blackboxedRangesForSelectedSource?.length || + prevProps.selectedSource?.id !== selectedSource?.id || + prevProps.isSourceOnIgnoreList !== isSourceOnIgnoreList; + + if (shouldUpdateBlackboxedLines) { + editor.setLineGutterMarkers([ + { + gutterLineClassName: "blackboxed-line", + condition: line => { + const lineNumber = fromEditorLine( + selectedSource.id, + line, + isSourceWasm + ); + + return isLineBlackboxed( + blackboxedRangesForSelectedSource, + lineNumber, + isSourceOnIgnoreList + ); + }, }, - }, - ]); + ]); + } } } diff --git a/devtools/client/themes/dark-theme.css b/devtools/client/themes/dark-theme.css index c93928e419856..823fb00f587fb 100644 --- a/devtools/client/themes/dark-theme.css +++ b/devtools/client/themes/dark-theme.css @@ -268,7 +268,9 @@ div.CodeMirror span.marked-text { } /* Blackboxing lines */ -.CodeMirror-lines .blackboxed-line :is(span, .cm-comment, .CodeMirror-gutter-elt) { +.CodeMirror-lines .blackboxed-line :is(span, .cm-comment, .CodeMirror-gutter-elt), +/* Codemirror 6 */ +.cm-editor .cm-gutterElement.blackboxed-line { color: #806414cc; } diff --git a/devtools/client/themes/light-theme.css b/devtools/client/themes/light-theme.css index fcd983a2f0f24..c5c214251af3e 100644 --- a/devtools/client/themes/light-theme.css +++ b/devtools/client/themes/light-theme.css @@ -255,7 +255,9 @@ div.CodeMirror span.marked-text { } /* Blackboxing lines */ -.CodeMirror-lines .blackboxed-line :is(span, .cm-comment, .CodeMirror-gutter-elt) { +.CodeMirror-lines .blackboxed-line :is(span, .cm-comment, .CodeMirror-gutter-elt), +/* Codemirror 6 */ +.cm-editor .cm-gutterElement.blackboxed-line { color: #806414cc; } From 3b6370e61e3bbf9396d710b500b8a44a7e1e94ae Mon Sep 17 00:00:00 2001 From: Rune Lillesveen Date: Tue, 19 Mar 2024 10:03:54 +0000 Subject: [PATCH 005/132] Bug 1885507 [wpt PR 45120] - [css-position-anchor] anchor-default -> position-anchor, a=testonly Automatic update from web-platform-tests [css-position-anchor] anchor-default -> position-anchor Spec just changed. Bug: 329425863 Change-Id: Ib9b288d58d1820444f146885dc1440c51c06286b Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5374283 Commit-Queue: Rune Lillesveen Reviewed-by: Anders Hartvoll Ruud Cr-Commit-Position: refs/heads/main@{#1273436} -- wpt-commits: 3f0f1bd7d15c02488ce6bcacd97585293af6d6a9 wpt-pr: 45120 --- .../anchor-center-htb-htb.html | 2 +- .../anchor-center-htb-vrl.html | 2 +- .../anchor-center-vrl-htb.html | 2 +- .../anchor-center-vrl-vrl.html | 2 +- .../anchor-getComputedStyle-003.html | 4 +-- .../anchor-name-style-contained-dynamic.html | 2 +- .../anchor-name-style-contained.html | 2 +- .../anchor-position-circular.html | 4 +-- .../anchor-position-top-layer-001.html | 2 +- .../anchor-position-top-layer-002.html | 2 +- .../anchor-position-top-layer-003.html | 2 +- .../anchor-position-top-layer-004.html | 2 +- .../anchor-position-top-layer-005.html | 2 +- .../anchor-position-top-layer-006.html | 2 +- .../anchor-scroll-001.html | 4 +-- .../anchor-scroll-002.html | 2 +- .../anchor-scroll-003.html | 2 +- .../anchor-scroll-004.html | 2 +- .../anchor-scroll-005.html | 2 +- .../anchor-scroll-006.html | 6 ++-- .../anchor-scroll-007.html | 2 +- .../anchor-scroll-chained-001.tentative.html | 4 +-- .../anchor-scroll-chained-002.tentative.html | 4 +-- .../anchor-scroll-chained-003.tentative.html | 4 +-- .../anchor-scroll-chained-004.tentative.html | 4 +-- ...hor-scroll-chained-fallback.tentative.html | 4 +-- ...scroll-composited-scrolling-001-crash.html | 2 +- ...scroll-composited-scrolling-002-crash.html | 2 +- ...scroll-composited-scrolling-003-crash.html | 2 +- ...scroll-composited-scrolling-004-crash.html | 2 +- ...scroll-composited-scrolling-005-crash.html | 2 +- ...nchor-scroll-composited-scrolling-006.html | 2 +- .../anchor-scroll-fixedpos-002.html | 2 +- .../anchor-scroll-fixedpos.html | 2 +- .../anchor-scroll-js-expose.html | 2 +- .../anchor-scroll-nested.html | 2 +- .../anchor-scroll-position-try-001.html | 2 +- .../anchor-scroll-position-try-002.html | 2 +- .../anchor-scroll-position-try-003.html | 2 +- .../anchor-scroll-position-try-004.html | 2 +- .../anchor-scroll-position-try-005.html | 2 +- .../anchor-scroll-position-try-006.html | 2 +- .../anchor-scroll-position-try-007.html | 2 +- .../anchor-scroll-position-try-008.html | 2 +- .../anchor-scroll-position-try-009.html | 2 +- .../anchor-scroll-position-try-010.html | 2 +- .../anchor-scroll-position-try-011.html | 2 +- .../anchor-scroll-to-sticky-001.html | 2 +- .../anchor-scroll-to-sticky-002.html | 2 +- .../anchor-scroll-to-sticky-003.html | 2 +- .../anchor-scroll-to-sticky-004.html | 2 +- .../anchor-scroll-update-001.html | 4 +-- .../anchor-scroll-update-002.html | 6 ++-- .../anchor-scroll-update-003.html | 4 +-- .../anchor-scroll-update-004.html | 4 +-- .../anchor-scroll-update-005.html | 2 +- .../anchor-scroll-update-006.html | 2 +- .../anchor-scroll-update-007.html | 4 +-- .../anchor-scroll-vlr.html | 4 +-- .../anchor-scroll-vrl.html | 4 +-- .../at-position-try-cssom.html | 4 +-- .../inset-area-abs-inline-container.html | 2 +- .../css-anchor-position/inset-area-basic.html | 4 +-- .../inset-area-inline-container.html | 2 +- .../inset-area-wm-dir.html | 2 +- ...ault-001.html => position-anchor-001.html} | 10 +++---- ...ault-002.html => position-anchor-002.html} | 8 ++--- ...ault-003.html => position-anchor-003.html} | 10 +++---- ...asics.html => position-anchor-basics.html} | 30 +++++++++---------- ...ault-ref.html => position-anchor-ref.html} | 0 .../position-fallback-bounds-001.html | 4 +-- .../position-fallback-bounds-002.html | 4 +-- .../position-fallback-bounds-003.html | 2 +- .../position-fallback-bounds-004.html | 2 +- .../position-fallback-bounds-005.html | 2 +- .../property-interpolations.html | 4 +-- .../popover-anchor-display.tentative.html | 4 +-- ...pover-anchor-scroll-display.tentative.html | 2 +- 78 files changed, 126 insertions(+), 126 deletions(-) rename testing/web-platform/tests/css/css-anchor-position/{anchor-default-001.html => position-anchor-001.html} (77%) rename testing/web-platform/tests/css/css-anchor-position/{anchor-default-002.html => position-anchor-002.html} (80%) rename testing/web-platform/tests/css/css-anchor-position/{anchor-default-003.html => position-anchor-003.html} (81%) rename testing/web-platform/tests/css/css-anchor-position/{anchor-default-basics.html => position-anchor-basics.html} (52%) rename testing/web-platform/tests/css/css-anchor-position/{anchor-default-ref.html => position-anchor-ref.html} (100%) diff --git a/testing/web-platform/tests/css/css-anchor-position/anchor-center-htb-htb.html b/testing/web-platform/tests/css/css-anchor-position/anchor-center-htb-htb.html index 7012208044af1..20abb2ed096c9 100644 --- a/testing/web-platform/tests/css/css-anchor-position/anchor-center-htb-htb.html +++ b/testing/web-platform/tests/css/css-anchor-position/anchor-center-htb-htb.html @@ -21,7 +21,7 @@ } .target { - anchor-default: --anchor; + position-anchor: --anchor; position: absolute; background: cyan; justify-self: anchor-center; diff --git a/testing/web-platform/tests/css/css-anchor-position/anchor-center-htb-vrl.html b/testing/web-platform/tests/css/css-anchor-position/anchor-center-htb-vrl.html index 584424d306fb5..099d9cd15b43a 100644 --- a/testing/web-platform/tests/css/css-anchor-position/anchor-center-htb-vrl.html +++ b/testing/web-platform/tests/css/css-anchor-position/anchor-center-htb-vrl.html @@ -22,7 +22,7 @@ .target { writing-mode: vertical-rl; - anchor-default: --anchor; + position-anchor: --anchor; position: absolute; background: cyan; align-self: anchor-center; diff --git a/testing/web-platform/tests/css/css-anchor-position/anchor-center-vrl-htb.html b/testing/web-platform/tests/css/css-anchor-position/anchor-center-vrl-htb.html index c7ee2302626eb..3e4f485cec3d7 100644 --- a/testing/web-platform/tests/css/css-anchor-position/anchor-center-vrl-htb.html +++ b/testing/web-platform/tests/css/css-anchor-position/anchor-center-vrl-htb.html @@ -23,7 +23,7 @@ .target { writing-mode: horizontal-tb; - anchor-default: --anchor; + position-anchor: --anchor; position: absolute; background: cyan; align-self: anchor-center; diff --git a/testing/web-platform/tests/css/css-anchor-position/anchor-center-vrl-vrl.html b/testing/web-platform/tests/css/css-anchor-position/anchor-center-vrl-vrl.html index d314dc7f2fc69..fe40c731419c4 100644 --- a/testing/web-platform/tests/css/css-anchor-position/anchor-center-vrl-vrl.html +++ b/testing/web-platform/tests/css/css-anchor-position/anchor-center-vrl-vrl.html @@ -22,7 +22,7 @@ } .target { - anchor-default: --anchor; + position-anchor: --anchor; position: absolute; background: cyan; justify-self: anchor-center; diff --git a/testing/web-platform/tests/css/css-anchor-position/anchor-getComputedStyle-003.html b/testing/web-platform/tests/css/css-anchor-position/anchor-getComputedStyle-003.html index da9ec4a1451ad..fc384ab4cdf74 100644 --- a/testing/web-platform/tests/css/css-anchor-position/anchor-getComputedStyle-003.html +++ b/testing/web-platform/tests/css/css-anchor-position/anchor-getComputedStyle-003.html @@ -52,7 +52,7 @@ } #target1 { - anchor-default: --a1; + position-anchor: --a1; } #anchor2 { @@ -62,7 +62,7 @@ } #target2 { - anchor-default: --a2; + position-anchor: --a2; } diff --git a/testing/web-platform/tests/css/css-anchor-position/anchor-name-style-contained-dynamic.html b/testing/web-platform/tests/css/css-anchor-position/anchor-name-style-contained-dynamic.html index 50cec96f366ad..1413fe9d772b6 100644 --- a/testing/web-platform/tests/css/css-anchor-position/anchor-name-style-contained-dynamic.html +++ b/testing/web-platform/tests/css/css-anchor-position/anchor-name-style-contained-dynamic.html @@ -19,7 +19,7 @@ } .target { position: absolute; - anchor-default: var(--anchor-name); + position-anchor: var(--anchor-name); top: anchor(bottom, 50px); } #a1 { --anchor-name: --a1; } diff --git a/testing/web-platform/tests/css/css-anchor-position/anchor-name-style-contained.html b/testing/web-platform/tests/css/css-anchor-position/anchor-name-style-contained.html index a5295758891e4..b88afe4107dd5 100644 --- a/testing/web-platform/tests/css/css-anchor-position/anchor-name-style-contained.html +++ b/testing/web-platform/tests/css/css-anchor-position/anchor-name-style-contained.html @@ -19,7 +19,7 @@ } .target { position: absolute; - anchor-default: var(--anchor-name); + position-anchor: var(--anchor-name); top: anchor(bottom, 50px); } #a1 { --anchor-name: --a1; } diff --git a/testing/web-platform/tests/css/css-anchor-position/anchor-position-circular.html b/testing/web-platform/tests/css/css-anchor-position/anchor-position-circular.html index 8efbeb09e2030..85fca57421cb1 100644 --- a/testing/web-platform/tests/css/css-anchor-position/anchor-position-circular.html +++ b/testing/web-platform/tests/css/css-anchor-position/anchor-position-circular.html @@ -15,7 +15,7 @@ #anchored1 { position: absolute; - anchor-default: --a1; + position-anchor: --a1; left: anchor(--a1 left); top: anchor(--a1 bottom); background: orange; @@ -24,7 +24,7 @@ #anchored2 { position: absolute; - anchor-default: --a2; + position-anchor: --a2; left: anchor(--a2 left); top: anchor(--a2 bottom); background: green; diff --git a/testing/web-platform/tests/css/css-anchor-position/anchor-position-top-layer-001.html b/testing/web-platform/tests/css/css-anchor-position/anchor-position-top-layer-001.html index 055459551b8c9..a8513bb74ca02 100644 --- a/testing/web-platform/tests/css/css-anchor-position/anchor-position-top-layer-001.html +++ b/testing/web-platform/tests/css/css-anchor-position/anchor-position-top-layer-001.html @@ -21,7 +21,7 @@ width: 100px; height: 100px; background: lime; - anchor-default: --a; + position-anchor: --a; outline: none; } diff --git a/testing/web-platform/tests/css/css-anchor-position/anchor-position-top-layer-002.html b/testing/web-platform/tests/css/css-anchor-position/anchor-position-top-layer-002.html index a87a9d7eedd89..9ce0b8e5f9fe5 100644 --- a/testing/web-platform/tests/css/css-anchor-position/anchor-position-top-layer-002.html +++ b/testing/web-platform/tests/css/css-anchor-position/anchor-position-top-layer-002.html @@ -21,7 +21,7 @@ width: 100px; height: 100px; background: lime; - anchor-default: --a; + position-anchor: --a; outline: none; } diff --git a/testing/web-platform/tests/css/css-anchor-position/anchor-position-top-layer-003.html b/testing/web-platform/tests/css/css-anchor-position/anchor-position-top-layer-003.html index 96d5219c5ce55..3bc815af0cab7 100644 --- a/testing/web-platform/tests/css/css-anchor-position/anchor-position-top-layer-003.html +++ b/testing/web-platform/tests/css/css-anchor-position/anchor-position-top-layer-003.html @@ -21,7 +21,7 @@ width: 100px; height: 100px; background: lime; - anchor-default: --a; + position-anchor: --a; outline: none; } diff --git a/testing/web-platform/tests/css/css-anchor-position/anchor-position-top-layer-004.html b/testing/web-platform/tests/css/css-anchor-position/anchor-position-top-layer-004.html index c986e3f98d3c7..ad0a7b8b32f27 100644 --- a/testing/web-platform/tests/css/css-anchor-position/anchor-position-top-layer-004.html +++ b/testing/web-platform/tests/css/css-anchor-position/anchor-position-top-layer-004.html @@ -21,7 +21,7 @@ width: 100px; height: 100px; background: lime; - anchor-default: --a; + position-anchor: --a; outline: none; } diff --git a/testing/web-platform/tests/css/css-anchor-position/anchor-position-top-layer-005.html b/testing/web-platform/tests/css/css-anchor-position/anchor-position-top-layer-005.html index cf39c77736738..51aa482aee52e 100644 --- a/testing/web-platform/tests/css/css-anchor-position/anchor-position-top-layer-005.html +++ b/testing/web-platform/tests/css/css-anchor-position/anchor-position-top-layer-005.html @@ -22,7 +22,7 @@ width: 100px; height: 100px; background: lime; - anchor-default: --a; + position-anchor: --a; } body { diff --git a/testing/web-platform/tests/css/css-anchor-position/anchor-position-top-layer-006.html b/testing/web-platform/tests/css/css-anchor-position/anchor-position-top-layer-006.html index c13284b854843..a3b9e63c06b59 100644 --- a/testing/web-platform/tests/css/css-anchor-position/anchor-position-top-layer-006.html +++ b/testing/web-platform/tests/css/css-anchor-position/anchor-position-top-layer-006.html @@ -22,7 +22,7 @@ width: 100px; height: 100px; background: lime; - anchor-default: --a; + position-anchor: --a; } body { diff --git a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-001.html b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-001.html index 8609795c8a6d0..b9dfc56e2effe 100644 --- a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-001.html +++ b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-001.html @@ -40,7 +40,7 @@ position: absolute; left: anchor(--anchor left); bottom: anchor(--anchor top); - anchor-default: --anchor; + position-anchor: --anchor; } #outer-anchored { @@ -48,7 +48,7 @@ position: absolute; left: anchor(--anchor left); top: anchor(--anchor bottom); - anchor-default: --anchor; + position-anchor: --anchor; } diff --git a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-002.html b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-002.html index 8ef6f500a1f2f..2c51e6a1a3ab7 100644 --- a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-002.html +++ b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-002.html @@ -45,7 +45,7 @@ height: 50px; top: anchor(--a1 top); left: anchor(--a1 right); - anchor-default: --a1; + position-anchor: --a1; } diff --git a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-003.html b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-003.html index c1b31c0becf28..6c0dd08355c47 100644 --- a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-003.html +++ b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-003.html @@ -47,7 +47,7 @@ position: absolute; left: anchor(--a left); bottom: anchor(--a top); - anchor-default: --a; + position-anchor: --a; width: 50px; height: 50px; background: lime; diff --git a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-004.html b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-004.html index d08279118d9e9..c0e0afb23f143 100644 --- a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-004.html +++ b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-004.html @@ -32,7 +32,7 @@ .target { position: absolute; - anchor-default: --a; + position-anchor: --a; top: anchor(--a bottom); left: anchor(--a left); color: lime; diff --git a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-005.html b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-005.html index a9a7d24d2b9cc..f8f26b719f07c 100644 --- a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-005.html +++ b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-005.html @@ -33,7 +33,7 @@ width: 100px; height: 100px; bottom: anchor(--a top); - anchor-default: --a; + position-anchor: --a; background: lime; } diff --git a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-006.html b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-006.html index 2ffd026b55296..9c8a8c0ac2fe3 100644 --- a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-006.html +++ b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-006.html @@ -50,21 +50,21 @@ /* Needs scroll adjustment in x axis only */ #target1 { - anchor-default: --a1; + position-anchor: --a1; left: anchor(left); top: anchor(--scroller1 bottom); } /* Needs scroll adjustment in y axis only */ #target2 { - anchor-default: --a2; + position-anchor: --a2; top: anchor(top); left: anchor(--scroller2 right); } /* No scroll adjustment needed */ #target3 { - anchor-default: --a3; + position-anchor: --a3; top: anchor(--scroller3 bottom); left: anchor(--scroller3 right); } diff --git a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-007.html b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-007.html index ec519106190c7..7e288d713f6b6 100644 --- a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-007.html +++ b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-007.html @@ -56,7 +56,7 @@ height: 50px; left: anchor(--a3 left); top: anchor(--a1 top); - anchor-default: --a2; + position-anchor: --a2; background: lime; } diff --git a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-chained-001.tentative.html b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-chained-001.tentative.html index 60ad128022640..1235f8fad4388 100644 --- a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-chained-001.tentative.html +++ b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-chained-001.tentative.html @@ -25,7 +25,7 @@ #anchored1 { position: absolute; - anchor-default: --a1; + position-anchor: --a1; left: anchor(--a1 left); top: anchor(--a1 bottom); background: green; @@ -34,7 +34,7 @@ #anchored2 { position: absolute; - anchor-default: --a2; + position-anchor: --a2; left: anchor(--a2 left); top: anchor(--a2 bottom); background: lime; diff --git a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-chained-002.tentative.html b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-chained-002.tentative.html index e180c5646826b..9c60799e0bb40 100644 --- a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-chained-002.tentative.html +++ b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-chained-002.tentative.html @@ -31,7 +31,7 @@ #anchored1 { position: absolute; - anchor-default: --a1; + position-anchor: --a1; left: anchor(--a1 left); top: anchor(--a1 bottom); background: green; @@ -40,7 +40,7 @@ #anchored2 { position: absolute; - anchor-default: --a2; + position-anchor: --a2; left: anchor(--a2 left); top: anchor(--a2 bottom); background: lime; diff --git a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-chained-003.tentative.html b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-chained-003.tentative.html index 8912fcb699403..b441c92bf15f4 100644 --- a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-chained-003.tentative.html +++ b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-chained-003.tentative.html @@ -31,7 +31,7 @@ #anchored1 { position: absolute; - anchor-default: --a1; + position-anchor: --a1; left: anchor(--a1 left); top: anchor(--a1 bottom); background: green; @@ -41,7 +41,7 @@ #anchored2 { position: absolute; - anchor-default: --a2; + position-anchor: --a2; left: anchor(--a2 left); top: anchor(--a2 bottom); background: lime; diff --git a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-chained-004.tentative.html b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-chained-004.tentative.html index 5834eb1f4cb2d..f1765a9870f37 100644 --- a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-chained-004.tentative.html +++ b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-chained-004.tentative.html @@ -37,7 +37,7 @@ #anchored1 { position: absolute; - anchor-default: --a1; + position-anchor: --a1; left: anchor(--a1 left); top: anchor(--a1 bottom); background: green; @@ -45,7 +45,7 @@ #anchored2 { position: absolute; - anchor-default: --a2; + position-anchor: --a2; left: anchor(--a2 left); top: anchor(--a2 bottom); background: lime; diff --git a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-chained-fallback.tentative.html b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-chained-fallback.tentative.html index 4000eb54a5db6..d2300da818291 100644 --- a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-chained-fallback.tentative.html +++ b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-chained-fallback.tentative.html @@ -27,7 +27,7 @@ #anchored1 { position: absolute; - anchor-default: --a1; + position-anchor: --a1; background: green; position-try-options: --fallback; anchor-name: --a2; @@ -37,7 +37,7 @@ #anchored2 { position: absolute; - anchor-default: --a2; + position-anchor: --a2; left: anchor(--a2 left); top: anchor(--a2 bottom); background: lime; diff --git a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-composited-scrolling-001-crash.html b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-composited-scrolling-001-crash.html index 005a27393a23b..4dd9bad60eae2 100644 --- a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-composited-scrolling-001-crash.html +++ b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-composited-scrolling-001-crash.html @@ -23,7 +23,7 @@ #anchored { position: absolute; - anchor-default: --a; + position-anchor: --a; left: anchor(--a left); bottom: anchor(--a top); width: 100px; diff --git a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-composited-scrolling-002-crash.html b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-composited-scrolling-002-crash.html index 83ce146825253..80dabbb6661e5 100644 --- a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-composited-scrolling-002-crash.html +++ b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-composited-scrolling-002-crash.html @@ -23,7 +23,7 @@ position: fixed; top: anchor(--a bottom); left: anchor(--a left); - anchor-default: --a; + position-anchor: --a; } diff --git a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-composited-scrolling-003-crash.html b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-composited-scrolling-003-crash.html index 594c844bfb5c7..f46d902ffee7c 100644 --- a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-composited-scrolling-003-crash.html +++ b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-composited-scrolling-003-crash.html @@ -23,7 +23,7 @@ position: fixed; top: anchor(--a bottom); left: anchor(--a left); - anchor-default: --a; + position-anchor: --a; } diff --git a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-composited-scrolling-004-crash.html b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-composited-scrolling-004-crash.html index 226a1b099c3b1..ee5ad2f41ae3a 100644 --- a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-composited-scrolling-004-crash.html +++ b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-composited-scrolling-004-crash.html @@ -23,7 +23,7 @@ position: fixed; top: anchor(--a bottom); left: anchor(--a left); - anchor-default: --a; + position-anchor: --a; } diff --git a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-composited-scrolling-005-crash.html b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-composited-scrolling-005-crash.html index 639e2e064a79b..c5e44a79e7973 100644 --- a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-composited-scrolling-005-crash.html +++ b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-composited-scrolling-005-crash.html @@ -23,7 +23,7 @@ position: fixed; top: anchor(--a bottom); left: anchor(--a left); - anchor-default: --a; + position-anchor: --a; } diff --git a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-composited-scrolling-006.html b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-composited-scrolling-006.html index 6e57accc457f9..49c6dc780c785 100644 --- a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-composited-scrolling-006.html +++ b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-composited-scrolling-006.html @@ -29,7 +29,7 @@ background: red; left: 0; bottom: anchor(--a top); - anchor-default: --a; + position-anchor: --a; } #overlap { position: absolute; diff --git a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-fixedpos-002.html b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-fixedpos-002.html index 5b2aa2dd50ba5..1a05d8b93a104 100644 --- a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-fixedpos-002.html +++ b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-fixedpos-002.html @@ -23,7 +23,7 @@ #anchored { position: fixed; - anchor-default: --a1; + position-anchor: --a1; left: anchor(--a1 right); top: anchor(--a1 top); background: green; diff --git a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-fixedpos.html b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-fixedpos.html index a32ef3f7c497a..7923ed789de05 100644 --- a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-fixedpos.html +++ b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-fixedpos.html @@ -22,7 +22,7 @@ #anchored { position: fixed; - anchor-default: --a1; + position-anchor: --a1; left: anchor(--a1 right); top: anchor(--a1 top); background: green; diff --git a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-js-expose.html b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-js-expose.html index 1ef44d03c2202..3b3f1a06086ae 100644 --- a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-js-expose.html +++ b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-js-expose.html @@ -35,7 +35,7 @@ bottom: anchor(--anchor top); width: 100px; height: 100px; - anchor-default: --anchor; + position-anchor: --anchor; background-color: green; } diff --git a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-nested.html b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-nested.html index 557f748c02988..291fe0d7103fa 100644 --- a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-nested.html +++ b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-nested.html @@ -41,7 +41,7 @@ width: 50px; height: 50px; left: anchor(--anchor left); - anchor-default: --anchor; + position-anchor: --anchor; } .above { diff --git a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-position-try-001.html b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-position-try-001.html index b696ae0060c54..3130018e73d92 100644 --- a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-position-try-001.html +++ b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-position-try-001.html @@ -35,7 +35,7 @@ #anchored { position: absolute; background: green; - anchor-default: --a; + position-anchor: --a; position-try-options: --f1, --f2; width: 100px; height: 100px; /* Above the anchor */ diff --git a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-position-try-002.html b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-position-try-002.html index 3b84124705c58..52bbcd62fc193 100644 --- a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-position-try-002.html +++ b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-position-try-002.html @@ -31,7 +31,7 @@ width: 100px; height: 100px; background: green; - anchor-default: --a; + position-anchor: --a; top: anchor(--a top); left: anchor(--a right); position-try-options: --pf; diff --git a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-position-try-003.html b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-position-try-003.html index dd9fdc92c2e7b..b89a574d768ed 100644 --- a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-position-try-003.html +++ b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-position-try-003.html @@ -39,7 +39,7 @@ width: 100px; height: 100px; background: green; - anchor-default: --a; + position-anchor: --a; position-try-options: --pf; } diff --git a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-position-try-004.html b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-position-try-004.html index 0aab60b7a81c2..bf0bee972dead 100644 --- a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-position-try-004.html +++ b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-position-try-004.html @@ -33,7 +33,7 @@ width: 100px; height: 100px; background: green; - anchor-default: --a; + position-anchor: --a; position-try-options: --pf1, --pf2; /* Top of the anchor */ bottom: anchor(--a top); diff --git a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-position-try-005.html b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-position-try-005.html index e2dac13abd745..197a9e4f79c2a 100644 --- a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-position-try-005.html +++ b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-position-try-005.html @@ -32,7 +32,7 @@ width: 100px; height: 100px; background: green; - anchor-default: --a; + position-anchor: --a; top: anchor(--a top); left: anchor(--a right); position-try-options: --pf; diff --git a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-position-try-006.html b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-position-try-006.html index 1f9004de54f71..132c45c89c75d 100644 --- a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-position-try-006.html +++ b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-position-try-006.html @@ -28,7 +28,7 @@ width: 100px; height: 100px; background: green; - anchor-default: --a; + position-anchor: --a; position-try: --pf1, --pf2, --pf3; inset-block-start: anchor(--a end); inset-inline-start: anchor(--a end); diff --git a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-position-try-007.html b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-position-try-007.html index 32b7f64173266..a02bd35a669a9 100644 --- a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-position-try-007.html +++ b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-position-try-007.html @@ -32,7 +32,7 @@ width: 100px; height: 100px; background: green; - anchor-default: --a; + position-anchor: --a; position-try-options: --pf1, --pf2, --pf3; inset-block-start: anchor(--a end); inset-inline-start: anchor(--a end); diff --git a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-position-try-008.html b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-position-try-008.html index 99f180bb46338..2deddd587ef2a 100644 --- a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-position-try-008.html +++ b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-position-try-008.html @@ -33,7 +33,7 @@ width: 100px; height: 100px; background: green; - anchor-default: --a; + position-anchor: --a; position-try-options: --pf1, --pf2, --pf3; inset-block-start: anchor(--a end); inset-inline-start: anchor(--a end); diff --git a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-position-try-009.html b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-position-try-009.html index 0267d1987be68..0d7d6b077fc73 100644 --- a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-position-try-009.html +++ b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-position-try-009.html @@ -32,7 +32,7 @@ width: 100px; height: 100px; background: green; - anchor-default: --a; + position-anchor: --a; position-try-options: --pf1, --pf2, --pf3; inset-block-start: anchor(--a end); inset-inline-start: anchor(--a end); diff --git a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-position-try-010.html b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-position-try-010.html index 133649c720f0a..21f32ad068e64 100644 --- a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-position-try-010.html +++ b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-position-try-010.html @@ -33,7 +33,7 @@ width: 100px; height: 100px; background: green; - anchor-default: --a; + position-anchor: --a; position-try-options: --pf1, --pf2, --pf3; inset-block-start: anchor(--a end); inset-inline-start: anchor(--a end); diff --git a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-position-try-011.html b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-position-try-011.html index 005a4ee728cbf..5de8461010512 100644 --- a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-position-try-011.html +++ b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-position-try-011.html @@ -45,7 +45,7 @@ width: 100px; height: 100px; background: green; - anchor-default: --a; + position-anchor: --a; position-try-options: --pf1, --pf2, --pf3; bottom: anchor(--a top); left: anchor(--a right); diff --git a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-to-sticky-001.html b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-to-sticky-001.html index abab944751ed2..a6c3b0572533a 100644 --- a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-to-sticky-001.html +++ b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-to-sticky-001.html @@ -27,7 +27,7 @@ #anchored { position: absolute; - anchor-default: --a1; + position-anchor: --a1; left: anchor(--a1 left); top: anchor(--a1 bottom); background: green; diff --git a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-to-sticky-002.html b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-to-sticky-002.html index 357421ecf1b36..e2d91fe4dd696 100644 --- a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-to-sticky-002.html +++ b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-to-sticky-002.html @@ -28,7 +28,7 @@ #anchored { position: absolute; - anchor-default: --a1; + position-anchor: --a1; left: anchor(--a1 left); top: anchor(--a1 bottom); background: green; diff --git a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-to-sticky-003.html b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-to-sticky-003.html index 0e77004491366..b40f5cc8d519f 100644 --- a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-to-sticky-003.html +++ b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-to-sticky-003.html @@ -27,7 +27,7 @@ #anchored { position: absolute; - anchor-default: --a1; + position-anchor: --a1; left: anchor(--a1 left); top: anchor(--a1 bottom); background: green; diff --git a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-to-sticky-004.html b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-to-sticky-004.html index f7878ae8df8d1..30325ce1e0fa1 100644 --- a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-to-sticky-004.html +++ b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-to-sticky-004.html @@ -30,7 +30,7 @@ #anchored { position: absolute; - anchor-default: --a1; + position-anchor: --a1; left: anchor(--a1 left); top: anchor(--a1 bottom); background: green; diff --git a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-update-001.html b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-update-001.html index f11797edadb66..aa49fbcc6db54 100644 --- a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-update-001.html +++ b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-update-001.html @@ -41,7 +41,7 @@ position: absolute; left: anchor(--anchor left); bottom: anchor(--anchor top); - anchor-default: --anchor; + position-anchor: --anchor; } #outer-anchored { @@ -49,7 +49,7 @@ position: absolute; left: anchor(--anchor left); top: anchor(--anchor bottom); - anchor-default: --anchor; + position-anchor: --anchor; } diff --git a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-update-002.html b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-update-002.html index 19447952b0be2..5695db2a1cded 100644 --- a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-update-002.html +++ b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-update-002.html @@ -1,6 +1,6 @@ -Anchored elements should update location on `anchor-default` property changes +Anchored elements should update location on `position-anchor` property changes @@ -75,8 +75,8 @@ async function runTest() { await raf(); await raf(); - document.getElementById('inner-anchored').style.anchorDefault = '--anchor'; - document.getElementById('outer-anchored').style.anchorDefault = '--anchor'; + document.getElementById('inner-anchored').style.positionAnchor = '--anchor'; + document.getElementById('outer-anchored').style.positionAnchor = '--anchor'; document.documentElement.classList.remove('reftest-wait'); } runTest(); diff --git a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-update-003.html b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-update-003.html index 57a524c483fd2..2e1532badfac6 100644 --- a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-update-003.html +++ b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-update-003.html @@ -37,7 +37,7 @@ position: absolute; left: anchor(--anchor left); bottom: anchor(--anchor top); - anchor-default: --anchor; + position-anchor: --anchor; } #outer-anchored { @@ -45,7 +45,7 @@ position: absolute; left: anchor(--anchor left); top: anchor(--anchor bottom); - anchor-default: --anchor; + position-anchor: --anchor; } diff --git a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-update-004.html b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-update-004.html index d20a7b660a694..87138fb2d92a8 100644 --- a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-update-004.html +++ b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-update-004.html @@ -49,7 +49,7 @@ position: absolute; left: anchor(--anchor left); bottom: anchor(--anchor top); - anchor-default: --anchor; + position-anchor: --anchor; } #outer-anchored { @@ -57,7 +57,7 @@ position: absolute; left: anchor(--anchor left); top: anchor(--anchor bottom); - anchor-default: --anchor; + position-anchor: --anchor; } diff --git a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-update-005.html b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-update-005.html index c2e7248c80c5e..37874bba5528a 100644 --- a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-update-005.html +++ b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-update-005.html @@ -24,7 +24,7 @@ background-color: green; top: anchor(--a top); left: 0; - anchor-default: --a; + position-anchor: --a; }
diff --git a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-update-006.html b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-update-006.html index 2535c68f78738..81defee7cf4c3 100644 --- a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-update-006.html +++ b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-update-006.html @@ -24,7 +24,7 @@ background-color: green; top: anchor(--a top); left: 0; - anchor-default: --a; + position-anchor: --a; }
diff --git a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-update-007.html b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-update-007.html index 4859f01d66084..33050348c4d29 100644 --- a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-update-007.html +++ b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-update-007.html @@ -37,7 +37,7 @@ position: absolute; left: anchor(--anchor left); bottom: anchor(--anchor top); - anchor-default: --anchor; + position-anchor: --anchor; } #outer-anchored { @@ -45,7 +45,7 @@ position: fixed; left: anchor(--anchor left); top: anchor(--anchor bottom); - anchor-default: --anchor; + position-anchor: --anchor; } diff --git a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-vlr.html b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-vlr.html index 00406c825e924..76186f9cad7da 100644 --- a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-vlr.html +++ b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-vlr.html @@ -50,7 +50,7 @@ position: absolute; top: anchor(--anchor top); left: anchor(--anchor right); - anchor-default: --anchor; + position-anchor: --anchor; } #outer-anchored { @@ -58,7 +58,7 @@ position: absolute; top: anchor(--anchor top); right: anchor(--anchor left); - anchor-default: --anchor; + position-anchor: --anchor; } diff --git a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-vrl.html b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-vrl.html index 2432d72899343..13ea8b37abdd7 100644 --- a/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-vrl.html +++ b/testing/web-platform/tests/css/css-anchor-position/anchor-scroll-vrl.html @@ -50,7 +50,7 @@ position: absolute; top: anchor(--anchor top); left: anchor(--anchor right); - anchor-default: --anchor; + position-anchor: --anchor; } #outer-anchored { @@ -58,7 +58,7 @@ position: absolute; top: anchor(--anchor top); right: anchor(--anchor left); - anchor-default: --anchor; + position-anchor: --anchor; } diff --git a/testing/web-platform/tests/css/css-anchor-position/at-position-try-cssom.html b/testing/web-platform/tests/css/css-anchor-position/at-position-try-cssom.html index d4a1f4fa24c04..dc248f4e511e6 100644 --- a/testing/web-platform/tests/css/css-anchor-position/at-position-try-cssom.html +++ b/testing/web-platform/tests/css/css-anchor-position/at-position-try-cssom.html @@ -37,7 +37,7 @@ } #anchor { top: 100px; left: 0; anchor-name: --a; } #not-anchor { top: 200px; left: 0; anchor-name: --b; } - #target { position-try-options: --pf; anchor-default: --a; left: 999999px; } + #target { position-try-options: --pf; position-anchor: --a; left: 999999px; } `); const positionTryRule = style.sheet.cssRules[0]; @@ -52,7 +52,7 @@ // These properties are disallowed in `@position-try` rule, and hence should not affect // position fallback. - positionTryRule.style.setProperty('anchor-default', '--b'); + positionTryRule.style.setProperty('position-anchor', '--b'); positionTryRule.style.setProperty('position', 'static'); assert_equals(target.getBoundingClientRect().left, 100); assert_equals(target.getBoundingClientRect().top, 100); diff --git a/testing/web-platform/tests/css/css-anchor-position/inset-area-abs-inline-container.html b/testing/web-platform/tests/css/css-anchor-position/inset-area-abs-inline-container.html index 52344614f0b31..3b8b25b3af095 100644 --- a/testing/web-platform/tests/css/css-anchor-position/inset-area-abs-inline-container.html +++ b/testing/web-platform/tests/css/css-anchor-position/inset-area-abs-inline-container.html @@ -25,7 +25,7 @@ position: absolute; align-self: stretch; justify-self: stretch; - anchor-default: --anchor; + position-anchor: --anchor; background-color: blue; } #top-left { inset-area: top / left; } diff --git a/testing/web-platform/tests/css/css-anchor-position/inset-area-basic.html b/testing/web-platform/tests/css/css-anchor-position/inset-area-basic.html index 4a636355583d4..bf5daefe9abe7 100644 --- a/testing/web-platform/tests/css/css-anchor-position/inset-area-basic.html +++ b/testing/web-platform/tests/css/css-anchor-position/inset-area-basic.html @@ -31,7 +31,7 @@ position: absolute; align-self: stretch; justify-self: stretch; - anchor-default: --anchor; + position-anchor: --anchor; } #anchor { margin-top: 150px; @@ -116,6 +116,6 @@ test_inset_area("y-end / y-self-start", {left:0, top:0, width:0, height:0}); // No implicit anchor means the inset-area should not apply. - anchored.style.anchorDefault = "implicit"; + anchored.style.positionAnchor = "implicit"; test_inset_area("all / top", {left:0, top:0, width:0, height:0}); diff --git a/testing/web-platform/tests/css/css-anchor-position/inset-area-inline-container.html b/testing/web-platform/tests/css/css-anchor-position/inset-area-inline-container.html index 91c9b09735118..08aa1b921d303 100644 --- a/testing/web-platform/tests/css/css-anchor-position/inset-area-inline-container.html +++ b/testing/web-platform/tests/css/css-anchor-position/inset-area-inline-container.html @@ -23,7 +23,7 @@ } .anchored { position: absolute; - anchor-default: --anchor; + position-anchor: --anchor; background-color: blue; } #top-left { inset-area: top / left; } diff --git a/testing/web-platform/tests/css/css-anchor-position/inset-area-wm-dir.html b/testing/web-platform/tests/css/css-anchor-position/inset-area-wm-dir.html index 5268cba7e5ec5..c475810a1975c 100644 --- a/testing/web-platform/tests/css/css-anchor-position/inset-area-wm-dir.html +++ b/testing/web-platform/tests/css/css-anchor-position/inset-area-wm-dir.html @@ -31,7 +31,7 @@ position: absolute; align-self: stretch; justify-self: stretch; - anchor-default: --anchor; + position-anchor: --anchor; } #anchor { margin-top: 150px; diff --git a/testing/web-platform/tests/css/css-anchor-position/anchor-default-001.html b/testing/web-platform/tests/css/css-anchor-position/position-anchor-001.html similarity index 77% rename from testing/web-platform/tests/css/css-anchor-position/anchor-default-001.html rename to testing/web-platform/tests/css/css-anchor-position/position-anchor-001.html index 1700a84aa8814..d927b6b902c97 100644 --- a/testing/web-platform/tests/css/css-anchor-position/anchor-default-001.html +++ b/testing/web-platform/tests/css/css-anchor-position/position-anchor-001.html @@ -1,8 +1,8 @@ -Tests the 'anchor-default' property - +Tests the 'position-anchor' property + - + diff --git a/testing/web-platform/tests/css/css-anchor-position/anchor-default-002.html b/testing/web-platform/tests/css/css-anchor-position/position-anchor-002.html similarity index 80% rename from testing/web-platform/tests/css/css-anchor-position/anchor-default-002.html rename to testing/web-platform/tests/css/css-anchor-position/position-anchor-002.html index c0a962ad3679a..d55338e1e9725 100644 --- a/testing/web-platform/tests/css/css-anchor-position/anchor-default-002.html +++ b/testing/web-platform/tests/css/css-anchor-position/position-anchor-002.html @@ -1,8 +1,8 @@ -Tests that 'anchor-default' property value is tree-scoped - +Tests that 'position-anchor' property value is tree-scoped + - + `; diff --git a/testing/web-platform/tests/css/css-anchor-position/anchor-default-003.html b/testing/web-platform/tests/css/css-anchor-position/position-anchor-003.html similarity index 81% rename from testing/web-platform/tests/css/css-anchor-position/anchor-default-003.html rename to testing/web-platform/tests/css/css-anchor-position/position-anchor-003.html index 00c20324344d0..6117027e22029 100644 --- a/testing/web-platform/tests/css/css-anchor-position/anchor-default-003.html +++ b/testing/web-platform/tests/css/css-anchor-position/position-anchor-003.html @@ -1,6 +1,6 @@ -Tests that layout is updated on anchor-default value changes - +Tests that layout is updated on position-anchor value changes + @@ -13,11 +13,11 @@ background: lime; top: anchor(top); left: anchor(right); - anchor-default: --a; + position-anchor: --a; } #target.after { - anchor-default: --b; + position-anchor: --b; } #anchor1, #anchor2 { @@ -51,5 +51,5 @@ // #target should be anchored to #anchor2 now assert_equals(target.offsetLeft, 200); assert_equals(target.offsetTop, 100); -}, 'Layout is updated on `anchor-default` changes'); +}, 'Layout is updated on `position-anchor` changes'); diff --git a/testing/web-platform/tests/css/css-anchor-position/anchor-default-basics.html b/testing/web-platform/tests/css/css-anchor-position/position-anchor-basics.html similarity index 52% rename from testing/web-platform/tests/css/css-anchor-position/anchor-default-basics.html rename to testing/web-platform/tests/css/css-anchor-position/position-anchor-basics.html index 783cb539cc39b..f9fe9dd6f8f1a 100644 --- a/testing/web-platform/tests/css/css-anchor-position/anchor-default-basics.html +++ b/testing/web-platform/tests/css/css-anchor-position/position-anchor-basics.html @@ -1,6 +1,6 @@ -Tests basics of the 'anchor-default' property - +Tests basics of the 'position-anchor' property + @@ -14,28 +14,28 @@
+ + + + + + + + + From 17f0b39c04a4057ade92420e367bae52de253a61 Mon Sep 17 00:00:00 2001 From: moz-wptsync-bot Date: Fri, 15 Mar 2024 17:35:18 +0000 Subject: [PATCH 008/132] Bug 1885526 [wpt PR 45122] - Update wpt metadata, a=testonly wpt-pr: 45122 wpt-type: metadata --- .../transition-in-hidden-page.html.ini | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 testing/web-platform/meta/css/css-view-transitions/transition-in-hidden-page.html.ini diff --git a/testing/web-platform/meta/css/css-view-transitions/transition-in-hidden-page.html.ini b/testing/web-platform/meta/css/css-view-transitions/transition-in-hidden-page.html.ini new file mode 100644 index 0000000000000..2a51a7eb34a48 --- /dev/null +++ b/testing/web-platform/meta/css/css-view-transitions/transition-in-hidden-page.html.ini @@ -0,0 +1,9 @@ +[transition-in-hidden-page.html] + [A view transition should be immediately skipped if started when document is hidden] + expected: FAIL + + [A view transition should be skipped when a document becomes hidden while processing update callback] + expected: FAIL + + [A view transition should be skipped when a document becomes hidden while animating] + expected: FAIL From 28eadcca9c5b9c33538e420847c5f5021d329c01 Mon Sep 17 00:00:00 2001 From: Christian Biesinger Date: Tue, 19 Mar 2024 10:04:09 +0000 Subject: [PATCH 009/132] Bug 1885025 [wpt PR 45066] - [FedCM] Don't send SameSite=Strict cookies for FedCM requests, a=testonly MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Automatic update from web-platform-tests [FedCM] Don't send SameSite=Strict cookies for FedCM requests See https://github.com/fedidcg/FedCM/issues/320#issuecomment-1992358452 This is behind the off-by-default "FedCmSameSiteNone" feature. Bug: 329145816 Change-Id: I6408255a01118cd5ac4d0d0263a34051796dc301 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5366009 Reviewed-by: John Abd-El-Malek Reviewed-by: Philip Rogers Commit-Queue: Christian Biesinger Reviewed-by: Nicolás Peña Cr-Commit-Position: refs/heads/main@{#1273426} -- wpt-commits: 08c2f13fa0d6bf961ab2e80b0db0a958ef991ee9 wpt-pr: 45066 --- .../fedcm-same-site-none.https.html | 25 +++++++++++++++++ .../support/fedcm-helper.sub.js | 2 +- .../fedcm/accounts_check_same_site_strict.py | 28 +++++++++++++++++++ .../manifest_check_same_site_strict.json | 7 +++++ .../support/fedcm/request-params-check.py | 2 -- .../fedcm/token_check_same_site_strict.py | 15 ++++++++++ .../support/set_cookie.headers | 1 + 7 files changed, 77 insertions(+), 3 deletions(-) create mode 100644 testing/web-platform/tests/credential-management/fedcm-same-site-none/fedcm-same-site-none.https.html create mode 100644 testing/web-platform/tests/credential-management/support/fedcm/accounts_check_same_site_strict.py create mode 100644 testing/web-platform/tests/credential-management/support/fedcm/manifest_check_same_site_strict.json create mode 100644 testing/web-platform/tests/credential-management/support/fedcm/token_check_same_site_strict.py diff --git a/testing/web-platform/tests/credential-management/fedcm-same-site-none/fedcm-same-site-none.https.html b/testing/web-platform/tests/credential-management/fedcm-same-site-none/fedcm-same-site-none.https.html new file mode 100644 index 0000000000000..77ecdaff9fe36 --- /dev/null +++ b/testing/web-platform/tests/credential-management/fedcm-same-site-none/fedcm-same-site-none.https.html @@ -0,0 +1,25 @@ + +Federated Credential Management API SameSite=None tests. + + + + + + + + + diff --git a/testing/web-platform/tests/credential-management/support/fedcm-helper.sub.js b/testing/web-platform/tests/credential-management/support/fedcm-helper.sub.js index 765b3cc48a901..25fdb0995c1a2 100644 --- a/testing/web-platform/tests/credential-management/support/fedcm-helper.sub.js +++ b/testing/web-platform/tests/credential-management/support/fedcm-helper.sub.js @@ -22,7 +22,7 @@ export function open_and_wait_for_popup(origin, path) { // Set the identity provider cookie. export function set_fedcm_cookie(host) { if (host == undefined) { - document.cookie = 'cookie=1; SameSite=Strict; Path=/credential-management/support; Secure'; + document.cookie = 'cookie=1; SameSite=None; Path=/credential-management/support; Secure'; return Promise.resolve(); } else { return open_and_wait_for_popup(host, '/credential-management/support/set_cookie'); diff --git a/testing/web-platform/tests/credential-management/support/fedcm/accounts_check_same_site_strict.py b/testing/web-platform/tests/credential-management/support/fedcm/accounts_check_same_site_strict.py new file mode 100644 index 0000000000000..a6f385feac1cc --- /dev/null +++ b/testing/web-platform/tests/credential-management/support/fedcm/accounts_check_same_site_strict.py @@ -0,0 +1,28 @@ +import importlib +error_checker = importlib.import_module("credential-management.support.fedcm.request-params-check") + +def main(request, response): + request_error = error_checker.accountsCheck(request) + if (request_error): + return request_error + if request.cookies.get(b"same_site_strict") == b"1": + return (546, [], "Should not send SameSite=Strict cookies") + if request.headers.get(b"Sec-Fetch-Site") != b"cross-site": + return (538, [], "Wrong Sec-Fetch-Site header") + + response.headers.set(b"Content-Type", b"application/json") + + return """ +{ + "accounts": [{ + "id": "1234", + "given_name": "John", + "name": "John Doe", + "email": "john_doe@idp.example", + "picture": "https://idp.example/profile/123", + "approved_clients": ["123", "456", "789"], + "login_hints": ["john_doe"], + "domain_hints": ["idp.example", "example"] + }] +} +""" diff --git a/testing/web-platform/tests/credential-management/support/fedcm/manifest_check_same_site_strict.json b/testing/web-platform/tests/credential-management/support/fedcm/manifest_check_same_site_strict.json new file mode 100644 index 0000000000000..d730415983480 --- /dev/null +++ b/testing/web-platform/tests/credential-management/support/fedcm/manifest_check_same_site_strict.json @@ -0,0 +1,7 @@ +{ + "accounts_endpoint": "accounts_check_same_site_strict.py", + "client_metadata_endpoint": "client_metadata.py", + "id_assertion_endpoint": "token_check_same_site_strict.py", + "login_url": "login.html" +} + diff --git a/testing/web-platform/tests/credential-management/support/fedcm/request-params-check.py b/testing/web-platform/tests/credential-management/support/fedcm/request-params-check.py index b774496d5dab3..6c610e6e201dd 100644 --- a/testing/web-platform/tests/credential-management/support/fedcm/request-params-check.py +++ b/testing/web-platform/tests/credential-management/support/fedcm/request-params-check.py @@ -17,8 +17,6 @@ def commonUncredentialedRequestCheck(request): def commonCredentialedRequestCheck(request): if request.cookies.get(b"cookie") != b"1": return (537, [], "Missing cookie") - if request.headers.get(b"Sec-Fetch-Site") != b"none": - return (538, [], "Wrong Sec-Fetch-Site header") def commonPostCheck(request): if not request.headers.get(b"Origin"): diff --git a/testing/web-platform/tests/credential-management/support/fedcm/token_check_same_site_strict.py b/testing/web-platform/tests/credential-management/support/fedcm/token_check_same_site_strict.py new file mode 100644 index 0000000000000..8a4b3a234bdb9 --- /dev/null +++ b/testing/web-platform/tests/credential-management/support/fedcm/token_check_same_site_strict.py @@ -0,0 +1,15 @@ +import importlib +error_checker = importlib.import_module("credential-management.support.fedcm.request-params-check") + +def main(request, response): + request_error = error_checker.tokenCheck(request) + if (request_error): + return request_error + if request.cookies.get(b"same_site_strict") == b"1": + return (546, [], "Should not send SameSite=Strict cookies") + + response.headers.set(b"Content-Type", b"application/json") + response.headers.set(b"Access-Control-Allow-Origin", request.headers.get(b"Origin")) + response.headers.set(b"Access-Control-Allow-Credentials", "true") + + return "{\"token\": \"token\"}" diff --git a/testing/web-platform/tests/credential-management/support/set_cookie.headers b/testing/web-platform/tests/credential-management/support/set_cookie.headers index b19ff933a6f58..4226ff4c9975c 100644 --- a/testing/web-platform/tests/credential-management/support/set_cookie.headers +++ b/testing/web-platform/tests/credential-management/support/set_cookie.headers @@ -1,2 +1,3 @@ Content-Type: text/html Set-Cookie: cookie=1; SameSite=None; Secure +Set-Cookie: same_site_strict=1; SameSite=Strict; Secure From fef2812080555d3d9b22feac704590bf2f6108fb Mon Sep 17 00:00:00 2001 From: Christian Biesinger Date: Tue, 19 Mar 2024 10:04:13 +0000 Subject: [PATCH 010/132] Bug 1885416 [wpt PR 45112] - [FedCM] Don't allow popups for mediation:silent or without user gesture, a=testonly MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Automatic update from web-platform-tests [FedCM] Don't allow popups for mediation:silent or without user gesture Bug: 324452564 Change-Id: I16971fae3a0d2e97f3d2dabb8ed4fbf46ce9436b Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5366099 Commit-Queue: Christian Biesinger Reviewed-by: Nicolás Peña Cr-Commit-Position: refs/heads/main@{#1273519} -- wpt-commits: 49f8dd46e97dc0c731fdb367f888b28a32f630a8 wpt-pr: 45112 --- .../fedcm-continue-on-disallowed.https.html | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 testing/web-platform/tests/credential-management/fedcm-authz/fedcm-continue-on-disallowed.https.html diff --git a/testing/web-platform/tests/credential-management/fedcm-authz/fedcm-continue-on-disallowed.https.html b/testing/web-platform/tests/credential-management/fedcm-authz/fedcm-continue-on-disallowed.https.html new file mode 100644 index 0000000000000..fcda3a3dd591c --- /dev/null +++ b/testing/web-platform/tests/credential-management/fedcm-authz/fedcm-continue-on-disallowed.https.html @@ -0,0 +1,31 @@ + +Federated Credential Management API network request tests. + + + + + + + + + From 9005fc8ec2a2ba71de6ad4a3d6a3474fc1bc7437 Mon Sep 17 00:00:00 2001 From: Tommy Steimel Date: Tue, 19 Mar 2024 10:04:18 +0000 Subject: [PATCH 011/132] Bug 1885584 [wpt PR 45132] - [document pip] Add manual wpt test for hiding return to opener button, a=testonly Automatic update from web-platform-tests [document pip] Add manual wpt test for hiding return to opener button This CL adds a manual wpt test to check that the `disallowReturnToOpener` parameter to the document picture-in-picture api works as expected. Bug: 310971727 Change-Id: I19c43442f714b8cfce46e2e4bedbb4a2cf46ae3e Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5375045 Commit-Queue: Tommy Steimel Reviewed-by: Frank Liberato Cr-Commit-Position: refs/heads/main@{#1273544} -- wpt-commits: 7b41322d9e9a323bb9c890747d28f93258cca889 wpt-pr: 45132 --- ...-return-to-opener-button-manual.https.html | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 testing/web-platform/tests/document-picture-in-picture/hide-return-to-opener-button-manual.https.html diff --git a/testing/web-platform/tests/document-picture-in-picture/hide-return-to-opener-button-manual.https.html b/testing/web-platform/tests/document-picture-in-picture/hide-return-to-opener-button-manual.https.html new file mode 100644 index 0000000000000..17cd6657ddae5 --- /dev/null +++ b/testing/web-platform/tests/document-picture-in-picture/hide-return-to-opener-button-manual.https.html @@ -0,0 +1,21 @@ + +Test that using documentPictureInPicture's disallowReturnToOpener + parameter hides the return to opener button + +

+ This tests that a document picture-in-picture window opened with the `disallowReturnToOpener` + parameter set to `true` does not display a button to return to the opener. +

    +
  1. Click on the "Open document picture-in-picture window" button below.
  2. +
  3. Check that it does not display that button.
  4. +
+

+ + + From 58c6f896d4930c97f9550b2bed6463ff1346f2f9 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 19 Mar 2024 10:04:22 +0000 Subject: [PATCH 012/132] Bug 1884116 [wpt PR 44974] - Sync interfaces/ with @webref/idl 3.44.3, a=testonly Automatic update from web-platform-tests Sync interfaces/ with @webref/idl 3.45.1 (#44974) Co-authored-by: wpt-pr-bot -- wpt-commits: cea69e33dac7011aeda11cb114ce58e283e0ffe2 wpt-pr: 44974 --- .../interfaces/css-view-transitions-2.idl | 4 + .../document-picture-in-picture.idl | 1 + .../web-platform/tests/interfaces/html.idl | 1 + .../interfaces/long-animation-frames.idl | 54 +++++++++++ .../tests/interfaces/longtasks.idl | 50 ---------- .../tests/interfaces/mediacapture-streams.idl | 10 -- .../tests/interfaces/navigation-timing.idl | 1 + .../tests/interfaces/permissions.idl | 2 +- .../tests/interfaces/turtledove.idl | 3 + .../tests/interfaces/ua-client-hints.idl | 2 +- .../tests/interfaces/web-animations-2.idl | 1 + .../tests/interfaces/webcodecs.idl | 24 ++++- .../web-platform/tests/interfaces/webnn.idl | 97 +++++++++++-------- 13 files changed, 143 insertions(+), 107 deletions(-) create mode 100644 testing/web-platform/tests/interfaces/long-animation-frames.idl diff --git a/testing/web-platform/tests/interfaces/css-view-transitions-2.idl b/testing/web-platform/tests/interfaces/css-view-transitions-2.idl index 89e57e251b178..d1e4eeb11e581 100644 --- a/testing/web-platform/tests/interfaces/css-view-transitions-2.idl +++ b/testing/web-platform/tests/interfaces/css-view-transitions-2.idl @@ -23,3 +23,7 @@ interface CSSViewTransitionRule : CSSRule { attribute ViewTransitionNavigation navigation; attribute DOMTokenList typeList; }; + +partial interface ViewTransition { + readonly attribute DOMTokenList typeList; +}; diff --git a/testing/web-platform/tests/interfaces/document-picture-in-picture.idl b/testing/web-platform/tests/interfaces/document-picture-in-picture.idl index f54f437a9365a..888855b38f2d0 100644 --- a/testing/web-platform/tests/interfaces/document-picture-in-picture.idl +++ b/testing/web-platform/tests/interfaces/document-picture-in-picture.idl @@ -20,6 +20,7 @@ interface DocumentPictureInPicture : EventTarget { dictionary DocumentPictureInPictureOptions { [EnforceRange] unsigned long long width = 0; [EnforceRange] unsigned long long height = 0; + boolean allowReturnToOpener = true; }; [Exposed=Window, SecureContext] diff --git a/testing/web-platform/tests/interfaces/html.idl b/testing/web-platform/tests/interfaces/html.idl index 7211231980f6d..d2caf12b5bf60 100644 --- a/testing/web-platform/tests/interfaces/html.idl +++ b/testing/web-platform/tests/interfaces/html.idl @@ -123,6 +123,7 @@ interface HTMLElement : Element { readonly attribute DOMString accessKeyLabel; [CEReactions] attribute boolean draggable; [CEReactions] attribute boolean spellcheck; + [CEReactions] attribute DOMString writingSuggestions; [CEReactions] attribute DOMString autocapitalize; [CEReactions] attribute [LegacyNullToEmptyString] DOMString innerText; diff --git a/testing/web-platform/tests/interfaces/long-animation-frames.idl b/testing/web-platform/tests/interfaces/long-animation-frames.idl new file mode 100644 index 0000000000000..79a42ca8f0a5a --- /dev/null +++ b/testing/web-platform/tests/interfaces/long-animation-frames.idl @@ -0,0 +1,54 @@ +// GENERATED CONTENT - DO NOT EDIT +// Content was automatically extracted by Reffy into webref +// (https://github.com/w3c/webref) +// Source: Long Animation Frames API (https://w3c.github.io/long-animation-frames/) + +[Exposed=Window] +interface PerformanceLongAnimationFrameTiming : PerformanceEntry { + /* Overloading PerformanceEntry */ + readonly attribute DOMHighResTimeStamp startTime; + readonly attribute DOMHighResTimeStamp duration; + readonly attribute DOMString name; + readonly attribute DOMString entryType; + + readonly attribute DOMHighResTimeStamp renderStart; + readonly attribute DOMHighResTimeStamp styleAndLayoutStart; + readonly attribute DOMHighResTimeStamp blockingDuration; + readonly attribute DOMHighResTimeStamp firstUIEventTimestamp; + [SameObject] readonly attribute FrozenArray scripts; + [Default] object toJSON(); +}; + +enum ScriptInvokerType { + "classic-script", + "module-script", + "event-listener", + "user-callback", + "resolve-promise", + "reject-promise" +}; + +enum ScriptWindowAttribution { + "self", "descendant", "ancestor", "same-page", "other" +}; + +[Exposed=Window] +interface PerformanceScriptTiming : PerformanceEntry { + /* Overloading PerformanceEntry */ + readonly attribute DOMHighResTimeStamp startTime; + readonly attribute DOMHighResTimeStamp duration; + readonly attribute DOMString name; + readonly attribute DOMString entryType; + + readonly attribute ScriptInvokerType invokerType; + readonly attribute DOMString invoker; + readonly attribute DOMHighResTimeStamp executionStart; + readonly attribute DOMString sourceURL; + readonly attribute DOMString sourceFunctionName; + readonly attribute long long sourceCharPosition; + readonly attribute DOMHighResTimeStamp pauseDuration; + readonly attribute DOMHighResTimeStamp forcedStyleAndLayoutDuration; + readonly attribute Window? window; + readonly attribute ScriptWindowAttribution windowAttribution; + [Default] object toJSON(); +}; diff --git a/testing/web-platform/tests/interfaces/longtasks.idl b/testing/web-platform/tests/interfaces/longtasks.idl index e5b6ece16a1c3..3717469fd09ac 100644 --- a/testing/web-platform/tests/interfaces/longtasks.idl +++ b/testing/web-platform/tests/interfaces/longtasks.idl @@ -29,53 +29,3 @@ interface TaskAttributionTiming : PerformanceEntry { readonly attribute DOMString containerName; [Default] object toJSON(); }; - -[Exposed=Window] -interface PerformanceLongAnimationFrameTiming : PerformanceEntry { - /* Overloading PerformanceEntry */ - readonly attribute DOMHighResTimeStamp startTime; - readonly attribute DOMHighResTimeStamp duration; - readonly attribute DOMString name; - readonly attribute DOMString entryType; - - readonly attribute DOMHighResTimeStamp renderStart; - readonly attribute DOMHighResTimeStamp styleAndLayoutStart; - readonly attribute DOMHighResTimeStamp blockingDuration; - readonly attribute DOMHighResTimeStamp firstUIEventTimestamp; - [SameObject] readonly attribute FrozenArray scripts; - [Default] object toJSON(); -}; - -enum ScriptInvokerType { - "classic-script", - "module-script", - "event-listener", - "user-callback", - "resolve-promise", - "reject-promise" -}; - -enum ScriptWindowAttribution { - "self", "descendant", "ancestor", "same-page", "other" -}; - -[Exposed=Window] -interface PerformanceScriptTiming : PerformanceEntry { - /* Overloading PerformanceEntry */ - readonly attribute DOMHighResTimeStamp startTime; - readonly attribute DOMHighResTimeStamp duration; - readonly attribute DOMString name; - readonly attribute DOMString entryType; - - readonly attribute ScriptInvokerType invokerType; - readonly attribute DOMString invoker; - readonly attribute DOMHighResTimeStamp executionStart; - readonly attribute DOMString sourceURL; - readonly attribute DOMString sourceFunctionName; - readonly attribute long long sourceCharPosition; - readonly attribute DOMHighResTimeStamp pauseDuration; - readonly attribute DOMHighResTimeStamp forcedStyleAndLayoutDuration; - readonly attribute Window? window; - readonly attribute ScriptWindowAttribution windowAttribution; - [Default] object toJSON(); -}; diff --git a/testing/web-platform/tests/interfaces/mediacapture-streams.idl b/testing/web-platform/tests/interfaces/mediacapture-streams.idl index 373f0c328d93d..f2ca21389e921 100644 --- a/testing/web-platform/tests/interfaces/mediacapture-streams.idl +++ b/testing/web-platform/tests/interfaces/mediacapture-streams.idl @@ -189,16 +189,6 @@ dictionary MediaStreamConstraints { (boolean or MediaTrackConstraints) audio = false; }; -partial interface Navigator { - [SecureContext] undefined getUserMedia(MediaStreamConstraints constraints, - NavigatorUserMediaSuccessCallback successCallback, - NavigatorUserMediaErrorCallback errorCallback); -}; - -callback NavigatorUserMediaSuccessCallback = undefined (MediaStream stream); - -callback NavigatorUserMediaErrorCallback = undefined (DOMException error); - dictionary DoubleRange { double max; double min; diff --git a/testing/web-platform/tests/interfaces/navigation-timing.idl b/testing/web-platform/tests/interfaces/navigation-timing.idl index 355950160e336..b381b486e1978 100644 --- a/testing/web-platform/tests/interfaces/navigation-timing.idl +++ b/testing/web-platform/tests/interfaces/navigation-timing.idl @@ -16,6 +16,7 @@ interface PerformanceNavigationTiming : PerformanceResourceTiming { readonly attribute NavigationTimingType type; readonly attribute unsigned short redirectCount; readonly attribute DOMHighResTimeStamp criticalCHRestart; + readonly attribute NotRestoredReasons? notRestoredReasons; [Default] object toJSON(); }; diff --git a/testing/web-platform/tests/interfaces/permissions.idl b/testing/web-platform/tests/interfaces/permissions.idl index fbcb674e5618a..62c2e3ad76f0e 100644 --- a/testing/web-platform/tests/interfaces/permissions.idl +++ b/testing/web-platform/tests/interfaces/permissions.idl @@ -36,6 +36,6 @@ enum PermissionState { }; dictionary PermissionSetParameters { - required PermissionDescriptor descriptor; + required object descriptor; required PermissionState state; }; diff --git a/testing/web-platform/tests/interfaces/turtledove.idl b/testing/web-platform/tests/interfaces/turtledove.idl index 8a2d7bb594f56..87aec6e6bca8e 100644 --- a/testing/web-platform/tests/interfaces/turtledove.idl +++ b/testing/web-platform/tests/interfaces/turtledove.idl @@ -32,6 +32,7 @@ dictionary GenerateBidInterestGroup { USVString trustedBiddingSignalsURL; sequence trustedBiddingSignalsKeys; DOMString trustedBiddingSignalsSlotSizeMode = "none"; + long maxTrustedBiddingSignalsURLLength; any userBiddingSignals; sequence ads; sequence adComponents; @@ -68,12 +69,14 @@ dictionary AuctionAdConfig { required USVString seller; required USVString decisionLogicURL; USVString trustedScoringSignalsURL; + long maxTrustedScoringSignalsURLLength; sequence interestGroupBuyers; Promise auctionSignals; record requestedSize; sequence> allSlotsRequestedSizes; Promise sellerSignals; Promise directFromSellerSignalsHeaderAdSlot; + Promise> deprecatedRenderURLReplacements; unsigned long long sellerTimeout; unsigned short sellerExperimentGroupId; USVString sellerCurrency; diff --git a/testing/web-platform/tests/interfaces/ua-client-hints.idl b/testing/web-platform/tests/interfaces/ua-client-hints.idl index 6a40e1bdc4bae..5d44b0dd80a19 100644 --- a/testing/web-platform/tests/interfaces/ua-client-hints.idl +++ b/testing/web-platform/tests/interfaces/ua-client-hints.idl @@ -12,7 +12,7 @@ dictionary UADataValues { DOMString architecture; DOMString bitness; sequence brands; - sequence formFactor; + sequence formFactors; sequence fullVersionList; DOMString model; boolean mobile; diff --git a/testing/web-platform/tests/interfaces/web-animations-2.idl b/testing/web-platform/tests/interfaces/web-animations-2.idl index f9f68a0d49a5b..4c3af535149ec 100644 --- a/testing/web-platform/tests/interfaces/web-animations-2.idl +++ b/testing/web-platform/tests/interfaces/web-animations-2.idl @@ -14,6 +14,7 @@ partial interface AnimationTimeline { partial interface Animation { attribute CSSNumberish? startTime; attribute CSSNumberish? currentTime; + readonly attribute double? progress; }; [Exposed=Window] diff --git a/testing/web-platform/tests/interfaces/webcodecs.idl b/testing/web-platform/tests/interfaces/webcodecs.idl index 48d89d0b47783..aa823aa52dfe9 100644 --- a/testing/web-platform/tests/interfaces/webcodecs.idl +++ b/testing/web-platform/tests/interfaces/webcodecs.idl @@ -390,21 +390,37 @@ dictionary PlaneLayout { enum VideoPixelFormat { // 4:2:0 Y, U, V "I420", + "I420P10", + "I420P12", // 4:2:0 Y, U, V, A "I420A", + "I420AP10", + "I420AP12", // 4:2:2 Y, U, V "I422", + "I422P10", + "I422P12", + // 4:2:2 Y, U, V, A + "I422A", + "I422AP10", + "I422AP12", // 4:4:4 Y, U, V "I444", + "I444P10", + "I444P12", + // 4:4:4 Y, U, V, A + "I444A", + "I444AP10", + "I444AP12", // 4:2:0 Y, UV "NV12", - // 32bpp RGBA + // 4:4:4 RGBA "RGBA", - // 32bpp RGBX (opaque) + // 4:4:4 RGBX (opaque) "RGBX", - // 32bpp BGRA + // 4:4:4 BGRA "BGRA", - // 32bpp BGRX (opaque) + // 4:4:4 BGRX (opaque) "BGRX", }; diff --git a/testing/web-platform/tests/interfaces/webnn.idl b/testing/web-platform/tests/interfaces/webnn.idl index 50ee64b185ab9..0b8ea7cb3440a 100644 --- a/testing/web-platform/tests/interfaces/webnn.idl +++ b/testing/web-platform/tests/interfaces/webnn.idl @@ -69,7 +69,7 @@ dictionary MLOperandDescriptor { // The dimensions field is empty for scalar operands, // and non-empty for tensor operands. - sequence dimensions = []; + sequence<[EnforceRange] unsigned long> dimensions = []; }; [SecureContext, Exposed=(Window, DedicatedWorker)] @@ -102,7 +102,7 @@ interface MLGraphBuilder { }; dictionary MLArgMinMaxOptions { - sequence axes; + sequence<[EnforceRange] unsigned long> axes; boolean keepDimensions = false; boolean selectLastIndex = false; }; @@ -115,7 +115,7 @@ partial interface MLGraphBuilder { dictionary MLBatchNormalizationOptions { MLOperand scale; MLOperand bias; - unsigned long axis = 1; + [EnforceRange] unsigned long axis = 1; float epsilon = 1e-5; MLActivation activation; }; @@ -140,7 +140,7 @@ partial interface MLGraphBuilder { }; partial interface MLGraphBuilder { - MLOperand concat(sequence inputs, unsigned long axis); + MLOperand concat(sequence inputs, [EnforceRange] unsigned long axis); }; enum MLConv2dFilterOperandLayout { @@ -151,10 +151,10 @@ enum MLConv2dFilterOperandLayout { }; dictionary MLConv2dOptions { - sequence padding; - sequence strides; - sequence dilations; - unsigned long groups = 1; + sequence<[EnforceRange] unsigned long> padding; + sequence<[EnforceRange] unsigned long> strides; + sequence<[EnforceRange] unsigned long> dilations; + [EnforceRange] unsigned long groups = 1; MLInputOperandLayout inputLayout = "nchw"; MLConv2dFilterOperandLayout filterLayout = "oihw"; MLOperand bias; @@ -172,12 +172,12 @@ enum MLConvTranspose2dFilterOperandLayout { }; dictionary MLConvTranspose2dOptions { - sequence padding; - sequence strides; - sequence dilations; - sequence outputPadding; - sequence outputSizes; - unsigned long groups = 1; + sequence<[EnforceRange] unsigned long> padding; + sequence<[EnforceRange] unsigned long> strides; + sequence<[EnforceRange] unsigned long> dilations; + sequence<[EnforceRange] unsigned long> outputPadding; + sequence<[EnforceRange] unsigned long> outputSizes; + [EnforceRange] unsigned long groups = 1; MLInputOperandLayout inputLayout = "nchw"; MLConvTranspose2dFilterOperandLayout filterLayout = "iohw"; MLOperand bias; @@ -234,11 +234,11 @@ partial interface MLGraphBuilder { }; partial interface MLGraphBuilder { - MLOperand expand(MLOperand input, sequence newShape); + MLOperand expand(MLOperand input, sequence<[EnforceRange] unsigned long> newShape); }; dictionary MLGatherOptions { - unsigned long axis = 0; + [EnforceRange] unsigned long axis = 0; }; partial interface MLGraphBuilder { @@ -280,8 +280,11 @@ dictionary MLGruOptions { }; partial interface MLGraphBuilder { - sequence gru(MLOperand input, MLOperand weight, MLOperand recurrentWeight, - unsigned long steps, unsigned long hiddenSize, + sequence gru(MLOperand input, + MLOperand weight, + MLOperand recurrentWeight, + [EnforceRange] unsigned long steps, + [EnforceRange] unsigned long hiddenSize, optional MLGruOptions options = {}); }; @@ -294,8 +297,11 @@ dictionary MLGruCellOptions { }; partial interface MLGraphBuilder { - MLOperand gruCell(MLOperand input, MLOperand weight, MLOperand recurrentWeight, - MLOperand hiddenState, unsigned long hiddenSize, + MLOperand gruCell(MLOperand input, + MLOperand weight, + MLOperand recurrentWeight, + MLOperand hiddenState, + [EnforceRange] unsigned long hiddenSize, optional MLGruCellOptions options = {}); }; @@ -329,7 +335,7 @@ partial interface MLGraphBuilder { dictionary MLLayerNormalizationOptions { MLOperand scale; MLOperand bias; - sequence axes; + sequence<[EnforceRange] unsigned long> axes; float epsilon = 1e-5; }; @@ -374,8 +380,11 @@ dictionary MLLstmOptions { }; partial interface MLGraphBuilder { - sequence lstm(MLOperand input, MLOperand weight, MLOperand recurrentWeight, - unsigned long steps, unsigned long hiddenSize, + sequence lstm(MLOperand input, + MLOperand weight, + MLOperand recurrentWeight, + [EnforceRange] unsigned long steps, + [EnforceRange] unsigned long hiddenSize, optional MLLstmOptions options = {}); }; @@ -388,8 +397,12 @@ dictionary MLLstmCellOptions { }; partial interface MLGraphBuilder { - sequence lstmCell(MLOperand input, MLOperand weight, MLOperand recurrentWeight, - MLOperand hiddenState, MLOperand cellState, unsigned long hiddenSize, + sequence lstmCell(MLOperand input, + MLOperand weight, + MLOperand recurrentWeight, + MLOperand hiddenState, + MLOperand cellState, + [EnforceRange] unsigned long hiddenSize, optional MLLstmCellOptions options = {}); }; @@ -411,8 +424,8 @@ dictionary MLPadOptions { partial interface MLGraphBuilder { MLOperand pad(MLOperand input, - sequence beginningPadding, - sequence endingPadding, + sequence<[EnforceRange] unsigned long> beginningPadding, + sequence<[EnforceRange] unsigned long> endingPadding, optional MLPadOptions options = {}); }; @@ -422,13 +435,13 @@ enum MLRoundingType { }; dictionary MLPool2dOptions { - sequence windowDimensions; - sequence padding; - sequence strides; - sequence dilations; + sequence<[EnforceRange] unsigned long> windowDimensions; + sequence<[EnforceRange] unsigned long> padding; + sequence<[EnforceRange] unsigned long> strides; + sequence<[EnforceRange] unsigned long> dilations; MLInputOperandLayout layout = "nchw"; MLRoundingType roundingType = "floor"; - sequence outputSizes; + sequence<[EnforceRange] unsigned long> outputSizes; }; partial interface MLGraphBuilder { @@ -442,7 +455,7 @@ partial interface MLGraphBuilder { }; dictionary MLReduceOptions { - sequence axes; + sequence<[EnforceRange] unsigned long> axes; boolean keepDimensions = false; }; @@ -472,8 +485,8 @@ enum MLInterpolationMode { dictionary MLResample2dOptions { MLInterpolationMode mode = "nearest-neighbor"; sequence scales; - sequence sizes; - sequence axes; + sequence<[EnforceRange] unsigned long> sizes; + sequence<[EnforceRange] unsigned long> axes; }; partial interface MLGraphBuilder { @@ -481,7 +494,7 @@ partial interface MLGraphBuilder { }; partial interface MLGraphBuilder { - MLOperand reshape(MLOperand input, sequence newShape); + MLOperand reshape(MLOperand input, sequence<[EnforceRange] unsigned long> newShape); }; partial interface MLGraphBuilder { @@ -490,7 +503,9 @@ partial interface MLGraphBuilder { }; partial interface MLGraphBuilder { - MLOperand slice(MLOperand input, sequence starts, sequence sizes); + MLOperand slice(MLOperand input, + sequence<[EnforceRange] unsigned long> starts, + sequence<[EnforceRange] unsigned long> sizes); }; partial interface MLGraphBuilder { @@ -513,12 +528,12 @@ partial interface MLGraphBuilder { }; dictionary MLSplitOptions { - unsigned long axis = 0; + [EnforceRange] unsigned long axis = 0; }; partial interface MLGraphBuilder { sequence split(MLOperand input, - (unsigned long or sequence) splits, + ([EnforceRange] unsigned long or sequence<[EnforceRange] unsigned long>) splits, optional MLSplitOptions options = {}); }; @@ -528,7 +543,7 @@ partial interface MLGraphBuilder { }; dictionary MLTransposeOptions { - sequence permutation; + sequence<[EnforceRange] unsigned long> permutation; }; partial interface MLGraphBuilder { @@ -537,7 +552,7 @@ partial interface MLGraphBuilder { dictionary MLTriangularOptions { boolean upper = true; - long diagonal = 0; + [EnforceRange] long diagonal = 0; }; partial interface MLGraphBuilder { From 1de60a2d7c8879e110ffdbd861aadff49624c9c5 Mon Sep 17 00:00:00 2001 From: moz-wptsync-bot Date: Fri, 15 Mar 2024 22:39:35 +0000 Subject: [PATCH 013/132] Bug 1884116 [wpt PR 44974] - Update wpt metadata, a=testonly wpt-pr: 44974 wpt-type: metadata --- .../meta/html/dom/idlharness.https.html.ini | 54 ++++++++++--------- .../idlharness.window.js.ini | 6 +++ .../web-animations/idlharness.window.js.ini | 6 +++ 3 files changed, 42 insertions(+), 24 deletions(-) diff --git a/testing/web-platform/meta/html/dom/idlharness.https.html.ini b/testing/web-platform/meta/html/dom/idlharness.https.html.ini index bc663ef86bdd2..3b232e8e51bf4 100644 --- a/testing/web-platform/meta/html/dom/idlharness.https.html.ini +++ b/testing/web-platform/meta/html/dom/idlharness.https.html.ini @@ -696,30 +696,6 @@ prefs: [dom.security.featurePolicy.experimental.enabled:true, dom.security.featu [MessagePort interface: attribute onclose] expected: FAIL - [PageSwapEvent interface: existence and properties of interface object] - expected: FAIL - - [PageSwapEvent interface object length] - expected: FAIL - - [PageSwapEvent interface object name] - expected: FAIL - - [PageSwapEvent interface: existence and properties of interface prototype object] - expected: FAIL - - [PageSwapEvent interface: existence and properties of interface prototype object's "constructor" property] - expected: FAIL - - [PageSwapEvent interface: existence and properties of interface prototype object's @@unscopables property] - expected: FAIL - - [PageSwapEvent interface: attribute activation] - expected: FAIL - - [PageSwapEvent interface: attribute viewTransition] - expected: FAIL - [NotRestoredReasonDetails interface: existence and properties of interface object] expected: FAIL @@ -783,6 +759,30 @@ prefs: [dom.security.featurePolicy.experimental.enabled:true, dom.security.featu [NotRestoredReasons interface: operation toJSON()] expected: FAIL + [PageSwapEvent interface: existence and properties of interface object] + expected: FAIL + + [PageSwapEvent interface object length] + expected: FAIL + + [PageSwapEvent interface object name] + expected: FAIL + + [PageSwapEvent interface: existence and properties of interface prototype object] + expected: FAIL + + [PageSwapEvent interface: existence and properties of interface prototype object's "constructor" property] + expected: FAIL + + [PageSwapEvent interface: existence and properties of interface prototype object's @@unscopables property] + expected: FAIL + + [PageSwapEvent interface: attribute activation] + expected: FAIL + + [PageSwapEvent interface: attribute viewTransition] + expected: FAIL + [SVGSVGElement interface: attribute onpageswap] expected: FAIL @@ -970,6 +970,12 @@ prefs: [dom.security.featurePolicy.experimental.enabled:true, dom.security.featu [HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "onpagereveal" with the proper type] expected: FAIL + [HTMLElement interface: attribute writingSuggestions] + expected: FAIL + + [HTMLElement interface: document.createElement("noscript") must inherit property "writingSuggestions" with the proper type] + expected: FAIL + [HTMLBodyElement interface: attribute onpageswap] expected: FAIL diff --git a/testing/web-platform/meta/navigation-timing/idlharness.window.js.ini b/testing/web-platform/meta/navigation-timing/idlharness.window.js.ini index 7abb041e7d254..9d1d0032eb2dc 100644 --- a/testing/web-platform/meta/navigation-timing/idlharness.window.js.ini +++ b/testing/web-platform/meta/navigation-timing/idlharness.window.js.ini @@ -8,3 +8,9 @@ [PerformanceNavigationTiming interface: performance.getEntriesByType("navigation")[0\] must inherit property "criticalCHRestart" with the proper type] expected: FAIL + + [PerformanceNavigationTiming interface: attribute notRestoredReasons] + expected: FAIL + + [PerformanceNavigationTiming interface: performance.getEntriesByType("navigation")[0\] must inherit property "notRestoredReasons" with the proper type] + expected: FAIL diff --git a/testing/web-platform/meta/web-animations/idlharness.window.js.ini b/testing/web-platform/meta/web-animations/idlharness.window.js.ini index 67423e1a01180..3abaa9a8dfef6 100644 --- a/testing/web-platform/meta/web-animations/idlharness.window.js.ini +++ b/testing/web-platform/meta/web-animations/idlharness.window.js.ini @@ -148,3 +148,9 @@ [AnimationTimeline interface: document.timeline must inherit property "currentTime" with the proper type] expected: FAIL + + [Animation interface: attribute progress] + expected: FAIL + + [Animation interface: new Animation() must inherit property "progress" with the proper type] + expected: FAIL From 964a5eda3575dfc70a6ca48dae9fc4255f6f16ad Mon Sep 17 00:00:00 2001 From: Blink WPT Bot Date: Tue, 19 Mar 2024 10:04:55 +0000 Subject: [PATCH 014/132] Bug 1881163 [wpt PR 44688] - wpt: Fix test_driver's minimize/restore functions., a=testonly Automatic update from web-platform-tests wpt: Fix test_driver's minimize/restore functions. (#44688) * wpt: Fix test_driver's minimize/restore functions. By default the test_driver API calls should be routed to the window corresponding to the driver. However the minimize/restore calls use the top level window. Fix this by passing the frame token to look up the correct WebContents corresponding to the blink Window. R=danakj@chromium.org Bug: 1522213 Change-Id: I99ed32cd4d9020d9832c63344fee004a40461148 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5310776 Commit-Queue: Khushal Sagar Reviewed-by: danakj Auto-Submit: Khushal Sagar Cr-Commit-Position: refs/heads/main@{#1263515} * Disable broken test for now with link to #45137 --------- Co-authored-by: Khushal Sagar Co-authored-by: Jonathan Lee -- wpt-commits: 6d73d2118dad3afaddc1c4d242b27e839a2f18dc wpt-pr: 44688 --- .../minimize_restore_popup.html.ini | 2 + .../testdriver/minimize_restore_popup.html | 44 +++++++++++++++++++ 2 files changed, 46 insertions(+) create mode 100644 testing/web-platform/tests/infrastructure/metadata/infrastructure/testdriver/minimize_restore_popup.html.ini create mode 100644 testing/web-platform/tests/infrastructure/testdriver/minimize_restore_popup.html diff --git a/testing/web-platform/tests/infrastructure/metadata/infrastructure/testdriver/minimize_restore_popup.html.ini b/testing/web-platform/tests/infrastructure/metadata/infrastructure/testdriver/minimize_restore_popup.html.ini new file mode 100644 index 0000000000000..6075b58d09cc5 --- /dev/null +++ b/testing/web-platform/tests/infrastructure/metadata/infrastructure/testdriver/minimize_restore_popup.html.ini @@ -0,0 +1,2 @@ +[minimize_restore_popup.html] + disabled: https://github.com/web-platform-tests/wpt/issues/45137 diff --git a/testing/web-platform/tests/infrastructure/testdriver/minimize_restore_popup.html b/testing/web-platform/tests/infrastructure/testdriver/minimize_restore_popup.html new file mode 100644 index 0000000000000..99245083b5990 --- /dev/null +++ b/testing/web-platform/tests/infrastructure/testdriver/minimize_restore_popup.html @@ -0,0 +1,44 @@ + + +TestDriver minimize/restore method in popup + + + + + + From f8538093c0cb821a8fd66780eb7d2fc325b2b644 Mon Sep 17 00:00:00 2001 From: moz-wptsync-bot Date: Sat, 16 Mar 2024 09:15:50 +0000 Subject: [PATCH 015/132] Bug 1881163 [wpt PR 44688] - Update wpt metadata, a=testonly wpt-pr: 44688 wpt-type: metadata --- .../infrastructure/testdriver/minimize_restore_popup.html.ini | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 testing/web-platform/meta/infrastructure/testdriver/minimize_restore_popup.html.ini diff --git a/testing/web-platform/meta/infrastructure/testdriver/minimize_restore_popup.html.ini b/testing/web-platform/meta/infrastructure/testdriver/minimize_restore_popup.html.ini new file mode 100644 index 0000000000000..d1eebe1ab60db --- /dev/null +++ b/testing/web-platform/meta/infrastructure/testdriver/minimize_restore_popup.html.ini @@ -0,0 +1,4 @@ +[minimize_restore_popup.html] + expected: TIMEOUT + [minimize and restore on popup] + expected: TIMEOUT From 8a4f7dab3f09ccfc8d8f30972232b46e73929155 Mon Sep 17 00:00:00 2001 From: Jonathan Lee Date: Tue, 19 Mar 2024 10:05:01 +0000 Subject: [PATCH 016/132] Bug 1885646 [wpt PR 45138] - Remove `infrastructure/` metadata for a test that no longer exists, a=testonly Automatic update from web-platform-tests Remove `infrastructure/` metadata for a test that no longer exists (#45138) See #43860 -- wpt-commits: ef526b13272a1f8358896245d44e5c1f59d12d6a wpt-pr: 45138 --- .../testdriver/test_win_open_with_interaction.html.ini | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 testing/web-platform/tests/infrastructure/metadata/infrastructure/testdriver/test_win_open_with_interaction.html.ini diff --git a/testing/web-platform/tests/infrastructure/metadata/infrastructure/testdriver/test_win_open_with_interaction.html.ini b/testing/web-platform/tests/infrastructure/metadata/infrastructure/testdriver/test_win_open_with_interaction.html.ini deleted file mode 100644 index b1e77bd8e59cf..0000000000000 --- a/testing/web-platform/tests/infrastructure/metadata/infrastructure/testdriver/test_win_open_with_interaction.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[test_win_open_with_interaction.html] - expected: [OK, TIMEOUT] - - [Tests pointer move/click in a window opened with `window.open.`] - expected: [FAIL, TIMEOUT, PASS] From b048fe5e2229396ab35fb05a5c3335e44f4eff14 Mon Sep 17 00:00:00 2001 From: Brad Triebwasser Date: Tue, 19 Mar 2024 10:05:05 +0000 Subject: [PATCH 017/132] Bug 1885692 [wpt PR 45143] - Revert "View-transitions should only be allowed when page is visible", a=testonly Automatic update from web-platform-tests Revert "View-transitions should only be allowed when page is visible" This reverts commit 763158dc9602048a522e165a8dcdabcc9da37db7. Reason for revert: [Gardening] Test hide-before-reveal.html is consistently failing on CI bots. Original change's description: > View-transitions should only be allowed when page is visible > > - Skip the transition if document becomes hidden > - Disallow oubound cross-document view transitions when document is > hidden > - Skip inbound cross-document view transition if document becomes > hidden > - When calling startViewTransition() in a hidden document, start is > as skipped. > > Based on following CSS resolution: > https://github.com/w3c/csswg-drafts/issues/9543#issuecomment-1939242246 > > Bug: 329302331 > Change-Id: Ieef3238240b35c5d7f7f819793f65f71d7d75037 > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5374309 > Reviewed-by: David Bokan > Commit-Queue: Noam Rosenthal > Cr-Commit-Position: refs/heads/main@{#1273445} Bug: 329302331 Change-Id: Idd4ae8f47af123401e6c8d2673e26d23e296b9b1 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5375475 Commit-Queue: Brad Triebwasser Bot-Commit: Rubber Stamper Owners-Override: Brad Triebwasser Auto-Submit: Brad Triebwasser Cr-Commit-Position: refs/heads/main@{#1273716} -- wpt-commits: ddf5b1d83d7bd893030f1761af17deab9d9881c1 wpt-pr: 45143 --- .../transition-in-hidden-page.html | 71 ------------------- 1 file changed, 71 deletions(-) delete mode 100644 testing/web-platform/tests/css/css-view-transitions/transition-in-hidden-page.html diff --git a/testing/web-platform/tests/css/css-view-transitions/transition-in-hidden-page.html b/testing/web-platform/tests/css/css-view-transitions/transition-in-hidden-page.html deleted file mode 100644 index af8050eb77905..0000000000000 --- a/testing/web-platform/tests/css/css-view-transitions/transition-in-hidden-page.html +++ /dev/null @@ -1,71 +0,0 @@ - - View transitions: Transition in a hidden page - - - - - - - - - - - - From afbdbeca94ecda464dfa9a3e59b3d9fd7e3b11e4 Mon Sep 17 00:00:00 2001 From: Dominic Farolino Date: Tue, 19 Mar 2024 10:05:10 +0000 Subject: [PATCH 018/132] Bug 1883486 [wpt PR 44912] - DOM: Implement Observable#from() conversion operator, a=testonly Automatic update from web-platform-tests DOM: Implement Observable#from() conversion operator This CL implements 3/4 of the Observable#from() conversion operator. This operator [1], [2] (not quite yet specified) takes a Web IDL `any` value and converts it to an Observable with the following semantics, based on what the `any` value actually is under the hood: 1. Observable: just return the same Observable. 2. Async iterable: create & return an Observable that, on subscription, pulls values from the async iterable, and pushes them to the subscriber. 3. Iterable: create & return an Observable that, on subscription, synchronously pushes each value to the subscriber. 4. Promise: create & return an Observable that, on subscription, reacts [3] to given promise with two handlers: a. Fulfillment handler: pushes the value to the subscriber, and calls complete() b. Rejection handler: Calls the subscriber's error with the given rejection value This CL implements (1), (3), and (4) by introducing new subscriber delegates that are specific to these cases. Async iterable support, (2), will come in a future CL, as there is not yet equivalent bindings support for this, so it will need a more thoughtful design. [1]: https://github.com/wicg/observable?tab=readme-ov-file#constructing--converting-objects-to-observables [2]: https://wicg.github.io/observable/#observable-from [3]: https://webidl.spec.whatwg.org/#dfn-perform-steps-once-promise-is-settled Bug: 40282760 Change-Id: I6b392ba77221fb1a77e334aa5f151ed6518419ed Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5337908 Reviewed-by: Mason Freed Commit-Queue: Dominic Farolino Cr-Commit-Position: refs/heads/main@{#1273758} -- wpt-commits: 9dcc8580a5da88049a48ebbfb3fb08a22c5a90d9 wpt-pr: 44912 --- .../tentative/observable-from.any.js | 354 ++++++++++++++++++ 1 file changed, 354 insertions(+) create mode 100644 testing/web-platform/tests/dom/observable/tentative/observable-from.any.js diff --git a/testing/web-platform/tests/dom/observable/tentative/observable-from.any.js b/testing/web-platform/tests/dom/observable/tentative/observable-from.any.js new file mode 100644 index 0000000000000..80408ddced7ef --- /dev/null +++ b/testing/web-platform/tests/dom/observable/tentative/observable-from.any.js @@ -0,0 +1,354 @@ +// Because we test that the global error handler is called at various times. +setup({allow_uncaught_exception: true}); + +test(() => { + assert_equals(typeof Observable.from, "function", + "Observable.from() is a function"); +}, "from(): Observable.from() is a function"); + +test(() => { + assert_throws_js(TypeError, () => Observable.from(10), + "Number cannot convert to an Observable"); + assert_throws_js(TypeError, () => Observable.from(true), + "Boolean cannot convert to an Observable"); + assert_throws_js(TypeError, () => Observable.from("String"), + "String cannot convert to an Observable"); + assert_throws_js(TypeError, () => Observable.from({a: 10}), + "Object cannot convert to an Observable"); + assert_throws_js(TypeError, () => Observable.from(Symbol.iterator), + "Bare Symbol.iterator cannot convert to an Observable"); + assert_throws_js(TypeError, () => Observable.from(Promise), + "Promise constructor cannot convert to an Observable"); +}, "from(): Failed conversions"); + +test(() => { + const target = new EventTarget(); + const observable = target.on('custom'); + const from_observable = Observable.from(observable); + assert_equals(observable, from_observable); +}, "from(): Given an observable, it returns that exact observable"); + +test(() => { + let completeCalled = false; + const results = []; + const array = [1, 2, 3, 'a', new Date(), 15, [12]]; + const observable = Observable.from(array); + observable.subscribe({ + next: v => results.push(v), + error: e => assert_unreached('error is not called'), + complete: () => completeCalled = true + }); + + assert_array_equals(results, array); + assert_true(completeCalled); +}, "from(): Given an array"); + +test(() => { + const iterable = { + [Symbol.iterator]() { + let n = 0; + return { + next() { + n++; + if (n <= 3) { + return { value: n, done: false }; + } + return { value: undefined, done: true }; + }, + }; + }, + }; + + const observable = Observable.from(iterable); + + assert_true(observable instanceof Observable, "Observable.from() returns an Observable"); + + const results = []; + + observable.subscribe({ + next: (value) => results.push(value), + error: () => assert_unreached("should not error"), + complete: () => results.push("complete"), + }); + + assert_array_equals(results, [1, 2, 3, "complete"], + "Subscription pushes iterable values out to Observable"); + + // A second subscription should restart iteration. + observable.subscribe({ + next: (value) => results.push(value), + error: () => assert_unreached("should not error"), + complete: () => results.push("complete2"), + }); + + assert_array_equals(results, [1, 2, 3, "complete", 1, 2, 3, "complete2"], + "Subscribing again causes another fresh iteration on an un-exhausted iterable"); +}, "from(): Iterable converts to Observable"); + +// The result of the @@iterator method of the converted object is called: +// 1. Once on conversion (to test that the value is an iterable). +// 2. Once on subscription, to re-pull the iterator implementation from the +// raw JS object that the Observable owns once synchronous iteration is +// about to begin. +test(() => { + let numTimesSymbolIteratorCalled = 0; + let numTimesNextCalled = 0; + + const iterable = { + [Symbol.iterator]() { + numTimesSymbolIteratorCalled++; + return { + next() { + numTimesNextCalled++; + return {value: undefined, done: true}; + } + }; + } + }; + + const observable = Observable.from(iterable); + + assert_equals(numTimesSymbolIteratorCalled, 1, + "Observable.from(iterable) invokes the @@iterator method getter once"); + assert_equals(numTimesNextCalled, 0, + "Iterator next() is not called until subscription"); + + // Override iterable's `[Symbol.iterator]` protocol with an error-throwing + // function. We assert that on subscription, this method (the new `@@iterator` + // implementation), is called because only the raw JS object gets stored in + // the Observable that results in conversion. This raw value must get + // re-converted to an iterable once iteration is about to start. + const customError = new Error('@@iterator override error'); + iterable[Symbol.iterator] = () => { + throw customError; + }; + + let thrownError = null; + observable.subscribe({ + error: e => thrownError = e, + }); + + assert_equals(thrownError, customError, + "Error thrown from next() is passed to the error() handler"); + + assert_equals(numTimesSymbolIteratorCalled, 1, + "Subscription re-invokes @@iterator method, which now is a different " + + "method that does *not* increment our assertion value"); + assert_equals(numTimesNextCalled, 0, "Iterator next() is never called"); +}, "from(): [Symbol.iterator] side-effects (one observable)"); + +// Similar to the above test, but with more Observables! +test(() => { + let numTimesSymbolIteratorCalled = 0; + let numTimesNextCalled = 0; + + const iterable = { + [Symbol.iterator]() { + numTimesSymbolIteratorCalled++; + return { + next() { + numTimesNextCalled++; + return {value: undefined, done: true}; + } + }; + } + }; + + const obs1 = Observable.from(iterable); + const obs2 = Observable.from(iterable); + const obs3 = Observable.from(iterable); + const obs4 = Observable.from(obs3); + + assert_equals(numTimesSymbolIteratorCalled, 3, "Observable.from(iterable) invokes the iterator method getter once"); + assert_equals(numTimesNextCalled, 0, "Iterator next() is not called until subscription"); + + iterable[Symbol.iterator] = () => { + throw new Error('Symbol.iterator override error'); + }; + + let errorCount = 0; + + const observer = {error: e => errorCount++}; + obs1.subscribe(observer); + obs2.subscribe(observer); + obs3.subscribe(observer); + obs4.subscribe(observer); + assert_equals(errorCount, 4, + "Error-throwing `@@iterator` implementation is called once per " + + "subscription"); + + assert_equals(numTimesSymbolIteratorCalled, 3, + "Subscription re-invokes the iterator method getter once"); + assert_equals(numTimesNextCalled, 0, "Iterator next() is never called"); +}, "from(): [Symbol.iterator] side-effects (many observables)"); + +test(() => { + const customError = new Error('@@iterator next() error'); + const iterable = { + [Symbol.iterator]() { + return { + next() { + throw customError; + } + }; + } + }; + + let thrownError = null; + Observable.from(iterable).subscribe({ + error: e => thrownError = e, + }); + + assert_equals(thrownError, customError, + "Error thrown from next() is passed to the error() handler"); +}, "from(): [Symbol.iterator] next() throws error"); + +promise_test(async () => { + const promise = Promise.resolve('value'); + const observable = Observable.from(promise); + + assert_true(observable instanceof Observable, "Converts to Observable"); + + const results = []; + + observable.subscribe({ + next: (value) => results.push(value), + error: () => assert_unreached("error() is not called"), + complete: () => results.push("complete()"), + }); + + assert_array_equals(results, [], "Observable does not emit synchronously"); + + await promise; + + assert_array_equals(results, ["value", "complete()"], "Observable emits and completes after Promise resolves"); +}, "from(): Converts Promise to Observable"); + +promise_test(async t => { + let unhandledRejectionHandlerCalled = false; + const unhandledRejectionHandler = () => { + unhandledRejectionHandlerCalled = true; + }; + + self.addEventListener("unhandledrejection", unhandledRejectionHandler); + t.add_cleanup(() => self.removeEventListener("unhandledrejection", unhandledRejectionHandler)); + + const promise = Promise.reject("reason"); + const observable = Observable.from(promise); + + assert_true(observable instanceof Observable, "Converts to Observable"); + + const results = []; + + observable.subscribe({ + next: (value) => assert_unreached("next() not called"), + error: (error) => results.push(error), + complete: () => assert_unreached("complete() not called"), + }); + + assert_array_equals(results, [], "Observable does not emit synchronously"); + + let catchBlockEntered = false; + try { + await promise; + } catch { + catchBlockEntered = true; + } + + assert_true(catchBlockEntered, "Catch block entered"); + assert_false(unhandledRejectionHandlerCalled, "No unhandledrejection event"); + assert_array_equals(results, ["reason"], + "Observable emits error() after Promise rejects"); +}, "from(): Converts rejected Promise to Observable. No " + + "`unhandledrejection` event when error is handled by subscription"); + +promise_test(async t => { + let unhandledRejectionHandlerCalled = false; + const unhandledRejectionHandler = () => { + unhandledRejectionHandlerCalled = true; + }; + + self.addEventListener("unhandledrejection", unhandledRejectionHandler); + t.add_cleanup(() => self.removeEventListener("unhandledrejection", unhandledRejectionHandler)); + + let errorReported = null; + self.addEventListener("error", e => errorReported = e, { once: true }); + + let catchBlockEntered = false; + try { + const promise = Promise.reject("custom reason"); + const observable = Observable.from(promise); + + observable.subscribe(); + await promise; + } catch { + catchBlockEntered = true; + } + + assert_true(catchBlockEntered, "Catch block entered"); + assert_false(unhandledRejectionHandlerCalled, + "No unhandledrejection event, because error got reported to global"); + assert_not_equals(errorReported, null, "Error was reported to the global"); + + assert_true(errorReported.message.includes("custom reason"), + "Error message matches"); + assert_equals(errorReported.lineno, 0, "Error lineno is 0"); + assert_equals(errorReported.colno, 0, "Error lineno is 0"); + assert_equals(errorReported.error, "custom reason", + "Error object is equivalent"); +}, "from(): Rejections not handled by subscription are reported to the " + + "global, and still not sent as an unhandledrejection event"); + +test(() => { + const results = []; + const observable = new Observable(subscriber => { + subscriber.next('from Observable'); + subscriber.complete(); + }); + + observable[Symbol.iterator] = () => { + results.push('Symbol.iterator() called'); + return { + next() { + return {value: 'from @@iterator', done: true}; + } + }; + }; + + Observable.from(observable).subscribe({ + next: v => results.push(v), + complete: () => results.push("complete"), + }); + + assert_array_equals(results, ["from Observable", "complete"]); +}, "from(): Observable that implements @@iterator protocol gets converted " + + "as an Observable, not iterator"); + +test(() => { + const results = []; + const promise = new Promise(resolve => { + resolve('from Promise'); + }); + + promise[Symbol.iterator] = () => { + let done = false; + return { + next() { + if (!done) { + done = true; + return {value: 'from @@iterator', done: false}; + } else { + return {value: undefined, done: true}; + } + } + }; + }; + + Observable.from(promise).subscribe({ + next: v => results.push(v), + complete: () => results.push("complete"), + }); + + assert_array_equals(results, ["from @@iterator", "complete"]); +}, "from(): Promise that implements @@iterator protocol gets converted as " + + "an iterable, not Promise"); From a47f6f3204b3c0e12b62d7486aa7d241abaa8558 Mon Sep 17 00:00:00 2001 From: moz-wptsync-bot Date: Sat, 16 Mar 2024 08:58:33 +0000 Subject: [PATCH 019/132] Bug 1883486 [wpt PR 44912] - Update wpt metadata, a=testonly wpt-pr: 44912 wpt-type: metadata --- .../tentative/observable-from.any.js.ini | 80 +++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 testing/web-platform/meta/dom/observable/tentative/observable-from.any.js.ini diff --git a/testing/web-platform/meta/dom/observable/tentative/observable-from.any.js.ini b/testing/web-platform/meta/dom/observable/tentative/observable-from.any.js.ini new file mode 100644 index 0000000000000..511526b2d2724 --- /dev/null +++ b/testing/web-platform/meta/dom/observable/tentative/observable-from.any.js.ini @@ -0,0 +1,80 @@ +[observable-from.any.html] + [from(): Observable.from() is a function] + expected: FAIL + + [from(): Failed conversions] + expected: FAIL + + [from(): Given an observable, it returns that exact observable] + expected: FAIL + + [from(): Given an array] + expected: FAIL + + [from(): Iterable converts to Observable] + expected: FAIL + + [from(): [Symbol.iterator\] side-effects (one observable)] + expected: FAIL + + [from(): [Symbol.iterator\] side-effects (many observables)] + expected: FAIL + + [from(): [Symbol.iterator\] next() throws error] + expected: FAIL + + [from(): Converts Promise to Observable] + expected: FAIL + + [from(): Converts rejected Promise to Observable. No `unhandledrejection` event when error is handled by subscription] + expected: FAIL + + [from(): Rejections not handled by subscription are reported to the global, and still not sent as an unhandledrejection event] + expected: FAIL + + [from(): Observable that implements @@iterator protocol gets converted as an Observable, not iterator] + expected: FAIL + + [from(): Promise that implements @@iterator protocol gets converted as an iterable, not Promise] + expected: FAIL + + +[observable-from.any.worker.html] + [from(): Observable.from() is a function] + expected: FAIL + + [from(): Failed conversions] + expected: FAIL + + [from(): Given an observable, it returns that exact observable] + expected: FAIL + + [from(): Given an array] + expected: FAIL + + [from(): Iterable converts to Observable] + expected: FAIL + + [from(): [Symbol.iterator\] side-effects (one observable)] + expected: FAIL + + [from(): [Symbol.iterator\] side-effects (many observables)] + expected: FAIL + + [from(): [Symbol.iterator\] next() throws error] + expected: FAIL + + [from(): Converts Promise to Observable] + expected: FAIL + + [from(): Converts rejected Promise to Observable. No `unhandledrejection` event when error is handled by subscription] + expected: FAIL + + [from(): Rejections not handled by subscription are reported to the global, and still not sent as an unhandledrejection event] + expected: FAIL + + [from(): Observable that implements @@iterator protocol gets converted as an Observable, not iterator] + expected: FAIL + + [from(): Promise that implements @@iterator protocol gets converted as an iterable, not Promise] + expected: FAIL From 9df8072d16df16f5349afefb558fdf73ef33882a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philip=20J=C3=A4genstedt?= Date: Tue, 19 Mar 2024 10:05:24 +0000 Subject: [PATCH 020/132] Bug 1885220 [wpt PR 45092] - Add borders to (ok)lab L over 100% tests, a=testonly Automatic update from web-platform-tests Add borders to (ok)lab L over 100% tests Also make the boxes square to make it easier to describe the expected rendering. -- Update oklab-l-over-1-ref.html -- wpt-commits: 2951eb24278030fabc9e2a32598fca5971ffdb7a, 2e2393b64365757d0814f7d4c31b1934f0b7516e wpt-pr: 45092 --- .../tests/css/css-color/lab-l-over-100-1.html | 13 ++++++++----- .../tests/css/css-color/lab-l-over-100-2.html | 13 ++++++++----- .../tests/css/css-color/lab-l-over-100-ref.html | 4 ++-- .../tests/css/css-color/lch-l-over-100-1.html | 13 ++++++++----- .../tests/css/css-color/lch-l-over-100-2.html | 13 ++++++++----- .../tests/css/css-color/lch-l-over-100-ref.html | 5 ++--- .../tests/css/css-color/oklab-l-over-1-1.html | 13 ++++++++----- .../tests/css/css-color/oklab-l-over-1-2.html | 13 ++++++++----- .../tests/css/css-color/oklab-l-over-1-ref.html | 4 ++-- .../tests/css/css-color/oklch-l-over-1-1.html | 13 ++++++++----- .../tests/css/css-color/oklch-l-over-1-2.html | 13 ++++++++----- .../tests/css/css-color/oklch-l-over-1-ref.html | 4 ++-- 12 files changed, 72 insertions(+), 49 deletions(-) diff --git a/testing/web-platform/tests/css/css-color/lab-l-over-100-1.html b/testing/web-platform/tests/css/css-color/lab-l-over-100-1.html index 287eba9824561..be8833593d7dd 100644 --- a/testing/web-platform/tests/css/css-color/lab-l-over-100-1.html +++ b/testing/web-platform/tests/css/css-color/lab-l-over-100-1.html @@ -5,13 +5,16 @@ -

Test passes if you see a single color.

-
-
+

Test passes if you see a square border with a single color inside.

+
+
+
+
diff --git a/testing/web-platform/tests/css/css-color/lab-l-over-100-2.html b/testing/web-platform/tests/css/css-color/lab-l-over-100-2.html index e85d289d21fa0..20a9568094753 100644 --- a/testing/web-platform/tests/css/css-color/lab-l-over-100-2.html +++ b/testing/web-platform/tests/css/css-color/lab-l-over-100-2.html @@ -5,13 +5,16 @@ -

Test passes if you see a single color.

-
-
+

Test passes if you see a square border with a single color inside.

+
+
+
+
diff --git a/testing/web-platform/tests/css/css-color/lab-l-over-100-ref.html b/testing/web-platform/tests/css/css-color/lab-l-over-100-ref.html index 57328cfa7c556..eccc492079d2d 100644 --- a/testing/web-platform/tests/css/css-color/lab-l-over-100-ref.html +++ b/testing/web-platform/tests/css/css-color/lab-l-over-100-ref.html @@ -2,10 +2,10 @@ CSS Color 4: Verify lightness in Lab is always clamped to a value between 0 to 100 -

Test passes if you see a single color.

+

Test passes if you see a square border with a single color inside.

diff --git a/testing/web-platform/tests/css/css-color/lch-l-over-100-1.html b/testing/web-platform/tests/css/css-color/lch-l-over-100-1.html index 6e0c62330c39d..12d594d1a340f 100644 --- a/testing/web-platform/tests/css/css-color/lch-l-over-100-1.html +++ b/testing/web-platform/tests/css/css-color/lch-l-over-100-1.html @@ -5,13 +5,16 @@ -

Test passes if you see a single color.

-
-
+

Test passes if you see a square border with a single color inside.

+
+
+
+
diff --git a/testing/web-platform/tests/css/css-color/lch-l-over-100-2.html b/testing/web-platform/tests/css/css-color/lch-l-over-100-2.html index 7752d0dc0eb4d..68789b9c859f7 100644 --- a/testing/web-platform/tests/css/css-color/lch-l-over-100-2.html +++ b/testing/web-platform/tests/css/css-color/lch-l-over-100-2.html @@ -5,13 +5,16 @@ -

Test passes if you see a single color.

-
-
+

Test passes if you see a square border with a single color inside.

+
+
+
+
diff --git a/testing/web-platform/tests/css/css-color/lch-l-over-100-ref.html b/testing/web-platform/tests/css/css-color/lch-l-over-100-ref.html index 67766274e59ac..291772e166fb9 100644 --- a/testing/web-platform/tests/css/css-color/lch-l-over-100-ref.html +++ b/testing/web-platform/tests/css/css-color/lch-l-over-100-ref.html @@ -2,11 +2,10 @@ CSS Color 4: Specifying LCH with lightness over 100 -

Test passes if you see a single color.

+

Test passes if you see a square border with a single color inside.

-
diff --git a/testing/web-platform/tests/css/css-color/oklab-l-over-1-1.html b/testing/web-platform/tests/css/css-color/oklab-l-over-1-1.html index 612fe32acb1a8..a16fe7886f83b 100644 --- a/testing/web-platform/tests/css/css-color/oklab-l-over-1-1.html +++ b/testing/web-platform/tests/css/css-color/oklab-l-over-1-1.html @@ -5,13 +5,16 @@ -

Test passes if you see a single color.

-
-
+

Test passes if you see a square border with a single color inside.

+
+
+
+
diff --git a/testing/web-platform/tests/css/css-color/oklab-l-over-1-2.html b/testing/web-platform/tests/css/css-color/oklab-l-over-1-2.html index 11948f014bfd2..6300cb8af3bc5 100644 --- a/testing/web-platform/tests/css/css-color/oklab-l-over-1-2.html +++ b/testing/web-platform/tests/css/css-color/oklab-l-over-1-2.html @@ -5,13 +5,16 @@ -

Test passes if you see a single color.

-
-
+

Test passes if you see a square border with a single color inside.

+
+
+
+
diff --git a/testing/web-platform/tests/css/css-color/oklab-l-over-1-ref.html b/testing/web-platform/tests/css/css-color/oklab-l-over-1-ref.html index eb380dcb750e6..f050bbc6434ee 100644 --- a/testing/web-platform/tests/css/css-color/oklab-l-over-1-ref.html +++ b/testing/web-platform/tests/css/css-color/oklab-l-over-1-ref.html @@ -2,10 +2,10 @@ CSS Color 4: Verify lightness in Lab is always clamped to a value between 0 to 100 -

Test passes if you see a single color.

+

Test passes if you see a square border with a single color inside.

diff --git a/testing/web-platform/tests/css/css-color/oklch-l-over-1-1.html b/testing/web-platform/tests/css/css-color/oklch-l-over-1-1.html index 4eb3cda846263..c734723541d10 100644 --- a/testing/web-platform/tests/css/css-color/oklch-l-over-1-1.html +++ b/testing/web-platform/tests/css/css-color/oklch-l-over-1-1.html @@ -5,13 +5,16 @@ -

Test passes if you see a single color.

-
-
+

Test passes if you see a square border with a single color inside.

+
+
+
+
diff --git a/testing/web-platform/tests/css/css-color/oklch-l-over-1-2.html b/testing/web-platform/tests/css/css-color/oklch-l-over-1-2.html index de8b1a6cdd05c..59eac2b367764 100644 --- a/testing/web-platform/tests/css/css-color/oklch-l-over-1-2.html +++ b/testing/web-platform/tests/css/css-color/oklch-l-over-1-2.html @@ -5,13 +5,16 @@ -

Test passes if you see a single color.

-
-
+

Test passes if you see a square border with a single color inside.

+
+
+
+
diff --git a/testing/web-platform/tests/css/css-color/oklch-l-over-1-ref.html b/testing/web-platform/tests/css/css-color/oklch-l-over-1-ref.html index 2c7815c5f0e40..ae1b5e00e5703 100644 --- a/testing/web-platform/tests/css/css-color/oklch-l-over-1-ref.html +++ b/testing/web-platform/tests/css/css-color/oklch-l-over-1-ref.html @@ -2,10 +2,10 @@ CSS Color 4: Verify lightness in Oklch is always clamped to a value between 0 to 1 -

Test passes if you see a single color.

+

Test passes if you see a square border with a single color inside.

From 3633f449d06f99d0473adb51fcf15bdfc16becdf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philip=20J=C3=A4genstedt?= Date: Tue, 19 Mar 2024 10:05:28 +0000 Subject: [PATCH 021/132] Bug 1885059 [wpt PR 45073] - Test oklab()/oklch() with lightness close to 0/1, a=testonly Automatic update from web-platform-tests Test oklab()/oklch() with with lightness close to 0/1 This is an interop issue where Chrome's behavior is different from Firefox and Safari's: https://crbug.com/329106317 These tests don't care what the color is, as long as it is the same. -- wpt-commits: 298d1599dbf6255aea63506daaa1702ff0c4fdc5 wpt-pr: 45073 --- .../css/css-color/oklab-l-almost-0-ref.html | 9 ++++++++ .../tests/css/css-color/oklab-l-almost-0.html | 21 +++++++++++++++++++ .../css/css-color/oklab-l-almost-1-ref.html | 9 ++++++++ .../tests/css/css-color/oklab-l-almost-1.html | 21 +++++++++++++++++++ .../css/css-color/oklch-l-almost-0-ref.html | 9 ++++++++ .../tests/css/css-color/oklch-l-almost-0.html | 21 +++++++++++++++++++ .../css/css-color/oklch-l-almost-1-ref.html | 9 ++++++++ .../tests/css/css-color/oklch-l-almost-1.html | 21 +++++++++++++++++++ 8 files changed, 120 insertions(+) create mode 100644 testing/web-platform/tests/css/css-color/oklab-l-almost-0-ref.html create mode 100644 testing/web-platform/tests/css/css-color/oklab-l-almost-0.html create mode 100644 testing/web-platform/tests/css/css-color/oklab-l-almost-1-ref.html create mode 100644 testing/web-platform/tests/css/css-color/oklab-l-almost-1.html create mode 100644 testing/web-platform/tests/css/css-color/oklch-l-almost-0-ref.html create mode 100644 testing/web-platform/tests/css/css-color/oklch-l-almost-0.html create mode 100644 testing/web-platform/tests/css/css-color/oklch-l-almost-1-ref.html create mode 100644 testing/web-platform/tests/css/css-color/oklch-l-almost-1.html diff --git a/testing/web-platform/tests/css/css-color/oklab-l-almost-0-ref.html b/testing/web-platform/tests/css/css-color/oklab-l-almost-0-ref.html new file mode 100644 index 0000000000000..244321ea69d2d --- /dev/null +++ b/testing/web-platform/tests/css/css-color/oklab-l-almost-0-ref.html @@ -0,0 +1,9 @@ + + + + +

Test passes if you see a square border with a single color inside.

+
+ diff --git a/testing/web-platform/tests/css/css-color/oklab-l-almost-0.html b/testing/web-platform/tests/css/css-color/oklab-l-almost-0.html new file mode 100644 index 0000000000000..e8cc1b9042d44 --- /dev/null +++ b/testing/web-platform/tests/css/css-color/oklab-l-almost-0.html @@ -0,0 +1,21 @@ + + +CSS Color 4: OKLab and OKLCH + + + + + +

Test passes if you see a square border with a single color inside.

+
+
+
+
+ diff --git a/testing/web-platform/tests/css/css-color/oklab-l-almost-1-ref.html b/testing/web-platform/tests/css/css-color/oklab-l-almost-1-ref.html new file mode 100644 index 0000000000000..72cdf3544705d --- /dev/null +++ b/testing/web-platform/tests/css/css-color/oklab-l-almost-1-ref.html @@ -0,0 +1,9 @@ + + + + +

Test passes if you see a square border with a single color inside.

+
+ diff --git a/testing/web-platform/tests/css/css-color/oklab-l-almost-1.html b/testing/web-platform/tests/css/css-color/oklab-l-almost-1.html new file mode 100644 index 0000000000000..352e7b58aa6a9 --- /dev/null +++ b/testing/web-platform/tests/css/css-color/oklab-l-almost-1.html @@ -0,0 +1,21 @@ + + +CSS Color 4: OKLab and OKLCH + + + + + +

Test passes if you see a square border with a single color inside.

+
+
+
+
+ diff --git a/testing/web-platform/tests/css/css-color/oklch-l-almost-0-ref.html b/testing/web-platform/tests/css/css-color/oklch-l-almost-0-ref.html new file mode 100644 index 0000000000000..e019136f96f73 --- /dev/null +++ b/testing/web-platform/tests/css/css-color/oklch-l-almost-0-ref.html @@ -0,0 +1,9 @@ + + + + +

Test passes if you see a square border with a single color inside.

+
+ diff --git a/testing/web-platform/tests/css/css-color/oklch-l-almost-0.html b/testing/web-platform/tests/css/css-color/oklch-l-almost-0.html new file mode 100644 index 0000000000000..c171befe6428f --- /dev/null +++ b/testing/web-platform/tests/css/css-color/oklch-l-almost-0.html @@ -0,0 +1,21 @@ + + +CSS Color 4: OKLab and OKLCH + + + + + +

Test passes if you see a square border with a single color inside.

+
+
+
+
+ diff --git a/testing/web-platform/tests/css/css-color/oklch-l-almost-1-ref.html b/testing/web-platform/tests/css/css-color/oklch-l-almost-1-ref.html new file mode 100644 index 0000000000000..e1f29eaa1853c --- /dev/null +++ b/testing/web-platform/tests/css/css-color/oklch-l-almost-1-ref.html @@ -0,0 +1,9 @@ + + + + +

Test passes if you see a square border with a single color inside.

+
+ diff --git a/testing/web-platform/tests/css/css-color/oklch-l-almost-1.html b/testing/web-platform/tests/css/css-color/oklch-l-almost-1.html new file mode 100644 index 0000000000000..c98cea292f9f5 --- /dev/null +++ b/testing/web-platform/tests/css/css-color/oklch-l-almost-1.html @@ -0,0 +1,21 @@ + + +CSS Color 4: OKLab and OKLCH + + + + + +

Test passes if you see a square border with a single color inside.

+
+
+
+
+ From 4cb91009a7f62dedaf0b97ee08b1ef693fde7d96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20S=C3=B6derquist?= Date: Tue, 19 Mar 2024 10:05:36 +0000 Subject: [PATCH 022/132] Bug 1885545 [wpt PR 45125] - Fix separator handling for legacy syntax colors, a=testonly MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Automatic update from web-platform-tests Fix separator handling for legacy syntax colors The code for handling legacy separators (commas) in color functions were a bit too lenient and accepted more commas than it should. Move separator handling out of ConsumeChannel() and into the loop that calls ConsumeChannel(). Bug: 329820314 Change-Id: I0478c521e574ca928e51ac1696d9942114a9ac31 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5374210 Auto-Submit: Fredrik Söderquist Reviewed-by: Rune Lillesveen Commit-Queue: Rune Lillesveen Cr-Commit-Position: refs/heads/main@{#1274049} -- wpt-commits: e50d28b7b0b52853967e5ea0fde366de683c913f wpt-pr: 45125 --- .../tests/css/css-color/parsing/color-invalid-rgb.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/testing/web-platform/tests/css/css-color/parsing/color-invalid-rgb.html b/testing/web-platform/tests/css/css-color/parsing/color-invalid-rgb.html index 90dd082f2ae9a..08d4c6735aeab 100644 --- a/testing/web-platform/tests/css/css-color/parsing/color-invalid-rgb.html +++ b/testing/web-platform/tests/css/css-color/parsing/color-invalid-rgb.html @@ -22,6 +22,8 @@ ["rgb(10%, 50%, 0)", "Values must be all numbers or all percentages"], ["rgb(255, 50%, 0%)", "Values must be all numbers or all percentages"], ["rgb(0, 0 0)", "Comma optional syntax requires no commas at all"], + ["rgb(,0, 0, 0)", "Leading commas are invalid"], + ["rgb(0, 0,, 0)", "Double commas are invalid"], ["rgb(0, 0, 0deg)", "Angles are not accepted in the rgb function"], ["rgb(0, 0, light)", "Keywords are not accepted in the rgb function"], ["rgb()", "The rgb function requires 3 or 4 arguments"], From db56dac21b634cba34a8d1229d1282da3c7b40c9 Mon Sep 17 00:00:00 2001 From: Romain Menke Date: Tue, 19 Mar 2024 10:05:41 +0000 Subject: [PATCH 023/132] Bug 1885736 [wpt PR 45146] - [css-color] fix some outdated tests, a=testonly Automatic update from web-platform-tests [css-color] fix some outdated tests -- wpt-commits: 1a88768cd60dbf0aaa8efe439a5c0af729e5fba6 wpt-pr: 45146 --- .../color-computed-color-mix-function.html | 8 +-- .../color-computed-relative-color.html | 26 ++++---- .../parsing/color-valid-relative-color.html | 66 +++++++++---------- 3 files changed, 50 insertions(+), 50 deletions(-) diff --git a/testing/web-platform/tests/css/css-color/parsing/color-computed-color-mix-function.html b/testing/web-platform/tests/css/css-color/parsing/color-computed-color-mix-function.html index b54aa0da12ad9..4ac7cb6a272e3 100644 --- a/testing/web-platform/tests/css/css-color/parsing/color-computed-color-mix-function.html +++ b/testing/web-platform/tests/css/css-color/parsing/color-computed-color-mix-function.html @@ -42,8 +42,8 @@ fuzzy_test_computed_color(`color-mix(in hsl, hsl(120deg 10% 20% / 0), hsl(30deg 30% 40%))`, `color(srgb 0.46 0.52 0.28 / 0.5)`); fuzzy_test_computed_color(`color-mix(in hsl, hsl(120deg 10% 20% / 0) 10%, hsl(30deg 30% 40%))`, `color(srgb 0.52 0.436 0.28 / 0.9)`); - fuzzy_test_computed_color(`color-mix(in hsl, white, blue)`, `color(srgb 0.62 0.62 0.87)`); - fuzzy_test_computed_color(`color-mix(in hsl, white 10%, blue)`, `color(srgb 0.15 0.15 0.96)`); + fuzzy_test_computed_color(`color-mix(in hsl, white, blue)`, `color(srgb 0.625 0.625 0.875)`); + fuzzy_test_computed_color(`color-mix(in hsl, white 10%, blue)`, `color(srgb 0.145 0.145 0.955)`); fuzzy_test_computed_color(`color-mix(in hsl, hsl(40deg 50% 50%), hsl(60deg 50% 50%))`, `color(srgb 0.75 0.666667 0.25)`); fuzzy_test_computed_color(`color-mix(in hsl, hsl(60deg 50% 50%), hsl(40deg 50% 50%))`, `color(srgb 0.75 0.666667 0.25)`); @@ -421,8 +421,8 @@ fuzzy_test_computed_color(`color-mix(in oklab, oklab(0.1 0.2 0.3 / 0), oklab(0.3 0.4 0.5))`, 'oklab(0.3 0.4 0.5 / 0.5)'); fuzzy_test_computed_color(`color-mix(in oklab, oklab(0.1 0.2 0.3 / 0) 10%, oklab(0.3 0.4 0.5))`, 'oklab(0.3 0.4 0.5 / 0.9)'); - fuzzy_test_computed_color(`color-mix(in oklab, white, blue)`, `oklab(0.73 -0.02 -0.16)`); - fuzzy_test_computed_color(`color-mix(in oklab, white 10%, blue)`, `oklab(0.51 -0.03 -0.28)`); + fuzzy_test_computed_color(`color-mix(in oklab, white, blue)`, `oklab(0.726 -0.016 -0.156)`); + fuzzy_test_computed_color(`color-mix(in oklab, white 10%, blue)`, `oklab(0.507 -0.029 -0.28)`); fuzzy_test_computed_color(`color-mix(in oklab, oklab(none none none), oklab(none none none))`, `oklab(none none none)`); fuzzy_test_computed_color(`color-mix(in oklab, oklab(none none none), oklab(0.5 0.6 0.7))`, `oklab(0.5 0.6 0.7)`); diff --git a/testing/web-platform/tests/css/css-color/parsing/color-computed-relative-color.html b/testing/web-platform/tests/css/css-color/parsing/color-computed-relative-color.html index 95c8eee226b6c..69fbb70a3909d 100644 --- a/testing/web-platform/tests/css/css-color/parsing/color-computed-relative-color.html +++ b/testing/web-platform/tests/css/css-color/parsing/color-computed-relative-color.html @@ -165,18 +165,18 @@ // Testing valid permutation (types match). fuzzy_test_computed_color(`hsl(from rebeccapurple h l s)`, `color(srgb 0.5 0.3 0.7)`); - fuzzy_test_computed_color(`hsl(from rebeccapurple h alpha l / s)`, `color(srgb 0.4 0 0.8 / 0.5)`); - fuzzy_test_computed_color(`hsl(from rebeccapurple h l l / l)`, `color(srgb 0.4 0.24 0.56 / 0.4)`); - fuzzy_test_computed_color(`hsl(from rebeccapurple h alpha alpha / alpha)`, `color(srgb 1 1 1)`); + fuzzy_test_computed_color(`hsl(from rebeccapurple h alpha l / s)`, `color(srgb 0.4 0.396 0.404 / 1)`); + fuzzy_test_computed_color(`hsl(from rebeccapurple h l l / l)`, `color(srgb 0.4 0.24 0.56 / 1)`); + fuzzy_test_computed_color(`hsl(from rebeccapurple h alpha alpha / alpha)`, `color(srgb 0.01 0.01 0.01)`); fuzzy_test_computed_color(`hsl(from rgb(20%, 40%, 60%, 80%) h l s)`, `color(srgb 0.3 0.5 0.7 / 0.8)`); - fuzzy_test_computed_color(`hsl(from rgb(20%, 40%, 60%, 80%) h alpha l / s)`, `color(srgb 0.08 0.4 0.72 / 0.5)`); - fuzzy_test_computed_color(`hsl(from rgb(20%, 40%, 60%, 80%) h l l / l)`, `color(srgb 0.24 0.4 0.56 / 0.4)`); - fuzzy_test_computed_color(`hsl(from rgb(20%, 40%, 60%, 80%) h alpha alpha / alpha)`, `color(srgb 0.64 0.8 0.96 / 0.8)`); + fuzzy_test_computed_color(`hsl(from rgb(20%, 40%, 60%, 80%) h alpha l / s)`, `color(srgb 0.397 0.4 0.403 / 1)`); + fuzzy_test_computed_color(`hsl(from rgb(20%, 40%, 60%, 80%) h l l / l)`, `color(srgb 0.24 0.4 0.56 / 1)`); + fuzzy_test_computed_color(`hsl(from rgb(20%, 40%, 60%, 80%) h alpha alpha / alpha)`, `color(srgb 0.01 0.01 0.01 / 0.8)`); // Testing with calc(). fuzzy_test_computed_color(`hsl(from rebeccapurple calc(h) calc(s) calc(l))`, `color(srgb 0.4 0.2 0.6)`); fuzzy_test_computed_color(`hsl(from rgb(20%, 40%, 60%, 80%) calc(h) calc(s) calc(l) / calc(alpha))`, `color(srgb 0.2 0.4 0.6 / 0.8)`); - fuzzy_test_computed_color(`hsl(from hsl(20 30 40 / 0.8) calc(h + 1) calc(s + 1) calc(l + 1) / calc(alpha + 0.01))`, `color(srgb 0.54 0.37 0.28 / 0.81)`); // hsl(21 31 41) + fuzzy_test_computed_color(`hsl(from hsl(20 30 40 / 0.8) calc(h + 1) calc(s + 1) calc(l + 1) / calc(alpha + 0.01))`, `color(srgb 0.537 0.372 0.283 / 0.81)`); // hsl(21 31 41) fuzzy_test_computed_color(`hsl(from rebeccapurple calc((h / 360) * 360deg) calc((s / 100) * 100%) calc((l / 100) * 100%) / calc(alpha * 100%))`, `color(srgb 0.4 0.2 0.6)`); // Testing with 'none'. Missing components are resolved to zero during color space conversion. @@ -240,13 +240,13 @@ // Testing valid permutation (types match). fuzzy_test_computed_color(`hwb(from rebeccapurple h b w)`, `color(srgb 0.6 0.4 0.8)`); - fuzzy_test_computed_color(`hwb(from rebeccapurple h alpha w / b)`, `color(srgb 0.8333 0.8333 0.8333 / 0.4)`); - fuzzy_test_computed_color(`hwb(from rebeccapurple h w w / w)`, `color(srgb 0.5 0.2 0.8 / 0.2)`); - fuzzy_test_computed_color(`hwb(from rebeccapurple h alpha alpha / alpha)`, `color(srgb 0.5 0.5 0.5)`); + fuzzy_test_computed_color(`hwb(from rebeccapurple h alpha w / b)`, `color(srgb 0.405 0.01 0.8)`); + fuzzy_test_computed_color(`hwb(from rebeccapurple h w w / w)`, `color(srgb 0.5 0.2 0.8)`); + fuzzy_test_computed_color(`hwb(from rebeccapurple h alpha alpha / alpha)`, `color(srgb 0.5 0.01 0.99)`); fuzzy_test_computed_color(`hwb(from rgb(20%, 40%, 60%, 80%) h b w)`, `color(srgb 0.4 0.6 0.8 / 0.8)`); - fuzzy_test_computed_color(`hwb(from rgb(20%, 40%, 60%, 80%) h alpha w / b)`, `color(srgb 0.8 0.8 0.8 / 0.4)`); - fuzzy_test_computed_color(`hwb(from rgb(20%, 40%, 60%, 80%) h w w / w)`, `color(srgb 0.2 0.5 0.8 / 0.2)`); - fuzzy_test_computed_color(`hwb(from rgb(20%, 40%, 60%, 80%) h alpha alpha / alpha)`, `color(srgb 0.5 0.5 0.5 / 0.8)`); + fuzzy_test_computed_color(`hwb(from rgb(20%, 40%, 60%, 80%) h alpha w / b)`, `color(srgb 0.01 0.404 0.8)`); + fuzzy_test_computed_color(`hwb(from rgb(20%, 40%, 60%, 80%) h w w / w)`, `color(srgb 0.2 0.5 0.8)`); + fuzzy_test_computed_color(`hwb(from rgb(20%, 40%, 60%, 80%) h alpha alpha / alpha)`, `color(srgb 0.01 0.5 0.992 / 0.8)`); // Testing with calc(). fuzzy_test_computed_color(`hwb(from rebeccapurple calc(h) calc(w) calc(b))`, `color(srgb 0.4 0.2 0.6)`); diff --git a/testing/web-platform/tests/css/css-color/parsing/color-valid-relative-color.html b/testing/web-platform/tests/css/css-color/parsing/color-valid-relative-color.html index 5f83f0f0746c3..5ff55601ae97d 100644 --- a/testing/web-platform/tests/css/css-color/parsing/color-valid-relative-color.html +++ b/testing/web-platform/tests/css/css-color/parsing/color-valid-relative-color.html @@ -76,13 +76,13 @@ // Testing permutation. fuzzy_test_valid_color(`rgb(from rebeccapurple g b r)`, `color(srgb 0.2 0.6 0.4)`); - fuzzy_test_valid_color(`rgb(from rebeccapurple b alpha r / g)`, `color(srgb 0.6 1 0.4 / 0.2)`); - fuzzy_test_valid_color(`rgb(from rebeccapurple r r r / r)`, `color(srgb 0.4 0.4 0.4 / 0.4)`); - fuzzy_test_valid_color(`rgb(from rebeccapurple alpha alpha alpha / alpha)`, `color(srgb 1 1 1)`); + fuzzy_test_valid_color(`rgb(from rebeccapurple b alpha r / g)`, `color(srgb 0.6 0.004 0.4)`); + fuzzy_test_valid_color(`rgb(from rebeccapurple r r r / r)`, `color(srgb 0.4 0.4 0.4)`); + fuzzy_test_valid_color(`rgb(from rebeccapurple alpha alpha alpha / alpha)`, `color(srgb 0.004 0.004 0.004)`); fuzzy_test_valid_color(`rgb(from rgb(20%, 40%, 60%, 80%) g b r)`, `color(srgb 0.4 0.6 0.2 / 0.8)`); - fuzzy_test_valid_color(`rgb(from rgb(20%, 40%, 60%, 80%) b alpha r / g)`, `color(srgb 0.6 0.8 0.2 / 0.4)`); - fuzzy_test_valid_color(`rgb(from rgb(20%, 40%, 60%, 80%) r r r / r)`, `color(srgb 0.2 0.2 0.2 / 0.2)`); - fuzzy_test_valid_color(`rgb(from rgb(20%, 40%, 60%, 80%) alpha alpha alpha / alpha)`, `color(srgb 0.8 0.8 0.8 / 0.8)`); + fuzzy_test_valid_color(`rgb(from rgb(20%, 40%, 60%, 80%) b alpha r / g)`, `color(srgb 0.6 0.003 0.2)`); + fuzzy_test_valid_color(`rgb(from rgb(20%, 40%, 60%, 80%) r r r / r)`, `color(srgb 0.2 0.2 0.2)`); + fuzzy_test_valid_color(`rgb(from rgb(20%, 40%, 60%, 80%) alpha alpha alpha / alpha)`, `color(srgb 0.003 0.003 0.003 / 0.8)`); // Testing mixes of number and percentage. (These would not be allowed in the non-relative syntax). fuzzy_test_valid_color(`rgb(from rebeccapurple r 20% 10)`, `color(srgb 0.4 0.2 0.0392)`); @@ -169,28 +169,28 @@ // Testing valid permutation (types match). fuzzy_test_valid_color(`hsl(from rebeccapurple h l s)`, `color(srgb 0.5 0.3 0.7)`); - fuzzy_test_valid_color(`hsl(from rebeccapurple h alpha l / s)`, `color(srgb 0.4 0 0.8 / 0.5)`); - fuzzy_test_valid_color(`hsl(from rebeccapurple h l l / l)`, `color(srgb 0.4 0.24 0.56 / 0.4)`); - fuzzy_test_valid_color(`hsl(from rebeccapurple h alpha alpha / alpha)`, `color(srgb 1 1 1)`); + fuzzy_test_valid_color(`hsl(from rebeccapurple h alpha l / s)`, `color(srgb 0.4 0.396 0.404)`); + fuzzy_test_valid_color(`hsl(from rebeccapurple h l l / l)`, `color(srgb 0.4 0.24 0.56)`); + fuzzy_test_valid_color(`hsl(from rebeccapurple h alpha alpha / alpha)`, `color(srgb 0.01 0.01 0.01)`); fuzzy_test_valid_color(`hsl(from rgb(20%, 40%, 60%, 80%) h l s)`, `color(srgb 0.3 0.5 0.7 / 0.8)`); - fuzzy_test_valid_color(`hsl(from rgb(20%, 40%, 60%, 80%) h alpha l / s)`, `color(srgb 0.08 0.4 0.72 / 0.5)`); - fuzzy_test_valid_color(`hsl(from rgb(20%, 40%, 60%, 80%) h l l / l)`, `color(srgb 0.24 0.4 0.56 / 0.4)`); - fuzzy_test_valid_color(`hsl(from rgb(20%, 40%, 60%, 80%) h alpha alpha / alpha)`, `color(srgb 0.64 0.8 0.96 / 0.8)`); + fuzzy_test_valid_color(`hsl(from rgb(20%, 40%, 60%, 80%) h alpha l / s)`, `color(srgb 0.4 0.4 0.4)`); + fuzzy_test_valid_color(`hsl(from rgb(20%, 40%, 60%, 80%) h l l / l)`, `color(srgb 0.24 0.4 0.56)`); + fuzzy_test_valid_color(`hsl(from rgb(20%, 40%, 60%, 80%) h alpha alpha / alpha)`, `color(srgb 0.01 0.01 0.01 / 0.8)`); // Testing with calc(). fuzzy_test_valid_color(`hsl(from rebeccapurple calc(h) calc(s) calc(l))`, `color(srgb 0.4 0.2 0.6)`); fuzzy_test_valid_color(`hsl(from rgb(20%, 40%, 60%, 80%) calc(h) calc(s) calc(l) / calc(alpha))`, `color(srgb 0.2 0.4 0.6 / 0.8)`); // Testing with 'none'. - fuzzy_test_valid_color(`hsl(from rebeccapurple none none none)`, `color(srgb none none none)`); - fuzzy_test_valid_color(`hsl(from rebeccapurple none none none / none)`, `color(srgb none none none / none)`); - fuzzy_test_valid_color(`hsl(from rebeccapurple h s none)`, `color(srgb 0 0 none)`); - fuzzy_test_valid_color(`hsl(from rebeccapurple h s none / alpha)`, `color(srgb 0 0 none)`); + fuzzy_test_valid_color(`hsl(from rebeccapurple none none none)`, `color(srgb 0 0 0)`); + fuzzy_test_valid_color(`hsl(from rebeccapurple none none none / none)`, `color(srgb 0 0 0 / 0)`); + fuzzy_test_valid_color(`hsl(from rebeccapurple h s none)`, `color(srgb 0 0 0)`); + fuzzy_test_valid_color(`hsl(from rebeccapurple h s none / alpha)`, `color(srgb 0 0 0)`); fuzzy_test_valid_color(`hsl(from rebeccapurple h s l / none)`, `color(srgb 0.4 0.2 0.6 / none)`); - fuzzy_test_valid_color(`hsl(from rebeccapurple none s l / alpha)`, `color(srgb none 0.2 0.2)`); - fuzzy_test_valid_color(`hsl(from hsl(120deg 20% 50% / .5) h s none / alpha)`, `color(srgb 0 0 none / 0.5)`); + fuzzy_test_valid_color(`hsl(from rebeccapurple none s l / alpha)`, `color(srgb 0.6 0.2 0.2)`); + fuzzy_test_valid_color(`hsl(from hsl(120deg 20% 50% / .5) h s none / alpha)`, `color(srgb 0 0 0 / 0.5)`); fuzzy_test_valid_color(`hsl(from hsl(120deg 20% 50% / .5) h s l / none)`, `color(srgb 0.4 0.6 0.4 / none)`); - fuzzy_test_valid_color(`hsl(from hsl(120deg 20% 50% / .5) none s l / alpha)`, `color(srgb none 0.4 0.4 / 0.5)`); + fuzzy_test_valid_color(`hsl(from hsl(120deg 20% 50% / .5) none s l / alpha)`, `color(srgb 0.6 0.4 0.4 / 0.5)`); // FIXME: Clarify with spec editors if 'none' should pass through to the constants. fuzzy_test_valid_color(`hsl(from hsl(none none none) h s l)`, `color(srgb 0 0 0)`); fuzzy_test_valid_color(`hsl(from hsl(none none none / none) h s l / alpha)`, `color(srgb 0 0 0 / 0)`); @@ -245,28 +245,28 @@ // Testing valid permutation (types match). fuzzy_test_valid_color(`hwb(from rebeccapurple h b w)`, `color(srgb 0.6 0.4 0.8)`); - fuzzy_test_valid_color(`hwb(from rebeccapurple h alpha w / b)`, `color(srgb 0.8333 0.8333 0.8333 / 0.4)`); - fuzzy_test_valid_color(`hwb(from rebeccapurple h w w / w)`, `color(srgb 0.5 0.2 0.8 / 0.2)`); - fuzzy_test_valid_color(`hwb(from rebeccapurple h alpha alpha / alpha)`, `color(srgb 0.5 0.5 0.5)`); + fuzzy_test_valid_color(`hwb(from rebeccapurple h alpha w / b)`, `color(srgb 0.405 0.01 0.8 / 1)`); + fuzzy_test_valid_color(`hwb(from rebeccapurple h w w / w)`, `color(srgb 0.5 0.2 0.8)`); + fuzzy_test_valid_color(`hwb(from rebeccapurple h alpha alpha / alpha)`, `color(srgb 0.5 0.01 0.99)`); fuzzy_test_valid_color(`hwb(from rgb(20%, 40%, 60%, 80%) h b w)`, `color(srgb 0.4 0.6 0.8 / 0.8)`); - fuzzy_test_valid_color(`hwb(from rgb(20%, 40%, 60%, 80%) h alpha w / b)`, `color(srgb 0.8 0.8 0.8 / 0.4)`); - fuzzy_test_valid_color(`hwb(from rgb(20%, 40%, 60%, 80%) h w w / w)`, `color(srgb 0.2 0.5 0.8 / 0.2)`); - fuzzy_test_valid_color(`hwb(from rgb(20%, 40%, 60%, 80%) h alpha alpha / alpha)`, `color(srgb 0.5 0.5 0.5 / 0.8)`); + fuzzy_test_valid_color(`hwb(from rgb(20%, 40%, 60%, 80%) h alpha w / b)`, `color(srgb 0.01 0.404 0.8)`); + fuzzy_test_valid_color(`hwb(from rgb(20%, 40%, 60%, 80%) h w w / w)`, `color(srgb 0.2 0.5 0.8)`); + fuzzy_test_valid_color(`hwb(from rgb(20%, 40%, 60%, 80%) h alpha alpha / alpha)`, `color(srgb 0.01 0.5 0.99 / 0.8)`); // Testing with calc(). fuzzy_test_valid_color(`hwb(from rebeccapurple calc(h) calc(w) calc(b))`, `color(srgb 0.4 0.2 0.6)`); fuzzy_test_valid_color(`hwb(from rgb(20%, 40%, 60%, 80%) calc(h) calc(w) calc(b) / calc(alpha))`, `color(srgb 0.2 0.4 0.6 / 0.8)`); // Testing with 'none'. - fuzzy_test_valid_color(`hwb(from rebeccapurple none none none)`, `color(srgb none none none)`); - fuzzy_test_valid_color(`hwb(from rebeccapurple none none none / none)`, `color(srgb none none none / none)`); - fuzzy_test_valid_color(`hwb(from rebeccapurple h w none)`, `color(srgb 0.6 0.2 none)`); - fuzzy_test_valid_color(`hwb(from rebeccapurple h w none / alpha)`, `color(srgb 0.6 0.2 none)`); + fuzzy_test_valid_color(`hwb(from rebeccapurple none none none)`, `color(srgb 1 0 0)`); + fuzzy_test_valid_color(`hwb(from rebeccapurple none none none / none)`, `color(srgb 1 0 0 / none)`); + fuzzy_test_valid_color(`hwb(from rebeccapurple h w none)`, `color(srgb 0.6 0.2 1)`); + fuzzy_test_valid_color(`hwb(from rebeccapurple h w none / alpha)`, `color(srgb 0.6 0.2 1)`); fuzzy_test_valid_color(`hwb(from rebeccapurple h w b / none)`, `color(srgb 0.4 0.2 0.6 / none)`); - fuzzy_test_valid_color(`hwb(from rebeccapurple none w b / alpha)`, `color(srgb none 0.2 0.2)`); - fuzzy_test_valid_color(`hwb(from hwb(120deg 20% 50% / .5) h w none / alpha)`, `color(srgb 0.2 1 none / 0.5)`); + fuzzy_test_valid_color(`hwb(from rebeccapurple none w b / alpha)`, `color(srgb 0.6 0.2 0.2)`); + fuzzy_test_valid_color(`hwb(from hwb(120deg 20% 50% / .5) h w none / alpha)`, `color(srgb 0.2 1 0.2 / 0.5)`); fuzzy_test_valid_color(`hwb(from hwb(120deg 20% 50% / .5) h w b / none)`, `color(srgb 0.2 0.5 0.2 / none)`); - fuzzy_test_valid_color(`hwb(from hwb(120deg 20% 50% / .5) none w b / alpha)`, `color(srgb none 0.2 0.2 / 0.5)`); + fuzzy_test_valid_color(`hwb(from hwb(120deg 20% 50% / .5) none w b / alpha)`, `color(srgb 0.5 0.2 0.2 / 0.5)`); // FIXME: Clarify with spec editors if 'none' should pass through to the constants. fuzzy_test_valid_color(`hwb(from hwb(none none none) h w b)`, `color(srgb 1 0 0)`); fuzzy_test_valid_color(`hwb(from hwb(none none none / none) h w b / alpha)`, `color(srgb 1 0 0 / 0)`); @@ -400,7 +400,7 @@ fuzzy_test_valid_color(`oklab(from oklab(0.25 0.2 0.5) calc(l) calc(a) calc(b))`, `oklab(0.25 0.2 0.5)`); fuzzy_test_valid_color(`oklab(from oklab(0.25 0.2 0.5 / 40%) calc(l) calc(a) calc(b) / calc(alpha))`, `oklab(0.25 0.2 0.5 / 0.4)`); fuzzy_test_valid_color(`oklab(from oklab(0.7 0.25 -0.15) calc(l - 0.2) a b)`, `oklab(0.5 0.25 -0.15)`); - fuzzy_test_valid_color(`oklab(from oklab(0.7 0.25 -0.15) l calc(a / 2) calc(b / 3))`, `oklab(0.7 0.125 -0.075)`); + fuzzy_test_valid_color(`oklab(from oklab(0.7 0.25 -0.15) l calc(a / 2) calc(b / 3))`, `oklab(0.7 0.125 -0.05)`); // Testing with 'none'. fuzzy_test_valid_color(`oklab(from oklab(0.25 0.2 0.5) none none none)`, `oklab(none none none)`); From eed9970facc59b7568711989858e3fcbf9ec7065 Mon Sep 17 00:00:00 2001 From: Romain Menke Date: Tue, 19 Mar 2024 10:05:45 +0000 Subject: [PATCH 024/132] Bug 1885756 [wpt PR 45148] - [css-color] test conversion lossiness in relative color syntax, a=testonly Automatic update from web-platform-tests [css-color] test conversion lossiness -- more succinct test -- always expect 16 bits precision -- wpt-commits: 43195dc30e1db0b27e885eb54e426e5363bae6ea, 23152837bb0ba24b9478c3be825db313bcf0cd62, d728fdccd39d127a3953bbf3ba7e324d593335d4 wpt-pr: 45148 --- .../color-computed-relative-color.html | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/testing/web-platform/tests/css/css-color/parsing/color-computed-relative-color.html b/testing/web-platform/tests/css/css-color/parsing/color-computed-relative-color.html index 69fbb70a3909d..53d25e0a55d11 100644 --- a/testing/web-platform/tests/css/css-color/parsing/color-computed-relative-color.html +++ b/testing/web-platform/tests/css/css-color/parsing/color-computed-relative-color.html @@ -744,6 +744,26 @@ fuzzy_test_computed_color(`oklch(from color(srgb 0.25 0.5 0.75) l c h)`, `oklch(0.585502 0.118254 250.546)`, 0.02); // Larger values means larger epsilon. fuzzy_test_computed_color(`color(from oklch(72.322% 0.12403 247.996) srgb r g b)`, `color(srgb 0.382631 0.672756 0.938904)`, 0.001); + // Test that conversion are relatively lossless. + for (const colorSpace of ["xyz-d50", "xyz-d65"]) { + fuzzy_test_computed_color(`color(from rgb(from color(${colorSpace} 0.99 0.88 0.77) r g b) ${colorSpace} x y z)`, `color(${colorSpace} 0.99 0.88 0.77)`, 0.0001); + fuzzy_test_computed_color(`color(from hsl(from color(${colorSpace} 0.99 0.88 0.77) h s l) ${colorSpace} x y z)`, `color(${colorSpace} 0.99 0.88 0.77)`, 0.0001); + fuzzy_test_computed_color(`color(from hwb(from color(${colorSpace} 0.99 0.88 0.77) h w b) ${colorSpace} x y z)`, `color(${colorSpace} 0.99 0.88 0.77)`, 0.0001); + fuzzy_test_computed_color(`color(from lab(from color(${colorSpace} 0.99 0.88 0.77) l a b) ${colorSpace} x y z)`, `color(${colorSpace} 0.99 0.88 0.77)`, 0.0001); + fuzzy_test_computed_color(`color(from lch(from color(${colorSpace} 0.99 0.88 0.77) l c h) ${colorSpace} x y z)`, `color(${colorSpace} 0.99 0.88 0.77)`, 0.0001); + fuzzy_test_computed_color(`color(from oklab(from color(${colorSpace} 0.99 0.88 0.77) l a b) ${colorSpace} x y z)`, `color(${colorSpace} 0.99 0.88 0.77)`, 0.0001); + fuzzy_test_computed_color(`color(from oklch(from color(${colorSpace} 0.99 0.88 0.77) l c h) ${colorSpace} x y z)`, `color(${colorSpace} 0.99 0.88 0.77)`, 0.0001); + fuzzy_test_computed_color(`color(from color(from color(${colorSpace} 0.99 0.88 0.77) srgb r g b) ${colorSpace} x y z)`, `color(${colorSpace} 0.99 0.88 0.77)`, 0.0001); + fuzzy_test_computed_color(`color(from color(from color(${colorSpace} 0.99 0.88 0.77) srgb-linear r g b) ${colorSpace} x y z)`, `color(${colorSpace} 0.99 0.88 0.77)`, 0.0001); + fuzzy_test_computed_color(`color(from color(from color(${colorSpace} 0.99 0.88 0.77) display-p3 r g b) ${colorSpace} x y z)`, `color(${colorSpace} 0.99 0.88 0.77)`, 0.0001); + fuzzy_test_computed_color(`color(from color(from color(${colorSpace} 0.99 0.88 0.77) a98-rgb r g b) ${colorSpace} x y z)`, `color(${colorSpace} 0.99 0.88 0.77)`, 0.0001); + fuzzy_test_computed_color(`color(from color(from color(${colorSpace} 0.99 0.88 0.77) prophoto-rgb r g b) ${colorSpace} x y z)`, `color(${colorSpace} 0.99 0.88 0.77)`, 0.0001); + fuzzy_test_computed_color(`color(from color(from color(${colorSpace} 0.99 0.88 0.77) rec2020 r g b) ${colorSpace} x y z)`, `color(${colorSpace} 0.99 0.88 0.77)`, 0.0001); + fuzzy_test_computed_color(`color(from color(from color(${colorSpace} 0.99 0.88 0.77) xyz x y z) ${colorSpace} x y z)`, `color(${colorSpace} 0.99 0.88 0.77)`, 0.0001); + fuzzy_test_computed_color(`color(from color(from color(${colorSpace} 0.99 0.88 0.77) xyz-d50 x y z) ${colorSpace} x y z)`, `color(${colorSpace} 0.99 0.88 0.77)`, 0.0001); + fuzzy_test_computed_color(`color(from color(from color(${colorSpace} 0.99 0.88 0.77) xyz-d65 x y z) ${colorSpace} x y z)`, `color(${colorSpace} 0.99 0.88 0.77)`, 0.0001); + } + // Spec Examples: https://www.w3.org/TR/css-color-5/#relative-colors // All examples here have multiple stages of calculations so minor disagreements in the values of keyword colors and other constants can compound. // These tests require a wider epsilon of 0.02. From 92e54f3367fc04a11b05c59e8e797d8d1f96ed03 Mon Sep 17 00:00:00 2001 From: moz-wptsync-bot Date: Mon, 18 Mar 2024 14:49:55 +0000 Subject: [PATCH 025/132] Bug 1885756 [wpt PR 45148] - Update wpt metadata, a=testonly wpt-pr: 45148 wpt-type: metadata --- .../color-computed-relative-color.html.ini | 96 +++++++++++++++++++ 1 file changed, 96 insertions(+) diff --git a/testing/web-platform/meta/css/css-color/parsing/color-computed-relative-color.html.ini b/testing/web-platform/meta/css/css-color/parsing/color-computed-relative-color.html.ini index 92564f07ca377..8faa6d63d04c0 100644 --- a/testing/web-platform/meta/css/css-color/parsing/color-computed-relative-color.html.ini +++ b/testing/web-platform/meta/css/css-color/parsing/color-computed-relative-color.html.ini @@ -2935,3 +2935,99 @@ [Property color value 'color(from color-mix(in xyz, color(xyz-d65 0.7 0.5 0.3), color(xyz-d65 0.7 0.5 0.3)) xyz-d65 x y z / alpha)'] expected: FAIL + + [Property color value 'color(from rgb(from color(xyz-d50 0.99 0.88 0.77) r g b) xyz-d50 x y z)'] + expected: FAIL + + [Property color value 'color(from hsl(from color(xyz-d50 0.99 0.88 0.77) h s l) xyz-d50 x y z)'] + expected: FAIL + + [Property color value 'color(from hwb(from color(xyz-d50 0.99 0.88 0.77) h w b) xyz-d50 x y z)'] + expected: FAIL + + [Property color value 'color(from lab(from color(xyz-d50 0.99 0.88 0.77) l a b) xyz-d50 x y z)'] + expected: FAIL + + [Property color value 'color(from lch(from color(xyz-d50 0.99 0.88 0.77) l c h) xyz-d50 x y z)'] + expected: FAIL + + [Property color value 'color(from oklab(from color(xyz-d50 0.99 0.88 0.77) l a b) xyz-d50 x y z)'] + expected: FAIL + + [Property color value 'color(from oklch(from color(xyz-d50 0.99 0.88 0.77) l c h) xyz-d50 x y z)'] + expected: FAIL + + [Property color value 'color(from color(from color(xyz-d50 0.99 0.88 0.77) srgb r g b) xyz-d50 x y z)'] + expected: FAIL + + [Property color value 'color(from color(from color(xyz-d50 0.99 0.88 0.77) srgb-linear r g b) xyz-d50 x y z)'] + expected: FAIL + + [Property color value 'color(from color(from color(xyz-d50 0.99 0.88 0.77) display-p3 r g b) xyz-d50 x y z)'] + expected: FAIL + + [Property color value 'color(from color(from color(xyz-d50 0.99 0.88 0.77) a98-rgb r g b) xyz-d50 x y z)'] + expected: FAIL + + [Property color value 'color(from color(from color(xyz-d50 0.99 0.88 0.77) prophoto-rgb r g b) xyz-d50 x y z)'] + expected: FAIL + + [Property color value 'color(from color(from color(xyz-d50 0.99 0.88 0.77) rec2020 r g b) xyz-d50 x y z)'] + expected: FAIL + + [Property color value 'color(from color(from color(xyz-d50 0.99 0.88 0.77) xyz x y z) xyz-d50 x y z)'] + expected: FAIL + + [Property color value 'color(from color(from color(xyz-d50 0.99 0.88 0.77) xyz-d50 x y z) xyz-d50 x y z)'] + expected: FAIL + + [Property color value 'color(from color(from color(xyz-d50 0.99 0.88 0.77) xyz-d65 x y z) xyz-d50 x y z)'] + expected: FAIL + + [Property color value 'color(from rgb(from color(xyz-d65 0.99 0.88 0.77) r g b) xyz-d65 x y z)'] + expected: FAIL + + [Property color value 'color(from hsl(from color(xyz-d65 0.99 0.88 0.77) h s l) xyz-d65 x y z)'] + expected: FAIL + + [Property color value 'color(from hwb(from color(xyz-d65 0.99 0.88 0.77) h w b) xyz-d65 x y z)'] + expected: FAIL + + [Property color value 'color(from lab(from color(xyz-d65 0.99 0.88 0.77) l a b) xyz-d65 x y z)'] + expected: FAIL + + [Property color value 'color(from lch(from color(xyz-d65 0.99 0.88 0.77) l c h) xyz-d65 x y z)'] + expected: FAIL + + [Property color value 'color(from oklab(from color(xyz-d65 0.99 0.88 0.77) l a b) xyz-d65 x y z)'] + expected: FAIL + + [Property color value 'color(from oklch(from color(xyz-d65 0.99 0.88 0.77) l c h) xyz-d65 x y z)'] + expected: FAIL + + [Property color value 'color(from color(from color(xyz-d65 0.99 0.88 0.77) srgb r g b) xyz-d65 x y z)'] + expected: FAIL + + [Property color value 'color(from color(from color(xyz-d65 0.99 0.88 0.77) srgb-linear r g b) xyz-d65 x y z)'] + expected: FAIL + + [Property color value 'color(from color(from color(xyz-d65 0.99 0.88 0.77) display-p3 r g b) xyz-d65 x y z)'] + expected: FAIL + + [Property color value 'color(from color(from color(xyz-d65 0.99 0.88 0.77) a98-rgb r g b) xyz-d65 x y z)'] + expected: FAIL + + [Property color value 'color(from color(from color(xyz-d65 0.99 0.88 0.77) prophoto-rgb r g b) xyz-d65 x y z)'] + expected: FAIL + + [Property color value 'color(from color(from color(xyz-d65 0.99 0.88 0.77) rec2020 r g b) xyz-d65 x y z)'] + expected: FAIL + + [Property color value 'color(from color(from color(xyz-d65 0.99 0.88 0.77) xyz x y z) xyz-d65 x y z)'] + expected: FAIL + + [Property color value 'color(from color(from color(xyz-d65 0.99 0.88 0.77) xyz-d50 x y z) xyz-d65 x y z)'] + expected: FAIL + + [Property color value 'color(from color(from color(xyz-d65 0.99 0.88 0.77) xyz-d65 x y z) xyz-d65 x y z)'] + expected: FAIL From 4d26a9551a36b0889a12311bc4ae8c021d555c40 Mon Sep 17 00:00:00 2001 From: Romain Menke <11521496+romainmenke@users.noreply.github.com> Date: Tue, 19 Mar 2024 10:05:52 +0000 Subject: [PATCH 026/132] Bug 1885190 [wpt PR 45087] - [css-color] `rgba()` and `hsla()` relative colors are valid, a=testonly Automatic update from web-platform-tests rgba and hsla relative colors are valid (#45087) -- wpt-commits: 825d804e06a2298af14386d6d2f56958f05924b1 wpt-pr: 45087 --- .../parsing/color-invalid-relative-color.html | 12 +- .../parsing/color-valid-relative-color.html | 330 +++++++++--------- 2 files changed, 173 insertions(+), 169 deletions(-) diff --git a/testing/web-platform/tests/css/css-color/parsing/color-invalid-relative-color.html b/testing/web-platform/tests/css/css-color/parsing/color-invalid-relative-color.html index 2cb3a25291725..67390070365ef 100644 --- a/testing/web-platform/tests/css/css-color/parsing/color-invalid-relative-color.html +++ b/testing/web-platform/tests/css/css-color/parsing/color-invalid-relative-color.html @@ -28,9 +28,9 @@ test_invalid_value(`color`, `rgb(from rebeccapurple l g b)`); test_invalid_value(`color`, `rgb(from rebeccapurple h g b)`); - // Testing invalid function name variation (only rgb() is valid, rgba() is invalid) - test_invalid_value(`color`, `rgba(from rebeccapurple r g b)`); - test_invalid_value(`color`, `rgba(from rgb(10%, 20%, 30%, 40%) r g b / alpha)`); + // Testing invalid separator + test_invalid_value(`color`, `rgb(from rebeccapurple, r, g, b)`); + test_invalid_value(`color`, `rgba(from rgb(10%, 20%, 30%, 40%), r, g, b, alpha)`); // Testing with calc(). test_invalid_value(`color`, `rgb(from rebeccapurple calc(r + 1%) g b)`); @@ -47,9 +47,9 @@ test_invalid_value(`color`, `hsl(from rebeccapurple x s l)`); test_invalid_value(`color`, `hsl(from rebeccapurple h g b)`); - // Testing invalid function name variation (only hsl() is valid, hsla() is invalid) - test_invalid_value(`color`, `hsla(from rebeccapurple h s l)`); - test_invalid_value(`color`, `hsla(from rgb(10%, 20%, 30%, 40%) h s l / alpha)`); + // Testing invalid separator + test_invalid_value(`color`, `hsl(from rebeccapurple, h, s, l)`); + test_invalid_value(`color`, `hsla(from rgb(10%, 20%, 30%, 40%), h, s, l, alpha)`); // Testing with calc(). test_invalid_value(`color`, `hsl(from rebeccapurple calc(h + 1deg) s l)`); diff --git a/testing/web-platform/tests/css/css-color/parsing/color-valid-relative-color.html b/testing/web-platform/tests/css/css-color/parsing/color-valid-relative-color.html index 5ff55601ae97d..5c351bca33d10 100644 --- a/testing/web-platform/tests/css/css-color/parsing/color-valid-relative-color.html +++ b/testing/web-platform/tests/css/css-color/parsing/color-valid-relative-color.html @@ -24,185 +24,189 @@ + + + + + + + + + From f45551c13a4f2e6bc90190c57c453f50ea75d793 Mon Sep 17 00:00:00 2001 From: Rune Lillesveen Date: Tue, 19 Mar 2024 10:06:10 +0000 Subject: [PATCH 029/132] Bug 1885896 [wpt PR 45168] - [css-anchor-position] Move cascade tests to wpt, a=testonly Automatic update from web-platform-tests [css-anchor-position] Move cascade tests to wpt Bug: 40281995 Change-Id: I2005af13e704cdcdc2e16d22d6145e1a784eca0b Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5377334 Commit-Queue: Rune Lillesveen Reviewed-by: Anders Hartvoll Ruud Cr-Commit-Position: refs/heads/main@{#1274118} -- wpt-commits: 83a61a2b183e18ad4ab3e8285518e0a69f8e0def wpt-pr: 45168 --- .../position-try-cascade.html | 104 ++++++++++++++++++ .../position-try-initial-transition.html | 39 +++++++ 2 files changed, 143 insertions(+) create mode 100644 testing/web-platform/tests/css/css-anchor-position/position-try-cascade.html create mode 100644 testing/web-platform/tests/css/css-anchor-position/position-try-initial-transition.html diff --git a/testing/web-platform/tests/css/css-anchor-position/position-try-cascade.html b/testing/web-platform/tests/css/css-anchor-position/position-try-cascade.html new file mode 100644 index 0000000000000..c5ee04b3f4f52 --- /dev/null +++ b/testing/web-platform/tests/css/css-anchor-position/position-try-cascade.html @@ -0,0 +1,104 @@ + +CSS Anchor Positioning Test: @position-try and cascade interaction + + + + + + +
+
+
+ + + +
+
+
+ + + + +
+
+
+ + + + +
+
+
+ + + + +
+
+
+ diff --git a/testing/web-platform/tests/css/css-anchor-position/position-try-initial-transition.html b/testing/web-platform/tests/css/css-anchor-position/position-try-initial-transition.html new file mode 100644 index 0000000000000..0e81607ae65bd --- /dev/null +++ b/testing/web-platform/tests/css/css-anchor-position/position-try-initial-transition.html @@ -0,0 +1,39 @@ + +CSS Anchor Positioning Test: Initial @position-try does not trigger a transition + + + +
+
+
+ + From 12096bc060ffcedd011c021e7331f332ca1ab0f0 Mon Sep 17 00:00:00 2001 From: moz-wptsync-bot Date: Mon, 18 Mar 2024 18:08:56 +0000 Subject: [PATCH 030/132] Bug 1885896 [wpt PR 45168] - Update wpt metadata, a=testonly wpt-pr: 45168 wpt-type: metadata --- .../position-try-cascade.html.ini | 15 +++++++++++++++ .../position-try-initial-transition.html.ini | 3 +++ 2 files changed, 18 insertions(+) create mode 100644 testing/web-platform/meta/css/css-anchor-position/position-try-cascade.html.ini create mode 100644 testing/web-platform/meta/css/css-anchor-position/position-try-initial-transition.html.ini diff --git a/testing/web-platform/meta/css/css-anchor-position/position-try-cascade.html.ini b/testing/web-platform/meta/css/css-anchor-position/position-try-cascade.html.ini new file mode 100644 index 0000000000000..5d06d6107cd7e --- /dev/null +++ b/testing/web-platform/meta/css/css-anchor-position/position-try-cascade.html.ini @@ -0,0 +1,15 @@ +[position-try-cascade.html] + [@position-try rule applies] + expected: FAIL + + [@position-try rule wins over inline style] + expected: FAIL + + [@position-try rule does not win over !important] + expected: FAIL + + [@position-try rule does not win over animations] + expected: FAIL + + [@position-try rule does not win over transitions] + expected: FAIL diff --git a/testing/web-platform/meta/css/css-anchor-position/position-try-initial-transition.html.ini b/testing/web-platform/meta/css/css-anchor-position/position-try-initial-transition.html.ini new file mode 100644 index 0000000000000..a54becad422fb --- /dev/null +++ b/testing/web-platform/meta/css/css-anchor-position/position-try-initial-transition.html.ini @@ -0,0 +1,3 @@ +[position-try-initial-transition.html] + [No transition for initial style with @position-try] + expected: FAIL From a959e9b188d3039350b619526c23b8691f619778 Mon Sep 17 00:00:00 2001 From: Garrett Tanzer Date: Tue, 19 Mar 2024 10:06:16 +0000 Subject: [PATCH 031/132] Bug 1880384 [wpt PR 44597] - Fenced frames: Revoke network access for partition nonce [1/N], a=testonly Automatic update from web-platform-tests Fenced frames: Revoke network access for partition nonce [1/N] This CL creates an IPC on NetworkContext that is called from window.fence.disableUntrustedNetwork to register a given partition nonce in a new data structure in the NetworkContext, which is later used to deny network access. Future CLs will make checks against the data structure more robust (e.g., cancel redirects in addition to just failing to start requests), actually delete nonces that are no longer needed (when the FencedFrameProperties is destructed), and restore the data structure upon network service crash/restart. This CL temporarily moves WPT that exercise window.fence.disableUntrustedNetwork from external to internal WPT, because we need to be able to use remote context (which relies on network access) even after network is revoked. In the medium term we will do this with a new testdriver API, but adding a testdriver API requires a process that we don't want to block this CL on. See this implementation design doc for more context: https://docs.google.com/document/d/1JnwuFl84P5jR_9PkpM68WdCD63UerKxWm-v4XXj2sRc/edit#heading=h.bat9awopsp53 Bug: 1515599 Change-Id: I7ae4813832cecf68cbbd30d03e80ca290244b0ad Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5251548 Commit-Queue: Garrett Tanzer Reviewed-by: mmenke Reviewed-by: Arthur Sonzogni Reviewed-by: Andrew Verge Cr-Commit-Position: refs/heads/main@{#1274129} -- wpt-commits: b9154e5849972d56939359b876bc72e794eebca7 wpt-pr: 44597 --- .../content-shared-storage-get.https.html | 141 ------------------ .../disable-untrusted-network.https.html | 49 ------ .../resources/unreached.https.html | 15 -- ...nced-frame-in-iframe-navigation.https.html | 75 ---------- ...-nested-fenced-frame-navigation.https.html | 50 ------- .../fenced-frame/revoke-popup.https.html | 47 ------ .../revoke-unfenced-top-navigation.https.html | 47 ------ 7 files changed, 424 deletions(-) delete mode 100644 testing/web-platform/tests/fenced-frame/content-shared-storage-get.https.html delete mode 100644 testing/web-platform/tests/fenced-frame/disable-untrusted-network.https.html delete mode 100644 testing/web-platform/tests/fenced-frame/resources/unreached.https.html delete mode 100644 testing/web-platform/tests/fenced-frame/revoke-nested-fenced-frame-in-iframe-navigation.https.html delete mode 100644 testing/web-platform/tests/fenced-frame/revoke-nested-fenced-frame-navigation.https.html delete mode 100644 testing/web-platform/tests/fenced-frame/revoke-popup.https.html delete mode 100644 testing/web-platform/tests/fenced-frame/revoke-unfenced-top-navigation.https.html diff --git a/testing/web-platform/tests/fenced-frame/content-shared-storage-get.https.html b/testing/web-platform/tests/fenced-frame/content-shared-storage-get.https.html deleted file mode 100644 index 8afa8de54160e..0000000000000 --- a/testing/web-platform/tests/fenced-frame/content-shared-storage-get.https.html +++ /dev/null @@ -1,141 +0,0 @@ - -Test sharedStorage.get() in a fenced frame with network revocation. - - - - - - - - - - - diff --git a/testing/web-platform/tests/fenced-frame/disable-untrusted-network.https.html b/testing/web-platform/tests/fenced-frame/disable-untrusted-network.https.html deleted file mode 100644 index 726728e489941..0000000000000 --- a/testing/web-platform/tests/fenced-frame/disable-untrusted-network.https.html +++ /dev/null @@ -1,49 +0,0 @@ - -Test window.fence.disableUntrustedNetwork availability. - - - - - - - - - diff --git a/testing/web-platform/tests/fenced-frame/resources/unreached.https.html b/testing/web-platform/tests/fenced-frame/resources/unreached.https.html deleted file mode 100644 index bd389ec4fbd5a..0000000000000 --- a/testing/web-platform/tests/fenced-frame/resources/unreached.https.html +++ /dev/null @@ -1,15 +0,0 @@ - -File used to assert that navigations do not succeed. - - - - - - - - - diff --git a/testing/web-platform/tests/fenced-frame/revoke-nested-fenced-frame-in-iframe-navigation.https.html b/testing/web-platform/tests/fenced-frame/revoke-nested-fenced-frame-in-iframe-navigation.https.html deleted file mode 100644 index 3a44c3c2f46ea..0000000000000 --- a/testing/web-platform/tests/fenced-frame/revoke-nested-fenced-frame-in-iframe-navigation.https.html +++ /dev/null @@ -1,75 +0,0 @@ - -Test that window.fence.disableUntrustedNetwork disables - embedder-initiated navigation of FF -> IF -> FF. - - - - - - - - - - diff --git a/testing/web-platform/tests/fenced-frame/revoke-nested-fenced-frame-navigation.https.html b/testing/web-platform/tests/fenced-frame/revoke-nested-fenced-frame-navigation.https.html deleted file mode 100644 index b80350a588891..0000000000000 --- a/testing/web-platform/tests/fenced-frame/revoke-nested-fenced-frame-navigation.https.html +++ /dev/null @@ -1,50 +0,0 @@ - -Test that window.fence.disableUntrustedNetwork disables - embedder-initiated navigation of nested fenced frames. - - - - - - - - - - diff --git a/testing/web-platform/tests/fenced-frame/revoke-popup.https.html b/testing/web-platform/tests/fenced-frame/revoke-popup.https.html deleted file mode 100644 index e4a2bb26ad2f7..0000000000000 --- a/testing/web-platform/tests/fenced-frame/revoke-popup.https.html +++ /dev/null @@ -1,47 +0,0 @@ - -Test that window.fence.disableUntrustedNetwork disables - popup navigations. - - - - - - - - - - - - - diff --git a/testing/web-platform/tests/fenced-frame/revoke-unfenced-top-navigation.https.html b/testing/web-platform/tests/fenced-frame/revoke-unfenced-top-navigation.https.html deleted file mode 100644 index 873404768f0cd..0000000000000 --- a/testing/web-platform/tests/fenced-frame/revoke-unfenced-top-navigation.https.html +++ /dev/null @@ -1,47 +0,0 @@ - -Test that window.fence.disableUntrustedNetwork disables - _unfencedTop navigations. - - - - - - - - - - - - - From e66ea1658a2d02c2cd5d5a2f6a46da0911c92c53 Mon Sep 17 00:00:00 2001 From: Stephen Chenney Date: Tue, 19 Mar 2024 10:06:21 +0000 Subject: [PATCH 032/132] Bug 1885658 [wpt PR 45139] - Use correct fallback colors in highlight painting, a=testonly MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Automatic update from web-platform-tests Use correct fallback colors in highlight painting Previously, the fallback colors for highlight styles were computed once per highlight overlay layer, regardless of whether highlights overlapped or not. As a result, a spelling error in one part of a text run would paint using colors from a highlight elsewhere on the run. Fix this issue by storing styles per highlight part, rather than layer, and updating the styles as the parts are computed. Text decoration colors are also stored because they are not part of TextPaintStyle. Fixed: 41497157 Change-Id: I295df4bcd82f8a5e886aecb3b35049d7d6645ce0 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5368297 Reviewed-by: Fredrik Söderquist Commit-Queue: Stephen Chenney Cr-Commit-Position: refs/heads/main@{#1274154} -- wpt-commits: f8c8a8e750140a9b719e973b3fd297757def1466 wpt-pr: 45139 --- .../custom-highlight-painting-019-ref.html | 13 +++++++ .../custom-highlight-painting-019.html | 39 +++++++++++++++++++ 2 files changed, 52 insertions(+) create mode 100644 testing/web-platform/tests/css/css-highlight-api/painting/custom-highlight-painting-019-ref.html create mode 100644 testing/web-platform/tests/css/css-highlight-api/painting/custom-highlight-painting-019.html diff --git a/testing/web-platform/tests/css/css-highlight-api/painting/custom-highlight-painting-019-ref.html b/testing/web-platform/tests/css/css-highlight-api/painting/custom-highlight-painting-019-ref.html new file mode 100644 index 0000000000000..22662336845f0 --- /dev/null +++ b/testing/web-platform/tests/css/css-highlight-api/painting/custom-highlight-painting-019-ref.html @@ -0,0 +1,13 @@ + + +CSS Highlight API Reference: Non-overlapping highlight colors + +This part should be blue and this part should be black diff --git a/testing/web-platform/tests/css/css-highlight-api/painting/custom-highlight-painting-019.html b/testing/web-platform/tests/css/css-highlight-api/painting/custom-highlight-painting-019.html new file mode 100644 index 0000000000000..8c5ccbf020c86 --- /dev/null +++ b/testing/web-platform/tests/css/css-highlight-api/painting/custom-highlight-painting-019.html @@ -0,0 +1,39 @@ + + +CSS Highlight API Test: Non-overlapping highlight colors + + + + + + +This part should be blue and this part should be black + \ No newline at end of file From c486c59780b49089fabc302a66b32f3bd1bba72f Mon Sep 17 00:00:00 2001 From: moz-wptsync-bot Date: Mon, 18 Mar 2024 18:02:14 +0000 Subject: [PATCH 033/132] Bug 1885658 [wpt PR 45139] - Update wpt metadata, a=testonly wpt-pr: 45139 wpt-type: metadata --- .../painting/custom-highlight-painting-019.html.ini | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 testing/web-platform/meta/css/css-highlight-api/painting/custom-highlight-painting-019.html.ini diff --git a/testing/web-platform/meta/css/css-highlight-api/painting/custom-highlight-painting-019.html.ini b/testing/web-platform/meta/css/css-highlight-api/painting/custom-highlight-painting-019.html.ini new file mode 100644 index 0000000000000..dcf600c7ae6f9 --- /dev/null +++ b/testing/web-platform/meta/css/css-highlight-api/painting/custom-highlight-painting-019.html.ini @@ -0,0 +1,2 @@ +[custom-highlight-painting-019.html] + expected: FAIL From f7389f1ffe35e6301cd3e52833f5638ea92ac2b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=A1s=20Pe=C3=B1a?= Date: Tue, 19 Mar 2024 10:06:28 +0000 Subject: [PATCH 034/132] Bug 1885390 [wpt PR 45107] - [FedCM] Enable CORS in ID assertion endpoint, a=testonly MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Automatic update from web-platform-tests [FedCM] Enable CORS in ID assertion endpoint I2S: https://groups.google.com/a/chromium.org/g/blink-dev/c/gYoQJsaiD9E Bug: 40284123 Change-Id: I61989f1e7a7578c2f59d87815e3ec2b51b7fc5be Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5370086 Reviewed-by: Nasko Oskov Reviewed-by: Christian Dullweber Reviewed-by: Mathias Bynens Commit-Queue: Nicolás Peña Cr-Commit-Position: refs/heads/main@{#1274203} -- wpt-commits: ee52bda38ec54dd2b716db81963cae68d7f89c80 wpt-pr: 45107 --- .../support/fedcm/continue_on.py | 2 ++ .../support/fedcm/request-params-check.py | 11 ++++++++--- .../support/fedcm/token_with_account_id.py | 2 ++ .../support/fedcm/token_with_auto_selected_flag.py | 2 ++ .../support/fedcm/token_with_http_error.py | 2 ++ .../support/fedcm/token_with_rp_mode.py | 2 ++ 6 files changed, 18 insertions(+), 3 deletions(-) diff --git a/testing/web-platform/tests/credential-management/support/fedcm/continue_on.py b/testing/web-platform/tests/credential-management/support/fedcm/continue_on.py index 42b4f3f8fdcbf..6a1a9900d756c 100644 --- a/testing/web-platform/tests/credential-management/support/fedcm/continue_on.py +++ b/testing/web-platform/tests/credential-management/support/fedcm/continue_on.py @@ -7,6 +7,8 @@ def main(request, response): return request_error response.headers.set(b"Content-Type", b"application/json") + response.headers.set(b"Access-Control-Allow-Origin", request.headers.get(b"Origin")) + response.headers.set(b"Access-Control-Allow-Credentials", "true") return "{\"continue_on\": \"resolve.html\"}" diff --git a/testing/web-platform/tests/credential-management/support/fedcm/request-params-check.py b/testing/web-platform/tests/credential-management/support/fedcm/request-params-check.py index 6c610e6e201dd..08c28e32b7942 100644 --- a/testing/web-platform/tests/credential-management/support/fedcm/request-params-check.py +++ b/testing/web-platform/tests/credential-management/support/fedcm/request-params-check.py @@ -63,12 +63,16 @@ def accountsCheck(request): return (539, [], "Should not have Origin") def tokenCheck(request): - common_error = commonCheck(request) + common_error = commonCheck(request, b"cors") if (common_error): return common_error common_credentialed_error = commonCredentialedRequestCheck(request) if (common_credentialed_error): return common_credentialed_error + # The value of the Sec-Fetch-Site header can vary depending on the IdP origin + # but it should not be 'none'. + if request.headers.get(b"Sec-Fetch-Site") == b"none": + return (538, [], "Wrong Sec-Fetch-Site header") post_error = commonPostCheck(request) if (post_error): @@ -86,8 +90,9 @@ def revokeCheck(request): if (common_error): return common_error - if request.cookies.get(b"cookie") != b"1": - return (537, [], "Missing cookie") + common_credentialed_error = commonCredentialedRequestCheck(request) + if (common_credentialed_error): + return common_credentialed_error # The value of the Sec-Fetch-Site header can vary depending on the IdP origin # but it should not be 'none'. if request.headers.get(b"Sec-Fetch-Site") == b"none": diff --git a/testing/web-platform/tests/credential-management/support/fedcm/token_with_account_id.py b/testing/web-platform/tests/credential-management/support/fedcm/token_with_account_id.py index 52fb20184bc08..04e7b5b56b9e5 100644 --- a/testing/web-platform/tests/credential-management/support/fedcm/token_with_account_id.py +++ b/testing/web-platform/tests/credential-management/support/fedcm/token_with_account_id.py @@ -7,6 +7,8 @@ def main(request, response): return request_error response.headers.set(b"Content-Type", b"application/json") + response.headers.set(b"Access-Control-Allow-Origin", request.headers.get(b"Origin")) + response.headers.set(b"Access-Control-Allow-Credentials", "true") account_id = request.POST.get(b"account_id") return "{\"token\": \"account_id=" + account_id.decode("utf-8") + "\"}" diff --git a/testing/web-platform/tests/credential-management/support/fedcm/token_with_auto_selected_flag.py b/testing/web-platform/tests/credential-management/support/fedcm/token_with_auto_selected_flag.py index 93ccf3ee7e227..3e011ce788c88 100644 --- a/testing/web-platform/tests/credential-management/support/fedcm/token_with_auto_selected_flag.py +++ b/testing/web-platform/tests/credential-management/support/fedcm/token_with_auto_selected_flag.py @@ -7,6 +7,8 @@ def main(request, response): return request_error response.headers.set(b"Content-Type", b"application/json") + response.headers.set(b"Access-Control-Allow-Origin", request.headers.get(b"Origin")) + response.headers.set(b"Access-Control-Allow-Credentials", "true") is_auto_selected = request.POST.get(b"is_auto_selected") return "{\"token\": \"is_auto_selected=" + is_auto_selected.decode("utf-8") + "\"}" diff --git a/testing/web-platform/tests/credential-management/support/fedcm/token_with_http_error.py b/testing/web-platform/tests/credential-management/support/fedcm/token_with_http_error.py index c8d95ab63d7eb..05b9945ba80da 100644 --- a/testing/web-platform/tests/credential-management/support/fedcm/token_with_http_error.py +++ b/testing/web-platform/tests/credential-management/support/fedcm/token_with_http_error.py @@ -7,6 +7,8 @@ def main(request, response): return request_error response.headers.set(b"Content-Type", b"application/json") + response.headers.set(b"Access-Control-Allow-Origin", request.headers.get(b"Origin")) + response.headers.set(b"Access-Control-Allow-Credentials", "true") response.status = (403, b"Forbidden") return "{\"token\": \"token\"}" diff --git a/testing/web-platform/tests/credential-management/support/fedcm/token_with_rp_mode.py b/testing/web-platform/tests/credential-management/support/fedcm/token_with_rp_mode.py index 515736416f49c..add634c99bb95 100644 --- a/testing/web-platform/tests/credential-management/support/fedcm/token_with_rp_mode.py +++ b/testing/web-platform/tests/credential-management/support/fedcm/token_with_rp_mode.py @@ -7,6 +7,8 @@ def main(request, response): return request_error response.headers.set(b"Content-Type", b"application/json") + response.headers.set(b"Access-Control-Allow-Origin", request.headers.get(b"Origin")) + response.headers.set(b"Access-Control-Allow-Credentials", "true") rp_mode = request.POST.get(b"mode") return "{\"token\": \"mode=" + rp_mode.decode("utf-8") + "\"}" From 088e99cc3c8f94f9a32ea8874eefacb4a7ab4de6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nathan=20LaPr=C3=A9?= Date: Tue, 19 Mar 2024 10:06:33 +0000 Subject: [PATCH 035/132] Bug 1884829 [wpt PR 45032] - Add link, clarifying justification for orphaned role tests, a=testonly Automatic update from web-platform-tests Add link, clarifying justification for orphaned role tests (#45032) This commit adds comments explaining the purpose of and justification for the orphaned role tests in various files. This comment includes a link to the relevant piece of the CORE-AAM specification. Co-authored-by: Nathan LaPre -- wpt-commits: 4efaaf80055a4b50a7fef1faccbcaf7f203d83d9 wpt-pr: 45032 --- testing/web-platform/tests/wai-aria/role/grid-roles.html | 6 ++++++ testing/web-platform/tests/wai-aria/role/list-roles.html | 6 ++++++ .../web-platform/tests/wai-aria/role/listbox-roles.html | 6 ++++++ testing/web-platform/tests/wai-aria/role/menu-roles.html | 6 ++++++ testing/web-platform/tests/wai-aria/role/tab-roles.html | 7 ++++++- testing/web-platform/tests/wai-aria/role/tree-roles.html | 6 ++++++ 6 files changed, 36 insertions(+), 1 deletion(-) diff --git a/testing/web-platform/tests/wai-aria/role/grid-roles.html b/testing/web-platform/tests/wai-aria/role/grid-roles.html index c40771ba9f2e6..2ca3705cf01a6 100644 --- a/testing/web-platform/tests/wai-aria/role/grid-roles.html +++ b/testing/web-platform/tests/wai-aria/role/grid-roles.html @@ -43,6 +43,12 @@
+ x x
x
diff --git a/testing/web-platform/tests/wai-aria/role/list-roles.html b/testing/web-platform/tests/wai-aria/role/list-roles.html index 71c672c60132c..7917263f87cfd 100644 --- a/testing/web-platform/tests/wai-aria/role/list-roles.html +++ b/testing/web-platform/tests/wai-aria/role/list-roles.html @@ -18,6 +18,12 @@
x
+
x

x

diff --git a/testing/web-platform/tests/wai-aria/role/listbox-roles.html b/testing/web-platform/tests/wai-aria/role/listbox-roles.html index 50208229278d4..3d26f04d51a34 100644 --- a/testing/web-platform/tests/wai-aria/role/listbox-roles.html +++ b/testing/web-platform/tests/wai-aria/role/listbox-roles.html @@ -31,6 +31,12 @@ + diff --git a/testing/web-platform/tests/wai-aria/role/menu-roles.html b/testing/web-platform/tests/wai-aria/role/menu-roles.html index 4af4d8d2ff02c..15b8ddc2e87fa 100644 --- a/testing/web-platform/tests/wai-aria/role/menu-roles.html +++ b/testing/web-platform/tests/wai-aria/role/menu-roles.html @@ -55,6 +55,12 @@ + diff --git a/testing/web-platform/tests/wai-aria/role/tab-roles.html b/testing/web-platform/tests/wai-aria/role/tab-roles.html index e3d14741c8451..fafbbf95fbcb1 100644 --- a/testing/web-platform/tests/wai-aria/role/tab-roles.html +++ b/testing/web-platform/tests/wai-aria/role/tab-roles.html @@ -82,7 +82,12 @@
Tab one's stuff
Tab two's stuff
- + x diff --git a/testing/web-platform/tests/wai-aria/role/tree-roles.html b/testing/web-platform/tests/wai-aria/role/tree-roles.html index eb1084040deb6..5d179fbcbf281 100644 --- a/testing/web-platform/tests/wai-aria/role/tree-roles.html +++ b/testing/web-platform/tests/wai-aria/role/tree-roles.html @@ -102,6 +102,12 @@ + From 30ece9f6dd7732b663f018689a3e9a416c23b7db Mon Sep 17 00:00:00 2001 From: Rune Lillesveen Date: Tue, 19 Mar 2024 10:06:37 +0000 Subject: [PATCH 036/132] Bug 1885873 [wpt PR 45163] - [css-anchor-position] Allowed properties in @position-try, a=testonly Automatic update from web-platform-tests [css-anchor-position] Allowed properties in @position-try Align with currently listed properties in the specification Bug: 329584105 Change-Id: I7f82e16a5412b04b09b497480ec223cb6af39044 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5376491 Reviewed-by: Anders Hartvoll Ruud Commit-Queue: Rune Lillesveen Cr-Commit-Position: refs/heads/main@{#1274222} -- wpt-commits: 2b057d90e32114618d004c5a8c6eff351b8a4fbd wpt-pr: 45163 --- .../at-position-try-allowed-declarations.html | 12 ++++++++---- .../at-position-try-cssom.html | 15 ++++++++++----- 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/testing/web-platform/tests/css/css-anchor-position/at-position-try-allowed-declarations.html b/testing/web-platform/tests/css/css-anchor-position/at-position-try-allowed-declarations.html index 622e9827b449e..5586000e7630b 100644 --- a/testing/web-platform/tests/css/css-anchor-position/at-position-try-allowed-declarations.html +++ b/testing/web-platform/tests/css/css-anchor-position/at-position-try-allowed-declarations.html @@ -74,12 +74,12 @@ test_allowed_declaration('max-inline-size'); // Box alignment properties are allowed -test_allowed_declaration('justify-content', 'normal'); -test_allowed_declaration('align-content', 'normal'); -test_allowed_declaration('justify-items', 'normal'); -test_allowed_declaration('align-items', 'normal'); test_allowed_declaration('justify-self', 'normal'); test_allowed_declaration('align-self', 'normal'); +test_allowed_declaration('place-self', 'normal'); + +// The 'position-anchor' property is allowed +test_allowed_declaration('position-anchor', '--anchor'); // Custom properties are disallowed test_disallowed_declaration('--custom'); @@ -91,6 +91,10 @@ test_disallowed_declaration('display'); test_disallowed_declaration('position'); test_disallowed_declaration('float'); +test_disallowed_declaration('justify-content', 'normal'); +test_disallowed_declaration('align-content', 'normal'); +test_disallowed_declaration('justify-items', 'normal'); +test_disallowed_declaration('align-items', 'normal'); // 'revert' and 'revert-layer' are disallowed test_disallowed_declaration('top', 'revert'); diff --git a/testing/web-platform/tests/css/css-anchor-position/at-position-try-cssom.html b/testing/web-platform/tests/css/css-anchor-position/at-position-try-cssom.html index dc248f4e511e6..91172c5185313 100644 --- a/testing/web-platform/tests/css/css-anchor-position/at-position-try-cssom.html +++ b/testing/web-platform/tests/css/css-anchor-position/at-position-try-cssom.html @@ -6,7 +6,7 @@
-
+
From 6fee792d6321495a8a1c37c19be1d2356ba81857 Mon Sep 17 00:00:00 2001 From: moz-wptsync-bot Date: Mon, 18 Mar 2024 19:35:50 +0000 Subject: [PATCH 037/132] Bug 1885873 [wpt PR 45163] - Update wpt metadata, a=testonly wpt-pr: 45163 wpt-type: metadata --- ...-position-try-allowed-declarations.html.ini | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/testing/web-platform/meta/css/css-anchor-position/at-position-try-allowed-declarations.html.ini b/testing/web-platform/meta/css/css-anchor-position/at-position-try-allowed-declarations.html.ini index a174f58fe4b4a..32a1227352adc 100644 --- a/testing/web-platform/meta/css/css-anchor-position/at-position-try-allowed-declarations.html.ini +++ b/testing/web-platform/meta/css/css-anchor-position/at-position-try-allowed-declarations.html.ini @@ -160,3 +160,21 @@ [inset: 1px !important is disallowed in @position-try] expected: FAIL + + [place-self: normal is allowed in @position-try] + expected: FAIL + + [position-anchor: --anchor is allowed in @position-try] + expected: FAIL + + [justify-content: normal is disallowed in @position-try] + expected: FAIL + + [align-content: normal is disallowed in @position-try] + expected: FAIL + + [justify-items: normal is disallowed in @position-try] + expected: FAIL + + [align-items: normal is disallowed in @position-try] + expected: FAIL From d2ca320088480efbe00882055f1c11a75c1ef955 Mon Sep 17 00:00:00 2001 From: Kevin Ellis Date: Tue, 19 Mar 2024 10:06:44 +0000 Subject: [PATCH 038/132] Bug 1885558 [wpt PR 45129] - Port flaky animations/responsive tests to WPT, a=testonly Automatic update from web-platform-tests Port flaky animations/responsive tests to WPT This patch ports 3 tests that were marked as flaky on Mac13 debug to WPT. Eventually all non-WPT tests not depending on Chrome specific behavior should be ported. Simply prioritizing based on entries in TestExpectations. What this set of tests has in common is that they all test responsiveness of an animation with neutral keyframes (based on underlying value) to style changes. One is a ref-test and the remaining two are computed style tests. Bug: 329062956 Change-Id: I730e2defb613a831d50edf8a4868ab3fa218f73f Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5374664 Reviewed-by: Mustaq Ahmed Commit-Queue: Kevin Ellis Cr-Commit-Position: refs/heads/main@{#1274234} -- wpt-commits: 6329909fa6536be3b731a0253cea18db14269c5b wpt-pr: 45129 --- .../background-position-responsive.html | 53 +++++++++++++++ .../responsive/box-shadow-responsive.html | 61 +++++++++++++++++ .../responsive/neutral-keyframe-ref.html | 16 +++++ .../responsive/neutral-keyframe.html | 41 ++++++++++++ .../responsive/responsive-test.js | 65 +++++++++++++++++++ 5 files changed, 236 insertions(+) create mode 100644 testing/web-platform/tests/web-animations/responsive/background-position-responsive.html create mode 100644 testing/web-platform/tests/web-animations/responsive/box-shadow-responsive.html create mode 100644 testing/web-platform/tests/web-animations/responsive/neutral-keyframe-ref.html create mode 100644 testing/web-platform/tests/web-animations/responsive/neutral-keyframe.html create mode 100644 testing/web-platform/tests/web-animations/responsive/responsive-test.js diff --git a/testing/web-platform/tests/web-animations/responsive/background-position-responsive.html b/testing/web-platform/tests/web-animations/responsive/background-position-responsive.html new file mode 100644 index 0000000000000..7b1a6cd4dbfe0 --- /dev/null +++ b/testing/web-platform/tests/web-animations/responsive/background-position-responsive.html @@ -0,0 +1,53 @@ + + + + + Animation with neutral keyframe is responsive to change in underlying style + + + + + + + diff --git a/testing/web-platform/tests/web-animations/responsive/box-shadow-responsive.html b/testing/web-platform/tests/web-animations/responsive/box-shadow-responsive.html new file mode 100644 index 0000000000000..4f5325dca6d5b --- /dev/null +++ b/testing/web-platform/tests/web-animations/responsive/box-shadow-responsive.html @@ -0,0 +1,61 @@ + + + + + Animation with neutral keyframe is responsive to change in underlying style + + + + + + + diff --git a/testing/web-platform/tests/web-animations/responsive/neutral-keyframe-ref.html b/testing/web-platform/tests/web-animations/responsive/neutral-keyframe-ref.html new file mode 100644 index 0000000000000..3893330fb969b --- /dev/null +++ b/testing/web-platform/tests/web-animations/responsive/neutral-keyframe-ref.html @@ -0,0 +1,16 @@ + + + + + + +
+ + diff --git a/testing/web-platform/tests/web-animations/responsive/neutral-keyframe.html b/testing/web-platform/tests/web-animations/responsive/neutral-keyframe.html new file mode 100644 index 0000000000000..813aa7c04c5c2 --- /dev/null +++ b/testing/web-platform/tests/web-animations/responsive/neutral-keyframe.html @@ -0,0 +1,41 @@ + + + + + + Animation with neutral keyframe is responsive to change in underlying style + + + + + + + +
+ + + diff --git a/testing/web-platform/tests/web-animations/responsive/responsive-test.js b/testing/web-platform/tests/web-animations/responsive/responsive-test.js new file mode 100644 index 0000000000000..feca53259cf4b --- /dev/null +++ b/testing/web-platform/tests/web-animations/responsive/responsive-test.js @@ -0,0 +1,65 @@ +class ResponsiveTest { + constructor(target, property, keyframes) { + this.property = property; + this.target = target; + this.duration = 1000; + this.anim = target.animate(keyframes, this.duration); + this.anim.pause(); + } + + get ready() { + return new Promise(resolve => { + this.anim.ready.then(resolve); + }); + } + + set underlyingValue(value) { + this.target.style[this.property] = value; + } + + set inheritedValue(value) { + this.target.parentElement.style[this.property] = value; + } + + // The testCases are of the form: + // [{at: , is: }, ...] + assertResponsive(testCases) { + for (let i = 0; i < testCases.length; i++) { + const testCase = testCases[i]; + this.anim.currentTime = this.duration * testCase.at; + assert_equals(getComputedStyle(this.target)[this.property], testCase.is, + `${this.property} at ${testCase.at}`); + } + } +} + +// Creates a test that allows setting the underlying style of the target +// element or its parent. +// Options are of the form: +// property: required property in camelcase form as used in the +// web animation API. +// from: optional starting keyframe as a string. +// to: optional ending keyframe as a string. +function createResponsiveTest(test, options) { + const parent = document.createElement('div'); + const target = document.createElement('div'); + document.body.appendChild(parent); + parent.appendChild(target); + const property = options.property; + const keyframes = []; + const createKeyframe = (value) => { + const keyframe = {}; + keyframe[property] = value; + return keyframe; + } + if (options.from) { + keyframes.push(createKeyframe(options.from)); + } + if (options.to) { + keyframes.push(createKeyframe(options.to)); + } + test.add_cleanup(() => { + parent.remove(); + }); + return new ResponsiveTest(target, property, keyframes); +} From 0acc936da0d17b3e4cd9d6865fd60e2ae05822df Mon Sep 17 00:00:00 2001 From: moz-wptsync-bot Date: Mon, 18 Mar 2024 19:39:54 +0000 Subject: [PATCH 039/132] Bug 1885558 [wpt PR 45129] - Update wpt metadata, a=testonly wpt-pr: 45129 wpt-type: metadata --- .../responsive/background-position-responsive.html.ini | 3 +++ .../responsive/box-shadow-responsive.html.ini | 6 ++++++ 2 files changed, 9 insertions(+) create mode 100644 testing/web-platform/meta/web-animations/responsive/background-position-responsive.html.ini create mode 100644 testing/web-platform/meta/web-animations/responsive/box-shadow-responsive.html.ini diff --git a/testing/web-platform/meta/web-animations/responsive/background-position-responsive.html.ini b/testing/web-platform/meta/web-animations/responsive/background-position-responsive.html.ini new file mode 100644 index 0000000000000..88450d0f9fdde --- /dev/null +++ b/testing/web-platform/meta/web-animations/responsive/background-position-responsive.html.ini @@ -0,0 +1,3 @@ +[background-position-responsive.html] + [Animating from a neutral keyframe when the underlying style is inherited from the parent] + expected: FAIL diff --git a/testing/web-platform/meta/web-animations/responsive/box-shadow-responsive.html.ini b/testing/web-platform/meta/web-animations/responsive/box-shadow-responsive.html.ini new file mode 100644 index 0000000000000..7dc631a4fe971 --- /dev/null +++ b/testing/web-platform/meta/web-animations/responsive/box-shadow-responsive.html.ini @@ -0,0 +1,6 @@ +[box-shadow-responsive.html] + [Animating to inherit responsive to change in style] + expected: FAIL + + [Animating from inherit responsive to change in style] + expected: FAIL From da4b7d65fcad90d7e80e269a8ed29b224efe29d7 Mon Sep 17 00:00:00 2001 From: Mason Freed Date: Tue, 19 Mar 2024 10:06:51 +0000 Subject: [PATCH 040/132] Bug 1885689 [wpt PR 45142] - Rename serializable to shadowrootserializable, a=testonly Automatic update from web-platform-tests Rename serializable to shadowrootserializable See the conversation here: https://github.com/whatwg/html/pull/10139 But the TL;DR is that the `