diff --git a/tests/wpt/meta/FileAPI/blob/Blob-newobject.any.js.ini b/tests/wpt/meta/FileAPI/blob/Blob-newobject.any.js.ini new file mode 100644 index 00000000000..d180ea9a78b --- /dev/null +++ b/tests/wpt/meta/FileAPI/blob/Blob-newobject.any.js.ini @@ -0,0 +1,9 @@ +[Blob-newobject.any.serviceworker.html] + expected: ERROR + +[Blob-newobject.any.sharedworker.html] + expected: ERROR + +[Blob-newobject.any.html] + +[Blob-newobject.any.worker.html] diff --git a/tests/wpt/meta/IndexedDB/transaction-deactivation-timing.any.js.ini b/tests/wpt/meta/IndexedDB/transaction-deactivation-timing.any.js.ini index 3bb3235f4b5..7e35d96fb64 100644 --- a/tests/wpt/meta/IndexedDB/transaction-deactivation-timing.any.js.ini +++ b/tests/wpt/meta/IndexedDB/transaction-deactivation-timing.any.js.ini @@ -16,6 +16,12 @@ [Deactivation of new transactions happens at end of invocation] expected: FAIL + [New transactions are deactivated before next task] + expected: FAIL + + [New transactions from microtask are deactivated before next task] + expected: FAIL + [transaction-deactivation-timing.any.sharedworker.html] expected: ERROR diff --git a/tests/wpt/meta/MANIFEST.json b/tests/wpt/meta/MANIFEST.json index 22c5789da4c..ccdb22403c3 100644 --- a/tests/wpt/meta/MANIFEST.json +++ b/tests/wpt/meta/MANIFEST.json @@ -5877,6 +5877,13 @@ null, {} ] + ], + "transform-scroll-child-tweak-crash.html": [ + "4c46b6dab4f4d3584cd4a60e579acb960cd0a563", + [ + null, + {} + ] ] }, "css-transitions": { @@ -6063,6 +6070,13 @@ {} ] ], + "chrome-typed-arithmetic-crash.html": [ + "9aa01db31fa81f35b99bf11bdbece9c66d761a97", + [ + null, + {} + ] + ], "crashtests": { "chrome-405422528-crash.html": [ "fcf7407b5f754aa236ddd053f67fb3a15fc6e1d9", @@ -6182,7 +6196,7 @@ ] ], "get-computed-style-crash.html": [ - "38cd5af7f83d60976f9712e446a55d11fe07160e", + "7ea18483fd45c9df9db68b2005b0e3d7b5ad61a7", [ null, {} @@ -6269,6 +6283,13 @@ ], "scoped": { "crashtests": { + "container-query.html": [ + "63132582bebf4ce00045f9d74c4d670ed2812440", + [ + null, + {} + ] + ], "display-inline.html": [ "023aeff3b0b16bfd8adae249dacaf6fc2e672096", [ @@ -7005,6 +7026,13 @@ null, {} ] + ], + "insert_adjacent_html-001-crash.html": [ + "3b57aa5b0512f9bea0972427763551ff1f2b5f11", + [ + null, + {} + ] ] }, "domxpath": { @@ -25244,13 +25272,6 @@ ] }, "the-iframe-element": { - "iframe_sandbox_allow_top_navigation_by_user_activation-manual.html": [ - "0fa9de7c125c3de5599edcddf2692f1f54356c32", - [ - null, - {} - ] - ], "sandbox_003-manual.htm": [ "6363900bed15b50e4298f61e246b543a27aaf854", [ @@ -39382,13 +39403,13 @@ }, "content-security-policy": { "generic": { - "image-document-ignores-csp.html": [ - "a3f6f64854d98d40c8c405831d6f3f9656fdf34d", + "image-document-ignores-csp-for-loading-main-image.tentative.html": [ + "1e890299e4beaf49ed60664ba327003d9a15e996", [ null, [ [ - "/content-security-policy/generic/image-document-ignores-csp-ref.html", + "/content-security-policy/generic/image-document-ignores-csp-for-loading-main-image-ref.html", "==" ] ], @@ -127070,7 +127091,7 @@ ] ], "anchor-scroll-nested.html": [ - "ad39224ae41e82159721f139143dfa7ca47350a6", + "3c14de663125013b133035c1bdb95e12aa25f3fc", [ null, [ @@ -127919,6 +127940,19 @@ {} ] ], + "pseudo-element-implicit-anchor-center.html": [ + "e3506be354905382425528ca240072b618d3e006", + [ + null, + [ + [ + "/css/reference/ref-filled-green-100px-square-only.html", + "==" + ] + ], + {} + ] + ], "pseudo-element-implicit-anchor.html": [ "a7192670cc1a7e604eb13da817ff3d1f9c5ed4db", [ @@ -153261,7 +153295,7 @@ ] ], "scope-visited.html": [ - "392aeb667b201072ff1a70aec745f75019cff54b", + "63a7cd40b40c0f823db82473a24ce68a64df4e40", [ null, [ @@ -186019,7 +186053,7 @@ ] ], "font-size-adjust-009.html": [ - "133f96f450cd9a45cf0822a7ffc082976371dac4", + "8dcee7f53c8513d3f9e0f28fda1a2cc2899144da", [ null, [ @@ -186032,7 +186066,7 @@ ] ], "font-size-adjust-010.html": [ - "490c7711c9a076e57beaf6d33054f2e8df05f7c7", + "d70119a98e46a1f904aee407196fd5d19ffff88a", [ null, [ @@ -186061,7 +186095,7 @@ ] ], "font-size-adjust-011.html": [ - "3f6afd8a3708aa86d94443b8a1d8bbffe2ffef5d", + "cf0d620da7287cafe3c90801172c56ee87e8c301", [ null, [ @@ -198332,6 +198366,19 @@ ], {} ] + ], + "row-masonry-positioned-item-dynamic-change.html": [ + "e509295c433e8cf103cf64173891cd272190af53", + [ + null, + [ + [ + "/css/reference/ref-filled-green-100px-square-only.html", + "==" + ] + ], + {} + ] ] }, "alignment": { @@ -229908,7 +229955,7 @@ {} ] ], - "line-clamp-035.tentative.html": [ + "line-clamp-035.html": [ "feb4aac618a21851ad1fb1fe8aa7a3ce80c8e045", [ null, @@ -230233,7 +230280,7 @@ {} ] ], - "line-clamp-auto-025.tentative.html": [ + "line-clamp-auto-025.html": [ "7144be1a6e024f5f7dc42407cd8a5821632e3489", [ null, @@ -233740,6 +233787,19 @@ {} ] ], + "scroll-target-group-inline-targets.html": [ + "6a4cf05edc9f4e86f3d05c5ce6b8bba01a1bd79b", + [ + null, + [ + [ + "/css/css-overflow/scroll-target-group-inline-targets-ref.html", + "==" + ] + ], + {} + ] + ], "scrollable-overflow-empty-newline-span.html": [ "39f72d9fbff4204a09ab9bbfe88fa2ec60da408c", [ @@ -247029,7 +247089,7 @@ ] ], "shape-outside-linear-gradient-008.html": [ - "11ae7faa36eacdb41d629784d979582a083d164f", + "7b6e86473befac10648d04b93bdbbdd4b78cb8cc", [ null, [ @@ -247038,7 +247098,23 @@ "==" ] ], - {} + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 1 + ], + [ + 0, + 8700 + ] + ] + ] + ] + } ] ], "shape-outside-linear-gradient-009.html": [ @@ -247139,7 +247215,7 @@ ] ], "shape-outside-linear-gradient-014.html": [ - "624884e3903b0c648be13e79557b2adf322dadd7", + "1d1d7aacf005d830d3e43c6987c23a0d0841156f", [ null, [ @@ -247148,7 +247224,23 @@ "==" ] ], - {} + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 1 + ], + [ + 0, + 8700 + ] + ] + ] + ] + } ] ], "shape-outside-linear-gradient-015.html": [ @@ -267847,6 +267939,45 @@ {} ] ], + "text-autospace-002.html": [ + "27b42dcb7a7758aecd6272133cb0962424001acf", + [ + null, + [ + [ + "/css/css-text/text-autospace/text-autospace-002-ref.html", + "==" + ] + ], + {} + ] + ], + "text-autospace-003.html": [ + "aa3af3227bac27ff45c24c4eae3e453d60dc560a", + [ + null, + [ + [ + "/css/css-text/text-autospace/text-autospace-001-ref.html", + "==" + ] + ], + {} + ] + ], + "text-autospace-004.html": [ + "3838a6bd5cf5c023fc579e826b83bfeceda39aa3", + [ + null, + [ + [ + "/css/css-text/text-autospace/text-autospace-004-ref.html", + "==" + ] + ], + {} + ] + ], "text-autospace-break-001.html": [ "6e540d8f1e1feb264d0ceb6f8de2f6849b71ea37", [ @@ -278220,12 +278351,12 @@ ] ], "word-spacing-002.html": [ - "0def7e01790a885e52fc685231fbcf38df12d8bf", + "817aa12d9f7b8ccbe1c2948c9e01b8d87f2c28b9", [ null, [ [ - "/css/css-text/word-spacing/word-spacing-001-ref.html", + "/css/css-text/word-spacing/word-spacing-002-ref.html", "==" ] ], @@ -316714,8 +316845,21 @@ ] ], "scoped": { + "active-pseudo.html": [ + "47eefb10f0bd55eca6fd1194f1ba53bcb236c61b", + [ + null, + [ + [ + "/css/css-view-transitions/scoped/content-ref.html", + "==" + ] + ], + {} + ] + ], "display-change.html": [ - "74428fafc7a714ed10bbbed9208a1736e82848c8", + "7583ac2d92874d01d19502184fe30654ed9fc11c", [ null, [ @@ -316770,7 +316914,7 @@ ] ], "nested-scope.html": [ - "b9cc25c3338912ae91da453c20924dd5cc90e294", + "93091bc2bbef32a46b618187289577fa46c61499", [ null, [ @@ -316783,7 +316927,7 @@ ] ], "new-content.html": [ - "7302f7c4f8ee4c22bee0fe286a7b2343af98603e", + "699cede9a469f940fbdc3758fa3b7f85680d345b", [ null, [ @@ -316796,7 +316940,7 @@ ] ], "old-content.html": [ - "82b45eb75f4a2645cde3fbd7344d6d6a417ab56c", + "202e9698d267c10e38f54c62dc58290b52d0fd74", [ null, [ @@ -334699,7 +334843,7 @@ ] ], "backdrop-filter-basic-opacity-2.html": [ - "c40e8bc09832ec6d30daa6803e98baa3141c9efe", + "aad7badf185373fb5d24105c48a4a6742eb9b4d4", [ null, [ @@ -334708,7 +334852,23 @@ "==" ] ], - {} + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 1 + ], + [ + 0, + 10000 + ] + ] + ] + ] + } ] ], "backdrop-filter-basic-opacity.html": [ @@ -379261,6 +379421,34 @@ ] ] }, + "lang_object": { + "lang_attribute.html": [ + "8ee3a551eb31de947d83457f10991de6ed3125d4", + [ + null, + [ + [ + "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/lang_object/lang_attribute-ref.html", + "==" + ] + ], + {} + ] + ], + "lang_color.html": [ + "de0c838065aa6616739243600d39b1c8260d660a", + [ + null, + [ + [ + "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/lang_object/lang_color-ref.html", + "==" + ] + ], + {} + ] + ] + }, "not_allowed_properties.html": [ "e66f9c0792d70f30fbda184f9604cf7069b5c0fb", [ @@ -380173,7 +380361,7 @@ }, "support": { ".azure-pipelines.yml": [ - "480e89a5e27f2613886759a2a61fd93b164c72f8", + "fb2cf4689799603f0d2094eb338e0d8f496974b4", [] ], ".gitattributes": [ @@ -380302,7 +380490,7 @@ ] }, "device-bound-sessions": [ - "45686e0789fdeace4410df986f8083df033ed35c", + "5891f04a5a9ac4394c01aa7dee1d98ac1a7a99e7", [] ], "idp-proxy": { @@ -403210,6 +403398,10 @@ "META.yml": [ "60c95d0d579c57eee3c2c0b47004b371c24d2e56", [] + ], + "WEB_FEATURES.yml": [ + "5130aef74876f514b7c47a6c6fb5d1e195865913", + [] ] }, "contacts": { @@ -404054,7 +404246,7 @@ "5c580273dcfc94eff137a0ae65314bebc9b7b5c0", [] ], - "image-document-ignores-csp-ref.html": [ + "image-document-ignores-csp-for-loading-main-image-ref.html": [ "e0747fd6c2810ccd771c5e33795d8c46ba56ff6c", [] ], @@ -405130,14 +405322,6 @@ "2fa1e0ac0663a65deae6602621521cc2844b93de", [] ], - "pass3.png": [ - "2fa1e0ac0663a65deae6602621521cc2844b93de", - [] - ], - "pass3.png.headers": [ - "6581fd425ed9da6b6273d1eefb84ea9ac9ac6e53", - [] - ], "ping.js": [ "750ae45f969491ea29eaa47c85f96f97d94b415f", [] @@ -423902,7 +424086,7 @@ [] ], "anchor-scroll-nested-ref.html": [ - "a651114868b89528b009ab9ff6fdf489fc6ac67e", + "a3ffbdb9b9d42c6ae12a48f8857024a2dc69aa79", [] ], "anchor-scroll-ref.html": [ @@ -426303,6 +426487,10 @@ [] ], "margin-trim": { + "WEB_FEATURES.yml": [ + "624deb93b41ec9c620010e0800e8ea4f2760bd7e", + [] + ], "block-container-block-end-collapsed-margins-ref.html": [ "1d2f7ff98b28adb58509753e6c1a3714fa6ffe3d", [] @@ -427159,7 +427347,7 @@ [] ], "scope-visited-ref.html": [ - "91efd659216ab1de4efdfe2cac961bc6200ae62b", + "4d4e9faa83f1ffd47b395aea7d55b3a7f975eb14", [] ], "support": { @@ -433255,7 +433443,7 @@ [] ], "font-size-adjust-009-ref.html": [ - "2ee9d0a0c8b71353293795c03a57c987e025d857", + "9796dda8cbc0aa622f78a9e1f2cb438704883a2b", [] ], "font-size-adjust-012-ref.html": [ @@ -448544,6 +448732,10 @@ "3f63ce1d2e43ff0317e78091bba126700a837a43", [] ], + "scroll-target-group-inline-targets-ref.html": [ + "7f3005a01ac68355ec749872a20fecae2792868d", + [] + ], "scrollable-overflow-input-001-ref.html": [ "151843a72c00616dfb7ad723be6b1d3435cde65b", [] @@ -456407,6 +456599,14 @@ "5c231fac913a0ba8c149db5d5845e63aa5908295", [] ], + "text-autospace-002-ref.html": [ + "ba306130cc26bb539a90c72304b2b71745084eec", + [] + ], + "text-autospace-004-ref.html": [ + "f63e1593598f0d7dccbec8dbcf480e40b3b61ce4", + [] + ], "text-autospace-break-001-ref.html": [ "14f182842bc8e507586af6becf4a2efe84fa1939", [] @@ -458113,6 +458313,10 @@ "d4cdb54d116ec7de73135c97866badacc42ba7be", [] ], + "word-spacing-002-ref.html": [ + "5d7be6d6b4656a481f4819bc9ff440aac6f21f2d", + [] + ], "word-spacing-003-ref.html": [ "58daef83ca7cbfd23b92b14f25720a75fe04e2d8", [] @@ -469818,7 +470022,7 @@ [] ], "session_manager.py": [ - "ac43c929025d072d01f529c5abe78039a2a35279", + "78ae558c461c38812ee52cf5b065fa9c1fb91fd1", [] ], "set_cookie.py": [ @@ -471283,6 +471487,10 @@ "15510df7e5096b5da0b0d216b5d36b478834bf35", [] ], + "WEB_FEATURES.yml": [ + "0cfa44c01ef8715c4576cb7389bf361d73f304f3", + [] + ], "resources": { "TAOImage.py": [ "0e1c4814892d9a8d200d10c9ae2a3e89e3ba2c27", @@ -475173,11 +475381,11 @@ }, "fetch-later": { "META.yml": [ - "f8fd46bec3e7d4750c627f2fa6149f5b7b675429", + "4e217c63e83ba53f0f32b74338796454a1237bdc", [] ], "README.md": [ - "d70ad217b1c6f3f5eb315e1ab4ac83939f47b7d5", + "603fe05de3f9f35539189c335f61222d7c3c7800", [] ], "permissions-policy": { @@ -484568,10 +484776,6 @@ ] }, "drop": { - "001.xhtml": [ - "c34aef97349bcccfa384b5de3b0343c7364209aa", - [] - ], "002.xhtml": [ "19da353097a57ecbf0ea5905402a1fd81736cfea", [] @@ -486259,7 +486463,7 @@ [] ], "test-helper.js": [ - "652977c7a51631755aa4ef4e57046af21a34845a", + "ebc945b5f05619ebb041477096fa80e09ce629aa", [] ] }, @@ -489967,6 +490171,10 @@ "1efd2bd056dde80de03448a76b9bd28f94fd1795", [] ], + "javascript_url_form_submission.html": [ + "0d961babf0e2f11467893eacf5bebdd9b211c44f", + [] + ], "post-origin-to-opener.html": [ "bb625942f88c51d4eb6058586c96d574ec354e1d", [] @@ -490021,16 +490229,48 @@ "50f56c6278a77e5ff80e5036c7d600d0b1fa4b91", [] ], + "iframe-that-performs-top-navigation-child-with-user-gesture-after-failure.html": [ + "bf9dd563409ce8b143a03d5c01d548a70b9b94af", + [] + ], + "iframe-that-performs-top-navigation-child-with-user-gesture.html": [ + "f7337b66e6084e9ebb38c2b72a6323bcd5ff1b11", + [] + ], + "iframe-that-performs-top-navigation-child.html": [ + "ffb3e4a00342c2b994ab00c4cc8e4e10bd6b7367", + [] + ], + "iframe-that-performs-top-navigation-grandparent.sub.html": [ + "1b1b49fd4d4a4d68e17926aec7ecbe6d5d834d3e", + [] + ], "iframe-that-performs-top-navigation-on-popup.html": [ "9b9eae8a7234471aaa57b8c99735018ab008734e", [] ], - "iframe-that-performs-top-navigation-without-user-gesture-failed.html": [ - "0436d56df972eb1a3e3fca32813990be976d7104", + "iframe-that-performs-top-navigation-parent-same-site.html": [ + "264269a3f58791e24df4a575facd104773513984", [] ], - "iframe-that-performs-top-navigation.html": [ - "c855ca3bab214e38945c3e23e7281ddcde7b8f2d", + "iframe-that-performs-top-navigation-parent-with-sandbox.sub.html": [ + "915057725fe778a5ec2e12be57441c3065f61411", + [] + ], + "iframe-that-performs-top-navigation-parent-with-user-gesture-after-failure.sub.html": [ + "61b77aead1c6a16863f77acb81baf367cca9b070", + [] + ], + "iframe-that-performs-top-navigation-parent-with-user-gesture-with-sandbox.sub.html": [ + "89df4b70809c4761098a32359e3efb4ed98aeeff", + [] + ], + "iframe-that-performs-top-navigation-parent-with-user-gesture.sub.html": [ + "9f9bcd91210d90be5252c246b0282d050453f2c3", + [] + ], + "iframe-that-performs-top-navigation-parent.sub.html": [ + "f6ca250b862b1bc22366bb343c7ef5961bd3baee", [] ], "iframe-that-send-message-to-the-opener.html": [ @@ -490170,7 +490410,7 @@ [] ], "navigation-changed-iframe.html": [ - "abe0e78dfe4aa27f27d251fa4c43fbefb7fc44c2", + "0791dd12c2fd35b29845fa75635a800faf1e1e6b", [] ], "sandbox.pdf": [ @@ -494482,6 +494722,10 @@ "8a1f590a6abe4872d3b8b4c665d9b165d7dce84d", [] ], + "simple-style.css": [ + "069da9df6c6c43783ed1b7b1e57ec48740da9b66", + [] + ], "xhtml-mathml-dtd-entity.htm": [ "af3fe90284f213961679d1996d17766ccfc30621", [] @@ -497176,7 +497420,7 @@ [] ], "mediaqueries-5.idl": [ - "c951c356ca3cd3ced9b04fe062f44eeef4307b4c", + "a32d2d40f3effde24e6ec847ab12732a42c7f14c", [] ], "mediasession.idl": [ @@ -497536,7 +497780,7 @@ [] ], "web-animations-2.idl": [ - "af9f16bef359f63a2f411d47b60ecc4aa75f418e", + "f18cdd4f4583d959119a07e4248e94210fad1036", [] ], "web-animations.idl": [ @@ -497656,7 +497900,7 @@ [] ], "webrtc-encoded-transform.idl": [ - "c982e7fc3c53c85bd83c447871c5ec172040bd94", + "8fa55d3cb55853fd8be5f60528da226d48aaa966", [] ], "webrtc-ice.idl": [ @@ -497857,6 +498101,10 @@ "7994b1a4ec36302942d1a6e6809e15505b727ed9", [] ], + "WEB_FEATURES.yml": [ + "ce7b9db96e3b7cd78cbcdeede1d1f24add1914cc", + [] + ], "resources": { "blank.html": [ "f27d7148d3ff65b3c9f203c7c622156c1ea7547a", @@ -498041,6 +498289,10 @@ "06c48b4045842b82905c1a3498f1ef5620f5a526", [] ], + "WEB_FEATURES.yml": [ + "bb30e32dd6163bc122239aa72cafb107fd8fc39f", + [] + ], "resources": { "iframe-lock-helper.html": [ "3950802f8e12aa90d236ec275329bbe5bb80cba4", @@ -498053,6 +498305,10 @@ "4efb479ffedad13507852cf24de2df036e5e3b06", [] ], + "WEB_FEATURES.yml": [ + "8775ff2e1855ae3df38f5d91bf1aa14e1e93106c", + [] + ], "resources": { "iframe-keyboard-map-allow-helper.html": [ "88b2fbff5df46e82c27d33ff05aa24de22b36c7c", @@ -501925,6 +502181,10 @@ "35224c093e594de9e4a5749088060e043362e541", [] ], + "WEB_FEATURES.yml": [ + "b87ab6206f0df5a7e960aaa499a411e92b9851b4", + [] + ], "service_workers": { "sw.js": [ "87351c1d2ffaf1702e1fbdf3a60a8c5a2cd8956d", @@ -506342,7 +506602,7 @@ ], "support": { "support.js": [ - "ad67e610db82f93d65c95aa7a272b0e1cc7e906b", + "6b4bb65b130fbac944c90ac9f580148ccc1ddc52", [] ] } @@ -510423,11 +510683,11 @@ ] }, "soft-navigation-helper.js": [ - "666040833a234a83251754072fb5decfef7e31b6", + "8f936a767dc3e451fcf93f3b166fadc1006b01aa", [] ], "soft-navigation-test-helper.js": [ - "d4b6ad04a78605852bf2eee63a073c0e0d127e71", + "d19bbc2e350ba46b623520bad5f5a4e045e2f069", [] ] }, @@ -510607,6 +510867,18 @@ "634b13160a43cd76e9a468153a8846a519f9dcad", [] ], + "cross-origin-iframe-prerender.html": [ + "251f492b3c5bb2fdd0a41e920c403e67862f18c4", + [] + ], + "cross-origin-iframe-prerender.html.headers": [ + "df5bb3bd34ae4dc970f1767a69eecd507c69d953", + [] + ], + "cross-origin-iframe-src-prerender.html": [ + "a421e1c881dc2a4df2623d47e4047ecbf0ebd163", + [] + ], "cross-origin-iframe-src.html": [ "77fa9bc208d60f71d8fe6e9a14bac136f0843ee2", [] @@ -513043,6 +513315,10 @@ "d90c6ca429d55c1e7beee3a25d713970e085688c", [] ], + "configure_watson.yml": [ + "4bec7ecb43bc304945e34bd3bdf0bea0c9a0e75f", + [] + ], "fyi_hook.yml": [ "8e541e14d86726d9c8ca8579b763a4190493e603", [] @@ -526627,6 +526903,10 @@ "9feb3204d10c25f6b17b79faf7d0bbacda5addd8", [] ], + "WEB_FEATURES.yml": [ + "3f6ef03c6da93124f246fe377186f0dfcf591f88", + [] + ], "vk_support.js": [ "e40216dd443691e6a3d4a8d05b5201a6525d81b4", [] @@ -526683,7 +526963,7 @@ [] ], "aria-utils.js": [ - "ec53464c18fda38a1e26281a226d7ed8bd653d48", + "bf86dd051c30f6445f5dfe740822c507a501e1ae", [] ], "manual.css": [ @@ -528387,6 +528667,10 @@ "b51018d68f1fbc91249d2f07ecbbfd2e8f5e0e1c", [] ], + "WEB_FEATURES.yml": [ + "38012ef8899ae2de8ef249382e7fd56be3aeaf33", + [] + ], "resources": { "nfc-helpers.js": [ "10229f0b06d968cc82033ef5ad6bda44d449365f", @@ -528402,6 +528686,10 @@ "META.yml": [ "63f87544a3d98543a2a42394cbea0900a33b0b70", [] + ], + "WEB_FEATURES.yml": [ + "fc3f44c62329b10847d0589d8f04a2fcbb4a189c", + [] ] }, "web-share": { @@ -528473,7 +528761,7 @@ [] ], "audit-util.js": [ - "422c8f4678c81556e863e83b2dc76b3e468ab35e", + "666bad1eff25373605a263a075d04aab527e0ffe", [] ], "audit.js": [ @@ -529484,7 +529772,7 @@ [] ], "conftest.py": [ - "f3c03917659f231e6d43135e2068137e409e8815", + "e687010128a4707b1db9ee10632281f92fa0fa66", [] ] }, @@ -529494,7 +529782,7 @@ [] ], "conftest.py": [ - "a30145bf84e5bd2fadb0856115a9cb3dc25ee8ad", + "aff708ddff8c345743b2e66c134cd33b70e73e27", [] ] }, @@ -530443,7 +530731,7 @@ }, "take_element_screenshot": { "__init__.py": [ - "9a82cc48eab7993dcd6588d89b5aae9ed4ebfc82", + "9e9a5599ed3e723366f731558ecb2055f2d4f07f", [] ] }, @@ -530672,6 +530960,10 @@ "README.md": [ "24a68b3ad3e89ea6617f02d90c890c1d04cf717e", [] + ], + "WEB_FEATURES.yml": [ + "c2f16d88c6b2ed1559033dced2cb5408441ed459", + [] ] }, "webhid": { @@ -530885,6 +531177,10 @@ "65a73dce8903371f5e24fdad8b5b9b81a00a65e5", [] ], + "WEB_FEATURES.yml": [ + "f747ef978f10560b51779c86a4f395bc40eac24c", + [] + ], "conformance_tests": { "byob_readtensor.https.any.js.headers": [ "5f8621ef83660c66f0d037ea28fafefb558140f1", @@ -531196,6 +531492,10 @@ "README.md": [ "4653f415470ea4c093f3fc9c5b31134086914be7", [] + ], + "WEB_FEATURES.yml": [ + "0be5cb8425ceafd13bb7483d381c086afcfa8ddd", + [] ] }, "webrtc-svc": { @@ -533052,6 +533352,16 @@ [] ] }, + "lang_object": { + "lang_attribute-ref.html": [ + "82af621e45784063f3d92fbba9d934e8ad1b0e51", + [] + ], + "lang_color-ref.html": [ + "957df145fb3734caa8b697da75ea1dbae4f18e6d", + [] + ] + }, "not_allowed_properties-ref.html": [ "333cdb818bcde439ad7242bf4f538abc88b7ac84", [] @@ -533609,6 +533919,10 @@ "a2255d000adc87555c984599077926303fed0e9b", [] ], + "test_lang_object.vtt": [ + "957c7a906b44e81b6558a3944fddf17c4f88ffc2", + [] + ], "test_long.vtt": [ "826ec1de17e9dac69144aa2479b7bc94871c72a8", [] @@ -533857,6 +534171,10 @@ "e96a8a00b8b94c92755b96dc203ade889a83bcb9", [] ], + "WEB_FEATURES.yml": [ + "efaa052f5dacb151b58ea98a1783a762d74619eb", + [] + ], "resources": { "helpers.js": [ "9a2b90549ba91e39be49ad4efe622fbe290c3a12", @@ -535956,6 +536274,69 @@ {} ] ], + "Blob-newobject.any.js": [ + "e036c3a9a743e6710b386c72e3a0960bbfdb86e9", + [ + "FileAPI/blob/Blob-newobject.any.html", + { + "script_metadata": [ + [ + "title", + "Blob methods return new objects ([NewObject])" + ], + [ + "global", + "window,worker" + ] + ] + } + ], + [ + "FileAPI/blob/Blob-newobject.any.serviceworker.html", + { + "script_metadata": [ + [ + "title", + "Blob methods return new objects ([NewObject])" + ], + [ + "global", + "window,worker" + ] + ] + } + ], + [ + "FileAPI/blob/Blob-newobject.any.sharedworker.html", + { + "script_metadata": [ + [ + "title", + "Blob methods return new objects ([NewObject])" + ], + [ + "global", + "window,worker" + ] + ] + } + ], + [ + "FileAPI/blob/Blob-newobject.any.worker.html", + { + "script_metadata": [ + [ + "title", + "Blob methods return new objects ([NewObject])" + ], + [ + "global", + "window,worker" + ] + ] + } + ] + ], "Blob-slice-overflow.any.js": [ "388fd9282c94abe8a296eee6dfe45dca4de400e2", [ @@ -577680,49 +578061,49 @@ "container-timing": { "tentative": { "containertiming-body-with-child-img.html": [ - "53e9bc550745067be9a573ed5505063438a075e3", + "ae5f552c2a6ba83b519f099e1bf2835a3faeac49", [ null, {} ] ], "containertiming-img-itself.html": [ - "6d55532a419bbdc6f8c353298b4b74bc738c7d87", + "70b66a0b564b572a44e6bf48751e34b1c2187eb2", [ null, {} ] ], "containertiming-observe-after-paint-with-buffering.html": [ - "4ceb38afd7d0d775bb6a5e7ddb6160c4fd48b942", + "a6d56db6561059341e838911a5a3825b4de935c4", [ null, {} ] ], "containertiming-observe-after-paint-without-buffering.html": [ - "0191b2ee7583ab603d8894cd7aeaa1666ae98aa5", + "8544ffd995e782c90b66cf4c4536b03e9b107f1c", [ null, {} ] ], "containertiming-observe-no-paint.html": [ - "f2384248255283e48bf5b5263dc0eaee1c7b259a", + "36d7cc1d13a0a037764dd0354287be0b8eebd2a3", [ null, {} ] ], "containertiming-text-itself.html": [ - "bead4d1724b10b8d664eec62222bbcfc41da2d17", + "d0a0f17d38db6b7fa17a859c94f8fc35bfd5580b", [ null, {} ] ], "containertiming-two-overlapping-imgs.html": [ - "1a36c6f253211c3838b2586feff6660b6b53a379", + "dbeb971a1c6344ee53659d257f64ff9ea6e3bc1a", [ null, {} @@ -577736,14 +578117,14 @@ ] ], "containertiming-with-child-img.html": [ - "03f0e113902d0d4117a38870dfd22defe99c4653", + "f8e59362664dcac2448e35bc8a974c2e3def6fa7", [ null, {} ] ], "containertiming-with-child-text.html": [ - "1efc189c34e42eb616f56f4e0c259e5be55a079c", + "b856b527ccdcc77e035979713641a1dae0fd80c0", [ null, {} @@ -577764,7 +578145,7 @@ ] ], "img-not-child-of-container-timing.html": [ - "751342a7ceb1eaa2a98d1c07dc4000c34d14e4fd", + "08f3c7c687ae47c8e1112e3068bf87073d196cee", [ null, {} @@ -577785,7 +578166,7 @@ ] ], "nested-containertiming-child-img.html": [ - "de51aa4ffef87d4afc19faaa1d2115e37fb81b04", + "9a81d7d18ec124e86e3106e0d66215879fc46a64", [ null, {} @@ -581448,6 +581829,13 @@ {} ] ], + "image-document-applies-csp.html": [ + "78a8f8e9f3d7553324e94027397acbb575826932", + [ + null, + {} + ] + ], "invalid-characters-in-policy.html": [ "e46449117f65621dbe26abfb6192c63190270316", [ @@ -589554,7 +589942,7 @@ ] ], "anchor-name-inline-001.html": [ - "d65936ad8620566633f891190058f6842b6c8a82", + "2b21634be940aa7a1cab82d33f0bc378346c8a1e", [ null, {} @@ -590204,6 +590592,13 @@ {} ] ], + "chrome-443261872.html": [ + "29f2876825b224d8468bd0bb3a4fe9a4ebd6f353", + [ + null, + {} + ] + ], "container-queries": { "anchored-child-transition.html": [ "f6a25609571386d31f993c715bc8dcc7fc6236b5", @@ -590233,6 +590628,13 @@ {} ] ], + "anchored-fallback-position-area-any.tentative.html": [ + "51ed84fd3adf4e9a77057c2180e6da2eea542b9c", + [ + null, + {} + ] + ], "anchored-fallback-position-area-wm.html": [ "ecd2e1af599608cda022310d470d57bddebabea8", [ @@ -590261,6 +590663,13 @@ {} ] ], + "at-container-anchored-parsing-any.tentative.html": [ + "b4582e11a1536e1023f821172ebadb49e8ef961f", + [ + null, + {} + ] + ], "at-container-anchored-parsing.html": [ "62349827c2f0ae2ea3e301d7628191d625b33343", [ @@ -594375,7 +594784,7 @@ ] ], "scope-invalidation.html": [ - "86c06f19a2db8d0b975ab9cfee1f0f79d04e480d", + "78af1c2469ae974e416782b32440ef1c31f92f71", [ null, {} @@ -594403,7 +594812,7 @@ ] ], "scope-nesting.html": [ - "146a3f4ae2892d86d8964aa8d4110f9035d296a9", + "3412dcdd4d403b87706382992878340d9ff51f63", [ null, {} @@ -594431,7 +594840,7 @@ ] ], "scope-specificity.html": [ - "8541e0d6371cf56b35423d28a7c21ea4a117ec7a", + "63e3bc4ce954754fbe2c8c830401c8f34fecfa74", [ null, {} @@ -594562,7 +594971,7 @@ ] ], "color-computed-color-mix-function.html": [ - "28e574aa85e8e86e89287ec0ec8102f75bb97095", + "a20852473784fc1ff47ddad11df43c0ac54b41fa", [ null, {} @@ -594646,7 +595055,7 @@ ] ], "color-invalid-color-mix-function.html": [ - "f73f2515d85402ac26a17769bb0af96c2564b6dc", + "3d6fd06c92be2f3404da21ad70cb2b1596f082b0", [ null, {} @@ -594737,7 +595146,7 @@ ] ], "color-valid-color-mix-function.html": [ - "d9ae70afa28addbdb66812dafa63fcd4d57a5e5c", + "17a6b0c5e7dbd4e26a0424b49dff1686038d5892", [ null, {} @@ -594772,7 +595181,7 @@ ] ], "color-valid-relative-color.html": [ - "1290b7dc125e6b48dfbed5009bfad539c63ecec2", + "5f05a55eaaf11263115e594fe67a4f79735caaaf", [ null, {} @@ -595124,7 +595533,7 @@ ] ], "container-for-shadow-dom.html": [ - "13a2423a8225e379e1c21de7b0e6166e0f78d47a", + "f49858ecd7dfc3ed24d5e7c6b63bb9c7924e58b3", [ null, {} @@ -604586,7 +604995,7 @@ ] ], "grid-support-display-001.html": [ - "c69d0e31b04e3dcf5896c03b18c9ce987fe1161b", + "03779f4afb16f9150e8c6ce6eaccaf61b857c4c1", [ null, {} @@ -605085,6 +605494,34 @@ {} ] ], + "grid-template-columns-intrinsic-auto-repeat-computed-implicit-track.tentative.html": [ + "b111c4c44b5b9c06283176f8a49fb7745897e61a", + [ + null, + {} + ] + ], + "grid-template-columns-intrinsic-auto-repeat-computed-nogrid.tentative.html": [ + "4408ce428c8cf4e16866bca2df58266ad7d0ba57", + [ + null, + {} + ] + ], + "grid-template-columns-intrinsic-auto-repeat-computed-withcontent.tentative.html": [ + "09030b6757e172fb29375f719cfdb5f359af000e", + [ + null, + {} + ] + ], + "grid-template-columns-intrinsic-auto-repeat-computed.tentative.html": [ + "2168855ae9304f8096eb98d809cac4cbaa9a895d", + [ + null, + {} + ] + ], "grid-template-columns-invalid.html": [ "ee9fbb533106558862970b049621acad9797d066", [ @@ -605162,6 +605599,34 @@ {} ] ], + "grid-template-rows-intrinsic-auto-repeat-computed-implicit-track.tentative.html": [ + "cdda66d1af34dc7b2d70d168e8cd5a41a94faf9e", + [ + null, + {} + ] + ], + "grid-template-rows-intrinsic-auto-repeat-computed-nogrid.tentative.html": [ + "bfb88b7a9e42b534339493873a112c5c6feaf3a9", + [ + null, + {} + ] + ], + "grid-template-rows-intrinsic-auto-repeat-computed-withcontent.tentative.html": [ + "53fc9e29ef79026155fbee1714a1d877eed71171", + [ + null, + {} + ] + ], + "grid-template-rows-intrinsic-auto-repeat-computed.tentative.html": [ + "b70800cb73050611379c369eff5b50b6c3ece11a", + [ + null, + {} + ] + ], "grid-template-rows-invalid.html": [ "78468f83f32379c055afdc0fc821ce4bc231b892", [ @@ -607576,7 +608041,7 @@ ] ], "contents-rule.html": [ - "9d63cd56118904aa8072aee3d73c276f2c7a8749", + "8dd62fba1379863fde6cac6a91cc252d54f90340", [ null, {} @@ -607806,6 +608271,13 @@ {} ] ], + "parameters.html": [ + "8f116c9c74275dfc5c2afa2b6b09634a92962ce2", + [ + null, + {} + ] + ], "shadow-dom.html": [ "f3f62ba2025d5fe810d0b7b054114d82b987555a", [ @@ -608686,6 +609158,13 @@ {} ] ], + "hit-test-stacking-context-parent-border-radius.html": [ + "7e0820f0b5730c053e0dfb9aa5fb9af3cc3aeac0", + [ + null, + {} + ] + ], "html-scroll-marker-target-before-after.html": [ "6429ac0c078d1301d644f4281fed02068083732d", [ @@ -615761,6 +616240,13 @@ {} ] ], + "inheritance.html": [ + "37301d8f622795124e25b0e3d8ff5314dead7bb3", + [ + null, + {} + ] + ], "parsing": { "aspect-ratio-computed.html": [ "d98f6d1dcee3d7f06e11ba024c3f881d011b4495", @@ -627906,7 +628392,7 @@ ] ], "view-transition-name-valid.html": [ - "b3da54a5e060741df10ddb8d420ac67100273b8e", + "ea73b6b558951f96273f7d0f237c340f08355ceb", [ null, {} @@ -627964,7 +628450,7 @@ ], "scoped": { "auto-name-on-descendant.html": [ - "01d570e8bfced7cd702f42ed4def947b5f74e007", + "0f4dc6f2e1021f19c1ad97bd87d95ad100b054ba", [ null, {} @@ -628027,7 +628513,7 @@ ] ], "missing-view-transition-name.html": [ - "74c35501d03fe65354dce5335115daaa556e24b5", + "af1e4ae26f333e96692d148956e381e49ca4cb56", [ null, {} @@ -629777,7 +630263,7 @@ ] ], "historical.html": [ - "44f3f6c8f15a13b2c32dad2672ea9383330e8082", + "a47495de4cb838b3f6e82d6f0685842de3e2b27a", [ null, {} @@ -635732,6 +636218,13 @@ {} ] ], + "empty-response.https.html": [ + "69510b28fdec6ee126b2dcf2057a978f891131f0", + [ + null, + {} + ] + ], "federated-session.https.html": [ "06feb4241ffae344b491aed442f5e893ef736bed", [ @@ -635845,7 +636338,7 @@ ] ], "subdomain-registration.https.html": [ - "4836ab9688cc0e1800fb1ca27975624c625103d9", + "2d174a6194a222ee88ab3302de6fdfd645099267", [ null, {} @@ -637909,7 +638402,7 @@ ] ], "scrollend-event-fired-for-programmatic-scroll.html": [ - "92d69fc8a95a1802e608dc44090b6f51ed7f1d3c", + "a958ff675c59ab77a329c8cb1dc159451a7de1c3", [ "dom/events/scrolling/scrollend-event-fired-for-programmatic-scroll.html?include=root-scrollBy-auto", { @@ -641311,7 +641804,49 @@ ], "tentative": { "FormControlRange-basic.html": [ - "12b92d743c90f8f6cce0069e6b5d81ed032c78b3", + "b42186dc6378236fd678affcee820dbbbfe08014", + [ + null, + {} + ] + ], + "FormControlRange-offset.html": [ + "903f2752a6e9716dfe82dfafd9e24bcc4afbb2b2", + [ + null, + {} + ] + ], + "FormControlRange-range-updates.html": [ + "da38386ead4699da0d1fc372d517e0c716291104", + [ + null, + {} + ] + ], + "FormControlRange-supported-elements.html": [ + "92d9b2437c38073ff41da06f5affc2bc759d9724", + [ + null, + {} + ] + ], + "FormControlRange-toString.html": [ + "2ae86946264dbe4151ea020646ac3cf90b7ba2d2", + [ + null, + {} + ] + ], + "FormControlRange-unsupported-elements.html": [ + "60d9681965c9f9971d784340525d17418ceb34e6", + [ + null, + {} + ] + ], + "FormControlRange-validation.html": [ + "cffc88894f49e8f7c3018a7f8106f2685948ddc9", [ null, {} @@ -641640,7 +642175,7 @@ ] ], "insert_adjacent_html.html": [ - "d8b38748198f4a66b4f16b9e415d8506371b24e3", + "b58852f70874bfa11d2ed55b627e86d9dd302f63", [ null, {} @@ -696658,7 +697193,7 @@ }, "hsts": { "third-party-subframe-hsts-upgrade.tentative.sub.html": [ - "7619709706a25370ba00a623ed52f1e1410267f9", + "da0e539a4d921f007e2d1e05378fc2832ba85d8d", [ null, {} @@ -735201,6 +735736,17 @@ ] ] }, + "drop": { + "001.xhtml": [ + "32dd0f7fa0c3d6a406dba3a7432b44ee0db4744f", + [ + null, + { + "testdriver": true + } + ] + ] + }, "historical.html": [ "5cba688ff83e6dae90100b315a9fa86f69974502", [ @@ -735327,7 +735873,7 @@ ] ], "015.html": [ - "d1ffb9cb36ccef5e5eb20ca54061b0dd705def4b", + "18b86cb004ddc9c9ad776cc16398c4cddf300ee2", [ null, { @@ -735336,7 +735882,7 @@ ] ], "016.html": [ - "40edee38ee0a122783535cc038d49f130e817486", + "9aa46c58b930516c6c494ee4d0103bb1a1277166", [ null, { @@ -735345,7 +735891,7 @@ ] ], "017.html": [ - "9abeea5514c4f1008d7b71fc69640f612ab60b78", + "22fe4f8a2c2d226df6d8df68beca38af8b1627fc", [ null, { @@ -735354,7 +735900,7 @@ ] ], "018.html": [ - "1764c38a38309503b9c72a9d97a0aa2981cb646c", + "1a5f2286b3c6ff297fc676e297ed0627e9cabb12", [ null, { @@ -735363,7 +735909,7 @@ ] ], "021.html": [ - "23c1c6c03ca43c1cab14904d3b8fb05ff2442558", + "6fb39f4567846337b8bdd7e6659113687ee4dbda", [ null, { @@ -735372,7 +735918,7 @@ ] ], "022.xhtml": [ - "6a8d8f65b5ea49a23a8af66802da7a84eefd8b90", + "3afdd875d59f36981233359365c00fbd321f6bad", [ null, { @@ -735381,7 +735927,7 @@ ] ], "023.html": [ - "7109fde453ba6258e8600dda858ddf7583f6a6c7", + "f2f8fe330b204a33fb4023a981ab3997e5715b70", [ null, { @@ -735390,7 +735936,7 @@ ] ], "024.html": [ - "f2814ced61e99d236a8a29140257e0059a131fd3", + "4770378c49775c49f1c1e18b113e8339705020b6", [ null, { @@ -738526,7 +739072,7 @@ ] ], "fieldset-generated-content.html": [ - "25a36bc42cf8e1626dc91ea281cbc0bd00051c1c", + "feb23d129ce8fe97cda3bb8c8fd99e5502682a6c", [ null, {} @@ -743174,6 +743720,13 @@ {} ] ], + "iframe_javascript_url_form_submission.html": [ + "986d0dcc7efa48b52098898905af6a1b0f20390c", + [ + null, + {} + ] + ], "iframe_javascript_url_in_src.htm": [ "73202af1d7ce64f2d2daed80cb52b5ebb744fa6d", [ @@ -743209,6 +743762,13 @@ {} ] ], + "iframe_javascript_url_xhr.html": [ + "107862dd422db8c1cf968481cf194428e2ae44d3", + [ + null, + {} + ] + ], "iframe_navigate_ancestor-1.sub.html": [ "5e3b7682cc8dd45a22bb74b5f7b11a6a4a728d72", [ @@ -743258,11 +743818,22 @@ {} ] ], - "iframe_sandbox_allow_top_navigation_by_user_activation_without_user_gesture.html": [ - "042851bbb492365e9d176aff8d678feb645f1d18", + "iframe_sandbox_allow_top_navigation_by_user_activation_with_user_gesture.html": [ + "f22949eaaf93d7430d98582345e5765a2ddf5f07", [ null, - {} + { + "testdriver": true + } + ] + ], + "iframe_sandbox_allow_top_navigation_by_user_activation_without_user_gesture.html": [ + "989f505263bb3d6c2e2e4b7e17f30fc254f1b53d", + [ + null, + { + "testdriver": true + } ] ], "iframe_sandbox_anchor_download_allow_downloads.tentative.html": [ @@ -743435,6 +744006,51 @@ {} ] ], + "iframe_top_navigation_with_user_gesture.tentative.html": [ + "ff2fa4632a62e8814fd5482c9313d7b6560e4002", + [ + null, + { + "testdriver": true + } + ] + ], + "iframe_top_navigation_with_user_gesture_after_failure.tentative.html": [ + "50b5c9f800d19390d2ac9a6109cc714cefe12708", + [ + null, + { + "testdriver": true + } + ] + ], + "iframe_top_navigation_without_user_gesture.tentative.html": [ + "fd0a8471ecd6451ed58d1c0a3eeaa89782793ef8", + [ + null, + { + "testdriver": true + } + ] + ], + "iframe_top_navigation_without_user_gesture_nested_same_site.tentative.html": [ + "c31079a72e799853cb5a6a9b4ef94c9fedef1ff0", + [ + null, + { + "testdriver": true + } + ] + ], + "iframe_top_navigation_without_user_gesture_same_site.tentative.html": [ + "bed2ee184cab63b699ac51b7548cabe99a2d83d8", + [ + null, + { + "testdriver": true + } + ] + ], "move-node-local-root-events-still-fire.html": [ "46be7e828e8c11f21e92484faaf44a5e8f5333ec", [ @@ -747631,6 +748247,15 @@ } ] ], + "select-pseudo-light-dismiss-invalidation.html": [ + "7c463a6a1933a2609a10c0fd1248d92d5b0d5dec", + [ + null, + { + "testdriver": true + } + ] + ], "select-pseudo-open.html": [ "21dd0aef2aa3afb5b07ebff6ddf7e71366f49c31", [ @@ -747658,6 +748283,15 @@ } ] ], + "select-tabindex-order.html": [ + "0f6120e36848c6a9be709161ed17d01b8b56df9b", + [ + null, + { + "testdriver": true + } + ] + ], "select-type-to-search.tentative.html": [ "3210a5a662b75c185b025765f5842828ac482008", [ @@ -747708,7 +748342,7 @@ ] ], "switch-picker-appearance.html": [ - "6d768f4efd0b288a45059767268ac00568ad1514", + "dd54d77d31ed169146607f2e97d827c9a4335599", [ null, { @@ -747836,15 +748470,6 @@ } ] ], - "select-pseudo-light-dismiss-invalidation.tentative.html": [ - "749fd8cf27580b98174e87f2a4cb5835cc74e995", - [ - null, - { - "testdriver": true - } - ] - ], "select-remove.html": [ "cf2128bd1584f3ca523ecdf8620c0c0f1f2329f6", [ @@ -747882,15 +748507,6 @@ } ] ], - "select-tabindex-order.tentative.html": [ - "7cef337398ada60cb5899d1ca00172a825a35319", - [ - null, - { - "testdriver": true - } - ] - ], "select-validity.html": [ "9f044879d9cc0c55a84975c4e49b9a128440e866", [ @@ -757644,6 +758260,13 @@ "timeout": "long" } ] + ], + "xml-stylesheet-blocking.xhtml": [ + "2242703c1d0cb46e97900df0b164f70727be01ed", + [ + null, + {} + ] ] } }, @@ -765249,7 +765872,7 @@ ] ], "resized-image-not-reconsidered.html": [ - "6e195b89f9ef5dfbfc126e3fe7170d00dc93376f", + "5d43cafdf1f1576364a7e4c3fe801ddfa3f1aed4", [ null, {} @@ -774022,7 +774645,7 @@ ] ], "intercept-handler-throws.html": [ - "769f67599974706b8361da281d99f89c5ef6f18f", + "9bebfdaab8444111e1eb450a6339db7ceb7f4432", [ null, {} @@ -774043,7 +774666,7 @@ ] ], "intercept-multiple-times-reject.html": [ - "0b0f1f0b8e838dde453b3a7b7f4cc2aa944766fa", + "50d4c441333175ad3a4e4368afe23871794dfe11", [ null, {} @@ -774078,7 +774701,7 @@ ] ], "intercept-reject.html": [ - "4c5ec0163d1ab0299a2db7e4fb9b4592dbc16c03", + "ecf0c0f137dc1e34a07904218166ec4e3d56ef7e", [ null, {} @@ -784611,7 +785234,7 @@ ] ], "pointerevent_pointerrawupdate.html": [ - "eb405d26c330cd150dce3100f7a38af43c80b44d", + "a3ebfacd062e7a67d48c3cc71a6537ec2dc5b4b9", [ null, { @@ -784620,7 +785243,7 @@ ] ], "pointerevent_pointerrawupdate.https.html": [ - "74c14d932ff583b0a418ad38c9fda4e35e3555d4", + "85df262e77802f1d8f42983fd39925a7354b4ea1", [ null, { @@ -802675,7 +803298,7 @@ "scroll-animations": { "animation-trigger": { "animation-trigger-addAnimation.tentative.html": [ - "a30e68a672d397a62ffe02d76c294d30e4723810", + "721a2a5e3a1339a6c1a31318d08da2dcd2b57f77", [ null, {} @@ -802696,7 +803319,7 @@ ] ], "animation-trigger-disarmed-by-apis.tentative.html": [ - "ab13b0069aa6bc1dcf7ee54d603f9869035170b8", + "5ca46f8870df72267853a43ba9249d7149e3f1a8", [ null, {} @@ -802717,14 +803340,14 @@ ] ], "animation-trigger-multiple-animations.tentative.html": [ - "962bbe3bdea4ec53150bfdb9246a9e2be9f1ef5d", + "95ecce479e82869d3013d01215a3bc869bfeaf63", [ null, {} ] ], "animation-trigger-multiple-triggers.tentative.html": [ - "b43744f7fb16dbd8c56ebdc4bc5bad0036f19ee5", + "fa493f178df79d14b2c56a03dc3daada9b588dd4", [ null, {} @@ -802759,7 +803382,7 @@ ] ], "animation-trigger-state.tentative.html": [ - "1a80e6dadabef9e2d5173ad614437506cc5e14b1", + "7673a4ca858b4944fab518e608e5a3f6f05e959b", [ null, {} @@ -812126,7 +812749,7 @@ "detection": { "tentative": { "overwriting-text-once-per-interaction.html": [ - "41a363888fc04e225b01ccc334b53919fb976b6f", + "c5b2ba26d70631679feb62e32ec7c413f8dc15d4", [ null, { @@ -812135,7 +812758,7 @@ ] ], "overwriting-text.html": [ - "653ae6848ecb9a4ad1da14adeb059af8a272dd62", + "72dced51c8058176c6d515f137e6171d47160bce", [ null, { @@ -812166,7 +812789,7 @@ "dom": { "tentative": { "distant-leaf-image.window.js": [ - "96255d82f2d60ae1517f0eec4704ee361d6c965d", + "b73e801d6dbe42a4023b298b47811f39f3f782fa", [ "soft-navigation-heuristics/dom/tentative/distant-leaf-image.window.html", { @@ -812188,7 +812811,7 @@ ] ], "distant-leaf-text.window.js": [ - "341b5aaed74bbd9d4c4520317eb72d87257644d7", + "967563a2aa9dbce963bfccf0e38bb7874e3bae7e", [ "soft-navigation-heuristics/dom/tentative/distant-leaf-text.window.html", { @@ -812289,7 +812912,7 @@ ] ], "interaction-with-paint-before-back.tentative.html": [ - "f1356399f02360d7d440dfbc490bd8512cd0de34", + "27a8cd981983ae78d8107b11c64ac80d848cafc5", [ null, { @@ -812300,7 +812923,7 @@ "lcp": { "tentative": { "background-image-set-image.html": [ - "78a41dbc7765caa0e9a61cc589846f893476f828", + "d72031d70de98cd4a5bd511d1879e081dd8708b9", [ null, { @@ -812309,7 +812932,7 @@ ] ], "broken-image-icon.html": [ - "1dd21288fec9b7a15b23b24639deab60efe1157d", + "f058a4b55c2e4ef2590932655d4ca7d3388df82d", [ null, { @@ -812318,7 +812941,7 @@ ] ], "contracted-image.html": [ - "dae7793f08c35a496b3458b4b68a78f158f56a4e", + "631627d5d117efeac0544102984dac88e29c91b2", [ null, { @@ -812327,7 +812950,7 @@ ] ], "cross-origin-image.sub.html": [ - "777dcf706406a228bd9612b51853cc445bac6b44", + "72cfd2fab44012a1948bff28757231662f9f3b7e", [ null, { @@ -812345,7 +812968,7 @@ ] ], "expanded-image.html": [ - "1a482b293fc568189e1917c63814dee27dbb8bdd", + "1b3d2f603f76d991857741ef843eecad092cedf0", [ null, { @@ -812354,7 +812977,7 @@ ] ], "first-paint-equals-lcp-text.html": [ - "b78f1a8e8bfa2796a23b9f93894bc3648dbcfe11", + "c14092e168c6ff409aa97a13240d526b000550a0", [ null, { @@ -812363,7 +812986,7 @@ ] ], "iframe-content-not-observed.html": [ - "4a9bf86ff49943d684dbdb17638f4afaad67aea2", + "629695c644b0f189b8f294ba51754537ee9bc9ab", [ null, { @@ -812372,7 +812995,7 @@ ] ], "raf-loop.html": [ - "a047d6a8fb30a429e6a4cd00fd87fd75f3458c15", + "0c0cd8148a070e56c6839587293c53069a65519b", [ null, { @@ -812483,7 +813106,7 @@ ] ], "navigation-api-view-transition.tentative.html": [ - "97070271c3855efb378469ca5a394dea25ad60af", + "bab9c1f7073bd5f9da2c05039b36fc8083d050bc", [ null, { @@ -812539,7 +813162,7 @@ "smoke": { "tentative": { "almost-soft-navigation.html": [ - "c66495be7d6c4d02166c6d4d02a3e1acdd7ecc5d", + "952f4ca77a860c517dcc412c30fc13d42c8bbfc7", [ null, { @@ -812557,7 +813180,7 @@ ] ], "dom.html": [ - "e663b79081e0a963a591217754e91ae0d5577d2e", + "201b9fb8d04f14cf6e0f8ab5240df5cd30d7f692", [ null, { @@ -812593,7 +813216,7 @@ ] ], "lcp.html": [ - "2b57e6ce19624751405a63c59454796adb3e2c9d", + "9979153232532e23e6534d1e3530826b3dd8d5a0", [ null, { @@ -813977,6 +814600,21 @@ } ] ], + "cross-origin-iframe-prerender.https.html": [ + "76ed9bf71deee6d01d82d0f435997a370a4b13fc", + [ + "speculation-rules/prerender/cross-origin-iframe-prerender.https.html?target_hint=_blank", + { + "timeout": "long" + } + ], + [ + "speculation-rules/prerender/cross-origin-iframe-prerender.https.html?target_hint=_self", + { + "timeout": "long" + } + ] + ], "cross-origin-iframe.https.html": [ "0fc92fcce1c4583a39d09ef80abef7e5a804c2b8", [ @@ -830868,6 +831506,13 @@ {} ] ], + "svgcolor-animation-invalid-value-1.html": [ + "aa3046a50361c2d860bb237f523c98e7f5cc8c8a", + [ + null, + {} + ] + ], "svgenum-animation-1.html": [ "05b75e9ad81d5e979834ef25a42ab9f3a42f1d12", [ @@ -832068,6 +832713,27 @@ {} ] ], + "a.type-getter-01.svg": [ + "3486531e707f6bd00d88a1ee547c8c218dfa57d6", + [ + null, + {} + ] + ], + "a.type-getter-02.svg": [ + "ef628de940ffb19bcc5cd8068c3b9ccefa808ed4", + [ + null, + {} + ] + ], + "a.type-setter-01.svg": [ + "012b293c9da5777bb792841be6426b77e6f654d5", + [ + null, + {} + ] + ], "href-animate-element.html": [ "5220495d796a3bf6a95ff38db213cdb98aaa5a20", [ @@ -833104,6 +833770,20 @@ {} ] ], + "text-decoration-color-computed.svg": [ + "ffefb6aac1fb5703d64a16380254601f78fea8e4", + [ + null, + {} + ] + ], + "text-decoration-fill-computed.tentative.svg": [ + "9a37a9ea1a83509ee7ef1a24c0e98a8366d13142", + [ + null, + {} + ] + ], "text-decoration-fill-invalid.svg": [ "19da0821730d5062e006e45eadb3cd3726318302", [ @@ -833118,6 +833798,20 @@ {} ] ], + "text-decoration-line-computed.svg": [ + "d7ea07662f7d3235ee19e6b88752056615e98f19", + [ + null, + {} + ] + ], + "text-decoration-stroke-computed.tentative.svg": [ + "da7e9509fdf314f6f6b3cb61f6aa2c6c4dcfbd52", + [ + null, + {} + ] + ], "text-decoration-stroke-invalid.svg": [ "8d44d6f1c33898fca4a81924ba0d3e05cd3ed7d4", [ @@ -833131,6 +833825,13 @@ null, {} ] + ], + "text-decoration-style-computed.svg": [ + "6f307ff0dca3ea1f2702249b7d148c83dfe4aafa", + [ + null, + {} + ] ] }, "scripted": { @@ -834319,13 +835020,6 @@ {} ] ], - "TrustedTypePolicyFactory-blocking.tentative.html": [ - "6ae71b69880a0313a549b586a04fa38b4be466e2", - [ - null, - {} - ] - ], "TrustedTypePolicyFactory-constants.html": [ "551084ca4b6e001ce49213a3d12491a4aedaf8f4", [ @@ -840332,7 +841026,7 @@ ] ], "fallback-roles.html": [ - "98011570b4f074bf23871a91f404e74ea6001674", + "320b5b7ddbd394eb6bac02863cf2575e073a5853", [ null, { @@ -840458,7 +841152,7 @@ ] ], "roles.html": [ - "844da3ce47b0f3ec55ed489b24d27f0bdfc3f380", + "b645a4a78b29e1a91196b1dc55eef173c334b709", [ null, { @@ -850987,7 +851681,7 @@ }, "animation-trigger": { "event-trigger-alternate.tentative.html": [ - "6929c4cd38a14d67782a0dede45e9ed0059ee572", + "5be5738e9acffc298c36fb1db478bf5ef4b78471", [ null, { @@ -850996,7 +851690,7 @@ ] ], "event-trigger-before-handlers.tentative.html": [ - "715c5bcddfc1db1314e137d03ad3205c115bcd08", + "d2e9ebdadc4ebd037168e9f412fe9c805bab08e0", [ null, { @@ -851005,7 +851699,7 @@ ] ], "event-trigger-once.tentative.html": [ - "76b31373c1473f8d482fb09f72971d11283454fd", + "f19d0fa9adbd3098a22c6869de15ba25a01fdfa1", [ null, { @@ -851014,7 +851708,7 @@ ] ], "event-trigger-repeat.tentative.html": [ - "e54e19f1feec22b629bddee627a395a7c6260de9", + "0dace937f67272d930fed555d0b9a47132ba71b7", [ null, { @@ -851023,7 +851717,7 @@ ] ], "event-trigger-state.tentative.html": [ - "2bc3e6d718b829f9decb857abceb71b3fa6537ac", + "70a71f96182876e364509a5a1c12b560c00ae888", [ null, { @@ -851354,7 +852048,7 @@ }, "TimelineTrigger": { "constructor.html": [ - "6d82c6499dc59ef8ab13ff59997164807f15e3e7", + "a61b659804acd6d3b5690e9e6bdb6be7bfc41b8f", [ null, {} @@ -853738,7 +854432,7 @@ }, "the-audiobuffersourcenode-interface": { "active-processing.https.html": [ - "25565b7686601b23c4c920c5095b42a2a606a195", + "0d4b2e1fcbd8a41df558dd739a64e7f89f0a2dcc", [ null, {} @@ -853752,7 +854446,7 @@ ] ], "audiobuffersource-channels.html": [ - "f3f16c4c648166dfdb394a41881d4a515d097e86", + "a6aef136284d2474d9b265decfd2249797089372", [ null, {} @@ -853864,7 +854558,7 @@ ] ], "sub-sample-buffer-stitching.html": [ - "7b6fbf19775533e0c10daf1e787769e679e2fd28", + "052afde712db277340feea0d9b620a2596087dcb", [ null, {} @@ -854084,7 +854778,7 @@ }, "the-audioparam-interface": { "adding-events.html": [ - "ab527b6695cef3f17fa2e41e6d2dc6fa1b36c32a", + "ad4cfc9ce064e8887eaa93b6f863857de003417a", [ null, {} @@ -854105,7 +854799,7 @@ ] ], "audioparam-connect-audioratesignal.html": [ - "b0455f86bc0f9880980c1e83fe729d5b6d698f13", + "61990739a79093605291c55a7afd9d98f9e8ec72", [ null, {} @@ -854776,7 +855470,7 @@ }, "the-channelmergernode-interface": { "active-processing.https.html": [ - "9012526bdc64e5e62d246045465b84aef8d06f76", + "737462958055a85ddf9cb8bd8aa3abf852fb483c", [ null, {} @@ -855114,7 +855808,7 @@ ] ], "iirfilter-getFrequencyResponse.html": [ - "eeb4af34f7d439db5b5cba8ee449d234a495f445", + "467fe61881c4d0fe014dc67121bb6afdfa297e77", [ null, {} @@ -855231,7 +855925,7 @@ ] ], "detune-limiting.html": [ - "8d2ceabac43cda3c64a01d95c03e58c81b4def29", + "e3e6d40ed6361c553ed02d72f4cc1c1f408f0b0e", [ null, {} @@ -863075,7 +863769,7 @@ ] ], "videoDecoder-codec-specific.https.any.js": [ - "21beaa0f4b757792c8ca39e5991b1b87acdee6bc", + "b09ae5bbf6fd06a2567a4aed221d243b031da53a", [ "webcodecs/videoDecoder-codec-specific.https.any.html?av1", { @@ -880588,7 +881282,7 @@ ] ], "tensor.https.any.js": [ - "4b6a4ab8e7ff2c78b420b97047c31dc7695cfe4a", + "4c895b981575afc505fb42b0151db6b8c9406a4f", [ "webnn/conformance_tests/tensor.https.any.html?cpu", { @@ -898679,7 +899373,7 @@ ] ], "RTCDataChannel-send.html": [ - "69bdf9dbe62b0fb081b764d5f8a39b8880d3457b", + "bc93edce6977cbe919571b0528e17e2684f0a517", [ null, { @@ -946343,7 +947037,7 @@ ] ], "start_nodes.py": [ - "c58c05e1cde86b0ecba8900cb979d6e58dae6983", + "ba530d3a348d4936c317f16a8733cbc3d578a501", [ null, {} @@ -946366,7 +947060,7 @@ ] ], "error.py": [ - "c6c32b88dee99884637e308f9f5e17a3cb1cd480", + "d707b3bc4622558fa0cb3c5a40a32d2fbb81095a", [ null, {} @@ -946704,7 +947398,7 @@ }, "set_locale_override": { "contexts.py": [ - "9f7e01deda35f8eb5e7ce183abad023bfb9e3acf", + "b2a2ceaecae316ca323eef5e53b248435f1c7857", [ null, {} @@ -946734,7 +947428,7 @@ }, "set_screen_orientation_override": { "contexts.py": [ - "d91b4dc185e1a76ce83df7bfc591600238aa0383", + "df24e9a2b6869b600a156e8d0e865210fc2862c0", [ null, {} @@ -946748,7 +947442,7 @@ ] ], "screen_orientation.py": [ - "d538e9d0a2a3e258364824f9adcd00274616e08e", + "09309a73626d50550f1e501294db8ad3602d004b", [ null, {} @@ -946794,7 +947488,7 @@ }, "set_timezone_override": { "contexts.py": [ - "6f90a9d3040de148675fa55aa12c8ef09729ca66", + "c71d9936d94d735f14cd0156fc87bdb6e2a0e4a5", [ null, {} @@ -947273,7 +947967,7 @@ ], "parallel_execution": { "browsing_context_print.py": [ - "65bb73c254f20b83021aa58ac19ea4ed47178c5f", + "429a4c6417b676ec001f3b49eb46f7981f263725", [ null, {} @@ -948629,6 +949323,13 @@ {} ] ], + "scroll_into_view.py": [ + "3409eb6aa7931ebeb0432ef15780e9b148d60de5", + [ + null, + {} + ] + ], "user_prompts.py": [ "5ac2052fc4e27500fd040aa88b7732a1b705aa9c", [ @@ -948690,7 +949391,7 @@ ] ], "scroll_into_view.py": [ - "1b9c671efaba12ac42a79ac0f97e84544ce9621e", + "6c3d26611d3ade54e9d7795cd9647fda4a3698f9", [ null, {} @@ -948757,7 +949458,7 @@ ] ], "scroll_into_view.py": [ - "af20211251a212476fa198c8e405de07349dfc54", + "6d1c37f8d51e75adb038e0dcd5d9e7eb6d5f337c", [ null, {} @@ -950069,14 +950770,21 @@ }, "take_element_screenshot": { "iframe.py": [ - "e7f1b0c8053db0fedbb37c0a1b528a259591813f", + "0262fa8b1d3642d1e3628ce6420115ac3f152db5", [ null, {} ] ], "screenshot.py": [ - "fdc0d65b1d9c515701147f88261c41d37deee8b9", + "1fe82d474675ba05f616213d71042cc369eba6dd", + [ + null, + {} + ] + ], + "scroll_into_view.py": [ + "42249c90ac81ef804ed789126b6c3602614ca0e0", [ null, {} diff --git a/tests/wpt/meta/content-security-policy/generic/image-document-applies-csp.html.ini b/tests/wpt/meta/content-security-policy/generic/image-document-applies-csp.html.ini new file mode 100644 index 00000000000..29bd20cc37d --- /dev/null +++ b/tests/wpt/meta/content-security-policy/generic/image-document-applies-csp.html.ini @@ -0,0 +1,3 @@ +[image-document-applies-csp.html] + [Image document correctly applies CSP to other subresources.] + expected: FAIL diff --git a/tests/wpt/meta/css/css-cascade/scope-invalidation.html.ini b/tests/wpt/meta/css/css-cascade/scope-invalidation.html.ini index 3160576cd9a..18a0c5ae978 100644 --- a/tests/wpt/meta/css/css-cascade/scope-invalidation.html.ini +++ b/tests/wpt/meta/css/css-cascade/scope-invalidation.html.ini @@ -76,3 +76,6 @@ [Relative selectors set with selectorText are relative to :scope, not &] expected: FAIL + + [Relative selectors set with selectorText are relative to :scope and &] + expected: FAIL diff --git a/tests/wpt/meta/css/css-cascade/scope-nesting.html.ini b/tests/wpt/meta/css/css-cascade/scope-nesting.html.ini index 34bbf10f158..dd393a2ce9f 100644 --- a/tests/wpt/meta/css/css-cascade/scope-nesting.html.ini +++ b/tests/wpt/meta/css/css-cascade/scope-nesting.html.ini @@ -64,3 +64,9 @@ [Mutating selectorText on outer style rule causes correct inner specificity] expected: FAIL + + [Nesting-selector in ] + expected: FAIL + + [Nested nesting-selectors within scope's select inclusive descendants of the scope root] + expected: FAIL diff --git a/tests/wpt/meta/css/css-cascade/scope-specificity.html.ini b/tests/wpt/meta/css/css-cascade/scope-specificity.html.ini index dae34ee9f45..d26d3e633ec 100644 --- a/tests/wpt/meta/css/css-cascade/scope-specificity.html.ini +++ b/tests/wpt/meta/css/css-cascade/scope-specificity.html.ini @@ -58,3 +58,6 @@ [@scope { & .b { } } and :where(:scope) .b] expected: FAIL + + [@scope (#main) { & .b { } } and :where(#main) .b] + expected: FAIL diff --git a/tests/wpt/meta/css/css-color/parsing/color-computed-color-mix-function.html.ini b/tests/wpt/meta/css/css-color/parsing/color-computed-color-mix-function.html.ini index 58d9beb7f58..ca025876d1a 100644 --- a/tests/wpt/meta/css/css-color/parsing/color-computed-color-mix-function.html.ini +++ b/tests/wpt/meta/css/css-color/parsing/color-computed-color-mix-function.html.ini @@ -127,3 +127,120 @@ [Property color value 'color-mix(in display-p3-linear, color(display-p3-linear .1 .2 .3 / 25%) 0%, color(display-p3-linear 0.5 none none / 50%))'] expected: FAIL + + [Property color value 'color-mix(oklab(0.1 0.2 0.3), oklab(0.5 0.6 0.7))'] + expected: FAIL + + [Property color value 'color-mix(oklab(0.1 0.2 0.3) 25%, oklab(0.5 0.6 0.7))'] + expected: FAIL + + [Property color value 'color-mix(25% oklab(0.1 0.2 0.3), oklab(0.5 0.6 0.7))'] + expected: FAIL + + [Property color value 'color-mix(oklab(0.1 0.2 0.3), 25% oklab(0.5 0.6 0.7))'] + expected: FAIL + + [Property color value 'color-mix(oklab(0.1 0.2 0.3), oklab(0.5 0.6 0.7) 25%)'] + expected: FAIL + + [Property color value 'color-mix(oklab(0.1 0.2 0.3) 25%, oklab(0.5 0.6 0.7) 75%)'] + expected: FAIL + + [Property color value 'color-mix(oklab(0.1 0.2 0.3) 30%, oklab(0.5 0.6 0.7) 90%)'] + expected: FAIL + + [Property color value 'color-mix(oklab(0.1 0.2 0.3) 12.5%, oklab(0.5 0.6 0.7) 37.5%)'] + expected: FAIL + + [Property color value 'color-mix(oklab(0.1 0.2 0.3) 0%, oklab(0.5 0.6 0.7))'] + expected: FAIL + + [Property color value 'color-mix(oklab(0.1 0.2 0.3 / .4), oklab(0.5 0.6 0.7 / .8))'] + expected: FAIL + + [Property color value 'color-mix(oklab(0.1 0.2 0.3 / .4) 25%, oklab(0.5 0.6 0.7 / .8))'] + expected: FAIL + + [Property color value 'color-mix(25% oklab(0.1 0.2 0.3 / .4), oklab(0.5 0.6 0.7 / .8))'] + expected: FAIL + + [Property color value 'color-mix(oklab(0.1 0.2 0.3 / .4), 25% oklab(0.5 0.6 0.7 / .8))'] + expected: FAIL + + [Property color value 'color-mix(oklab(0.1 0.2 0.3 / .4), oklab(0.5 0.6 0.7 / .8) 25%)'] + expected: FAIL + + [Property color value 'color-mix(oklab(0.1 0.2 0.3 / .4) 25%, oklab(0.5 0.6 0.7 / .8) 75%)'] + expected: FAIL + + [Property color value 'color-mix(oklab(0.1 0.2 0.3 / .4) 30%, oklab(0.5 0.6 0.7 / .8) 90%)'] + expected: FAIL + + [Property color value 'color-mix(oklab(0.1 0.2 0.3 / .4) 12.5%, oklab(0.5 0.6 0.7 / .8) 37.5%)'] + expected: FAIL + + [Property color value 'color-mix(oklab(0.1 0.2 0.3 / .4) 0%, oklab(0.5 0.6 0.7 / .8))'] + expected: FAIL + + [Property color value 'color-mix(transparent, oklab(0.3 0.4 0.5))'] + expected: FAIL + + [Property color value 'color-mix(transparent 10%, oklab(0.3 0.4 0.5))'] + expected: FAIL + + [Property color value 'color-mix(oklab(0.1 0.2 0.3 / 0), oklab(0.3 0.4 0.5))'] + expected: FAIL + + [Property color value 'color-mix(oklab(0.1 0.2 0.3 / 0) 10%, oklab(0.3 0.4 0.5))'] + expected: FAIL + + [Property color value 'color-mix(white, blue)'] + expected: FAIL + + [Property color value 'color-mix(white 10%, blue)'] + expected: FAIL + + [Property color value 'color-mix(oklab(none none none), oklab(none none none))'] + expected: FAIL + + [Property color value 'color-mix(oklab(none none none), oklab(0.5 0.6 0.7))'] + expected: FAIL + + [Property color value 'color-mix(oklab(0.1 0.2 0.3), oklab(none none none))'] + expected: FAIL + + [Property color value 'color-mix(oklab(0.1 0.2 none), oklab(0.5 0.6 0.7))'] + expected: FAIL + + [Property color value 'color-mix(oklab(0.1 0.2 0.3), oklab(0.5 0.6 none))'] + expected: FAIL + + [Property color value 'color-mix(oklab(none 0.2 0.3), oklab(0.5 none 0.7))'] + expected: FAIL + + [Property color value 'color-mix(oklab(0.1 0.2 0.3 / none), oklab(0.5 0.6 0.7))'] + expected: FAIL + + [Property color value 'color-mix(oklab(0.1 0.2 0.3 / none), oklab(0.5 0.6 0.7 / 0.5))'] + expected: FAIL + + [Property color value 'color-mix(oklab(0.1 0.2 0.3 / none), oklab(0.5 0.6 0.7 / none))'] + expected: FAIL + + [Property color value 'color-mix(oklab(0.1 0.2 0.3 / 25%) 0%, oklab(0.5 none none / none))'] + expected: FAIL + + [Property color value 'color-mix(oklab(0.1 0.2 0.3 / 25%) 0%, oklab(none 0.5 none / none))'] + expected: FAIL + + [Property color value 'color-mix(oklab(0.1 0.2 0.3 / 25%) 0%, oklab(none none 0.5 / none))'] + expected: FAIL + + [Property color value 'color-mix(oklab(0.1 0.2 0.3 / 25%) 0%, oklab(0.5 0.5 none / none))'] + expected: FAIL + + [Property color value 'color-mix(oklab(0.1 0.2 0.3 / 25%) 0%, oklab(none none none / 0.5))'] + expected: FAIL + + [Property color value 'color-mix(oklab(0.1 0.2 0.3 / 25%) 0%, oklab(0.5 none none / 0.5))'] + expected: FAIL diff --git a/tests/wpt/meta/css/css-color/parsing/color-valid-color-mix-function.html.ini b/tests/wpt/meta/css/css-color/parsing/color-valid-color-mix-function.html.ini index f605d5ddc50..356a478aea4 100644 --- a/tests/wpt/meta/css/css-color/parsing/color-valid-color-mix-function.html.ini +++ b/tests/wpt/meta/css/css-color/parsing/color-valid-color-mix-function.html.ini @@ -367,3 +367,132 @@ [e.style['color'\] = "color-mix(in display-p3-linear, color(display-p3-linear .1 .2 .3 / none), color(display-p3-linear .5 .6 .7 / none))" should set the property value] expected: FAIL + + [e.style['color'\] = "color-mix(hsl(120deg 10% 20%), hsl(30deg 30% 40%))" should set the property value] + expected: FAIL + + [e.style['color'\] = "color-mix(hwb(120deg 10% 20%), hwb(30deg 30% 40%))" should set the property value] + expected: FAIL + + [e.style['color'\] = "color-mix(lch(10 20 30), lch(50 60 70))" should set the property value] + expected: FAIL + + [e.style['color'\] = "color-mix(oklch(0.1 20 30), oklch(0.5 60 70))" should set the property value] + expected: FAIL + + [e.style['color'\] = "color-mix(lab(10 20 30), lab(50 60 70))" should set the property value] + expected: FAIL + + [e.style['color'\] = "color-mix(in oklab, oklab(0.1 0.2 0.3), oklab(0.5 0.6 0.7))" should set the property value] + expected: FAIL + + [e.style['color'\] = "color-mix(in oklab, oklab(0.1 0.2 0.3) 25%, oklab(0.5 0.6 0.7))" should set the property value] + expected: FAIL + + [e.style['color'\] = "color-mix(in oklab, 25% oklab(0.1 0.2 0.3), oklab(0.5 0.6 0.7))" should set the property value] + expected: FAIL + + [e.style['color'\] = "color-mix(in oklab, oklab(0.1 0.2 0.3), 25% oklab(0.5 0.6 0.7))" should set the property value] + expected: FAIL + + [e.style['color'\] = "color-mix(in oklab, oklab(0.1 0.2 0.3), oklab(0.5 0.6 0.7) 25%)" should set the property value] + expected: FAIL + + [e.style['color'\] = "color-mix(in oklab, oklab(0.1 0.2 0.3) 25%, oklab(0.5 0.6 0.7) 75%)" should set the property value] + expected: FAIL + + [e.style['color'\] = "color-mix(in oklab, oklab(0.1 0.2 0.3) 30%, oklab(0.5 0.6 0.7) 90%)" should set the property value] + expected: FAIL + + [e.style['color'\] = "color-mix(in oklab, oklab(0.1 0.2 0.3) 12.5%, oklab(0.5 0.6 0.7) 37.5%)" should set the property value] + expected: FAIL + + [e.style['color'\] = "color-mix(in oklab, oklab(0.1 0.2 0.3) 0%, oklab(0.5 0.6 0.7))" should set the property value] + expected: FAIL + + [e.style['color'\] = "color-mix(in oklab, oklab(0.1 0.2 0.3 / .4), oklab(0.5 0.6 0.7 / .8))" should set the property value] + expected: FAIL + + [e.style['color'\] = "color-mix(in oklab, oklab(0.1 0.2 0.3 / .4) 25%, oklab(0.5 0.6 0.7 / .8))" should set the property value] + expected: FAIL + + [e.style['color'\] = "color-mix(in oklab, 25% oklab(0.1 0.2 0.3 / .4), oklab(0.5 0.6 0.7 / .8))" should set the property value] + expected: FAIL + + [e.style['color'\] = "color-mix(in oklab, oklab(0.1 0.2 0.3 / .4), 25% oklab(0.5 0.6 0.7 / .8))" should set the property value] + expected: FAIL + + [e.style['color'\] = "color-mix(in oklab, oklab(0.1 0.2 0.3 / .4), oklab(0.5 0.6 0.7 / .8) 25%)" should set the property value] + expected: FAIL + + [e.style['color'\] = "color-mix(in oklab, oklab(0.1 0.2 0.3 / .4) 25%, oklab(0.5 0.6 0.7 / .8) 75%)" should set the property value] + expected: FAIL + + [e.style['color'\] = "color-mix(in oklab, oklab(0.1 0.2 0.3 / .4) 30%, oklab(0.5 0.6 0.7 / .8) 90%)" should set the property value] + expected: FAIL + + [e.style['color'\] = "color-mix(in oklab, oklab(0.1 0.2 0.3 / .4) 12.5%, oklab(0.5 0.6 0.7 / .8) 37.5%)" should set the property value] + expected: FAIL + + [e.style['color'\] = "color-mix(in oklab, oklab(0.1 0.2 0.3 / .4) 0%, oklab(0.5 0.6 0.7 / .8))" should set the property value] + expected: FAIL + + [e.style['color'\] = "color-mix(in oklab, oklab(none none none), oklab(none none none))" should set the property value] + expected: FAIL + + [e.style['color'\] = "color-mix(in oklab, oklab(none none none), oklab(0.5 0.6 0.7))" should set the property value] + expected: FAIL + + [e.style['color'\] = "color-mix(in oklab, oklab(0.1 0.2 0.3), oklab(none none none))" should set the property value] + expected: FAIL + + [e.style['color'\] = "color-mix(in oklab, oklab(0.1 0.2 none), oklab(0.5 0.6 0.7))" should set the property value] + expected: FAIL + + [e.style['color'\] = "color-mix(in oklab, oklab(0.1 0.2 0.3), oklab(0.5 0.6 none))" should set the property value] + expected: FAIL + + [e.style['color'\] = "color-mix(in oklab, oklab(none 0.2 0.3), oklab(0.5 none 0.7))" should set the property value] + expected: FAIL + + [e.style['color'\] = "color-mix(in oklab, oklab(0.1 0.2 0.3 / none), oklab(0.5 0.6 0.7))" should set the property value] + expected: FAIL + + [e.style['color'\] = "color-mix(in oklab, oklab(0.1 0.2 0.3 / none), oklab(0.5 0.6 0.7 / 0.5))" should set the property value] + expected: FAIL + + [e.style['color'\] = "color-mix(in oklab, oklab(0.1 0.2 0.3 / none), oklab(0.5 0.6 0.7 / none))" should set the property value] + expected: FAIL + + [e.style['color'\] = "color-mix(oklab(0.1 0.2 0.3), oklab(0.5 0.6 0.7))" should set the property value] + expected: FAIL + + [e.style['color'\] = "color-mix(color(srgb .1 .2 .3), color(srgb .5 .6 .7))" should set the property value] + expected: FAIL + + [e.style['color'\] = "color-mix(color(srgb-linear .1 .2 .3), color(srgb-linear .5 .6 .7))" should set the property value] + expected: FAIL + + [e.style['color'\] = "color-mix(color(display-p3 .1 .2 .3), color(display-p3 .5 .6 .7))" should set the property value] + expected: FAIL + + [e.style['color'\] = "color-mix(color(display-p3-linear .1 .2 .3), color(display-p3-linear .5 .6 .7))" should set the property value] + expected: FAIL + + [e.style['color'\] = "color-mix(color(a98-rgb .1 .2 .3), color(a98-rgb .5 .6 .7))" should set the property value] + expected: FAIL + + [e.style['color'\] = "color-mix(color(prophoto-rgb .1 .2 .3), color(prophoto-rgb .5 .6 .7))" should set the property value] + expected: FAIL + + [e.style['color'\] = "color-mix(color(rec2020 .1 .2 .3), color(rec2020 .5 .6 .7))" should set the property value] + expected: FAIL + + [e.style['color'\] = "color-mix(color(xyz .1 .2 .3), color(xyz .5 .6 .7))" should set the property value] + expected: FAIL + + [e.style['color'\] = "color-mix(color(xyz-d50 .1 .2 .3), color(xyz-d50 .5 .6 .7))" should set the property value] + expected: FAIL + + [e.style['color'\] = "color-mix(color(xyz-d65 .1 .2 .3), color(xyz-d65 .5 .6 .7))" should set the property value] + expected: FAIL diff --git a/tests/wpt/meta/css/css-color/parsing/color-valid-relative-color.html.ini b/tests/wpt/meta/css/css-color/parsing/color-valid-relative-color.html.ini index 2f0906a373e..7d292c6cf6d 100644 --- a/tests/wpt/meta/css/css-color/parsing/color-valid-relative-color.html.ini +++ b/tests/wpt/meta/css/css-color/parsing/color-valid-relative-color.html.ini @@ -742,3 +742,6 @@ [e.style['color'\] = "color(from color-mix(in display-p3-linear, color(display-p3-linear 0.7 0.5 0.3), color(display-p3-linear 0.7 0.5 0.3)) display-p3-linear r g b / alpha)" should set the property value] expected: FAIL + + [e.style['color'\] = "oklab(from color-mix(in oklab, oklab(0.25 0.2 0.5), oklab(0.25 0.2 0.5)) l a b / alpha)" should set the property value] + expected: FAIL diff --git a/tests/wpt/meta/css/css-conditional/container-queries/container-for-shadow-dom.html.ini b/tests/wpt/meta/css/css-conditional/container-queries/container-for-shadow-dom.html.ini index 7909095df86..6edc702d8fb 100644 --- a/tests/wpt/meta/css/css-conditional/container-queries/container-for-shadow-dom.html.ini +++ b/tests/wpt/meta/css/css-conditional/container-queries/container-for-shadow-dom.html.ini @@ -49,3 +49,15 @@ [Container name set on :host from inside a shadow tree matching query for ::slotted inside the shadow tree] expected: FAIL + + [Should match container inside shadow tree for ::part()] + expected: FAIL + + [Container name set inside a shadow tree should match query using ::part on the outside] + expected: FAIL + + [Container name set inside a shadow tree should match query for host child on the outside] + expected: FAIL + + [Container name set on :host from inside a shadow tree should match query for slotted from the outside of the shadow tree] + expected: FAIL diff --git a/tests/wpt/meta/css/css-fonts/generic-family-keywords-003.html.ini b/tests/wpt/meta/css/css-fonts/generic-family-keywords-003.html.ini index 71346ad53c0..352995a05da 100644 --- a/tests/wpt/meta/css/css-fonts/generic-family-keywords-003.html.ini +++ b/tests/wpt/meta/css/css-fonts/generic-family-keywords-003.html.ini @@ -37,3 +37,6 @@ [@font-face matching for quoted and unquoted generic(khmer-mul) (drawing text in a canvas)] expected: FAIL + + [@font-face matching for quoted and unquoted generic(nastaliq) (drawing text in a canvas)] + expected: FAIL diff --git a/tests/wpt/meta/css/css-grid/grid-items/grid-auto-margin-and-replaced-item-001.html.ini b/tests/wpt/meta/css/css-grid/grid-items/grid-auto-margin-and-replaced-item-001.html.ini new file mode 100644 index 00000000000..8c0fc3310eb --- /dev/null +++ b/tests/wpt/meta/css/css-grid/grid-items/grid-auto-margin-and-replaced-item-001.html.ini @@ -0,0 +1,2 @@ +[grid-auto-margin-and-replaced-item-001.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-grid/masonry/tentative/abspos/row-masonry-positioned-item-dynamic-change.html.ini b/tests/wpt/meta/css/css-grid/masonry/tentative/abspos/row-masonry-positioned-item-dynamic-change.html.ini new file mode 100644 index 00000000000..29a23e6b03f --- /dev/null +++ b/tests/wpt/meta/css/css-grid/masonry/tentative/abspos/row-masonry-positioned-item-dynamic-change.html.ini @@ -0,0 +1,2 @@ +[row-masonry-positioned-item-dynamic-change.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-grid/parsing/grid-template-columns-intrinsic-auto-repeat-computed-implicit-track.tentative.html.ini b/tests/wpt/meta/css/css-grid/parsing/grid-template-columns-intrinsic-auto-repeat-computed-implicit-track.tentative.html.ini new file mode 100644 index 00000000000..cde2a0e459f --- /dev/null +++ b/tests/wpt/meta/css/css-grid/parsing/grid-template-columns-intrinsic-auto-repeat-computed-implicit-track.tentative.html.ini @@ -0,0 +1,36 @@ +[grid-template-columns-intrinsic-auto-repeat-computed-implicit-track.tentative.html] + [Property grid-template-columns value '1px repeat(auto-fill, auto) 3px' computes to '10px 1px 0px 3px'] + expected: FAIL + + [Property grid-template-columns value '1px repeat(auto-fit, auto) 3px' computes to '10px 1px 0px 3px'] + expected: FAIL + + [Property grid-template-columns value '1px [a\] repeat(auto-fill, min-content max-content) [b\] 4px' computes to '10px 1px [a\] 0px 0px [b\] 4px'] + expected: FAIL + + [Property grid-template-columns value '1px [a\] repeat(auto-fit, min-content max-content) [b\] 4px' computes to '10px 1px [a\] 0px 0px [b\] 4px'] + expected: FAIL + + [Property grid-template-columns value '1px [a\] repeat(auto-fill, [b\] fit-content(200px) [c\]) [d\] 3px' computes to '10px 1px [a b\] 0px [c d\] 3px'] + expected: FAIL + + [Property grid-template-columns value '1px [a\] repeat(auto-fit, [b\] fit-content(200px) [c\]) [d\] 3px' computes to '10px 1px [a b\] 0px [c d\] 3px'] + expected: FAIL + + [Property grid-template-columns value '[a\] 1px repeat(auto-fill, auto [b\] auto) 4px [d\]' computes to '10px [a\] 1px 0px [b\] 0px 4px [d\]'] + expected: FAIL + + [Property grid-template-columns value '[a\] 1px repeat(auto-fit, auto [b\] auto) 4px [d\]' computes to '10px [a\] 1px 0px [b\] 0px 4px [d\]'] + expected: FAIL + + [Property grid-template-columns value '100% [a\] repeat(auto-fill, [b\] min-content [c\]) [d\] 300%' computes to '10px 1px [a b\] 0px [c d\] 3px'] + expected: FAIL + + [Property grid-template-columns value '100% [a\] repeat(auto-fit, [b\] min-content [c\]) [d\] 300%' computes to '10px 1px [a b\] 0px [c d\] 3px'] + expected: FAIL + + [Property grid-template-columns value '[a\] 1em repeat(auto-fill, max-content [b\] auto) 4em [d\]' computes to '10px [a\] 1px 0px [b\] 0px 4px [d\]'] + expected: FAIL + + [Property grid-template-columns value '[a\] 1em repeat(auto-fit, max-content [b\] auto) 4em [d\]' computes to '10px [a\] 1px 0px [b\] 0px 4px [d\]'] + expected: FAIL diff --git a/tests/wpt/meta/css/css-grid/parsing/grid-template-columns-intrinsic-auto-repeat-computed-nogrid.tentative.html.ini b/tests/wpt/meta/css/css-grid/parsing/grid-template-columns-intrinsic-auto-repeat-computed-nogrid.tentative.html.ini new file mode 100644 index 00000000000..b86f92237c9 --- /dev/null +++ b/tests/wpt/meta/css/css-grid/parsing/grid-template-columns-intrinsic-auto-repeat-computed-nogrid.tentative.html.ini @@ -0,0 +1,36 @@ +[grid-template-columns-intrinsic-auto-repeat-computed-nogrid.tentative.html] + [Property grid-template-columns value '1px repeat(auto-fill, auto) 3px'] + expected: FAIL + + [Property grid-template-columns value '1px repeat(auto-fit, auto) 3px'] + expected: FAIL + + [Property grid-template-columns value '1px [a\] repeat(auto-fill, min-content max-content) [b\] 4px'] + expected: FAIL + + [Property grid-template-columns value '1px [a\] repeat(auto-fit, min-content max-content) [b\] 4px'] + expected: FAIL + + [Property grid-template-columns value '1px [a\] repeat(auto-fill, [b\] fit-content(200px) [c\]) [d\] 3px'] + expected: FAIL + + [Property grid-template-columns value '1px [a\] repeat(auto-fit, [b\] fit-content(200px) [c\]) [d\] 3px'] + expected: FAIL + + [Property grid-template-columns value '[a\] 1px repeat(auto-fill, auto [b\] auto) 4px [d\]'] + expected: FAIL + + [Property grid-template-columns value '[a\] 1px repeat(auto-fit, auto [b\] auto) 4px [d\]'] + expected: FAIL + + [Property grid-template-columns value '100% [a\] repeat(auto-fill, [b\] min-content [c\]) [d\] 300%'] + expected: FAIL + + [Property grid-template-columns value '100% [a\] repeat(auto-fit, [b\] min-content [c\]) [d\] 300%'] + expected: FAIL + + [Property grid-template-columns value '[a\] 1em repeat(auto-fill, max-content [b\] auto) 4em [d\]'] + expected: FAIL + + [Property grid-template-columns value '[a\] 1em repeat(auto-fit, max-content [b\] auto) 4em [d\]'] + expected: FAIL diff --git a/tests/wpt/meta/css/css-grid/parsing/grid-template-columns-intrinsic-auto-repeat-computed-withcontent.tentative.html.ini b/tests/wpt/meta/css/css-grid/parsing/grid-template-columns-intrinsic-auto-repeat-computed-withcontent.tentative.html.ini new file mode 100644 index 00000000000..24fb8c47eff --- /dev/null +++ b/tests/wpt/meta/css/css-grid/parsing/grid-template-columns-intrinsic-auto-repeat-computed-withcontent.tentative.html.ini @@ -0,0 +1,24 @@ +[grid-template-columns-intrinsic-auto-repeat-computed-withcontent.tentative.html] + [Property grid-template-columns value 'repeat(auto-fill, auto)'] + expected: FAIL + + [Property grid-template-columns value 'repeat(auto-fit, [one\] auto)'] + expected: FAIL + + [Property grid-template-columns value 'repeat(auto-fill, min-content [two\])'] + expected: FAIL + + [Property grid-template-columns value 'repeat(auto-fit, [three\] max-content [four\])'] + expected: FAIL + + [Property grid-template-columns value '[a\] 21px [b\] repeat(auto-fill, [c\] 22px [d\] auto [e\]) [f\] 24px [g\]'] + expected: FAIL + + [Property grid-template-columns value '[a\] 21px [b c\] repeat(auto-fill, [d e\] 22px [f g h\] fit-content(200px) [i j k l\]) [m n\] 24px [o\]'] + expected: FAIL + + [Property grid-template-columns value '[a\] repeat(2, [b\] 20px [c d\] 21px [e f g\]) [h i\] repeat(auto-fit, [j\] auto [k l m\] min-content [n o p q\]) [r s\]'] + expected: FAIL + + [Property grid-template-columns value '[one\] repeat(2, minmax(50px, auto)) [two\] 30px [three\] repeat(auto-fill, auto) 40px [four five\] repeat(2, minmax(200px, auto)) [six\]'] + expected: FAIL diff --git a/tests/wpt/meta/css/css-grid/parsing/grid-template-columns-intrinsic-auto-repeat-computed.tentative.html.ini b/tests/wpt/meta/css/css-grid/parsing/grid-template-columns-intrinsic-auto-repeat-computed.tentative.html.ini new file mode 100644 index 00000000000..cf4643e3529 --- /dev/null +++ b/tests/wpt/meta/css/css-grid/parsing/grid-template-columns-intrinsic-auto-repeat-computed.tentative.html.ini @@ -0,0 +1,36 @@ +[grid-template-columns-intrinsic-auto-repeat-computed.tentative.html] + [Property grid-template-columns value '1px repeat(auto-fill, auto) 3px'] + expected: FAIL + + [Property grid-template-columns value '1px repeat(auto-fit, auto) 3px'] + expected: FAIL + + [Property grid-template-columns value '1px [a\] repeat(auto-fill, min-content max-content) [b\] 4px'] + expected: FAIL + + [Property grid-template-columns value '1px [a\] repeat(auto-fit, min-content max-content) [b\] 4px'] + expected: FAIL + + [Property grid-template-columns value '1px [a\] repeat(auto-fill, [b\] fit-content(200px) [c\]) [d\] 3px'] + expected: FAIL + + [Property grid-template-columns value '1px [a\] repeat(auto-fit, [b\] fit-content(200px) [c\]) [d\] 3px'] + expected: FAIL + + [Property grid-template-columns value '[a\] 1px repeat(auto-fill, auto [b\] auto) 4px [d\]'] + expected: FAIL + + [Property grid-template-columns value '[a\] 1px repeat(auto-fit, auto [b\] auto) 4px [d\]'] + expected: FAIL + + [Property grid-template-columns value '100% [a\] repeat(auto-fill, [b\] min-content [c\]) [d\] 300%'] + expected: FAIL + + [Property grid-template-columns value '100% [a\] repeat(auto-fit, [b\] min-content [c\]) [d\] 300%'] + expected: FAIL + + [Property grid-template-columns value '[a\] 1em repeat(auto-fill, max-content [b\] auto) 4em [d\]'] + expected: FAIL + + [Property grid-template-columns value '[a\] 1em repeat(auto-fit, max-content [b\] auto) 4em [d\]'] + expected: FAIL diff --git a/tests/wpt/meta/css/css-grid/parsing/grid-template-rows-intrinsic-auto-repeat-computed-implicit-track.tentative.html.ini b/tests/wpt/meta/css/css-grid/parsing/grid-template-rows-intrinsic-auto-repeat-computed-implicit-track.tentative.html.ini new file mode 100644 index 00000000000..69e339926e2 --- /dev/null +++ b/tests/wpt/meta/css/css-grid/parsing/grid-template-rows-intrinsic-auto-repeat-computed-implicit-track.tentative.html.ini @@ -0,0 +1,36 @@ +[grid-template-rows-intrinsic-auto-repeat-computed-implicit-track.tentative.html] + [Property grid-template-rows value '1px repeat(auto-fill, auto) 3px' computes to '1px 0px 3px'] + expected: FAIL + + [Property grid-template-rows value '1px repeat(auto-fit, auto) 3px' computes to '1px 0px 3px'] + expected: FAIL + + [Property grid-template-rows value '1px [a\] repeat(auto-fill, min-content max-content) [b\] 4px' computes to '1px [a\] 0px 0px [b\] 4px'] + expected: FAIL + + [Property grid-template-rows value '1px [a\] repeat(auto-fit, min-content max-content) [b\] 4px' computes to '1px [a\] 0px 0px [b\] 4px'] + expected: FAIL + + [Property grid-template-rows value '1px [a\] repeat(auto-fill, [b\] fit-content(200px) [c\]) [d\] 3px' computes to '1px [a b\] 0px [c d\] 3px'] + expected: FAIL + + [Property grid-template-rows value '1px [a\] repeat(auto-fit, [b\] fit-content(200px) [c\]) [d\] 3px' computes to '1px [a b\] 0px [c d\] 3px'] + expected: FAIL + + [Property grid-template-rows value '[a\] 1px repeat(auto-fill, auto [b\] auto) 4px [d\]' computes to '[a\] 1px 0px [b\] 0px 4px [d\]'] + expected: FAIL + + [Property grid-template-rows value '[a\] 1px repeat(auto-fit, auto [b\] auto) 4px [d\]' computes to '[a\] 1px 0px [b\] 0px 4px [d\]'] + expected: FAIL + + [Property grid-template-rows value '100% [a\] repeat(auto-fill, [b\] min-content [c\]) [d\] 300%' computes to '1px [a b\] 0px [c d\] 3px'] + expected: FAIL + + [Property grid-template-rows value '100% [a\] repeat(auto-fit, [b\] min-content [c\]) [d\] 300%' computes to '1px [a b\] 0px [c d\] 3px'] + expected: FAIL + + [Property grid-template-rows value '[a\] 1em repeat(auto-fill, max-content [b\] auto) 4em [d\]' computes to '[a\] 1px 0px [b\] 0px 4px [d\]'] + expected: FAIL + + [Property grid-template-rows value '[a\] 1em repeat(auto-fit, max-content [b\] auto) 4em [d\]' computes to '[a\] 1px 0px [b\] 0px 4px [d\]'] + expected: FAIL diff --git a/tests/wpt/meta/css/css-grid/parsing/grid-template-rows-intrinsic-auto-repeat-computed-nogrid.tentative.html.ini b/tests/wpt/meta/css/css-grid/parsing/grid-template-rows-intrinsic-auto-repeat-computed-nogrid.tentative.html.ini new file mode 100644 index 00000000000..6874eb982d1 --- /dev/null +++ b/tests/wpt/meta/css/css-grid/parsing/grid-template-rows-intrinsic-auto-repeat-computed-nogrid.tentative.html.ini @@ -0,0 +1,36 @@ +[grid-template-rows-intrinsic-auto-repeat-computed-nogrid.tentative.html] + [Property grid-template-rows value '1px repeat(auto-fill, auto) 3px'] + expected: FAIL + + [Property grid-template-rows value '1px repeat(auto-fit, auto) 3px'] + expected: FAIL + + [Property grid-template-rows value '1px [a\] repeat(auto-fill, min-content max-content) [b\] 4px'] + expected: FAIL + + [Property grid-template-rows value '1px [a\] repeat(auto-fit, min-content max-content) [b\] 4px'] + expected: FAIL + + [Property grid-template-rows value '1px [a\] repeat(auto-fill, [b\] fit-content(200px) [c\]) [d\] 3px'] + expected: FAIL + + [Property grid-template-rows value '1px [a\] repeat(auto-fit, [b\] fit-content(200px) [c\]) [d\] 3px'] + expected: FAIL + + [Property grid-template-rows value '[a\] 1px repeat(auto-fill, auto [b\] auto) 4px [d\]'] + expected: FAIL + + [Property grid-template-rows value '[a\] 1px repeat(auto-fit, auto [b\] auto) 4px [d\]'] + expected: FAIL + + [Property grid-template-rows value '100% [a\] repeat(auto-fill, [b\] min-content [c\]) [d\] 300%'] + expected: FAIL + + [Property grid-template-rows value '100% [a\] repeat(auto-fit, [b\] min-content [c\]) [d\] 300%'] + expected: FAIL + + [Property grid-template-rows value '[a\] 1em repeat(auto-fill, max-content [b\] auto) 4em [d\]'] + expected: FAIL + + [Property grid-template-rows value '[a\] 1em repeat(auto-fit, max-content [b\] auto) 4em [d\]'] + expected: FAIL diff --git a/tests/wpt/meta/css/css-grid/parsing/grid-template-rows-intrinsic-auto-repeat-computed-withcontent.tentative.html.ini b/tests/wpt/meta/css/css-grid/parsing/grid-template-rows-intrinsic-auto-repeat-computed-withcontent.tentative.html.ini new file mode 100644 index 00000000000..40c634b0098 --- /dev/null +++ b/tests/wpt/meta/css/css-grid/parsing/grid-template-rows-intrinsic-auto-repeat-computed-withcontent.tentative.html.ini @@ -0,0 +1,24 @@ +[grid-template-rows-intrinsic-auto-repeat-computed-withcontent.tentative.html] + [Property grid-template-rows value 'repeat(auto-fill, auto)'] + expected: FAIL + + [Property grid-template-rows value 'repeat(auto-fit, [one\] auto)'] + expected: FAIL + + [Property grid-template-rows value 'repeat(auto-fill, min-content [two\])'] + expected: FAIL + + [Property grid-template-rows value 'repeat(auto-fit, [three\] max-content [four\])'] + expected: FAIL + + [Property grid-template-rows value '[a\] 21px [b\] repeat(auto-fill, [c\] 22px [d\] auto [e\]) [f\] 24px [g\]'] + expected: FAIL + + [Property grid-template-rows value '[a\] 21px [b c\] repeat(auto-fill, [d e\] 22px [f g h\] fit-content(200px) [i j k l\]) [m n\] 24px [o\]'] + expected: FAIL + + [Property grid-template-rows value '[a\] repeat(2, [b\] 20px [c d\] 21px [e f g\]) [h i\] repeat(auto-fit, [j\] auto [k l m\] min-content [n o p q\]) [r s\]'] + expected: FAIL + + [Property grid-template-rows value '[one\] repeat(2, minmax(50px, auto)) [two\] 30px [three\] repeat(auto-fill, auto) 40px [four five\] repeat(2, minmax(200px, auto)) [six\]'] + expected: FAIL diff --git a/tests/wpt/meta/css/css-grid/parsing/grid-template-rows-intrinsic-auto-repeat-computed.tentative.html.ini b/tests/wpt/meta/css/css-grid/parsing/grid-template-rows-intrinsic-auto-repeat-computed.tentative.html.ini new file mode 100644 index 00000000000..83e8244239a --- /dev/null +++ b/tests/wpt/meta/css/css-grid/parsing/grid-template-rows-intrinsic-auto-repeat-computed.tentative.html.ini @@ -0,0 +1,36 @@ +[grid-template-rows-intrinsic-auto-repeat-computed.tentative.html] + [Property grid-template-rows value '1px repeat(auto-fill, auto) 3px'] + expected: FAIL + + [Property grid-template-rows value '1px repeat(auto-fit, auto) 3px'] + expected: FAIL + + [Property grid-template-rows value '1px [a\] repeat(auto-fill, min-content max-content) [b\] 4px'] + expected: FAIL + + [Property grid-template-rows value '1px [a\] repeat(auto-fit, min-content max-content) [b\] 4px'] + expected: FAIL + + [Property grid-template-rows value '1px [a\] repeat(auto-fill, [b\] fit-content(200px) [c\]) [d\] 3px'] + expected: FAIL + + [Property grid-template-rows value '1px [a\] repeat(auto-fit, [b\] fit-content(200px) [c\]) [d\] 3px'] + expected: FAIL + + [Property grid-template-rows value '[a\] 1px repeat(auto-fill, auto [b\] auto) 4px [d\]'] + expected: FAIL + + [Property grid-template-rows value '[a\] 1px repeat(auto-fit, auto [b\] auto) 4px [d\]'] + expected: FAIL + + [Property grid-template-rows value '100% [a\] repeat(auto-fill, [b\] min-content [c\]) [d\] 300%'] + expected: FAIL + + [Property grid-template-rows value '100% [a\] repeat(auto-fit, [b\] min-content [c\]) [d\] 300%'] + expected: FAIL + + [Property grid-template-rows value '[a\] 1em repeat(auto-fill, max-content [b\] auto) 4em [d\]'] + expected: FAIL + + [Property grid-template-rows value '[a\] 1em repeat(auto-fit, max-content [b\] auto) 4em [d\]'] + expected: FAIL diff --git a/tests/wpt/meta/css/css-mixins/parameters.html.ini b/tests/wpt/meta/css/css-mixins/parameters.html.ini new file mode 100644 index 00000000000..b543aff4e9f --- /dev/null +++ b/tests/wpt/meta/css/css-mixins/parameters.html.ini @@ -0,0 +1,15 @@ +[parameters.html] + [Mixins with invalid parameter lists are ignored] + expected: FAIL + + [Basic mixin parameter passing] + expected: FAIL + + [Mixins can be called multiple times with different parameters] + expected: FAIL + + [Mixin argument parsing with arguments wrapped in {}] + expected: FAIL + + [Defaults in mixin parameters] + expected: FAIL diff --git a/tests/wpt/meta/css/css-overflow/line-clamp/line-clamp-035.html.ini b/tests/wpt/meta/css/css-overflow/line-clamp/line-clamp-035.html.ini new file mode 100644 index 00000000000..9a349f53fca --- /dev/null +++ b/tests/wpt/meta/css/css-overflow/line-clamp/line-clamp-035.html.ini @@ -0,0 +1,2 @@ +[line-clamp-035.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-overflow/line-clamp/line-clamp-035.tentative.html.ini b/tests/wpt/meta/css/css-overflow/line-clamp/line-clamp-035.tentative.html.ini deleted file mode 100644 index 9ac9b876d1e..00000000000 --- a/tests/wpt/meta/css/css-overflow/line-clamp/line-clamp-035.tentative.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[line-clamp-035.tentative.html] - expected: FAIL diff --git a/tests/wpt/meta/css/css-overflow/line-clamp/line-clamp-auto-025.html.ini b/tests/wpt/meta/css/css-overflow/line-clamp/line-clamp-auto-025.html.ini new file mode 100644 index 00000000000..ee5317d88cc --- /dev/null +++ b/tests/wpt/meta/css/css-overflow/line-clamp/line-clamp-auto-025.html.ini @@ -0,0 +1,2 @@ +[line-clamp-auto-025.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-overflow/line-clamp/line-clamp-auto-025.tentative.html.ini b/tests/wpt/meta/css/css-overflow/line-clamp/line-clamp-auto-025.tentative.html.ini deleted file mode 100644 index c1786082c26..00000000000 --- a/tests/wpt/meta/css/css-overflow/line-clamp/line-clamp-auto-025.tentative.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[line-clamp-auto-025.tentative.html] - expected: FAIL diff --git a/tests/wpt/meta/css/css-overflow/scroll-target-group-inline-targets.html.ini b/tests/wpt/meta/css/css-overflow/scroll-target-group-inline-targets.html.ini new file mode 100644 index 00000000000..59de8c09962 --- /dev/null +++ b/tests/wpt/meta/css/css-overflow/scroll-target-group-inline-targets.html.ini @@ -0,0 +1,2 @@ +[scroll-target-group-inline-targets.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-text/text-autospace/text-autospace-002.html.ini b/tests/wpt/meta/css/css-text/text-autospace/text-autospace-002.html.ini new file mode 100644 index 00000000000..67a09bd1f61 --- /dev/null +++ b/tests/wpt/meta/css/css-text/text-autospace/text-autospace-002.html.ini @@ -0,0 +1,2 @@ +[text-autospace-002.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-text/text-autospace/text-autospace-003.html.ini b/tests/wpt/meta/css/css-text/text-autospace/text-autospace-003.html.ini new file mode 100644 index 00000000000..043dbd0f365 --- /dev/null +++ b/tests/wpt/meta/css/css-text/text-autospace/text-autospace-003.html.ini @@ -0,0 +1,2 @@ +[text-autospace-003.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-text/text-autospace/text-autospace-004.html.ini b/tests/wpt/meta/css/css-text/text-autospace/text-autospace-004.html.ini new file mode 100644 index 00000000000..4e3c5852466 --- /dev/null +++ b/tests/wpt/meta/css/css-text/text-autospace/text-autospace-004.html.ini @@ -0,0 +1,2 @@ +[text-autospace-004.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-text/word-spacing/word-spacing-002.html.ini b/tests/wpt/meta/css/css-text/word-spacing/word-spacing-002.html.ini deleted file mode 100644 index 8c45b2ab5ea..00000000000 --- a/tests/wpt/meta/css/css-text/word-spacing/word-spacing-002.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[word-spacing-002.html] - expected: FAIL diff --git a/tests/wpt/meta/custom-elements/form-associated/form-disabled-callback.html.ini b/tests/wpt/meta/custom-elements/form-associated/form-disabled-callback.html.ini new file mode 100644 index 00000000000..bf6e43f58f7 --- /dev/null +++ b/tests/wpt/meta/custom-elements/form-associated/form-disabled-callback.html.ini @@ -0,0 +1,3 @@ +[form-disabled-callback.html] + [A disabled form-associated custom element should not submit an entry for it] + expected: FAIL diff --git a/tests/wpt/meta/dom/ranges/tentative/FormControlRange-basic.html.ini b/tests/wpt/meta/dom/ranges/tentative/FormControlRange-basic.html.ini index 90229a76024..7a0b8fbba9b 100644 --- a/tests/wpt/meta/dom/ranges/tentative/FormControlRange-basic.html.ini +++ b/tests/wpt/meta/dom/ranges/tentative/FormControlRange-basic.html.ini @@ -4,3 +4,6 @@ [Tests FormControlRange default values when no form control is set.] expected: FAIL + + [FormControlRange handles empty value correctly.] + expected: FAIL diff --git a/tests/wpt/meta/dom/ranges/tentative/FormControlRange-offset.html.ini b/tests/wpt/meta/dom/ranges/tentative/FormControlRange-offset.html.ini new file mode 100644 index 00000000000..f32b53fee48 --- /dev/null +++ b/tests/wpt/meta/dom/ranges/tentative/FormControlRange-offset.html.ini @@ -0,0 +1,33 @@ +[FormControlRange-offset.html] + [FormControlRange with single character in textarea.] + expected: FAIL + + [FormControlRange with empty control in textarea.] + expected: FAIL + + [FormControlRange boundary positions in textarea.] + expected: FAIL + + [FormControlRange with Unicode characters in textarea.] + expected: FAIL + + [FormControlRange with single character in input.] + expected: FAIL + + [FormControlRange with empty control in input.] + expected: FAIL + + [FormControlRange boundary positions in input.] + expected: FAIL + + [FormControlRange with Unicode characters in input.] + expected: FAIL + + [FormControlRange preserves whitespace in textarea light DOM.] + expected: FAIL + + [FormControlRange should work correctly with weirdly formed light DOM structure.] + expected: FAIL + + [FormControlRange ignores malformed input child nodes.] + expected: FAIL diff --git a/tests/wpt/meta/dom/ranges/tentative/FormControlRange-range-updates.html.ini b/tests/wpt/meta/dom/ranges/tentative/FormControlRange-range-updates.html.ini new file mode 100644 index 00000000000..8bfb16f6262 --- /dev/null +++ b/tests/wpt/meta/dom/ranges/tentative/FormControlRange-range-updates.html.ini @@ -0,0 +1,15 @@ +[FormControlRange-range-updates.html] + [FormControlRange allows updating range on same element.] + expected: FAIL + + [FormControlRange can switch between different form controls.] + expected: FAIL + + [FormControlRange works with disconnected and then connected form controls.] + expected: FAIL + + [FormControlRange can switch between connected and disconnected form controls.] + expected: FAIL + + [FormControlRange reflects value changes on same element.] + expected: FAIL diff --git a/tests/wpt/meta/dom/ranges/tentative/FormControlRange-supported-elements.html.ini b/tests/wpt/meta/dom/ranges/tentative/FormControlRange-supported-elements.html.ini new file mode 100644 index 00000000000..d0ac1a3b617 --- /dev/null +++ b/tests/wpt/meta/dom/ranges/tentative/FormControlRange-supported-elements.html.ini @@ -0,0 +1,18 @@ +[FormControlRange-supported-elements.html] + [FormControlRange should support textarea.] + expected: FAIL + + [FormControlRange should support input[type=text\].] + expected: FAIL + + [FormControlRange should support input[type=search\].] + expected: FAIL + + [FormControlRange should support input[type=password\].] + expected: FAIL + + [FormControlRange should support input[type=url\].] + expected: FAIL + + [FormControlRange should support input[type=tel\].] + expected: FAIL diff --git a/tests/wpt/meta/dom/ranges/tentative/FormControlRange-toString.html.ini b/tests/wpt/meta/dom/ranges/tentative/FormControlRange-toString.html.ini new file mode 100644 index 00000000000..d48e0f75705 --- /dev/null +++ b/tests/wpt/meta/dom/ranges/tentative/FormControlRange-toString.html.ini @@ -0,0 +1,15 @@ +[FormControlRange-toString.html] + [FormControlRange toString() reflects current value.] + expected: FAIL + + [FormControlRange toString() clamps to available length.] + expected: FAIL + + [FormControlRange toString() handles value shorter than range.] + expected: FAIL + + [FormControlRange toString() handles auto-collapsed backwards ranges.] + expected: FAIL + + [FormControlRange uses current input.value, not value attribute.] + expected: FAIL diff --git a/tests/wpt/meta/dom/ranges/tentative/FormControlRange-unsupported-elements.html.ini b/tests/wpt/meta/dom/ranges/tentative/FormControlRange-unsupported-elements.html.ini new file mode 100644 index 00000000000..ad76fcb5a14 --- /dev/null +++ b/tests/wpt/meta/dom/ranges/tentative/FormControlRange-unsupported-elements.html.ini @@ -0,0 +1,12 @@ +[FormControlRange-unsupported-elements.html] + [FormControlRange throws NotSupportedError for text node.] + expected: FAIL + + [FormControlRange should throw NotSupportedError for all unsupported HTML5 elements.] + expected: FAIL + + [FormControlRange should throw NotSupportedError for unsupported input types.] + expected: FAIL + + [NotSupportedError should take precedence over IndexSizeError when both element type and index are invalid for a FormControlRange.] + expected: FAIL diff --git a/tests/wpt/meta/dom/ranges/tentative/FormControlRange-validation.html.ini b/tests/wpt/meta/dom/ranges/tentative/FormControlRange-validation.html.ini new file mode 100644 index 00000000000..846e18d3643 --- /dev/null +++ b/tests/wpt/meta/dom/ranges/tentative/FormControlRange-validation.html.ini @@ -0,0 +1,6 @@ +[FormControlRange-validation.html] + [FormControlRange preserves state when setFormControlRange throws.] + expected: FAIL + + [FormControlRange handles all range types correctly: forward, backwards, and out-of-bounds.] + expected: FAIL diff --git a/tests/wpt/meta/html/anonymous-iframe/indexeddb.tentative.https.window.js.ini b/tests/wpt/meta/html/anonymous-iframe/indexeddb.tentative.https.window.js.ini index 299e647ff1a..2491f9cd5a1 100644 --- a/tests/wpt/meta/html/anonymous-iframe/indexeddb.tentative.https.window.js.ini +++ b/tests/wpt/meta/html/anonymous-iframe/indexeddb.tentative.https.window.js.ini @@ -1,4 +1,4 @@ [indexeddb.tentative.https.window.html] - expected: TIMEOUT + expected: CRASH [indexeddb] expected: TIMEOUT diff --git a/tests/wpt/meta/html/browsers/browsing-the-web/navigating-across-documents/008.html.ini b/tests/wpt/meta/html/browsers/browsing-the-web/navigating-across-documents/008.html.ini new file mode 100644 index 00000000000..c253f779d78 --- /dev/null +++ b/tests/wpt/meta/html/browsers/browsing-the-web/navigating-across-documents/008.html.ini @@ -0,0 +1,3 @@ +[008.html] + [Link with onclick form submit to javascript url and href navigation ] + expected: FAIL diff --git a/tests/wpt/meta/html/browsers/browsing-the-web/navigating-across-documents/empty-iframe-load-event.html.ini b/tests/wpt/meta/html/browsers/browsing-the-web/navigating-across-documents/empty-iframe-load-event.html.ini new file mode 100644 index 00000000000..3e07e6b7d1f --- /dev/null +++ b/tests/wpt/meta/html/browsers/browsing-the-web/navigating-across-documents/empty-iframe-load-event.html.ini @@ -0,0 +1,6 @@ +[empty-iframe-load-event.html] + [Check execution order from nested timeout] + expected: FAIL + + [Check execution order on load handler] + expected: FAIL diff --git a/tests/wpt/meta/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-nosrc.html.ini b/tests/wpt/meta/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-nosrc.html.ini index 02a8e91ea04..d5f4fa2f799 100644 --- a/tests/wpt/meta/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-nosrc.html.ini +++ b/tests/wpt/meta/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-nosrc.html.ini @@ -2,8 +2,5 @@ [window.open] expected: FAIL - [link click] - expected: FAIL - [form submission] expected: FAIL diff --git a/tests/wpt/meta/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-pageshow-events-window-open.html.ini b/tests/wpt/meta/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-pageshow-events-window-open.html.ini index 324db3d9b35..5aef7ce66ce 100644 --- a/tests/wpt/meta/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-pageshow-events-window-open.html.ini +++ b/tests/wpt/meta/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-pageshow-events-window-open.html.ini @@ -10,3 +10,6 @@ [load event does not fire on window.open('about:blank?foo')] expected: FAIL + + [load event does not fire on window.open('about:blank')] + expected: FAIL diff --git a/tests/wpt/meta/html/browsers/browsing-the-web/navigating-across-documents/replace-before-load/a-click.html.ini b/tests/wpt/meta/html/browsers/browsing-the-web/navigating-across-documents/replace-before-load/a-click.html.ini new file mode 100644 index 00000000000..60a4fa51f8a --- /dev/null +++ b/tests/wpt/meta/html/browsers/browsing-the-web/navigating-across-documents/replace-before-load/a-click.html.ini @@ -0,0 +1,3 @@ +[a-click.html] + [aElement.click() before the load event must NOT replace] + expected: FAIL diff --git a/tests/wpt/meta/html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.disconnected-font-size-math.html.ini b/tests/wpt/meta/html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.disconnected-font-size-math.html.ini deleted file mode 100644 index 675ea8a1458..00000000000 --- a/tests/wpt/meta/html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.disconnected-font-size-math.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[canvas.2d.disconnected-font-size-math.html] - expected: FAIL diff --git a/tests/wpt/meta/html/interaction/focus/the-autofocus-attribute/autofocus-dialog.html.ini b/tests/wpt/meta/html/interaction/focus/the-autofocus-attribute/autofocus-dialog.html.ini index fdc27d37788..830aeb8ae48 100644 --- a/tests/wpt/meta/html/interaction/focus/the-autofocus-attribute/autofocus-dialog.html.ini +++ b/tests/wpt/meta/html/interaction/focus/the-autofocus-attribute/autofocus-dialog.html.ini @@ -1,6 +1,7 @@ [autofocus-dialog.html] + expected: TIMEOUT [ can contain autofocus, without stopping page autofocus content from working] expected: FAIL [-contained autofocus element gets focused when the dialog is shown] - expected: FAIL + expected: TIMEOUT diff --git a/tests/wpt/meta/html/interaction/focus/the-autofocus-attribute/document-with-fragment-empty.html.ini b/tests/wpt/meta/html/interaction/focus/the-autofocus-attribute/document-with-fragment-empty.html.ini index 0cfee719c4e..9e6f4115b8c 100644 --- a/tests/wpt/meta/html/interaction/focus/the-autofocus-attribute/document-with-fragment-empty.html.ini +++ b/tests/wpt/meta/html/interaction/focus/the-autofocus-attribute/document-with-fragment-empty.html.ini @@ -1,7 +1,6 @@ [document-with-fragment-empty.html] - expected: TIMEOUT [Autofocus elements in iframed documents with empty fragments should work.] expected: FAIL [Autofocus elements in top-level browsing context's documents with empty fragments should work.] - expected: TIMEOUT + expected: FAIL diff --git a/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_javascript_url_xhr.html.ini b/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_javascript_url_xhr.html.ini new file mode 100644 index 00000000000..fd3197be293 --- /dev/null +++ b/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_javascript_url_xhr.html.ini @@ -0,0 +1,6 @@ +[iframe_javascript_url_xhr.html] + [Image load should not trigger load event for non-initial javascript URL load] + expected: FAIL + + [Load event for initial javascript URL load should be fired after script execution] + expected: FAIL diff --git a/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html.ini b/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html.ini index 8822f4daba6..bbc1f35d8d9 100644 --- a/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html.ini +++ b/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html.ini @@ -1,4 +1,3 @@ [iframe_sandbox_popups_nonescaping-1.html] - expected: CRASH [Check that popups from a sandboxed iframe do not escape the sandbox] expected: FAIL diff --git a/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini b/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini index 1ae1c2cc134..90c8bd71ded 100644 --- a/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini +++ b/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini @@ -1,4 +1,4 @@ [iframe_sandbox_popups_nonescaping-2.html] expected: CRASH [Check that popups from a sandboxed iframe do not escape the sandbox] - expected: FAIL + expected: NOTRUN diff --git a/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini b/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini index ff6467094b8..a24e565bbce 100644 --- a/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini +++ b/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini @@ -1,3 +1,4 @@ [iframe_sandbox_popups_nonescaping-3.html] + expected: CRASH [Check that popups from a sandboxed iframe do not escape the sandbox] expected: FAIL diff --git a/tests/wpt/meta/html/semantics/forms/form-submission-0/text-plain.window.js.ini b/tests/wpt/meta/html/semantics/forms/form-submission-0/text-plain.window.js.ini index 9ad31fef5b7..a28daea7396 100644 --- a/tests/wpt/meta/html/semantics/forms/form-submission-0/text-plain.window.js.ini +++ b/tests/wpt/meta/html/semantics/forms/form-submission-0/text-plain.window.js.ini @@ -181,3 +181,6 @@ [text/plain: 0x00 in name (normal form)] expected: FAIL + + [text/plain: Basic test (normal form)] + expected: FAIL diff --git a/tests/wpt/meta/html/semantics/forms/the-fieldset-element/disabled-003.html.ini b/tests/wpt/meta/html/semantics/forms/the-fieldset-element/disabled-003.html.ini deleted file mode 100644 index 5983b46a9ab..00000000000 --- a/tests/wpt/meta/html/semantics/forms/the-fieldset-element/disabled-003.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[disabled-003.html] - expected: CRASH diff --git a/tests/wpt/meta/html/the-xhtml-syntax/parsing-xhtml-documents/xml-stylesheet-blocking.xhtml.ini b/tests/wpt/meta/html/the-xhtml-syntax/parsing-xhtml-documents/xml-stylesheet-blocking.xhtml.ini new file mode 100644 index 00000000000..dc5c25bbd20 --- /dev/null +++ b/tests/wpt/meta/html/the-xhtml-syntax/parsing-xhtml-documents/xml-stylesheet-blocking.xhtml.ini @@ -0,0 +1,3 @@ +[xml-stylesheet-blocking.xhtml] + [xml-stylesheet blocks script execution and rendering] + expected: FAIL diff --git a/tests/wpt/meta/shadow-dom/shadow-style-invalidation-vw-units.html.ini b/tests/wpt/meta/shadow-dom/shadow-style-invalidation-vw-units.html.ini deleted file mode 100644 index d79a6a7d952..00000000000 --- a/tests/wpt/meta/shadow-dom/shadow-style-invalidation-vw-units.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[shadow-style-invalidation-vw-units.html] - expected: FAIL diff --git a/tests/wpt/meta/trusted-types/TrustedTypePolicyFactory-blocking.tentative.html.ini b/tests/wpt/meta/trusted-types/TrustedTypePolicyFactory-blocking.tentative.html.ini deleted file mode 100644 index 7453be794fc..00000000000 --- a/tests/wpt/meta/trusted-types/TrustedTypePolicyFactory-blocking.tentative.html.ini +++ /dev/null @@ -1,12 +0,0 @@ -[TrustedTypePolicyFactory-blocking.tentative.html] - [Block Trusted Type policy creation by event listener.] - expected: FAIL - - [Trusted Type policy creation.] - expected: FAIL - - [Block only default Trusted Type policy creation.] - expected: FAIL - - [Policy creation called before addEventListener function will not reached the listener.] - expected: FAIL diff --git a/tests/wpt/meta/trusted-types/trusted-types-navigation.html.ini b/tests/wpt/meta/trusted-types/trusted-types-navigation.html.ini index 23bae76e37e..fd4161c07f2 100644 --- a/tests/wpt/meta/trusted-types/trusted-types-navigation.html.ini +++ b/tests/wpt/meta/trusted-types/trusted-types-navigation.html.ini @@ -50,18 +50,14 @@ [trusted-types-navigation.html?31-35] - expected: TIMEOUT - [Navigate a frame via form-submission with javascript:-urls w/ default policy in report-only mode.] - expected: TIMEOUT - [Navigate a window via form-submission with javascript:-urls w/ a default policy throwing an exception in enforcing mode.] - expected: NOTRUN + expected: FAIL [Navigate a window via form-submission with javascript:-urls w/ a default policy throwing an exception in report-only mode.] - expected: NOTRUN + expected: FAIL [Navigate a window via form-submission with javascript:-urls w/ a default policy making the URL invalid in enforcing mode.] - expected: NOTRUN + expected: FAIL [Navigate a frame via form-submission with javascript:-urls in report-only mode.] expected: FAIL @@ -76,23 +72,23 @@ [Navigate a frame via form-submission with javascript:-urls in enforcing mode.] expected: FAIL - [Navigate a frame via form-submission with javascript:-urls w/ default policy in enforcing mode.] + [Navigate a window via form-submission with javascript:-urls in report-only mode.] expected: FAIL [trusted-types-navigation.html?06-10] - expected: CRASH + expected: TIMEOUT [Navigate a frame via anchor with javascript:-urls in report-only mode.] expected: FAIL [Navigate a frame via anchor with javascript:-urls w/ default policy in report-only mode.] - expected: FAIL + expected: TIMEOUT [Navigate a window via anchor with javascript:-urls w/ a default policy throwing an exception in enforcing mode.] - expected: FAIL + expected: NOTRUN [Navigate a window via anchor with javascript:-urls w/ a default policy throwing an exception in report-only mode.] - expected: FAIL + expected: NOTRUN [trusted-types-navigation.html?11-15] @@ -154,3 +150,6 @@ [Navigate a frame via anchor with javascript:-urls in enforcing mode.] expected: FAIL + + [Navigate a window via anchor with javascript:-urls in report-only mode.] + expected: FAIL diff --git a/tests/wpt/meta/webaudio/the-audio-api/the-audiobuffersourcenode-interface/active-processing.https.html.ini b/tests/wpt/meta/webaudio/the-audio-api/the-audiobuffersourcenode-interface/active-processing.https.html.ini index 0d13de13275..9ef3c968552 100644 --- a/tests/wpt/meta/webaudio/the-audio-api/the-audiobuffersourcenode-interface/active-processing.https.html.ini +++ b/tests/wpt/meta/webaudio/the-audio-api/the-audiobuffersourcenode-interface/active-processing.https.html.ini @@ -1,3 +1,6 @@ [active-processing.https.html] [Executing "Setup graph"] expected: FAIL + + [Setup graph with AudioWorklet and AudioBufferSourceNode] + expected: FAIL diff --git a/tests/wpt/meta/webaudio/the-audio-api/the-audioparam-interface/adding-events.html.ini b/tests/wpt/meta/webaudio/the-audio-api/the-audioparam-interface/adding-events.html.ini index 8bc33bf77cc..c3c8e001646 100644 --- a/tests/wpt/meta/webaudio/the-audio-api/the-audioparam-interface/adding-events.html.ini +++ b/tests/wpt/meta/webaudio/the-audio-api/the-audioparam-interface/adding-events.html.ini @@ -4,3 +4,9 @@ [Executing "expoRamp"] expected: FAIL + + [linearRamp: Insert linearRamp after running for some time] + expected: FAIL + + [exponentialRamp: Insert exponentialRamp after running for some time] + expected: FAIL diff --git a/tests/wpt/meta/webaudio/the-audio-api/the-channelmergernode-interface/active-processing.https.html.ini b/tests/wpt/meta/webaudio/the-audio-api/the-channelmergernode-interface/active-processing.https.html.ini index 289b1049eed..2bb2c5802d2 100644 --- a/tests/wpt/meta/webaudio/the-audio-api/the-channelmergernode-interface/active-processing.https.html.ini +++ b/tests/wpt/meta/webaudio/the-audio-api/the-channelmergernode-interface/active-processing.https.html.ini @@ -4,3 +4,9 @@ [Executing "test"] expected: FAIL + + [initialize: AudioWorklet module loading] + expected: FAIL + + [test: Active processing emits expected channel-count changes] + expected: FAIL diff --git a/tests/wpt/meta/webdriver/tests/classic/perform_actions/navigation.py.ini b/tests/wpt/meta/webdriver/tests/classic/perform_actions/navigation.py.ini deleted file mode 100644 index de6a7b8b5f8..00000000000 --- a/tests/wpt/meta/webdriver/tests/classic/perform_actions/navigation.py.ini +++ /dev/null @@ -1,2 +0,0 @@ -[navigation.py] - expected: TIMEOUT diff --git a/tests/wpt/meta/webdriver/tests/classic/take_element_screenshot/scroll_into_view.py.ini b/tests/wpt/meta/webdriver/tests/classic/take_element_screenshot/scroll_into_view.py.ini new file mode 100644 index 00000000000..3c21fb97f05 --- /dev/null +++ b/tests/wpt/meta/webdriver/tests/classic/take_element_screenshot/scroll_into_view.py.ini @@ -0,0 +1,3 @@ +[scroll_into_view.py] + [test_scroll_into_view] + expected: FAIL diff --git a/tests/wpt/meta/webxr/render_state_update.https.html.ini b/tests/wpt/meta/webxr/render_state_update.https.html.ini new file mode 100644 index 00000000000..0e57356683e --- /dev/null +++ b/tests/wpt/meta/webxr/render_state_update.https.html.ini @@ -0,0 +1,2 @@ +[render_state_update.https.html] + expected: ERROR diff --git a/tests/wpt/tests/.azure-pipelines.yml b/tests/wpt/tests/.azure-pipelines.yml index 480e89a5e27..fb2cf468979 100644 --- a/tests/wpt/tests/.azure-pipelines.yml +++ b/tests/wpt/tests/.azure-pipelines.yml @@ -158,7 +158,7 @@ jobs: dependsOn: decision condition: dependencies.decision.outputs['test_jobs.tools_unittest'] pool: - vmImage: 'windows-2019' + vmImage: 'windows-latest' variables: HYPOTHESIS_PROFILE: ci steps: @@ -177,7 +177,7 @@ jobs: dependsOn: decision condition: dependencies.decision.outputs['test_jobs.tools_unittest'] pool: - vmImage: 'windows-2019' + vmImage: 'windows-latest' steps: - task: UsePythonVersion@0 inputs: @@ -194,7 +194,7 @@ jobs: dependsOn: decision condition: dependencies.decision.outputs['test_jobs.wptrunner_unittest'] pool: - vmImage: 'windows-2019' + vmImage: 'windows-latest' steps: - task: UsePythonVersion@0 inputs: @@ -211,7 +211,7 @@ jobs: dependsOn: decision condition: dependencies.decision.outputs['test_jobs.wptrunner_unittest'] pool: - vmImage: 'windows-2019' + vmImage: 'windows-latest' steps: - task: UsePythonVersion@0 inputs: @@ -228,7 +228,7 @@ jobs: dependsOn: decision condition: dependencies.decision.outputs['test_jobs.wpt_integration'] pool: - vmImage: 'windows-2019' + vmImage: 'windows-latest' steps: # full checkout required - task: UsePythonVersion@0 @@ -250,7 +250,7 @@ jobs: dependsOn: decision condition: dependencies.decision.outputs['test_jobs.wpt_integration'] pool: - vmImage: 'windows-2019' + vmImage: 'windows-latest' steps: # full checkout required - task: UsePythonVersion@0 @@ -274,10 +274,10 @@ jobs: eq(variables['Build.SourceBranch'], 'refs/heads/triggers/edge_stable'), and(eq(variables['Build.Reason'], 'Manual'), variables['run_all_edge_stable'])) strategy: - parallel: 8 # chosen to make runtime ~2h + parallel: 10 # chosen to make runtime ~2h timeoutInMinutes: 180 pool: - vmImage: 'windows-2019' + vmImage: 'windows-latest' steps: - task: UsePythonVersion@0 inputs: @@ -310,10 +310,10 @@ jobs: eq(variables['Build.SourceBranch'], 'refs/heads/triggers/edge_dev'), and(eq(variables['Build.Reason'], 'Manual'), variables['run_all_edge_dev'])) strategy: - parallel: 8 # chosen to make runtime ~2h + parallel: 10 # chosen to make runtime ~2h timeoutInMinutes: 180 pool: - vmImage: 'windows-2019' + vmImage: 'windows-latest' steps: - task: UsePythonVersion@0 inputs: @@ -324,6 +324,7 @@ jobs: - template: tools/ci/azure/install_edge.yml parameters: channel: dev + - template: tools/ci/azure/configure_watson.yml - template: tools/ci/azure/update_hosts.yml - template: tools/ci/azure/update_manifest.yml - script: python ./wpt run --yes --no-manifest-update --no-restart-on-unexpected --no-fail-on-unexpected --install-fonts --this-chunk $(System.JobPositionInPhase) --total-chunks $(System.TotalJobsInPhase) --chunk-type hash --log-wptreport $(Build.ArtifactStagingDirectory)/wpt_report_$(System.JobPositionInPhase).json --log-wptscreenshot $(Build.ArtifactStagingDirectory)/wpt_screenshot_$(System.JobPositionInPhase).txt --log-mach - --log-mach-level info --channel dev edge @@ -346,10 +347,10 @@ jobs: eq(variables['Build.SourceBranch'], 'refs/heads/triggers/edge_canary'), and(eq(variables['Build.Reason'], 'Manual'), variables['run_all_edge_canary'])) strategy: - parallel: 8 # chosen to make runtime ~2h + parallel: 10 # chosen to make runtime ~2h timeoutInMinutes: 180 pool: - vmImage: 'windows-2019' + vmImage: 'windows-latest' steps: - task: UsePythonVersion@0 inputs: diff --git a/tests/wpt/tests/.well-known/device-bound-sessions b/tests/wpt/tests/.well-known/device-bound-sessions index 45686e0789f..5891f04a5a9 100644 --- a/tests/wpt/tests/.well-known/device-bound-sessions +++ b/tests/wpt/tests/.well-known/device-bound-sessions @@ -21,5 +21,5 @@ def main(request, response): response_body = { "provider_origin": provider_origin, } - return (200, [('Content-Type', 'application/json'), ('Set-Cookie', 'well_known_fetched=true; Path=/device-bound-session-credentials')], + return (200, [('Content-Type', 'application/json')], json.dumps(response_body)) diff --git a/tests/wpt/tests/FileAPI/blob/Blob-newobject.any.js b/tests/wpt/tests/FileAPI/blob/Blob-newobject.any.js new file mode 100644 index 00000000000..e036c3a9a74 --- /dev/null +++ b/tests/wpt/tests/FileAPI/blob/Blob-newobject.any.js @@ -0,0 +1,12 @@ +// META: title=Blob methods return new objects ([NewObject]) +// META: global=window,worker +'use strict'; + +['stream', 'text', 'arrayBuffer', 'bytes'].forEach(method => { + test(() => { + const blob = new Blob(['PASS']); + const a = blob[method](); + const b = blob[method](); + assert_not_equals(a, b, `Blob.${method}() must return a new object`); + }, `Blob.${method}() returns [NewObject]`); +}); diff --git a/tests/wpt/tests/console/WEB_FEATURES.yml b/tests/wpt/tests/console/WEB_FEATURES.yml new file mode 100644 index 00000000000..5130aef7487 --- /dev/null +++ b/tests/wpt/tests/console/WEB_FEATURES.yml @@ -0,0 +1,3 @@ +features: +- name: console + files: "**" diff --git a/tests/wpt/tests/container-timing/tentative/containertiming-body-with-child-img.html b/tests/wpt/tests/container-timing/tentative/containertiming-body-with-child-img.html index 53e9bc55074..ae5f552c2a6 100644 --- a/tests/wpt/tests/container-timing/tentative/containertiming-body-with-child-img.html +++ b/tests/wpt/tests/container-timing/tentative/containertiming-body-with-child-img.html @@ -26,16 +26,14 @@ body { }) ); observer.observe({entryTypes: ['container']}); - // Add the image during onload to be sure that the observer is registered - // in time. - window.onload = () => { - // Add image of width equal to 100 and height equal to 100. - const img = document.createElement('img'); - img.src = '/container-timing/resources/square100.png'; - img.setAttribute('id', 'img_id'); - document.body.appendChild(img); - beforeRender = performance.now(); - }; + + // Add image of width equal to 100 and height equal to 100. + const img = document.createElement('img'); + img.src = '/container-timing/resources/square100.png'; + img.setAttribute('id', 'img_id'); + document.body.appendChild(img); + + beforeRender = performance.now(); }, 'Body with containertiming observed reports children image paints.'); diff --git a/tests/wpt/tests/container-timing/tentative/containertiming-img-itself.html b/tests/wpt/tests/container-timing/tentative/containertiming-img-itself.html index 6d55532a419..70b66a0b564 100644 --- a/tests/wpt/tests/container-timing/tentative/containertiming-img-itself.html +++ b/tests/wpt/tests/container-timing/tentative/containertiming-img-itself.html @@ -25,17 +25,15 @@ body { }) ); observer.observe({entryTypes: ['container']}); - // Add the image during onload to be sure that the observer is registered - // in time. - window.onload = () => { - // Add image of width equal to 100 and height equal to 100. - const img = document.createElement('img'); - img.src = '/container-timing/resources/square100.png'; - img.setAttribute('containertiming', 'image_ct'); - img.setAttribute('id', 'my_id'); - document.body.appendChild(img); - beforeRender = performance.now(); - }; + + // Add image of width equal to 100 and height equal to 100. + const img = document.createElement('img'); + img.src = '/container-timing/resources/square100.png'; + img.setAttribute('containertiming', 'image_ct'); + img.setAttribute('id', 'my_id'); + document.body.appendChild(img); + + beforeRender = performance.now(); }, 'Element with containertiming attribute is observable and reports the image paint.'); diff --git a/tests/wpt/tests/container-timing/tentative/containertiming-observe-after-paint-with-buffering.html b/tests/wpt/tests/container-timing/tentative/containertiming-observe-after-paint-with-buffering.html index 4ceb38afd7d..a6d56db6561 100644 --- a/tests/wpt/tests/container-timing/tentative/containertiming-observe-after-paint-with-buffering.html +++ b/tests/wpt/tests/container-timing/tentative/containertiming-observe-after-paint-with-buffering.html @@ -27,17 +27,15 @@ body { ); observer.observe({type: 'container', buffered: true }); }, 2000); - // Add the image during onload to be sure that the observer is registered - // in time. - window.onload = () => { - // Add image of width equal to 100 and height equal to 100. - const img = document.createElement('img'); - img.src = '/container-timing/resources/square100.png'; - img.setAttribute('containertiming', 'image_ct'); - img.setAttribute('id', 'my_id'); - document.body.appendChild(img); - beforeRender = performance.now(); - }; + + // Add image of width equal to 100 and height equal to 100. + const img = document.createElement('img'); + img.src = '/container-timing/resources/square100.png'; + img.setAttribute('containertiming', 'image_ct'); + img.setAttribute('id', 'my_id'); + document.body.appendChild(img); + + beforeRender = performance.now(); }, 'Paint is reported when observation starts after image paint if buffering is enabled.'); diff --git a/tests/wpt/tests/container-timing/tentative/containertiming-observe-after-paint-without-buffering.html b/tests/wpt/tests/container-timing/tentative/containertiming-observe-after-paint-without-buffering.html index 0191b2ee758..8544ffd995e 100644 --- a/tests/wpt/tests/container-timing/tentative/containertiming-observe-after-paint-without-buffering.html +++ b/tests/wpt/tests/container-timing/tentative/containertiming-observe-after-paint-without-buffering.html @@ -12,7 +12,6 @@ body { diff --git a/tests/wpt/tests/container-timing/tentative/containertiming-observe-no-paint.html b/tests/wpt/tests/container-timing/tentative/containertiming-observe-no-paint.html index f2384248255..36d7cc1d13a 100644 --- a/tests/wpt/tests/container-timing/tentative/containertiming-observe-no-paint.html +++ b/tests/wpt/tests/container-timing/tentative/containertiming-observe-no-paint.html @@ -20,17 +20,14 @@ body { } ); observer.observe({entryTypes: ['container']}); - t.step_timeout(() => { - t.done(); - }, 2000); - // Add the image during onload to be sure that the observer is registered - // in time. - window.onload = () => { - const div = document.createElement('div'); - div.setAttribute('containertiming', 'div_ct'); - document.body.appendChild(div); - beforeRender = performance.now(); - }; + + finishOnElementTiming(t); + + const div = document.createElement('div'); + div.setAttribute('containertiming', 'div_ct'); + document.body.appendChild(div); + + addPaintingElementTimingAfterDoubleRAF(document.body); }, 'Container timing did not report paints when there was nothing to paint.'); diff --git a/tests/wpt/tests/container-timing/tentative/containertiming-text-itself.html b/tests/wpt/tests/container-timing/tentative/containertiming-text-itself.html index bead4d1724b..d0a0f17d38d 100644 --- a/tests/wpt/tests/container-timing/tentative/containertiming-text-itself.html +++ b/tests/wpt/tests/container-timing/tentative/containertiming-text-itself.html @@ -23,16 +23,14 @@ body { }) ); observer.observe({entryTypes: ['container']}); - // Add the text during onload to be sure that the observer is registered - // in time. - window.onload = () => { - const p = document.createElement('p'); - p.setAttribute('containertiming', 'p_ct'); - p.id = 'my_id'; - p.innerText = "This is a text"; - document.body.appendChild(p); - beforeRender = performance.now(); - }; + + const p = document.createElement('p'); + p.setAttribute('containertiming', 'p_ct'); + p.id = 'my_id'; + p.innerText = "This is a text"; + document.body.appendChild(p); + + beforeRender = performance.now(); }, 'Element with containertiming attribute is observable and reports the text paint.'); diff --git a/tests/wpt/tests/container-timing/tentative/containertiming-two-overlapping-imgs.html b/tests/wpt/tests/container-timing/tentative/containertiming-two-overlapping-imgs.html index 1a36c6f2532..dbeb971a1c6 100644 --- a/tests/wpt/tests/container-timing/tentative/containertiming-two-overlapping-imgs.html +++ b/tests/wpt/tests/container-timing/tentative/containertiming-two-overlapping-imgs.html @@ -26,31 +26,28 @@ body { }) ); observer.observe({entryTypes: ['container']}); - // Add the image during onload to be sure that the observer is registered - // in time. - window.onload = () => { - // Add a div that is the container timing root - const div = document.createElement('div'); - div.setAttribute('containertiming', 'div_ct'); - document.body.appendChild(div); - // Add two overlapping images - const img1 = document.createElement('img'); - img1.src = '/container-timing/resources/square100.png'; - img1.setAttribute('id', 'img1_id'); - img1.style.position = 'absolute'; - div.appendChild(img1); + // Add a div that is the container timing root + const div = document.createElement('div'); + div.setAttribute('containertiming', 'div_ct'); + document.body.appendChild(div); - const img2 = document.createElement('img'); - img2.src = '/container-timing/resources/square100.png'; - img2.setAttribute('id', 'img2_id'); - img2.style.marginLeft = '50px'; - img2.style.marginTop = '50px'; - img2.style.position = 'absolute'; - div.appendChild(img2); + // Add two overlapping images + const img1 = document.createElement('img'); + img1.src = '/container-timing/resources/square100.png'; + img1.setAttribute('id', 'img1_id'); + img1.style.position = 'absolute'; + div.appendChild(img1); - beforeRender = performance.now(); - }; + const img2 = document.createElement('img'); + img2.src = '/container-timing/resources/square100.png'; + img2.setAttribute('id', 'img2_id'); + img2.style.marginLeft = '50px'; + img2.style.marginTop = '50px'; + img2.style.position = 'absolute'; + div.appendChild(img2); + + beforeRender = performance.now(); }, 'Overlapping images report to containertiming.'); diff --git a/tests/wpt/tests/container-timing/tentative/containertiming-with-child-img.html b/tests/wpt/tests/container-timing/tentative/containertiming-with-child-img.html index 03f0e113902..f8e59362664 100644 --- a/tests/wpt/tests/container-timing/tentative/containertiming-with-child-img.html +++ b/tests/wpt/tests/container-timing/tentative/containertiming-with-child-img.html @@ -25,20 +25,19 @@ body { }) ); observer.observe({entryTypes: ['container']}); - // Add the image during onload to be sure that the observer is registered - // in time. - window.onload = () => { - // Add a div that is the container timing root - const div = document.createElement('div'); - div.setAttribute('containertiming', 'div_ct'); - document.body.appendChild(div); - // Add image of width equal to 100 and height equal to 100. - const img = document.createElement('img'); - img.src = '/container-timing/resources/square100.png'; - img.setAttribute('id', 'img_id'); - div.appendChild(img); - beforeRender = performance.now(); - }; + + // Add a div that is the container timing root + const div = document.createElement('div'); + div.setAttribute('containertiming', 'div_ct'); + document.body.appendChild(div); + + // Add image of width equal to 100 and height equal to 100. + const img = document.createElement('img'); + img.src = '/container-timing/resources/square100.png'; + img.setAttribute('id', 'img_id'); + div.appendChild(img); + + beforeRender = performance.now(); }, 'Paint of the image child of container timing is reported.'); diff --git a/tests/wpt/tests/container-timing/tentative/containertiming-with-child-text.html b/tests/wpt/tests/container-timing/tentative/containertiming-with-child-text.html index 1efc189c34e..b856b527ccd 100644 --- a/tests/wpt/tests/container-timing/tentative/containertiming-with-child-text.html +++ b/tests/wpt/tests/container-timing/tentative/containertiming-with-child-text.html @@ -23,20 +23,18 @@ body { }) ); observer.observe({entryTypes: ['container']}); - // Add the text during onload to be sure that the observer is registered - // in time. - window.onload = () => { - // Add a div that is the container timing root - const div = document.createElement('div'); - div.setAttribute('containertiming', 'div_ct'); - document.body.appendChild(div); - const p = document.createElement('p'); - p.id = 'p_id'; - p.innerText = "This is a text"; - div.appendChild(p); - beforeRender = performance.now(); - }; + // Add a div that is the container timing root + const div = document.createElement('div'); + div.setAttribute('containertiming', 'div_ct'); + document.body.appendChild(div); + + const p = document.createElement('p'); + p.id = 'p_id'; + p.innerText = "This is a text"; + div.appendChild(p); + + beforeRender = performance.now(); }, 'Paint of the text child of container timing is reported.'); diff --git a/tests/wpt/tests/container-timing/tentative/img-not-child-of-container-timing.html b/tests/wpt/tests/container-timing/tentative/img-not-child-of-container-timing.html index 751342a7ceb..08f3c7c687a 100644 --- a/tests/wpt/tests/container-timing/tentative/img-not-child-of-container-timing.html +++ b/tests/wpt/tests/container-timing/tentative/img-not-child-of-container-timing.html @@ -21,23 +21,20 @@ body { ); observer.observe({entryTypes: ['container']}); - // Wait 2 seconds for observations, then finish successfully - t.step_timeout(() => { - t.done(); - }, 2000); - // Add the image during onload to be sure that the observer is registered - // in time. - window.onload = () => { - // Add a div that is the container timing root - const div = document.createElement('div'); - div.setAttribute('containertiming', 'div_ct'); - document.body.appendChild(div); - // Add image of width equal to 100 and height equal to 100. - const img = document.createElement('img'); - img.src = '/container-timing/resources/square100.png'; - img.setAttribute('id', 'img_id'); - document.body.appendChild(img); - }; + finishOnElementTiming(t); + + // Add a div that is the container timing root + const div = document.createElement('div'); + div.setAttribute('containertiming', 'div_ct'); + document.body.appendChild(div); + + // Add image of width equal to 100 and height equal to 100. + const img = document.createElement('img'); + img.src = '/container-timing/resources/square100.png'; + img.setAttribute('id', 'img_id'); + document.body.appendChild(img); + + addPaintingElementTimingAfterDoubleRAF(document.body); }, 'Containertiming observed without paintable contents and an image outside does not report observations.'); diff --git a/tests/wpt/tests/container-timing/tentative/nested-containertiming-child-img.html b/tests/wpt/tests/container-timing/tentative/nested-containertiming-child-img.html index de51aa4ffef..9a81d7d18ec 100644 --- a/tests/wpt/tests/container-timing/tentative/nested-containertiming-child-img.html +++ b/tests/wpt/tests/container-timing/tentative/nested-containertiming-child-img.html @@ -25,26 +25,24 @@ body { }) ); observer.observe({entryTypes: ['container']}); - // Add the image during onload to be sure that the observer is registered - // in time. - window.onload = () => { - // Add a div that is the container timing root - const div1 = document.createElement('div'); - div1.setAttribute('containertiming', 'div1_ct'); - document.body.appendChild(div1); - // Add another div, child of the first, that is also a container root - const div2 = document.createElement('div'); - div2.setAttribute('containertiming', 'div2_ct'); - div1.appendChild(div2); + // Add a div that is the container timing root + const div1 = document.createElement('div'); + div1.setAttribute('containertiming', 'div1_ct'); + document.body.appendChild(div1); - // Add image of width equal to 100 and height equal to 100. - img = document.createElement('img'); - img.src = '/container-timing/resources/square100.png'; - img.setAttribute('id', 'img_id'); - div2.appendChild(img); - beforeRender = performance.now(); - }; + // Add another div, child of the first, that is also a container root + const div2 = document.createElement('div'); + div2.setAttribute('containertiming', 'div2_ct'); + div1.appendChild(div2); + + // Add image of width equal to 100 and height equal to 100. + img = document.createElement('img'); + img.src = '/container-timing/resources/square100.png'; + img.setAttribute('id', 'img_id'); + div2.appendChild(img); + + beforeRender = performance.now(); }, 'A parent containertiming root with default nesting policy does not get paints from children containertiming roots.'); diff --git a/tests/wpt/tests/content-security-policy/generic/image-document-applies-csp.html b/tests/wpt/tests/content-security-policy/generic/image-document-applies-csp.html new file mode 100644 index 00000000000..78a8f8e9f3d --- /dev/null +++ b/tests/wpt/tests/content-security-policy/generic/image-document-applies-csp.html @@ -0,0 +1,26 @@ + + + + CSP header applied to image document + + + + + + + + diff --git a/tests/wpt/tests/content-security-policy/generic/image-document-ignores-csp-ref.html b/tests/wpt/tests/content-security-policy/generic/image-document-ignores-csp-for-loading-main-image-ref.html similarity index 100% rename from tests/wpt/tests/content-security-policy/generic/image-document-ignores-csp-ref.html rename to tests/wpt/tests/content-security-policy/generic/image-document-ignores-csp-for-loading-main-image-ref.html diff --git a/tests/wpt/tests/content-security-policy/generic/image-document-ignores-csp-for-loading-main-image.tentative.html b/tests/wpt/tests/content-security-policy/generic/image-document-ignores-csp-for-loading-main-image.tentative.html new file mode 100644 index 00000000000..1e890299e4b --- /dev/null +++ b/tests/wpt/tests/content-security-policy/generic/image-document-ignores-csp-for-loading-main-image.tentative.html @@ -0,0 +1,7 @@ + + +CSP header ignored for image in image document + + + + diff --git a/tests/wpt/tests/html/editing/dnd/images/022.xhtml b/tests/wpt/tests/html/editing/dnd/images/022.xhtml index 6a8d8f65b5e..3afdd875d59 100644 --- a/tests/wpt/tests/html/editing/dnd/images/022.xhtml +++ b/tests/wpt/tests/html/editing/dnd/images/022.xhtml @@ -7,7 +7,7 @@ - Dropping image on vertical iframe scrollbar + Dropping image on the root scrollbar of an iframe. No drop event should be sent. -
AY
-
AXYX
+
+
AY
+
AXYX
+
+ + + + + diff --git a/tests/wpt/tests/html/semantics/embedded-content/the-iframe-element/iframe_javascript_url_xhr.html b/tests/wpt/tests/html/semantics/embedded-content/the-iframe-element/iframe_javascript_url_xhr.html new file mode 100644 index 00000000000..107862dd422 --- /dev/null +++ b/tests/wpt/tests/html/semantics/embedded-content/the-iframe-element/iframe_javascript_url_xhr.html @@ -0,0 +1,84 @@ + +javascript: URL triggers sync xhr + + + + + + + + diff --git a/tests/wpt/tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation_by_user_activation-manual.html b/tests/wpt/tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation_by_user_activation-manual.html deleted file mode 100644 index 0fa9de7c125..00000000000 --- a/tests/wpt/tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation_by_user_activation-manual.html +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - -

This tests that an iframe in sandbox with 'allow-top-navigation-by-user-activation' - can navigate the top level page, if it is trigged by a user gesture.

-

Click on the button in the iframe and it should navigate the top page.

- - - diff --git a/tests/wpt/tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation_by_user_activation_with_user_gesture.html b/tests/wpt/tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation_by_user_activation_with_user_gesture.html new file mode 100644 index 00000000000..f22949eaaf9 --- /dev/null +++ b/tests/wpt/tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation_by_user_activation_with_user_gesture.html @@ -0,0 +1,30 @@ + + + + + + + diff --git a/tests/wpt/tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation_by_user_activation_without_user_gesture.html b/tests/wpt/tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation_by_user_activation_without_user_gesture.html index 042851bbb49..989f505263b 100644 --- a/tests/wpt/tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation_by_user_activation_without_user_gesture.html +++ b/tests/wpt/tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation_by_user_activation_without_user_gesture.html @@ -1,19 +1,34 @@ - - + + + - - -

This tests that an iframe in sandbox with 'allow-top-navigation-by-user-activation' - cannot navigate its top level page, if it is not trigged by a user gesture.

- - - diff --git a/tests/wpt/tests/html/semantics/embedded-content/the-iframe-element/iframe_top_navigation_with_user_gesture.tentative.html b/tests/wpt/tests/html/semantics/embedded-content/the-iframe-element/iframe_top_navigation_with_user_gesture.tentative.html new file mode 100644 index 00000000000..ff2fa4632a6 --- /dev/null +++ b/tests/wpt/tests/html/semantics/embedded-content/the-iframe-element/iframe_top_navigation_with_user_gesture.tentative.html @@ -0,0 +1,39 @@ + + +Check that a cross-site iframe can navigate its top window if the user has +interacted with it. + + + + + + + + diff --git a/tests/wpt/tests/html/semantics/embedded-content/the-iframe-element/iframe_top_navigation_with_user_gesture_after_failure.tentative.html b/tests/wpt/tests/html/semantics/embedded-content/the-iframe-element/iframe_top_navigation_with_user_gesture_after_failure.tentative.html new file mode 100644 index 00000000000..50b5c9f800d --- /dev/null +++ b/tests/wpt/tests/html/semantics/embedded-content/the-iframe-element/iframe_top_navigation_with_user_gesture_after_failure.tentative.html @@ -0,0 +1,61 @@ + + +Check that a cross-site iframe can navigate its top window if the user has +interacted with it, even if it was previously prevented from doing so because of +a missing user activation. + + + + + + + + diff --git a/tests/wpt/tests/html/semantics/embedded-content/the-iframe-element/iframe_top_navigation_without_user_gesture.tentative.html b/tests/wpt/tests/html/semantics/embedded-content/the-iframe-element/iframe_top_navigation_without_user_gesture.tentative.html new file mode 100644 index 00000000000..fd0a8471ecd --- /dev/null +++ b/tests/wpt/tests/html/semantics/embedded-content/the-iframe-element/iframe_top_navigation_without_user_gesture.tentative.html @@ -0,0 +1,43 @@ + + +Check that a cross-site iframe can't navigate its top window if the user hasn't +interacted with it. + + + + + + + + diff --git a/tests/wpt/tests/html/semantics/embedded-content/the-iframe-element/iframe_top_navigation_without_user_gesture_nested_same_site.tentative.html b/tests/wpt/tests/html/semantics/embedded-content/the-iframe-element/iframe_top_navigation_without_user_gesture_nested_same_site.tentative.html new file mode 100644 index 00000000000..c31079a72e7 --- /dev/null +++ b/tests/wpt/tests/html/semantics/embedded-content/the-iframe-element/iframe_top_navigation_without_user_gesture_nested_same_site.tentative.html @@ -0,0 +1,43 @@ + + +Check that a cross-site iframe can't navigate its top window if the user hasn't +interacted with it, even if its parent window is same-site. + + + + + + + + diff --git a/tests/wpt/tests/html/semantics/embedded-content/the-iframe-element/iframe_top_navigation_without_user_gesture_same_site.tentative.html b/tests/wpt/tests/html/semantics/embedded-content/the-iframe-element/iframe_top_navigation_without_user_gesture_same_site.tentative.html new file mode 100644 index 00000000000..bed2ee184ca --- /dev/null +++ b/tests/wpt/tests/html/semantics/embedded-content/the-iframe-element/iframe_top_navigation_without_user_gesture_same_site.tentative.html @@ -0,0 +1,39 @@ + + +Check that a same-site iframe can navigate its top window, even if the user +hasn't interacted with it. + + + + + + + + diff --git a/tests/wpt/tests/html/semantics/embedded-content/the-iframe-element/resources/javascript_url_form_submission.html b/tests/wpt/tests/html/semantics/embedded-content/the-iframe-element/resources/javascript_url_form_submission.html new file mode 100644 index 00000000000..0d961babf0e --- /dev/null +++ b/tests/wpt/tests/html/semantics/embedded-content/the-iframe-element/resources/javascript_url_form_submission.html @@ -0,0 +1,3 @@ + + +
\ No newline at end of file diff --git a/tests/wpt/tests/html/semantics/embedded-content/the-iframe-element/support/iframe-that-performs-top-navigation-child-with-user-gesture-after-failure.html b/tests/wpt/tests/html/semantics/embedded-content/the-iframe-element/support/iframe-that-performs-top-navigation-child-with-user-gesture-after-failure.html new file mode 100644 index 00000000000..bf9dd563409 --- /dev/null +++ b/tests/wpt/tests/html/semantics/embedded-content/the-iframe-element/support/iframe-that-performs-top-navigation-child-with-user-gesture-after-failure.html @@ -0,0 +1,26 @@ + + + + + + + diff --git a/tests/wpt/tests/html/semantics/embedded-content/the-iframe-element/support/iframe-that-performs-top-navigation-child-with-user-gesture.html b/tests/wpt/tests/html/semantics/embedded-content/the-iframe-element/support/iframe-that-performs-top-navigation-child-with-user-gesture.html new file mode 100644 index 00000000000..f7337b66e60 --- /dev/null +++ b/tests/wpt/tests/html/semantics/embedded-content/the-iframe-element/support/iframe-that-performs-top-navigation-child-with-user-gesture.html @@ -0,0 +1,19 @@ + + + + + + + diff --git a/tests/wpt/tests/html/semantics/embedded-content/the-iframe-element/support/iframe-that-performs-top-navigation-child.html b/tests/wpt/tests/html/semantics/embedded-content/the-iframe-element/support/iframe-that-performs-top-navigation-child.html new file mode 100644 index 00000000000..ffb3e4a0034 --- /dev/null +++ b/tests/wpt/tests/html/semantics/embedded-content/the-iframe-element/support/iframe-that-performs-top-navigation-child.html @@ -0,0 +1,11 @@ + + + diff --git a/tests/wpt/tests/html/semantics/embedded-content/the-iframe-element/support/iframe-that-performs-top-navigation-grandparent.sub.html b/tests/wpt/tests/html/semantics/embedded-content/the-iframe-element/support/iframe-that-performs-top-navigation-grandparent.sub.html new file mode 100644 index 00000000000..1b1b49fd4d4 --- /dev/null +++ b/tests/wpt/tests/html/semantics/embedded-content/the-iframe-element/support/iframe-that-performs-top-navigation-grandparent.sub.html @@ -0,0 +1,5 @@ + + + diff --git a/tests/wpt/tests/html/semantics/embedded-content/the-iframe-element/support/iframe-that-performs-top-navigation-parent-same-site.html b/tests/wpt/tests/html/semantics/embedded-content/the-iframe-element/support/iframe-that-performs-top-navigation-parent-same-site.html new file mode 100644 index 00000000000..264269a3f58 --- /dev/null +++ b/tests/wpt/tests/html/semantics/embedded-content/the-iframe-element/support/iframe-that-performs-top-navigation-parent-same-site.html @@ -0,0 +1,5 @@ + + + diff --git a/tests/wpt/tests/html/semantics/embedded-content/the-iframe-element/support/iframe-that-performs-top-navigation-parent-with-sandbox.sub.html b/tests/wpt/tests/html/semantics/embedded-content/the-iframe-element/support/iframe-that-performs-top-navigation-parent-with-sandbox.sub.html new file mode 100644 index 00000000000..915057725fe --- /dev/null +++ b/tests/wpt/tests/html/semantics/embedded-content/the-iframe-element/support/iframe-that-performs-top-navigation-parent-with-sandbox.sub.html @@ -0,0 +1,6 @@ + + + diff --git a/tests/wpt/tests/html/semantics/embedded-content/the-iframe-element/support/iframe-that-performs-top-navigation-parent-with-user-gesture-after-failure.sub.html b/tests/wpt/tests/html/semantics/embedded-content/the-iframe-element/support/iframe-that-performs-top-navigation-parent-with-user-gesture-after-failure.sub.html new file mode 100644 index 00000000000..61b77aead1c --- /dev/null +++ b/tests/wpt/tests/html/semantics/embedded-content/the-iframe-element/support/iframe-that-performs-top-navigation-parent-with-user-gesture-after-failure.sub.html @@ -0,0 +1,5 @@ + + + diff --git a/tests/wpt/tests/html/semantics/embedded-content/the-iframe-element/support/iframe-that-performs-top-navigation-parent-with-user-gesture-with-sandbox.sub.html b/tests/wpt/tests/html/semantics/embedded-content/the-iframe-element/support/iframe-that-performs-top-navigation-parent-with-user-gesture-with-sandbox.sub.html new file mode 100644 index 00000000000..89df4b70809 --- /dev/null +++ b/tests/wpt/tests/html/semantics/embedded-content/the-iframe-element/support/iframe-that-performs-top-navigation-parent-with-user-gesture-with-sandbox.sub.html @@ -0,0 +1,6 @@ + + + diff --git a/tests/wpt/tests/html/semantics/embedded-content/the-iframe-element/support/iframe-that-performs-top-navigation-parent-with-user-gesture.sub.html b/tests/wpt/tests/html/semantics/embedded-content/the-iframe-element/support/iframe-that-performs-top-navigation-parent-with-user-gesture.sub.html new file mode 100644 index 00000000000..9f9bcd91210 --- /dev/null +++ b/tests/wpt/tests/html/semantics/embedded-content/the-iframe-element/support/iframe-that-performs-top-navigation-parent-with-user-gesture.sub.html @@ -0,0 +1,5 @@ + + + diff --git a/tests/wpt/tests/html/semantics/embedded-content/the-iframe-element/support/iframe-that-performs-top-navigation-parent.sub.html b/tests/wpt/tests/html/semantics/embedded-content/the-iframe-element/support/iframe-that-performs-top-navigation-parent.sub.html new file mode 100644 index 00000000000..f6ca250b862 --- /dev/null +++ b/tests/wpt/tests/html/semantics/embedded-content/the-iframe-element/support/iframe-that-performs-top-navigation-parent.sub.html @@ -0,0 +1,5 @@ + + + diff --git a/tests/wpt/tests/html/semantics/embedded-content/the-iframe-element/support/iframe-that-performs-top-navigation-without-user-gesture-failed.html b/tests/wpt/tests/html/semantics/embedded-content/the-iframe-element/support/iframe-that-performs-top-navigation-without-user-gesture-failed.html deleted file mode 100644 index 0436d56df97..00000000000 --- a/tests/wpt/tests/html/semantics/embedded-content/the-iframe-element/support/iframe-that-performs-top-navigation-without-user-gesture-failed.html +++ /dev/null @@ -1,16 +0,0 @@ - - -The top navigation from this iframe should be blocked. This text should appear. - - - diff --git a/tests/wpt/tests/html/semantics/embedded-content/the-iframe-element/support/iframe-that-performs-top-navigation.html b/tests/wpt/tests/html/semantics/embedded-content/the-iframe-element/support/iframe-that-performs-top-navigation.html deleted file mode 100644 index c855ca3bab2..00000000000 --- a/tests/wpt/tests/html/semantics/embedded-content/the-iframe-element/support/iframe-that-performs-top-navigation.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - -

This doc tried to navigate the top page when loaded, which should fail since it's not trigged by user activation while in a sandboxed frame with 'allow-top-navigtaion-by-user-activation'.

- Click the button below, the top navigation should succeed with a new page saying "PASSED: Navigation succeeded." in browsers supporting the 'allow-top-navigtaion-by-user-activation' iframe@sandbox keyword (eg., Chrome v58+); Otherwise, the top navigation should fail. -

- - - diff --git a/tests/wpt/tests/html/semantics/embedded-content/the-iframe-element/support/navigation-changed-iframe.html b/tests/wpt/tests/html/semantics/embedded-content/the-iframe-element/support/navigation-changed-iframe.html index abe0e78dfe4..0791dd12c2f 100644 --- a/tests/wpt/tests/html/semantics/embedded-content/the-iframe-element/support/navigation-changed-iframe.html +++ b/tests/wpt/tests/html/semantics/embedded-content/the-iframe-element/support/navigation-changed-iframe.html @@ -4,6 +4,7 @@ function fireSentinel() { document.getElementsByTagName('h4')[0].innerHTML = document.domain; + opener.postMessage("NAVIGATED", "*"); } diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/select-pseudo-light-dismiss-invalidation.tentative.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-pseudo-light-dismiss-invalidation.html similarity index 82% rename from tests/wpt/tests/html/semantics/forms/the-select-element/select-pseudo-light-dismiss-invalidation.tentative.html rename to tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-pseudo-light-dismiss-invalidation.html index 749fd8cf275..7c463a6a193 100644 --- a/tests/wpt/tests/html/semantics/forms/the-select-element/select-pseudo-light-dismiss-invalidation.tentative.html +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-pseudo-light-dismiss-invalidation.html @@ -4,6 +4,7 @@ + - + - + +
+ -
-
- - + // Main assertion for this test. Note that secure contexts are covered in + // pointerevent_pointerrawupdate.https.html. + assert_false(event_log.includes("pointerrawupdate"), + "pointerrawupdate received"); + + // A sanity check that other events are fired correctly. Note that chorded + // buttons fire pointermoves. + const expected_events = [ + "pointermove", "pointerdown", "pointermove", "pointermove", "pointerup" + ]; + assert_equals(event_log.toString(), expected_events.toString(), + "events received"); + }, "pointerrawupdate event is not fired"); + + promise_test(async test => { + assert_false("onpointerrawupdate" in window, + "Window should not have event handler onpointerrawupdate"); + assert_false("onpointerrawupdate" in window.document, + "Document should not have event handler onpointerrawupdate"); + assert_false("onpointerrawupdate" in window.document.documentElement, + "Element should not have event handler onpointerrawupdate"); + }, "onpointerrawupdate is not exposed"); + diff --git a/tests/wpt/tests/pointerevents/pointerevent_pointerrawupdate.https.html b/tests/wpt/tests/pointerevents/pointerevent_pointerrawupdate.https.html index 74c14d932ff..85df262e778 100644 --- a/tests/wpt/tests/pointerevents/pointerevent_pointerrawupdate.https.html +++ b/tests/wpt/tests/pointerevents/pointerevent_pointerrawupdate.https.html @@ -1,69 +1,65 @@ - - - pointerrawupdate - - - - - - - - - - - -

pointerrawupdate

-

Test Description: This test checks if pointerrawupdate is dispatched correctly.

-

Move your mouse within the black box.

-

Press left button down and then press middle button while holding down left button. Then release the buttons

-
- + + + + + + +
+ -
-
- - + var actions = new test_driver.Actions(); + actions = actions.pointerMove(0, 0, {origin: target}) + .pointerDown({button: actions.ButtonType.LEFT}) + .pointerDown({button: actions.ButtonType.MIDDLE}) + .pointerUp({button: actions.ButtonType.MIDDLE}) + .pointerUp({button: actions.ButtonType.LEFT}); + + await actions.send(); + await pointerup_promise; + + // Main assertion for this test. Note that non-secure contexts are covered + // in pointerevent_pointerrawupdate.html. + assert_true(event_log.includes("pointerrawupdate"), + "pointerrawupdate received"); + + // Assert the order of pointerrawupdate with respect to other events. Note + // that chorded buttons fire pointermoves. + const expected_events = [ + "pointerrawupdate", "pointermove", "pointerdown", + "pointerrawupdate", "pointermove", "pointerrawupdate", "pointermove", + "pointerup" + ]; + assert_equals(event_log.toString(), expected_events.toString(), + "events received"); + }, "pointerrawupdate event is fired"); + + promise_test(async test => { + assert_true("onpointerrawupdate" in window, + "Window should have event handler onpointerrawupdate"); + assert_true("onpointerrawupdate" in window.document, + "Document should have event handler onpointerrawupdate"); + assert_true("onpointerrawupdate" in window.document.documentElement, + "Element should have event handler onpointerrawupdate"); + }, "onpointerrawupdate is exposed"); + diff --git a/tests/wpt/tests/scroll-animations/animation-trigger/animation-trigger-addAnimation.tentative.html b/tests/wpt/tests/scroll-animations/animation-trigger/animation-trigger-addAnimation.tentative.html index a30e68a672d..721a2a5e3a1 100644 --- a/tests/wpt/tests/scroll-animations/animation-trigger/animation-trigger-addAnimation.tentative.html +++ b/tests/wpt/tests/scroll-animations/animation-trigger/animation-trigger-addAnimation.tentative.html @@ -79,7 +79,8 @@ // As the default trigger is always in the tripped state, the animation // should be played right away. - trigger.addAnimation(animation); + trigger.addAnimation(animation, "enter", "play-forwards"); + trigger.addAnimation(animation, "exit", "play-backwards"); await animation.finished; assert_times_equal(animation.currentTime, ANIMATION_DURATION_MS, @@ -98,7 +99,8 @@ assert_equals(scroller.scrollTop, 0, "scroller is not scrolled, i.e. " + "not within the trigger range"); - trigger.addAnimation(animation); + trigger.addAnimation(animation, "enter", "play-forwards"); + trigger.addAnimation(animation, "exit", "play-backwards"); await waitForAnimationFrames(2); @@ -134,7 +136,8 @@ assert_equals(animation.playState, "idle", "animation is still idle"); assert_equals(animation.currentTime, null, "currentTime is still null"); - trigger.addAnimation(animation); + trigger.addAnimation(animation, "enter", "play-forwards"); + trigger.addAnimation(animation, "exit", "play-backwards"); await animation.finished; assert_equals(animation.playState, "finished", diff --git a/tests/wpt/tests/scroll-animations/animation-trigger/animation-trigger-disarmed-by-apis.tentative.html b/tests/wpt/tests/scroll-animations/animation-trigger/animation-trigger-disarmed-by-apis.tentative.html index ab13b0069aa..5ca46f8870d 100644 --- a/tests/wpt/tests/scroll-animations/animation-trigger/animation-trigger-disarmed-by-apis.tentative.html +++ b/tests/wpt/tests/scroll-animations/animation-trigger/animation-trigger-disarmed-by-apis.tentative.html @@ -110,7 +110,8 @@ assert_equals(animation.playState, "idle", "animation is idle."); // Attaching the trigger should simply keep the animaiton paused at // zero currentTime. - trigger.addAnimation(animation); + trigger.addAnimation(animation, "enter", "play-forwards"); + trigger.addAnimation(animation, "exit", "play-backwards"); await waitForNextFrame(); assert_times_equal(animation.currentTime, 0, "animation is paused at currentTime zero."); diff --git a/tests/wpt/tests/scroll-animations/animation-trigger/animation-trigger-multiple-animations.tentative.html b/tests/wpt/tests/scroll-animations/animation-trigger/animation-trigger-multiple-animations.tentative.html index 962bbe3bdea..95ecce479e8 100644 --- a/tests/wpt/tests/scroll-animations/animation-trigger/animation-trigger-multiple-animations.tentative.html +++ b/tests/wpt/tests/scroll-animations/animation-trigger/animation-trigger-multiple-animations.tentative.html @@ -92,7 +92,8 @@ assert_equals(scroller.scrollTop, 0, "scroller is not scrolled, i.e. not within the trigger range"); - trigger.addAnimation(animation1); + trigger.addAnimation(animation1, "enter", "play-forwards"); + trigger.addAnimation(animation1, "exit", "play-backwards"); assert_equals(animation1.playState, "paused", "animation1 is paused, awaiting trigger event"); @@ -102,7 +103,8 @@ assert_equals(animation2.currentTime, null, "animations2's currentTime is null"); - trigger.addAnimation(animation2); + trigger.addAnimation(animation2, "enter", "play-forwards"); + trigger.addAnimation(animation2, "exit", "play-backwards"); assert_equals(animation1.playState, "paused", "animation is paused, awaiting trigger event"); diff --git a/tests/wpt/tests/scroll-animations/animation-trigger/animation-trigger-multiple-triggers.tentative.html b/tests/wpt/tests/scroll-animations/animation-trigger/animation-trigger-multiple-triggers.tentative.html index b43744f7fb1..fa493f178df 100644 --- a/tests/wpt/tests/scroll-animations/animation-trigger/animation-trigger-multiple-triggers.tentative.html +++ b/tests/wpt/tests/scroll-animations/animation-trigger/animation-trigger-multiple-triggers.tentative.html @@ -97,12 +97,14 @@ assert_equals(scroller.scrollTop, 0, "scroller is not scrolled, i.e. " + "not within the trigger range"); - trigger1.addAnimation(animation); - trigger2.addAnimation(animation); + trigger1.addAnimation(animation, "enter", "play-forwards"); + trigger1.addAnimation(animation, "exit", "reset"); + trigger2.addAnimation(animation, "enter", "play-forwards"); + trigger2.addAnimation(animation, "exit", "reset"); // Test preconditions. assert_equals(animation.playState, "paused", "animation is idle"); - assert_equals(animation.currentTime, 0, "currentTime is null"); + assert_equals(animation.currentTime, 0, "currentTime is 0"); await rangeBoundaries1.enterTriggerRange(); await animation.finished; @@ -145,8 +147,10 @@ assert_equals(scroller.scrollTop, 0, "scroller is not scrolled, i.e. " + "not within the trigger range"); - trigger1.addAnimation(animation); - trigger2.addAnimation(animation); + trigger1.addAnimation(animation, "enter", "play-forwards"); + trigger1.addAnimation(animation, "exit", "reset"); + trigger2.addAnimation(animation, "enter", "play-forwards"); + trigger2.addAnimation(animation, "exit", "reset"); // Test preconditions. assert_equals(animation.playState, "paused", "animation is paused"); diff --git a/tests/wpt/tests/scroll-animations/animation-trigger/animation-trigger-state.tentative.html b/tests/wpt/tests/scroll-animations/animation-trigger/animation-trigger-state.tentative.html index 1a80e6dadab..7673a4ca858 100644 --- a/tests/wpt/tests/scroll-animations/animation-trigger/animation-trigger-state.tentative.html +++ b/tests/wpt/tests/scroll-animations/animation-trigger/animation-trigger-state.tentative.html @@ -24,15 +24,15 @@ } #scroll_target { - animation-trigger: trigger(--scrolltrigger, enter play, exit pause); + animation-trigger: trigger(--scrolltrigger, enter play-once, exit pause); timeline-trigger: --scrolltrigger scroll() state 150px 200px; } #view_target { - animation-trigger: trigger(--viewtrigger, enter play, exit pause); + animation-trigger: trigger(--viewtrigger, enter play-once, exit pause); timeline-trigger: --viewtrigger view() state 150px 200px; } #deferred_target { - animation-trigger: trigger(--deferredtrigger, enter play, exit pause); + animation-trigger: trigger(--deferredtrigger, enter play-once, exit pause); } #deferred_subject { view-timeline: --viewtimeline; diff --git a/tests/wpt/tests/scroll-animations/animation-trigger/support/support.js b/tests/wpt/tests/scroll-animations/animation-trigger/support/support.js index ad67e610db8..6b4bb65b130 100644 --- a/tests/wpt/tests/scroll-animations/animation-trigger/support/support.js +++ b/tests/wpt/tests/scroll-animations/animation-trigger/support/support.js @@ -111,7 +111,8 @@ function setupAnimationAndTrigger(target, subject, duration) { rangeEnd: "contain 100%" }); - trigger.addAnimation(animation); + trigger.addAnimation(animation, "enter", "play-forwards"); + trigger.addAnimation(animation, "exit", "play-backwards"); } async function waitForAnimation(targetCurrentTime, animation) { diff --git a/tests/wpt/tests/soft-navigation-heuristics/detection/tentative/overwriting-text-once-per-interaction.html b/tests/wpt/tests/soft-navigation-heuristics/detection/tentative/overwriting-text-once-per-interaction.html index 41a363888fc..c5b2ba26d70 100644 --- a/tests/wpt/tests/soft-navigation-heuristics/detection/tentative/overwriting-text-once-per-interaction.html +++ b/tests/wpt/tests/soft-navigation-heuristics/detection/tentative/overwriting-text-once-per-interaction.html @@ -33,11 +33,9 @@ const softNavPromise = SoftNavigationTestHelper.getPerformanceEntries( "soft-navigation", - /* includeSoftNavigationObservations= */true, /* minNumEntries= */ 1); let icpPromise = SoftNavigationTestHelper.getPerformanceEntries( "interaction-contentful-paint", - /* includeSoftNavigationObservations= */true, /* minNumEntries= */ 1); const {promise, resolve} = Promise.withResolvers(); @@ -81,7 +79,6 @@ // Set things up for the next ICP entry. icpPromise = SoftNavigationTestHelper.getPerformanceEntries( "interaction-contentful-paint", - /* includeSoftNavigationObservations= */true, /* minNumEntries= */ 1); resolve(); diff --git a/tests/wpt/tests/soft-navigation-heuristics/detection/tentative/overwriting-text.html b/tests/wpt/tests/soft-navigation-heuristics/detection/tentative/overwriting-text.html index 653ae6848ec..72dced51c80 100644 --- a/tests/wpt/tests/soft-navigation-heuristics/detection/tentative/overwriting-text.html +++ b/tests/wpt/tests/soft-navigation-heuristics/detection/tentative/overwriting-text.html @@ -47,11 +47,9 @@ waitForExactlyOneElementTimingEntry(url, /*buffered=*/false); const softNavPromise = SoftNavigationTestHelper.getPerformanceEntries( "soft-navigation", - /* includeSoftNavigationObservations= */true, /* minNumEntries= */ 1); const icpPromise = SoftNavigationTestHelper.getPerformanceEntries( "interaction-contentful-paint", - /* includeSoftNavigationObservations= */true, /* minNumEntries= */ 1); if (test_driver) { diff --git a/tests/wpt/tests/soft-navigation-heuristics/dom/tentative/distant-leaf-image.window.js b/tests/wpt/tests/soft-navigation-heuristics/dom/tentative/distant-leaf-image.window.js index 96255d82f2d..b73e801d6db 100644 --- a/tests/wpt/tests/soft-navigation-heuristics/dom/tentative/distant-leaf-image.window.js +++ b/tests/wpt/tests/soft-navigation-heuristics/dom/tentative/distant-leaf-image.window.js @@ -42,7 +42,6 @@ promise_test(async (t) => { const helper = new SoftNavigationTestHelper(t); const entries = await helper.getBufferedPerformanceEntriesWithTimeout( /*type=*/ 'soft-navigation', - /*includeSoftNavigationObservations=*/ false, /*minNumEntries=*/ 1, /*timeout=*/ 3000 ); diff --git a/tests/wpt/tests/soft-navigation-heuristics/dom/tentative/distant-leaf-text.window.js b/tests/wpt/tests/soft-navigation-heuristics/dom/tentative/distant-leaf-text.window.js index 341b5aaed74..967563a2aa9 100644 --- a/tests/wpt/tests/soft-navigation-heuristics/dom/tentative/distant-leaf-text.window.js +++ b/tests/wpt/tests/soft-navigation-heuristics/dom/tentative/distant-leaf-text.window.js @@ -38,7 +38,6 @@ promise_test(async (t) => { const helper = new SoftNavigationTestHelper(t); const entries = await helper.getBufferedPerformanceEntriesWithTimeout( /*type=*/ 'soft-navigation', - /*includeSoftNavigationObservations=*/ false, /*minNumEntries=*/ 1, /*timeout=*/ 3000 ); diff --git a/tests/wpt/tests/soft-navigation-heuristics/interaction-with-paint-before-back.tentative.html b/tests/wpt/tests/soft-navigation-heuristics/interaction-with-paint-before-back.tentative.html index f1356399f02..27a8cd98198 100644 --- a/tests/wpt/tests/soft-navigation-heuristics/interaction-with-paint-before-back.tentative.html +++ b/tests/wpt/tests/soft-navigation-heuristics/interaction-with-paint-before-back.tentative.html @@ -58,7 +58,6 @@ { const element_timing_promise = helper.getBufferedPerformanceEntriesWithTimeout( /*type=*/ "element", - /*includeSoftNavigationObservations=*/ false, /*minNumEntries=*/ 1, ); if (test_driver) { @@ -80,7 +79,6 @@ { const soft_nav_promise = helper.getBufferedPerformanceEntriesWithTimeout( /*type=*/ "soft-navigation", - /*includeSoftNavigationObservations=*/ false, /*minNumEntries=*/ 1, ); if (test_driver) { diff --git a/tests/wpt/tests/soft-navigation-heuristics/lcp/tentative/background-image-set-image.html b/tests/wpt/tests/soft-navigation-heuristics/lcp/tentative/background-image-set-image.html index 78a41dbc776..d72031d70de 100644 --- a/tests/wpt/tests/soft-navigation-heuristics/lcp/tentative/background-image-set-image.html +++ b/tests/wpt/tests/soft-navigation-heuristics/lcp/tentative/background-image-set-image.html @@ -38,7 +38,6 @@ Notes: const helper = new SoftNavigationTestHelper(t); const lcpEntries = await helper.getBufferedPerformanceEntriesWithTimeout( /*type=*/ "largest-contentful-paint", - /*includeSoftNavigationObservations=*/ false, /*minNumEntries=*/ 1, ); assert_equals(lcpEntries.length, 1); @@ -54,7 +53,6 @@ Notes: } }).observe({ type: "interaction-contentful-paint", - includeSoftNavigationObservations: true, }); }); if (test_driver) { diff --git a/tests/wpt/tests/soft-navigation-heuristics/lcp/tentative/broken-image-icon.html b/tests/wpt/tests/soft-navigation-heuristics/lcp/tentative/broken-image-icon.html index 1dd21288fec..f058a4b55c2 100644 --- a/tests/wpt/tests/soft-navigation-heuristics/lcp/tentative/broken-image-icon.html +++ b/tests/wpt/tests/soft-navigation-heuristics/lcp/tentative/broken-image-icon.html @@ -36,7 +36,6 @@ Notes: const helper = new SoftNavigationTestHelper(t); const lcpEntries = await helper.getBufferedPerformanceEntriesWithTimeout( /*type=*/ "largest-contentful-paint", - /*includeSoftNavigationObservations=*/ false, /*minNumEntries=*/ 1, ); assert_equals(lcpEntries.length, 1); @@ -45,12 +44,10 @@ Notes: const promise = Promise.all([ SoftNavigationTestHelper.getPerformanceEntries( /*type=*/ "interaction-contentful-paint", - /*includeSoftNavigationObservations=*/ true, /*minNumEntries=*/ 1, ), SoftNavigationTestHelper.getPerformanceEntries( /*type=*/ "soft-navigation", - /*includeSoftNavigationObservations=*/ true, /*minNumEntries=*/ 1, ), ]); diff --git a/tests/wpt/tests/soft-navigation-heuristics/lcp/tentative/contracted-image.html b/tests/wpt/tests/soft-navigation-heuristics/lcp/tentative/contracted-image.html index dae7793f08c..631627d5d11 100644 --- a/tests/wpt/tests/soft-navigation-heuristics/lcp/tentative/contracted-image.html +++ b/tests/wpt/tests/soft-navigation-heuristics/lcp/tentative/contracted-image.html @@ -41,7 +41,6 @@ const helper = new SoftNavigationTestHelper(t); const lcpEntries = await helper.getBufferedPerformanceEntriesWithTimeout( /*type=*/ "largest-contentful-paint", - /*includeSoftNavigationObservations=*/ false, /*minNumEntries=*/ 1, ); assert_equals(lcpEntries.length, 1); @@ -50,12 +49,10 @@ const promises = Promise.all([ SoftNavigationTestHelper.getPerformanceEntries( /*type=*/ "soft-navigation", - /*includeSoftNavigationObservations=*/ false, /*minNumEntries=*/ 1, ), SoftNavigationTestHelper.getPerformanceEntries( /*type=*/ "interaction-contentful-paint", - /*includeSoftNavigationObservations=*/ true, /*minNumEntries=*/ 1, ), ]); diff --git a/tests/wpt/tests/soft-navigation-heuristics/lcp/tentative/cross-origin-image.sub.html b/tests/wpt/tests/soft-navigation-heuristics/lcp/tentative/cross-origin-image.sub.html index 777dcf70640..72cfd2fab44 100644 --- a/tests/wpt/tests/soft-navigation-heuristics/lcp/tentative/cross-origin-image.sub.html +++ b/tests/wpt/tests/soft-navigation-heuristics/lcp/tentative/cross-origin-image.sub.html @@ -35,14 +35,12 @@ const helper = new SoftNavigationTestHelper(t); const lcpEntries = await helper.getBufferedPerformanceEntriesWithTimeout( /*type=*/ "largest-contentful-paint", - /*includeSoftNavigationObservations=*/ false, /*minNumEntries=*/ 1, ); assert_equals(lcpEntries.length, 1); assert_equals(lcpEntries[0].id, "click-target", "The first entry should be the button"); const softLcpPromise = SoftNavigationTestHelper.getPerformanceEntries( /*type=*/ "interaction-contentful-paint", - /*includeSoftNavigationObservations=*/ true, /*minNumEntries=*/ 1, ); if (test_driver) { diff --git a/tests/wpt/tests/soft-navigation-heuristics/lcp/tentative/expanded-image.html b/tests/wpt/tests/soft-navigation-heuristics/lcp/tentative/expanded-image.html index 1a482b293fc..1b3d2f603f7 100644 --- a/tests/wpt/tests/soft-navigation-heuristics/lcp/tentative/expanded-image.html +++ b/tests/wpt/tests/soft-navigation-heuristics/lcp/tentative/expanded-image.html @@ -37,7 +37,6 @@ Notes: const helper = new SoftNavigationTestHelper(t); const lcpEntries = await helper.getBufferedPerformanceEntriesWithTimeout( /*type=*/ "largest-contentful-paint", - /*includeSoftNavigationObservations=*/ false, /*minNumEntries=*/ 1, ); assert_equals(lcpEntries.length, 1); @@ -46,12 +45,10 @@ Notes: const promise = Promise.all([ SoftNavigationTestHelper.getPerformanceEntries( /*type=*/ "interaction-contentful-paint", - /*includeSoftNavigationObservations=*/ true, /*minNumEntries=*/ 1, ), SoftNavigationTestHelper.getPerformanceEntries( /*type=*/ "soft-navigation", - /*includeSoftNavigationObservations=*/ true, /*minNumEntries=*/ 1, ), ]); diff --git a/tests/wpt/tests/soft-navigation-heuristics/lcp/tentative/first-paint-equals-lcp-text.html b/tests/wpt/tests/soft-navigation-heuristics/lcp/tentative/first-paint-equals-lcp-text.html index b78f1a8e8bf..c14092e168c 100644 --- a/tests/wpt/tests/soft-navigation-heuristics/lcp/tentative/first-paint-equals-lcp-text.html +++ b/tests/wpt/tests/soft-navigation-heuristics/lcp/tentative/first-paint-equals-lcp-text.html @@ -34,7 +34,6 @@ Notes: const helper = new SoftNavigationTestHelper(t); const lcpEntries = await helper.getBufferedPerformanceEntriesWithTimeout( /*type=*/ "largest-contentful-paint", - /*includeSoftNavigationObservations=*/ false, /*minNumEntries=*/ 1, ); assert_equals(lcpEntries.length, 1); @@ -43,17 +42,14 @@ Notes: const promise = Promise.all([ SoftNavigationTestHelper.getPerformanceEntries( /*type=*/ "soft-navigation", - /*includeSoftNavigationObservations=*/ true, /*minNumEntries=*/ 1, ), SoftNavigationTestHelper.getPerformanceEntries( /*type=*/ "element", - /*includeSoftNavigationObservations=*/ true, /*minNumEntries=*/ 1, ), SoftNavigationTestHelper.getPerformanceEntries( /*type=*/ "interaction-contentful-paint", - /*includeSoftNavigationObservations=*/ true, /*minNumEntries=*/ 1, ), ]); diff --git a/tests/wpt/tests/soft-navigation-heuristics/lcp/tentative/iframe-content-not-observed.html b/tests/wpt/tests/soft-navigation-heuristics/lcp/tentative/iframe-content-not-observed.html index 4a9bf86ff49..629695c644b 100644 --- a/tests/wpt/tests/soft-navigation-heuristics/lcp/tentative/iframe-content-not-observed.html +++ b/tests/wpt/tests/soft-navigation-heuristics/lcp/tentative/iframe-content-not-observed.html @@ -32,7 +32,6 @@ Notes: const helper = new SoftNavigationTestHelper(t); const lcpEntries = await helper.getBufferedPerformanceEntriesWithTimeout( /*type=*/ "largest-contentful-paint", - /*includeSoftNavigationObservations=*/ false, /*minNumEntries=*/ 1, ); assert_equals(lcpEntries.length, 1); @@ -40,14 +39,12 @@ Notes: const softNavigationPromise = SoftNavigationTestHelper.getPerformanceEntries( /*type=*/ "soft-navigation", - /*includeSoftNavigationObservations=*/ true, /*minNumEntries=*/ 1, ).then((entries) => { assert_unreached("Should not have received a soft navigation entry!"); }); const softLcpPromise = SoftNavigationTestHelper.getPerformanceEntries( /*type=*/ "interaction-contentful-paint", - /*includeSoftNavigationObservations=*/ true, /*minNumEntries=*/ 1, ).then((entries) => { assert_unreached("Should not have received an a soft LCP entry!"); diff --git a/tests/wpt/tests/soft-navigation-heuristics/lcp/tentative/raf-loop.html b/tests/wpt/tests/soft-navigation-heuristics/lcp/tentative/raf-loop.html index a047d6a8fb3..0c0cd8148a0 100644 --- a/tests/wpt/tests/soft-navigation-heuristics/lcp/tentative/raf-loop.html +++ b/tests/wpt/tests/soft-navigation-heuristics/lcp/tentative/raf-loop.html @@ -32,7 +32,7 @@ smallLcpIssued = true; observer.disconnect(); } - }).observe({ type: "interaction-contentful-paint", includeSoftNavigationObservations: true }); + }).observe({ type: "interaction-contentful-paint" }); document.body.innerHTML = `
Hello, world.
@@ -57,7 +57,6 @@ const helper = new SoftNavigationTestHelper(t); const lcpEntries = await helper.getBufferedPerformanceEntriesWithTimeout( /*type=*/ "largest-contentful-paint", - /*includeSoftNavigationObservations=*/ false, /*minNumEntries=*/ 1, ); assert_equals(lcpEntries.length, 1, "There should be only one LCP entry"); @@ -66,12 +65,10 @@ const promise = Promise.all([ SoftNavigationTestHelper.getPerformanceEntries( /*type=*/ "soft-navigation", - /*includeSoftNavigationObservations=*/ false, /*minNumEntries=*/ 1, ), SoftNavigationTestHelper.getPerformanceEntries( /*type=*/ "interaction-contentful-paint", - /*includeSoftNavigationObservations=*/ true, /*minNumEntries=*/ 2, ), ]); diff --git a/tests/wpt/tests/soft-navigation-heuristics/navigation-api-view-transition.tentative.html b/tests/wpt/tests/soft-navigation-heuristics/navigation-api-view-transition.tentative.html index 97070271c38..bab9c1f7073 100644 --- a/tests/wpt/tests/soft-navigation-heuristics/navigation-api-view-transition.tentative.html +++ b/tests/wpt/tests/soft-navigation-heuristics/navigation-api-view-transition.tentative.html @@ -27,8 +27,7 @@ async handler() { const lcp_promise = new Promise(resolve => { (new PerformanceObserver(list => resolve())).observe( - {type: 'largest-contentful-paint', - includeSoftNavigationObservations: true}); + {type: 'largest-contentful-paint'}); }); const transition = document.startViewTransition(async () => { const main = document.getElementById('main'); diff --git a/tests/wpt/tests/soft-navigation-heuristics/resources/soft-navigation-helper.js b/tests/wpt/tests/soft-navigation-heuristics/resources/soft-navigation-helper.js index 666040833a2..8f936a767dc 100644 --- a/tests/wpt/tests/soft-navigation-heuristics/resources/soft-navigation-helper.js +++ b/tests/wpt/tests/soft-navigation-heuristics/resources/soft-navigation-helper.js @@ -33,7 +33,7 @@ function getNextEntry(type) { observer.disconnect(); assert_equals(entries.length, 1, 'Only one entry.'); resolve(entries[0]); - }).observe({ type, includeSoftNavigationObservations: true }); + }).observe({ type }); }); } @@ -45,7 +45,7 @@ function getBufferedEntries(type) { } resolve(list.getEntries()); observer.disconnect(); - }).observe({ type, buffered: true, includeSoftNavigationObservations: true }); + }).observe({ type, buffered: true }); }); } diff --git a/tests/wpt/tests/soft-navigation-heuristics/resources/soft-navigation-test-helper.js b/tests/wpt/tests/soft-navigation-heuristics/resources/soft-navigation-test-helper.js index d4b6ad04a78..d19bbc2e350 100644 --- a/tests/wpt/tests/soft-navigation-heuristics/resources/soft-navigation-test-helper.js +++ b/tests/wpt/tests/soft-navigation-heuristics/resources/soft-navigation-test-helper.js @@ -53,15 +53,13 @@ class SoftNavigationTestHelper { * Waits for a number of buffered performance entries of a given type, * optionally including soft navigation observations, with a timeout message. * @param {string} type The type of the entries to wait for. - * @param {boolean} includeSoftNavigationObservations Whether to include - * soft navigation observations. * @param {number} minNumEntries The minimum number of entries to wait for. * @param {number=} timeout The timeout in milliseconds. Defaults to 1000. * @return {!Promise} The promise, which either resolves with the entries or * rejects with a timeout message. */ async getBufferedPerformanceEntriesWithTimeout( - type, includeSoftNavigationObservations, minNumEntries, timeout = 1000) { + type, minNumEntries, timeout = 1000) { let observer; return this .newPromiseWithTimeoutMessage( @@ -76,14 +74,9 @@ class SoftNavigationTestHelper { observer.observe({ type: type, buffered: true, - includeSoftNavigationObservations: - includeSoftNavigationObservations, }); }, - `${minNumEntries} entries of type ${type}${ - includeSoftNavigationObservations ? - ' with soft navigation observations' : - ''} never arrived`, + `${minNumEntries} entries of type ${type} never arrived`, timeout) .finally(() => { observer.disconnect(); @@ -94,13 +87,11 @@ class SoftNavigationTestHelper { * Waits for a number of performance entries of a given type, * optionally including soft navigation observations. * @param {string} type The type of the entries to wait for. - * @param {boolean} includeSoftNavigationObservations Whether to include - * soft navigation observations. * @param {number} minNumEntries The minimum number of entries to wait for. * @return {!Promise} The promise, which resolves with the entries. */ static getPerformanceEntries( - type, includeSoftNavigationObservations, minNumEntries) { + type, minNumEntries) { return new Promise((resolve) => { const entries = []; const observer = new PerformanceObserver((list) => { @@ -112,7 +103,6 @@ class SoftNavigationTestHelper { }) observer.observe({ type: type, - includeSoftNavigationObservations: includeSoftNavigationObservations, }); }); } diff --git a/tests/wpt/tests/soft-navigation-heuristics/smoke/tentative/almost-soft-navigation.html b/tests/wpt/tests/soft-navigation-heuristics/smoke/tentative/almost-soft-navigation.html index c66495be7d6..952f4ca77a8 100644 --- a/tests/wpt/tests/soft-navigation-heuristics/smoke/tentative/almost-soft-navigation.html +++ b/tests/wpt/tests/soft-navigation-heuristics/smoke/tentative/almost-soft-navigation.html @@ -88,7 +88,6 @@ promise_test(async (t) => { const promise = SoftNavigationTestHelper.getPerformanceEntries( "soft-navigation", - /*includeSoftNavigationObservations=*/ false, /*minNumEntries=*/ 1, ); if (test_driver) { diff --git a/tests/wpt/tests/soft-navigation-heuristics/smoke/tentative/dom.html b/tests/wpt/tests/soft-navigation-heuristics/smoke/tentative/dom.html index e663b79081e..201b9fb8d04 100644 --- a/tests/wpt/tests/soft-navigation-heuristics/smoke/tentative/dom.html +++ b/tests/wpt/tests/soft-navigation-heuristics/smoke/tentative/dom.html @@ -105,7 +105,6 @@ promise_test(async (t) => { const promise = SoftNavigationTestHelper.getPerformanceEntries( "soft-navigation", - /* includeSoftNavigationObservations= */ false, /* minNumEntries= */ 1, ); if (test_driver) { diff --git a/tests/wpt/tests/soft-navigation-heuristics/smoke/tentative/lcp.html b/tests/wpt/tests/soft-navigation-heuristics/smoke/tentative/lcp.html index 2b57e6ce196..99791532325 100644 --- a/tests/wpt/tests/soft-navigation-heuristics/smoke/tentative/lcp.html +++ b/tests/wpt/tests/soft-navigation-heuristics/smoke/tentative/lcp.html @@ -32,7 +32,6 @@ // we may later observe the soft navigation LCP entry in addition. const initial_lcp = await helper.getBufferedPerformanceEntriesWithTimeout( /*type=*/ "largest-contentful-paint", - /*include_soft_navigation_observations=*/ false, /*min_num_entries=*/ 1, ); @@ -52,12 +51,10 @@ const results = await Promise.allSettled([ helper.getBufferedPerformanceEntriesWithTimeout( /*type=*/ "soft-navigation", - /*include_soft_navigation_observations=*/ true, /*min_num_entries=*/ 1, ), helper.getBufferedPerformanceEntriesWithTimeout( /*type=*/ "interaction-contentful-paint", - /*include_soft_navigation_observations=*/ true, /*min_num_entries=*/ 1, ), ]); diff --git a/tests/wpt/tests/speculation-rules/prerender/cross-origin-iframe-prerender.https.html b/tests/wpt/tests/speculation-rules/prerender/cross-origin-iframe-prerender.https.html new file mode 100644 index 00000000000..76ed9bf71de --- /dev/null +++ b/tests/wpt/tests/speculation-rules/prerender/cross-origin-iframe-prerender.https.html @@ -0,0 +1,42 @@ + + +Load a cross-origin document in a prerendered iframe + + + + + + + + + + + diff --git a/tests/wpt/tests/speculation-rules/prerender/resources/cross-origin-iframe-prerender.html b/tests/wpt/tests/speculation-rules/prerender/resources/cross-origin-iframe-prerender.html new file mode 100644 index 00000000000..251f492b3c5 --- /dev/null +++ b/tests/wpt/tests/speculation-rules/prerender/resources/cross-origin-iframe-prerender.html @@ -0,0 +1,80 @@ + + + + + + + + + + diff --git a/tests/wpt/tests/speculation-rules/prerender/resources/cross-origin-iframe-prerender.html.headers b/tests/wpt/tests/speculation-rules/prerender/resources/cross-origin-iframe-prerender.html.headers new file mode 100644 index 00000000000..df5bb3bd34a --- /dev/null +++ b/tests/wpt/tests/speculation-rules/prerender/resources/cross-origin-iframe-prerender.html.headers @@ -0,0 +1 @@ +Supports-Loading-Mode: prerender-cross-origin-frames diff --git a/tests/wpt/tests/speculation-rules/prerender/resources/cross-origin-iframe-src-prerender.html b/tests/wpt/tests/speculation-rules/prerender/resources/cross-origin-iframe-src-prerender.html new file mode 100644 index 00000000000..a421e1c881d --- /dev/null +++ b/tests/wpt/tests/speculation-rules/prerender/resources/cross-origin-iframe-src-prerender.html @@ -0,0 +1,18 @@ + + + + +foobar + diff --git a/tests/wpt/tests/svg/animations/svgcolor-animation-invalid-value-1.html b/tests/wpt/tests/svg/animations/svgcolor-animation-invalid-value-1.html new file mode 100644 index 00000000000..aa3046a5036 --- /dev/null +++ b/tests/wpt/tests/svg/animations/svgcolor-animation-invalid-value-1.html @@ -0,0 +1,33 @@ + + + Test SVGColor animation with invalid value: Invalid color string in from attribute + + + + + + + + + + + + + + diff --git a/tests/wpt/tests/svg/linking/scripted/a.type-getter-01.svg b/tests/wpt/tests/svg/linking/scripted/a.type-getter-01.svg new file mode 100644 index 00000000000..3486531e707 --- /dev/null +++ b/tests/wpt/tests/svg/linking/scripted/a.type-getter-01.svg @@ -0,0 +1,20 @@ + + + SVGAElement.type getter + + + + + + + + \ No newline at end of file diff --git a/tests/wpt/tests/svg/linking/scripted/a.type-getter-02.svg b/tests/wpt/tests/svg/linking/scripted/a.type-getter-02.svg new file mode 100644 index 00000000000..ef628de940f --- /dev/null +++ b/tests/wpt/tests/svg/linking/scripted/a.type-getter-02.svg @@ -0,0 +1,20 @@ + + + SVGAElement.type getter + + + + + + + + \ No newline at end of file diff --git a/tests/wpt/tests/svg/linking/scripted/a.type-setter-01.svg b/tests/wpt/tests/svg/linking/scripted/a.type-setter-01.svg new file mode 100644 index 00000000000..012b293c9da --- /dev/null +++ b/tests/wpt/tests/svg/linking/scripted/a.type-setter-01.svg @@ -0,0 +1,21 @@ + + + SVGAElement.type setter + + + + + + + + \ No newline at end of file diff --git a/tests/wpt/tests/svg/text/parsing/text-decoration-color-computed.svg b/tests/wpt/tests/svg/text/parsing/text-decoration-color-computed.svg new file mode 100644 index 00000000000..ffefb6aac1f --- /dev/null +++ b/tests/wpt/tests/svg/text/parsing/text-decoration-color-computed.svg @@ -0,0 +1,31 @@ + + + SVG CSS Text Decoration Test: getComputedStyle().textDecorationColor + + + + + + + + + + + + + diff --git a/tests/wpt/tests/svg/text/parsing/text-decoration-fill-computed.tentative.svg b/tests/wpt/tests/svg/text/parsing/text-decoration-fill-computed.tentative.svg new file mode 100644 index 00000000000..9a37a9ea1a8 --- /dev/null +++ b/tests/wpt/tests/svg/text/parsing/text-decoration-fill-computed.tentative.svg @@ -0,0 +1,25 @@ + + + SVG Text CSS Decoration Test: getComputedStyle().textDecorationFill + + + + + + + + + + diff --git a/tests/wpt/tests/svg/text/parsing/text-decoration-line-computed.svg b/tests/wpt/tests/svg/text/parsing/text-decoration-line-computed.svg new file mode 100644 index 00000000000..d7ea07662f7 --- /dev/null +++ b/tests/wpt/tests/svg/text/parsing/text-decoration-line-computed.svg @@ -0,0 +1,42 @@ + + + SVG Text CSS Decoration Test: getComputedStyle().textDecorationLine + + + + + + + + + + diff --git a/tests/wpt/tests/svg/text/parsing/text-decoration-stroke-computed.tentative.svg b/tests/wpt/tests/svg/text/parsing/text-decoration-stroke-computed.tentative.svg new file mode 100644 index 00000000000..da7e9509fdf --- /dev/null +++ b/tests/wpt/tests/svg/text/parsing/text-decoration-stroke-computed.tentative.svg @@ -0,0 +1,25 @@ + + + SVG Text CSS Decoration Test: getComputedStyle().textDecorationStroke + + + + + + + + + + diff --git a/tests/wpt/tests/svg/text/parsing/text-decoration-style-computed.svg b/tests/wpt/tests/svg/text/parsing/text-decoration-style-computed.svg new file mode 100644 index 00000000000..6f307ff0dca --- /dev/null +++ b/tests/wpt/tests/svg/text/parsing/text-decoration-style-computed.svg @@ -0,0 +1,22 @@ + + + SVG Text CSS Decoration Test: getComputedStyle().textDecorationStyle + + + + + + + + + + diff --git a/tests/wpt/tests/tools/ci/azure/configure_watson.yml b/tests/wpt/tests/tools/ci/azure/configure_watson.yml new file mode 100644 index 00000000000..4bec7ecb43b --- /dev/null +++ b/tests/wpt/tests/tools/ci/azure/configure_watson.yml @@ -0,0 +1,42 @@ +steps: +- powershell: | + # Configure Windows Error Reporting (Watson) for crash dump collection + # This enables automatic crash dump generation for debugging browser and WebDriver crashes + # Only enabled when System.Debug is true to avoid disk space issues in normal runs + try { + Write-Host "Configuring Windows Error Reporting (Watson) for crash dump collection..." + + # Enable Windows Error Reporting + Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\Windows Error Reporting" -Name "Disabled" -Value 0 -Type DWord -Force + Write-Host "✓ Windows Error Reporting enabled" + + # Configure local dump collection + $localDumpsPath = "HKLM:\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps" + if (!(Test-Path $localDumpsPath)) { + New-Item -Path $localDumpsPath -Force | Out-Null + Write-Host "✓ LocalDumps registry key created" + } + + # Set dump folder to artifact staging directory so dumps are automatically published + Set-ItemProperty -Path $localDumpsPath -Name "DumpFolder" -Value "$(Build.ArtifactStagingDirectory)" -Type ExpandString -Force + Write-Host "✓ Dump folder configured: $(Build.ArtifactStagingDirectory)" + + # Configure dump type (2 = full dump with all memory) + Set-ItemProperty -Path $localDumpsPath -Name "DumpType" -Value 2 -Type DWord -Force + Write-Host "✓ Dump type set to full dump" + + # Keep up to 10 crash dumps to avoid filling disk space + Set-ItemProperty -Path $localDumpsPath -Name "DumpCount" -Value 10 -Type DWord -Force + Write-Host "✓ Dump count limit set to 10" + + Write-Host "" + Write-Host "Windows Error Reporting configured successfully!" + Write-Host "Any browser or WebDriver crashes will generate crash dumps in the artifacts." + } + catch { + Write-Warning "Failed to configure Windows Error Reporting: $($_.Exception.Message)" + Write-Warning "Registry access may be restricted on this machine." + Write-Host "Continuing without crash dump collection..." + } + displayName: 'Configure Watson crash reporting (debug mode)' + condition: and(succeeded(), eq(variables['Agent.OS'], 'Windows_NT'), eq(variables['System.Debug'], 'true')) diff --git a/tests/wpt/tests/trusted-types/TrustedTypePolicyFactory-blocking.tentative.html b/tests/wpt/tests/trusted-types/TrustedTypePolicyFactory-blocking.tentative.html deleted file mode 100644 index 6ae71b69880..00000000000 --- a/tests/wpt/tests/trusted-types/TrustedTypePolicyFactory-blocking.tentative.html +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/tests/wpt/tests/virtual-keyboard/WEB_FEATURES.yml b/tests/wpt/tests/virtual-keyboard/WEB_FEATURES.yml new file mode 100644 index 00000000000..3f6ef03c6da --- /dev/null +++ b/tests/wpt/tests/virtual-keyboard/WEB_FEATURES.yml @@ -0,0 +1,3 @@ +features: +- name: virtual-keyboard + files: "**" diff --git a/tests/wpt/tests/wai-aria/role/fallback-roles.html b/tests/wpt/tests/wai-aria/role/fallback-roles.html index 98011570b4f..320b5b7ddbd 100644 --- a/tests/wpt/tests/wai-aria/role/fallback-roles.html +++ b/tests/wpt/tests/wai-aria/role/fallback-roles.html @@ -48,9 +48,24 @@ button" data-testname="div[role=button] ignoring line break" aria-label="x" data-expectedrole="button" class="ex">x
x
+ +
x
+ + +
x
+
x
+
x
+ +
x
+
x
+
x
+ +
x
diff --git a/tests/wpt/tests/wai-aria/role/roles.html b/tests/wpt/tests/wai-aria/role/roles.html index 844da3ce47b..b645a4a78b2 100644 --- a/tests/wpt/tests/wai-aria/role/roles.html +++ b/tests/wpt/tests/wai-aria/role/roles.html @@ -11,7 +11,10 @@ -

Tests most ARIA role definitions. See comments for more info.

+

Tests most ARIA role definitions. See comments for more info.

+ + + diff --git a/tests/wpt/tests/wai-aria/scripts/aria-utils.js b/tests/wpt/tests/wai-aria/scripts/aria-utils.js index ec53464c18f..bf86dd051c3 100644 --- a/tests/wpt/tests/wai-aria/scripts/aria-utils.js +++ b/tests/wpt/tests/wai-aria/scripts/aria-utils.js @@ -20,7 +20,7 @@ const AriaUtils = { el.setAttribute("role", role); // el.role not yet supported by Gecko. document.body.appendChild(el); const computedRole = await test_driver.get_computed_role(el); - assert_equals(computedRole, role, el.outerHTML); + assert_equals(computedRole, role.toLowerCase(), el.outerHTML); }, `role: ${role}`); } }, diff --git a/tests/wpt/tests/web-animations/animation-trigger/event-trigger-alternate.tentative.html b/tests/wpt/tests/web-animations/animation-trigger/event-trigger-alternate.tentative.html index 6929c4cd38a..5be5738e9ac 100644 --- a/tests/wpt/tests/web-animations/animation-trigger/event-trigger-alternate.tentative.html +++ b/tests/wpt/tests/web-animations/animation-trigger/event-trigger-alternate.tentative.html @@ -31,7 +31,7 @@ eventType: "click", eventTarget: eventTarget }); - trigger.addAnimation(animation); + trigger.addAnimation(animation, "click", "play-alternate"); await waitForAnimationFrames(1); assert_equals(animation.playState, "idle", "animation is idle"); assert_equals(animation.playbackRate, 1, "playbackRate is initially 1"); diff --git a/tests/wpt/tests/web-animations/animation-trigger/event-trigger-before-handlers.tentative.html b/tests/wpt/tests/web-animations/animation-trigger/event-trigger-before-handlers.tentative.html index 715c5bcddfc..d2e9ebdadc4 100644 --- a/tests/wpt/tests/web-animations/animation-trigger/event-trigger-before-handlers.tentative.html +++ b/tests/wpt/tests/web-animations/animation-trigger/event-trigger-before-handlers.tentative.html @@ -38,7 +38,7 @@ eventType: "click", eventTarget: eventTarget }); - trigger.addAnimation(animation); + trigger.addAnimation(animation, "click", "play"); await waitForAnimationFrames(2); assert_equals(animation.playState, "idle", "animation is idle"); await test_driver.click(eventTarget); diff --git a/tests/wpt/tests/web-animations/animation-trigger/event-trigger-once.tentative.html b/tests/wpt/tests/web-animations/animation-trigger/event-trigger-once.tentative.html index 76b31373c14..f19d0fa9adb 100644 --- a/tests/wpt/tests/web-animations/animation-trigger/event-trigger-once.tentative.html +++ b/tests/wpt/tests/web-animations/animation-trigger/event-trigger-once.tentative.html @@ -31,7 +31,7 @@ eventType: "click", eventTarget: eventTarget }); - trigger.addAnimation(animation); + trigger.addAnimation(animation, "click", "play-once"); await waitForAnimationFrames(1); assert_equals(animation.playState, "idle", "animation is idle"); await test_driver.click(eventTarget); diff --git a/tests/wpt/tests/web-animations/animation-trigger/event-trigger-repeat.tentative.html b/tests/wpt/tests/web-animations/animation-trigger/event-trigger-repeat.tentative.html index e54e19f1fee..0dace937f67 100644 --- a/tests/wpt/tests/web-animations/animation-trigger/event-trigger-repeat.tentative.html +++ b/tests/wpt/tests/web-animations/animation-trigger/event-trigger-repeat.tentative.html @@ -31,7 +31,7 @@ eventType: "click", eventTarget: eventTarget }); - trigger.addAnimation(animation); + trigger.addAnimation(animation, "click", "replay"); await waitForAnimationFrames(1); assert_equals(animation.playState, "idle", "animation is idle"); await test_driver.click(eventTarget); diff --git a/tests/wpt/tests/web-animations/animation-trigger/event-trigger-state.tentative.html b/tests/wpt/tests/web-animations/animation-trigger/event-trigger-state.tentative.html index 2bc3e6d718b..70a71f96182 100644 --- a/tests/wpt/tests/web-animations/animation-trigger/event-trigger-state.tentative.html +++ b/tests/wpt/tests/web-animations/animation-trigger/event-trigger-state.tentative.html @@ -31,7 +31,7 @@ eventType: "click", eventTarget: eventTarget }); - trigger.addAnimation(animation); + trigger.addAnimation(animation, "click", "play-pause"); await waitForAnimationFrames(1); assert_equals(animation.playState, "idle", "animation is idle"); await test_driver.click(eventTarget); diff --git a/tests/wpt/tests/web-animations/interfaces/TimelineTrigger/constructor.html b/tests/wpt/tests/web-animations/interfaces/TimelineTrigger/constructor.html index 6d82c6499dc..a61b659804a 100644 --- a/tests/wpt/tests/web-animations/interfaces/TimelineTrigger/constructor.html +++ b/tests/wpt/tests/web-animations/interfaces/TimelineTrigger/constructor.html @@ -11,7 +11,6 @@ test(t => { const trigger = new TimelineTrigger(); - assert_equals(trigger.behavior, "once", "default behavior is once."); assert_equals(trigger.timeline, document.timeline, "default timeline is document.timeline."); assert_equals(trigger.rangeStart, "normal", "default rangeStart is normal"); @@ -24,7 +23,6 @@ test(t => { const trigger = new TimelineTrigger({}); - assert_equals(trigger.behavior, "once", "default behavior is once."); assert_equals(trigger.timeline, document.timeline, "default timeline is document.timeline."); assert_equals(trigger.rangeStart, "normal", "default rangeStart is normal"); @@ -38,14 +36,12 @@ test(t => { const scroll_timeline = new ScrollTimeline(); const trigger = new TimelineTrigger({ - behavior: "repeat", timeline: scroll_timeline, rangeStart: "contain 10%", rangeEnd: "contain 90%", exitRangeStart: "cover 10%", exitRangeEnd: "cover 90%" }); - assert_equals(trigger.behavior, "repeat", "default behavior is repeat."); assert_equals(trigger.timeline, scroll_timeline, "timeline is supplied scroll timeline."); assert_equals(trigger.rangeStart, "contain 10%", @@ -61,14 +57,12 @@ test(t => { const view_timeline = new ViewTimeline(); const trigger = new TimelineTrigger({ - behavior: "repeat", timeline: view_timeline, rangeStart: "contain 10%", rangeEnd: "contain 90%", exitRangeStart: "cover 10%", exitRangeEnd: "cover 90%" }); - assert_equals(trigger.behavior, "repeat", "behavior is supplied behavior."); assert_equals(trigger.timeline, view_timeline, "timeline is supplied scroll timeline."); assert_equals(trigger.rangeStart, "contain 10%", diff --git a/tests/wpt/tests/web-nfc/WEB_FEATURES.yml b/tests/wpt/tests/web-nfc/WEB_FEATURES.yml new file mode 100644 index 00000000000..38012ef8899 --- /dev/null +++ b/tests/wpt/tests/web-nfc/WEB_FEATURES.yml @@ -0,0 +1,3 @@ +features: +- name: web-nfc + files: "**" diff --git a/tests/wpt/tests/web-otp/WEB_FEATURES.yml b/tests/wpt/tests/web-otp/WEB_FEATURES.yml new file mode 100644 index 00000000000..fc3f44c6232 --- /dev/null +++ b/tests/wpt/tests/web-otp/WEB_FEATURES.yml @@ -0,0 +1,3 @@ +features: +- name: web-otp + files: "**" diff --git a/tests/wpt/tests/webaudio/resources/audit-util.js b/tests/wpt/tests/webaudio/resources/audit-util.js index 422c8f4678c..666bad1eff2 100644 --- a/tests/wpt/tests/webaudio/resources/audit-util.js +++ b/tests/wpt/tests/webaudio/resources/audit-util.js @@ -256,58 +256,6 @@ function assert_strict_constant_value(array, constantValue, message) { assert_true(allSame, message); } -/** - * Asserts that two arrays are approximately equal, element-wise, within a given - * absolute threshold. - * This is helpful when comparing floating-point buffers where exact equality is - * not expected. - * - * @param {!Array} actual - The actual output array. - * @param {!Array} expected - The expected reference array. - * @param {number} threshold - The maximum allowed absolute difference between - * corresponding elements. - * @param {string} message - Description used for assertion failure messages. - */ -function assert_array_approximately_equals( - actual, expected, threshold, message) { - assert_equals( - actual.length, - expected.length, - `${message} - buffer lengths must match`); - for (let i = 0; i < actual.length; ++i) { - assert_approx_equals( - actual[i], expected[i], threshold, - `${message} at index ${i}`); - } -} - -/** - * Asserts that two arrays are of equal length and that each corresponding - * element is within a specified epsilon of each other. Throws an assertion - * error if any element pair differs by more than epsilon or if the arrays - * have different lengths. - * - * @param {Array} actual - The array of actual values to test. - * @param {Array} expected - The array of expected values to compare - * against. - * @param {number} epsilon - The maximum allowed difference between - * corresponding elements. - * @param {string} desc - Description used in assertion error messages. - */ -function assert_close_to_array(actual, expected, epsilon, desc) { - assert_equals( - actual.length, - expected.length, - `${desc}: length mismatch`); - for (let i = 0; i < actual.length; ++i) { - const diff = Math.abs(actual[i] - expected[i]); - assert_less_than_equal( - diff, - epsilon, - `${desc}[${i}] |${actual[i]} - ${expected[i]}| = ${diff} > ${epsilon}`); - } -} - /** * Asserts that all elements of an array are (approximately) equal to a value. * @@ -324,3 +272,46 @@ function assert_array_constant_value( array[i], constantValue, epsilon, `${message} sample[${i}]`); } } + +/** + * Asserts that two arrays are equal within a given tolerance for each element. + * The |threshold| can be: + * - A number (absolute epsilon) + * - An object with optional {absoluteThreshold, relativeThreshold} + * - If omitted, compares with exact equality (epsilon = 0) + * + * For each element i, we require: + * |actual[i] − expected[i]| ≤ max(absoluteThreshold, + * |expected[i]|·relativeThreshold) + * + * @param {!Array|!TypedArray} actual + * @param {!Array|!TypedArray} expected + * @param {number|{ absoluteThreshold?:number, relativeThreshold?:number }} + * [threshold=0] + * @param {string} desc + */ +function assert_array_equal_within_eps( + actual, expected, threshold = 0, desc) { + assert_equals(actual.length, expected.length, desc + ': length mismatch'); + + let abs = 0; + let rel = 0; + + if (typeof threshold === 'number') { + abs = threshold; + } else if (threshold && typeof threshold === 'object') { + abs = threshold.absoluteThreshold ?? 0; + rel = threshold.relativeThreshold ?? 0; + } + + for (let i = 0; i < actual.length; ++i) { + const epsilon = Math.max(abs, Math.abs(expected[i]) * rel); + const diff = Math.abs(actual[i] - expected[i]); + assert_approx_equals( + actual[i], + expected[i], + epsilon, + `${desc} sample[${i}] |${actual[i]} - ${expected[i]}|` + + ` = ${diff} > ${epsilon}`); + } +} diff --git a/tests/wpt/tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/active-processing.https.html b/tests/wpt/tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/active-processing.https.html index 25565b76866..0d4b2e1fcbd 100644 --- a/tests/wpt/tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/active-processing.https.html +++ b/tests/wpt/tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/active-processing.https.html @@ -1,100 +1,84 @@ - + - - - Test Active Processing for AudioBufferSourceNode - - - - - - + + + Test Active Processing for AudioBufferSourceNode + + + + + + + + // Verify the number of channels at the beginning matches the + // number of channels in the AudioBuffer. + assert_array_equals( + output.slice(0, countChangeIndex), + new Float32Array(countChangeIndex).fill(numberOfChannels), + `Number of channels in input[0:${countChangeIndex - 1}]`); - + // Verify that after the source has stopped, the number of + // channels is 0. + assert_array_equals( + output.slice(countChangeIndex), + new Float32Array(renderLength - countChangeIndex), + `Number of channels in input[${countChangeIndex}:]`); + }, 'Verify input channel count change after AudioBufferSourceNode stops'); + + diff --git a/tests/wpt/tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-channels.html b/tests/wpt/tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-channels.html index f3f16c4c648..a6aef136284 100644 --- a/tests/wpt/tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-channels.html +++ b/tests/wpt/tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-channels.html @@ -1,97 +1,81 @@ - - - audiobuffersource-channels.html - - - - - - - - + + + + + - + // Check buffers with more than two channels. + for (let i = 3; i < 10; ++i) { + const buffer = new AudioBuffer({ + numberOfChannels: i, + length: 1024, + sampleRate: context.sampleRate}); + const testSource = new AudioBufferSourceNode(context); + testSource.buffer = buffer; + } + }, 'validate .buffer: Validation of AudioBuffer in ' + + '.buffer attribute setter'); + + diff --git a/tests/wpt/tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html b/tests/wpt/tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html index 7b6fbf19775..052afde712d 100644 --- a/tests/wpt/tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html +++ b/tests/wpt/tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html @@ -30,7 +30,7 @@ const actual = resultBuffer.getChannelData(0); const expected = resultBuffer.getChannelData(1); - assert_array_approximately_equals( + assert_array_equal_within_eps( actual, expected, errorThreshold, @@ -65,7 +65,7 @@ const actual = resultBuffer.getChannelData(0); const expected = resultBuffer.getChannelData(1); - assert_array_approximately_equals( + assert_array_equal_within_eps( actual, expected, errorThreshold, diff --git a/tests/wpt/tests/webaudio/the-audio-api/the-audioparam-interface/adding-events.html b/tests/wpt/tests/webaudio/the-audio-api/the-audioparam-interface/adding-events.html index ab527b6695c..ad4cfc9ce06 100644 --- a/tests/wpt/tests/webaudio/the-audio-api/the-audioparam-interface/adding-events.html +++ b/tests/wpt/tests/webaudio/the-audio-api/the-audioparam-interface/adding-events.html @@ -5,140 +5,142 @@ - diff --git a/tests/wpt/tests/webaudio/the-audio-api/the-audioparam-interface/audioparam-connect-audioratesignal.html b/tests/wpt/tests/webaudio/the-audio-api/the-audioparam-interface/audioparam-connect-audioratesignal.html index b0455f86bc0..61990739a79 100644 --- a/tests/wpt/tests/webaudio/the-audio-api/the-audioparam-interface/audioparam-connect-audioratesignal.html +++ b/tests/wpt/tests/webaudio/the-audio-api/the-audioparam-interface/audioparam-connect-audioratesignal.html @@ -16,25 +16,25 @@ to check that the resultant signal should be equal to the gain-scaling curve. - - diff --git a/tests/wpt/tests/webaudio/the-audio-api/the-channelmergernode-interface/active-processing.https.html b/tests/wpt/tests/webaudio/the-audio-api/the-channelmergernode-interface/active-processing.https.html index 9012526bdc6..73746295805 100644 --- a/tests/wpt/tests/webaudio/the-audio-api/the-channelmergernode-interface/active-processing.https.html +++ b/tests/wpt/tests/webaudio/the-audio-api/the-channelmergernode-interface/active-processing.https.html @@ -1,4 +1,4 @@ - + @@ -6,88 +6,83 @@ - - diff --git a/tests/wpt/tests/webaudio/the-audio-api/the-iirfilternode-interface/iirfilter-getFrequencyResponse.html b/tests/wpt/tests/webaudio/the-audio-api/the-iirfilternode-interface/iirfilter-getFrequencyResponse.html index eeb4af34f7d..467fe61881c 100644 --- a/tests/wpt/tests/webaudio/the-audio-api/the-iirfilternode-interface/iirfilter-getFrequencyResponse.html +++ b/tests/wpt/tests/webaudio/the-audio-api/the-iirfilternode-interface/iirfilter-getFrequencyResponse.html @@ -67,12 +67,12 @@ iir.getFrequencyResponse(frequencies, iirMag, iirPhase); // Thresholds were experimentally determined. - assert_close_to_array( + assert_array_equal_within_eps( iirMag, trueMag, 2.8611e-6, '1‑pole IIR magnitude response ' + - 'should be closed to calculated magnitude response'); - assert_close_to_array( + 'should be closed to calculated magnitude response'); + assert_array_equal_within_eps( iirPhase, truePhase, 1.7882e-7, '1‑pole IIR phase response ' + - ' should be closed to calculated phase response'); + ' should be closed to calculated phase response'); }, '1‑pole IIR getFrequencyResponse() matches analytic response'); test(t => { @@ -101,12 +101,12 @@ biquad.getFrequencyResponse(frequencies, biquadMag, biquadPhase); iir.getFrequencyResponse(frequencies, iirMag, iirPhase); // Thresholds were experimentally determined. - assert_close_to_array( + assert_array_equal_within_eps( iirMag, biquadMag, 2.7419e-5, 'IIR magnitude response should be' + - 'close to Biquad magnitude response'); - assert_close_to_array( + 'close to Biquad magnitude response'); + assert_array_equal_within_eps( iirPhase, biquadPhase, 2.7657e-5, 'IIR phase response should be' + - 'close to Biquad phase response'); + 'close to Biquad phase response'); }, 'IIR filter equivalent to biquad has matching frequency response'); test(t => { diff --git a/tests/wpt/tests/webaudio/the-audio-api/the-oscillatornode-interface/detune-limiting.html b/tests/wpt/tests/webaudio/the-audio-api/the-oscillatornode-interface/detune-limiting.html index 8d2ceabac43..e3e6d40ed63 100644 --- a/tests/wpt/tests/webaudio/the-audio-api/the-oscillatornode-interface/detune-limiting.html +++ b/tests/wpt/tests/webaudio/the-audio-api/the-oscillatornode-interface/detune-limiting.html @@ -49,7 +49,7 @@ 0, `Reference output (freq: ${refOsc.frequency.value}) must be zero` ); - assert_array_approximately_equals( + assert_array_equal_within_eps( actual, expected, 0, diff --git a/tests/wpt/tests/webcodecs/videoDecoder-codec-specific.https.any.js b/tests/wpt/tests/webcodecs/videoDecoder-codec-specific.https.any.js index 21beaa0f4b7..b09ae5bbf6f 100644 --- a/tests/wpt/tests/webcodecs/videoDecoder-codec-specific.https.any.js +++ b/tests/wpt/tests/webcodecs/videoDecoder-codec-specific.https.any.js @@ -472,3 +472,24 @@ promise_test(async t => { decoder.reset(); assert_equals(decoder.decodeQueueSize, 0); }, 'VideoDecoder decodeQueueSize test'); + +promise_test(async t => { + await checkImplements(); + const callbacks = {}; + const decoder = createVideoDecoder(t, callbacks); + decoder.configure(CONFIG); + decoder.reset(); + decoder.configure(CONFIG); + decoder.decode(CHUNKS[0]); + + let outputs = 0; + callbacks.output = frame => { + outputs++; + assert_equals(frame.timestamp, CHUNKS[0].timestamp, 'timestamp'); + assert_equals(frame.duration, CHUNKS[0].duration, 'duration'); + frame.close(); + }; + + await decoder.flush(); + assert_equals(outputs, 1, 'outputs'); +}, 'Test configure, reset, configure does not stall'); diff --git a/tests/wpt/tests/webdriver/tests/bidi/browsing_context/locate_nodes/start_nodes.py b/tests/wpt/tests/webdriver/tests/bidi/browsing_context/locate_nodes/start_nodes.py index c58c05e1cde..ba530d3a348 100644 --- a/tests/wpt/tests/webdriver/tests/bidi/browsing_context/locate_nodes/start_nodes.py +++ b/tests/wpt/tests/webdriver/tests/bidi/browsing_context/locate_nodes/start_nodes.py @@ -304,8 +304,8 @@ async def test_locate_with_document_context_node(bidi_session, inline, top_conte "sharedId": any_string, "value": { "childNodeCount": 1, - "localName": "p", - "namespaceURI": "http://www.w3.org/1999/xhtml", + "localName": "text", + "namespaceURI": "http://www.w3.org/2000/svg", "nodeType": 1, } }]), @@ -314,8 +314,8 @@ async def test_locate_with_document_context_node(bidi_session, inline, top_conte "sharedId": any_string, "value": { "childNodeCount": 1, - "localName": "p", - "namespaceURI": "http://www.w3.org/1999/xhtml", + "localName": "text", + "namespaceURI": "http://www.w3.org/2000/svg", "nodeType": 1, } }]), @@ -325,7 +325,7 @@ async def test_locate_with_svg_context_node(bidi_session, inline, top_context, t url = inline(""" -

foo

+ foo """) await bidi_session.browsing_context.navigate( diff --git a/tests/wpt/tests/webdriver/tests/bidi/browsing_context/navigate/error.py b/tests/wpt/tests/webdriver/tests/bidi/browsing_context/navigate/error.py index c6c32b88dee..d707b3bc462 100644 --- a/tests/wpt/tests/webdriver/tests/bidi/browsing_context/navigate/error.py +++ b/tests/wpt/tests/webdriver/tests/bidi/browsing_context/navigate/error.py @@ -168,37 +168,6 @@ async def test_with_new_navigation( await task -async def test_with_new_navigation_inside_page( - bidi_session, - subscribe_events, - inline, - new_tab, - wait_for_event, - wait_for_future_safe, -): - second_url = inline("
foo
") - slow_page_url = inline( - f""" - - - - - - - - -""" - ) - - # Make sure that the navigation failed. - with pytest.raises(UnknownErrorException): - await bidi_session.browsing_context.navigate( - context=new_tab["context"], url=slow_page_url, wait="complete" - ) - - @pytest.mark.parametrize("type_hint", ["tab", "window"]) async def test_close_context( bidi_session, diff --git a/tests/wpt/tests/webdriver/tests/bidi/emulation/set_locale_override/conftest.py b/tests/wpt/tests/webdriver/tests/bidi/emulation/set_locale_override/conftest.py index f3c03917659..e687010128a 100644 --- a/tests/wpt/tests/webdriver/tests/bidi/emulation/set_locale_override/conftest.py +++ b/tests/wpt/tests/webdriver/tests/bidi/emulation/set_locale_override/conftest.py @@ -8,10 +8,10 @@ LOCALES = ["de-DE", "es-ES", "fr-FR", "it-IT"] @pytest_asyncio.fixture async def get_current_locale(bidi_session): - async def get_current_locale(context): + async def get_current_locale(context, sandbox=None): result = await bidi_session.script.evaluate( expression="new Intl.DateTimeFormat().resolvedOptions().locale", - target=ContextTarget(context["context"]), + target=ContextTarget(context["context"], sandbox=sandbox), await_promise=False, ) diff --git a/tests/wpt/tests/webdriver/tests/bidi/emulation/set_locale_override/contexts.py b/tests/wpt/tests/webdriver/tests/bidi/emulation/set_locale_override/contexts.py index 9f7e01deda3..b2a2ceaecae 100644 --- a/tests/wpt/tests/webdriver/tests/bidi/emulation/set_locale_override/contexts.py +++ b/tests/wpt/tests/webdriver/tests/bidi/emulation/set_locale_override/contexts.py @@ -84,6 +84,10 @@ async def test_iframe( # Assert locale is emulated in the iframe context. assert await get_current_locale(iframe) == some_locale + sandbox_name = "test" + # Assert locale is emulated in the newly created sandbox in the iframe context. + assert await get_current_locale(iframe, sandbox_name) == some_locale + # Set another locale override. await bidi_session.emulation.set_locale_override( contexts=[new_tab["context"]], locale=another_locale @@ -91,48 +95,32 @@ async def test_iframe( # Assert locale is emulated in the iframe context. assert await get_current_locale(iframe) == another_locale + # Assert locale is emulated in the existing sandbox in the iframe context. + assert await get_current_locale(iframe, sandbox_name) == another_locale async def test_locale_override_applies_to_new_sandbox( - bidi_session, new_tab, some_locale + bidi_session, new_tab, some_locale, get_current_locale ): await bidi_session.emulation.set_locale_override( contexts=[new_tab["context"]], locale=some_locale ) - result = await bidi_session.script.evaluate( - expression="new Intl.DateTimeFormat().resolvedOptions().locale", - target=ContextTarget(new_tab["context"], sandbox="test"), - await_promise=False, - ) - # Make sure the override got applied to the newly created sandbox. - assert result["value"] == some_locale + assert await get_current_locale(new_tab, "test") == some_locale async def test_locale_override_applies_to_existing_sandbox( - bidi_session, new_tab, default_locale, another_locale + bidi_session, new_tab, default_locale, another_locale, get_current_locale ): sandbox_name = "test" # Create a sandbox. - result = await bidi_session.script.evaluate( - expression="new Intl.DateTimeFormat().resolvedOptions().locale", - target=ContextTarget(new_tab["context"], sandbox=sandbox_name), - await_promise=False, - ) - - assert result["value"] == default_locale + assert await get_current_locale(new_tab, sandbox_name) == default_locale await bidi_session.emulation.set_locale_override( contexts=[new_tab["context"]], locale=another_locale ) - result = await bidi_session.script.evaluate( - expression="new Intl.DateTimeFormat().resolvedOptions().locale", - target=ContextTarget(new_tab["context"], sandbox=sandbox_name), - await_promise=False, - ) - # Make sure the override got applied to the existing sandbox. - assert result["value"] == another_locale + assert await get_current_locale(new_tab, sandbox_name) == another_locale diff --git a/tests/wpt/tests/webdriver/tests/bidi/emulation/set_screen_orientation_override/conftest.py b/tests/wpt/tests/webdriver/tests/bidi/emulation/set_screen_orientation_override/conftest.py index a30145bf84e..aff708ddff8 100644 --- a/tests/wpt/tests/webdriver/tests/bidi/emulation/set_screen_orientation_override/conftest.py +++ b/tests/wpt/tests/webdriver/tests/bidi/emulation/set_screen_orientation_override/conftest.py @@ -8,11 +8,12 @@ from ... import remote_mapping_to_dict @pytest_asyncio.fixture async def get_screen_orientation(bidi_session): - async def get_screen_orientation(context): + async def get_screen_orientation(context, top_context=None): # Activation is required, as orientation is only available on an active # context. - await bidi_session.browsing_context.activate(context=context["context"]) - + await bidi_session.browsing_context.activate( + context=top_context["context"] if top_context else context["context"] + ) result = await bidi_session.script.evaluate( expression="""({ angle: screen.orientation.angle, diff --git a/tests/wpt/tests/webdriver/tests/bidi/emulation/set_screen_orientation_override/contexts.py b/tests/wpt/tests/webdriver/tests/bidi/emulation/set_screen_orientation_override/contexts.py index d91b4dc185e..df24e9a2b68 100644 --- a/tests/wpt/tests/webdriver/tests/bidi/emulation/set_screen_orientation_override/contexts.py +++ b/tests/wpt/tests/webdriver/tests/bidi/emulation/set_screen_orientation_override/contexts.py @@ -67,3 +67,55 @@ async def test_multiple_contexts( assert await get_screen_orientation(new_tab) == default_screen_orientation assert await get_screen_orientation( top_context) == default_screen_orientation + + +@pytest.mark.parametrize("domain", ["", "alt"], ids=["same_origin", "cross_origin"]) +async def test_iframe( + bidi_session, + new_tab, + get_screen_orientation, + some_bidi_screen_orientation, + some_web_screen_orientation, + another_bidi_screen_orientation, + another_web_screen_orientation, + inline, + domain, +): + await bidi_session.emulation.set_screen_orientation_override( + contexts=[new_tab["context"]], + screen_orientation=some_bidi_screen_orientation, + ) + + # Assert screen orientation in the required context. + assert await get_screen_orientation(new_tab) == some_web_screen_orientation + + iframe_url = inline("
foo
", domain=domain) + page_url = inline(f"") + + # Load the page with iframes. + await bidi_session.browsing_context.navigate( + context=new_tab["context"], + url=page_url, + wait="complete", + ) + + contexts = await bidi_session.browsing_context.get_tree(root=new_tab["context"]) + iframe = contexts[0]["children"][0] + + # Assert locale is emulated in the iframe context. + assert ( + await get_screen_orientation(iframe, top_context=new_tab) + == some_web_screen_orientation + ) + + # Set another screen orientation override. + await bidi_session.emulation.set_screen_orientation_override( + contexts=[new_tab["context"]], + screen_orientation=another_bidi_screen_orientation, + ) + + # Assert screen orientation is emulated in the iframe context. + assert ( + await get_screen_orientation(iframe, top_context=new_tab) + == another_web_screen_orientation + ) diff --git a/tests/wpt/tests/webdriver/tests/bidi/emulation/set_screen_orientation_override/screen_orientation.py b/tests/wpt/tests/webdriver/tests/bidi/emulation/set_screen_orientation_override/screen_orientation.py index d538e9d0a2a..09309a73626 100644 --- a/tests/wpt/tests/webdriver/tests/bidi/emulation/set_screen_orientation_override/screen_orientation.py +++ b/tests/wpt/tests/webdriver/tests/bidi/emulation/set_screen_orientation_override/screen_orientation.py @@ -1,6 +1,7 @@ import pytest from . import get_angle +from ... import remote_mapping_to_dict pytestmark = pytest.mark.asyncio @@ -32,3 +33,76 @@ async def test_screen_orientation(bidi_session, top_context, # Assert screen orientation is the default. assert await get_screen_orientation( top_context) == default_screen_orientation + + +async def test_screen_orientation_change_event( + bidi_session, + new_tab, + some_bidi_screen_orientation, + some_web_screen_orientation, + another_bidi_screen_orientation, + another_web_screen_orientation, + default_screen_orientation, + subscribe_events, + add_preload_script, + wait_for_event, + wait_for_future_safe, + inline, +): + await subscribe_events(["script.message"]) + await add_preload_script( + function_declaration="""(channel) => { + window.screen.orientation.addEventListener( + "change", + (e)=>channel({type: e.target.type, angle: e.target.angle}) + ) + }""", + arguments=[{"type": "channel", "value": {"channel": "change_event"}}], + ) + + await bidi_session.browsing_context.navigate( + context=new_tab["context"], url=inline("
foo
"), wait="complete" + ) + + on_script_message = wait_for_event("script.message") + + # Set screen orientation override. + await bidi_session.emulation.set_screen_orientation_override( + contexts=[new_tab["context"]], screen_orientation=some_bidi_screen_orientation + ) + + event_data = await wait_for_future_safe(on_script_message) + + assert ( + remote_mapping_to_dict(event_data["data"]["value"]) + == some_web_screen_orientation + ) + + on_script_message = wait_for_event("script.message") + + # Set another screen orientation override. + await bidi_session.emulation.set_screen_orientation_override( + contexts=[new_tab["context"]], + screen_orientation=another_bidi_screen_orientation, + ) + + event_data = await wait_for_future_safe(on_script_message) + + assert ( + remote_mapping_to_dict(event_data["data"]["value"]) + == another_web_screen_orientation + ) + + on_script_message = wait_for_event("script.message") + + # Reset screen orientation override. + await bidi_session.emulation.set_screen_orientation_override( + contexts=[new_tab["context"]], screen_orientation=None + ) + + event_data = await wait_for_future_safe(on_script_message) + + assert ( + remote_mapping_to_dict(event_data["data"]["value"]) + == default_screen_orientation + ) diff --git a/tests/wpt/tests/webdriver/tests/bidi/emulation/set_timezone_override/contexts.py b/tests/wpt/tests/webdriver/tests/bidi/emulation/set_timezone_override/contexts.py index 6f90a9d3040..c71d9936d94 100644 --- a/tests/wpt/tests/webdriver/tests/bidi/emulation/set_timezone_override/contexts.py +++ b/tests/wpt/tests/webdriver/tests/bidi/emulation/set_timezone_override/contexts.py @@ -86,6 +86,10 @@ async def test_iframe( # Assert timezone is emulated in the iframe context. assert await get_current_timezone(iframe) == some_timezone + sandbox_name = "test" + # Assert timezone is emulated in the newly created sandbox in the iframe context. + assert await get_current_timezone(iframe, sandbox_name) == some_timezone + # Set another timezone override. await bidi_session.emulation.set_timezone_override( contexts=[new_tab["context"]], timezone=another_timezone @@ -93,6 +97,8 @@ async def test_iframe( # Assert timezone is emulated in the iframe context. assert await get_current_timezone(iframe) == another_timezone + # Assert timezone is emulated in the existing sandbox in the iframe context. + assert await get_current_timezone(iframe, sandbox_name) == another_timezone async def test_timezone_override_applies_to_new_sandbox( diff --git a/tests/wpt/tests/webdriver/tests/bidi/integration/parallel_execution/browsing_context_print.py b/tests/wpt/tests/webdriver/tests/bidi/integration/parallel_execution/browsing_context_print.py index 65bb73c254f..429a4c6417b 100644 --- a/tests/wpt/tests/webdriver/tests/bidi/integration/parallel_execution/browsing_context_print.py +++ b/tests/wpt/tests/webdriver/tests/bidi/integration/parallel_execution/browsing_context_print.py @@ -10,7 +10,7 @@ async def test_when_browsingcontext_recreated( ): new_tab = await bidi_session.browsing_context.create(type_hint="tab") - page = inline("
foo
") + page = inline("""
foo
""") await bidi_session.browsing_context.navigate( context=new_tab["context"], url=page, wait="complete" ) diff --git a/tests/wpt/tests/webdriver/tests/classic/element_clear/scroll_into_view.py b/tests/wpt/tests/webdriver/tests/classic/element_clear/scroll_into_view.py new file mode 100644 index 00000000000..3409eb6aa79 --- /dev/null +++ b/tests/wpt/tests/webdriver/tests/classic/element_clear/scroll_into_view.py @@ -0,0 +1,36 @@ +import pytest + +from tests.support.asserts import assert_success +from tests.support.helpers import is_element_in_viewport + +from . import element_clear + + +def test_scroll_into_view(session, inline): + session.url = inline(""" + + +
+ +
+ """) + + element = session.find.css("input", all=False) + response = element_clear(session, element) + assert_success(response) + + assert is_element_in_viewport(session, element) + + assert element.property("value") == "" + diff --git a/tests/wpt/tests/webdriver/tests/classic/element_click/scroll_into_view.py b/tests/wpt/tests/webdriver/tests/classic/element_click/scroll_into_view.py index 1b9c671efab..6c3d26611d3 100644 --- a/tests/wpt/tests/webdriver/tests/classic/element_click/scroll_into_view.py +++ b/tests/wpt/tests/webdriver/tests/classic/element_click/scroll_into_view.py @@ -6,16 +6,18 @@ from tests.support.helpers import center_point def element_click(session, element): return session.transport.send( - "POST", "session/{session_id}/element/{element_id}/click".format( - session_id=session.session_id, - element_id=element.id)) + "POST", + "session/{session_id}/element/{element_id}/click".format( + session_id=session.session_id, element_id=element.id + ), + ) def assert_one_click(session): """Asserts there has only been one click, and returns that.""" clicks = session.execute_script("return window.clicks") assert len(clicks) == 1 - return tuple(clicks[0]) + return clicks[0] def test_scroll_into_view(session, inline): @@ -27,57 +29,120 @@ def test_scroll_into_view(session, inline): session.window_handle = new_handle - session.url = inline(""" - """) + session.url = inline( + """ + + +
+ +
+ + + """ + ) element = session.find.css("input", all=False) response = element_click(session, element) assert_success(response) + event_data = assert_one_click(session) + assert event_data["target"] == element + # Check if element clicked is scrolled into view - assert session.execute_script(""" + assert ( + session.execute_script( + """ let input = arguments[0]; rect = input.getBoundingClientRect(); return rect.top >= 0 && rect.left >= 0 && Math.floor(rect.bottom) <= window.innerHeight && Math.floor(rect.right) <= window.innerWidth; - """, args=(element,)) is True + """, + args=(element,), + ) + is True + ) session.window.close() session.window_handle = original_handle + @pytest.mark.parametrize("offset", range(9, 0, -1)) def test_partially_visible_does_not_scroll(session, offset, inline): - session.url = inline(""" + session.url = inline( + f"""
- """.format(offset=offset)) - target = session.find.css("div", all=False) - assert session.execute_script("return window.scrollY || document.documentElement.scrollTop") == 0 - response = element_click(session, target) + """ + ) + + assert ( + session.execute_script( + "return window.scrollY || document.documentElement.scrollTop" + ) + == 0 + ) + + element = session.find.css("div", all=False) + response = element_click(session, element) assert_success(response) - assert session.execute_script("return window.scrollY || document.documentElement.scrollTop") == 0 - click_point = assert_one_click(session) - assert click_point == pytest.approx(center_point(target), abs=1.0) + + assert ( + session.execute_script( + "return window.scrollY || document.documentElement.scrollTop" + ) + == 0 + ) + + event_data = assert_one_click(session) + assert (event_data["clientX"], event_data["clientY"]) == pytest.approx( + center_point(element), abs=1.0 + ) diff --git a/tests/wpt/tests/webdriver/tests/classic/element_send_keys/scroll_into_view.py b/tests/wpt/tests/webdriver/tests/classic/element_send_keys/scroll_into_view.py index af20211251a..6d1c37f8d51 100644 --- a/tests/wpt/tests/webdriver/tests/classic/element_send_keys/scroll_into_view.py +++ b/tests/wpt/tests/webdriver/tests/classic/element_send_keys/scroll_into_view.py @@ -31,14 +31,33 @@ def test_element_outside_of_not_scrollable_viewport(session, inline): def test_element_outside_of_scrollable_viewport(session, inline): - session.url = inline('') - element = session.find.css("input", all=False) + session.url = inline(""" + + +
+ +
+ """) + + element = session.find.css("input", all=False) + response = element_send_keys(session, element, " bar") assert_success(response) assert is_element_in_viewport(session, element) + assert element.property("value") == "foo bar" + def test_contenteditable_element_outside_of_scrollable_viewport(session, inline): session.url = inline('
') diff --git a/tests/wpt/tests/webdriver/tests/classic/take_element_screenshot/__init__.py b/tests/wpt/tests/webdriver/tests/classic/take_element_screenshot/__init__.py index 9a82cc48eab..9e9a5599ed3 100644 --- a/tests/wpt/tests/webdriver/tests/classic/take_element_screenshot/__init__.py +++ b/tests/wpt/tests/webdriver/tests/classic/take_element_screenshot/__init__.py @@ -8,3 +8,13 @@ def element_dimensions(session, element): Math.floor(height * devicePixelRatio), ]; """, args=(element,))) + + +def take_element_screenshot(session, element_id): + return session.transport.send( + "GET", + "session/{session_id}/element/{element_id}/screenshot".format( + session_id=session.session_id, + element_id=element_id, + ) + ) diff --git a/tests/wpt/tests/webdriver/tests/classic/take_element_screenshot/iframe.py b/tests/wpt/tests/webdriver/tests/classic/take_element_screenshot/iframe.py index e7f1b0c8053..0262fa8b1d3 100644 --- a/tests/wpt/tests/webdriver/tests/classic/take_element_screenshot/iframe.py +++ b/tests/wpt/tests/webdriver/tests/classic/take_element_screenshot/iframe.py @@ -3,7 +3,7 @@ import pytest from tests.support.asserts import assert_success from tests.support.image import png_dimensions -from . import element_dimensions +from . import element_dimensions, take_element_screenshot DEFAULT_CONTENT = "
Lorem ipsum dolor sit amet.
" @@ -57,16 +57,6 @@ INNER_IFRAME_STYLE = """ """ -def take_element_screenshot(session, element_id): - return session.transport.send( - "GET", - "session/{session_id}/element/{element_id}/screenshot".format( - session_id=session.session_id, - element_id=element_id, - ) - ) - - def test_frame_element(session, inline, iframe): # Create a reference element which looks exactly like the frame's content session.url = inline("{0}{1}".format(REFERENCE_STYLE, REFERENCE_CONTENT)) diff --git a/tests/wpt/tests/webdriver/tests/classic/take_element_screenshot/screenshot.py b/tests/wpt/tests/webdriver/tests/classic/take_element_screenshot/screenshot.py index fdc0d65b1d9..1fe82d47467 100644 --- a/tests/wpt/tests/webdriver/tests/classic/take_element_screenshot/screenshot.py +++ b/tests/wpt/tests/webdriver/tests/classic/take_element_screenshot/screenshot.py @@ -4,17 +4,7 @@ from webdriver import WebElement from tests.support.asserts import assert_error, assert_success from tests.support.image import png_dimensions -from . import element_dimensions - - -def take_element_screenshot(session, element_id): - return session.transport.send( - "GET", - "session/{session_id}/element/{element_id}/screenshot".format( - session_id=session.session_id, - element_id=element_id, - ) - ) +from . import element_dimensions, take_element_screenshot def test_no_top_browsing_context(session, closed_window): diff --git a/tests/wpt/tests/webdriver/tests/classic/take_element_screenshot/scroll_into_view.py b/tests/wpt/tests/webdriver/tests/classic/take_element_screenshot/scroll_into_view.py new file mode 100644 index 00000000000..42249c90ac8 --- /dev/null +++ b/tests/wpt/tests/webdriver/tests/classic/take_element_screenshot/scroll_into_view.py @@ -0,0 +1,40 @@ +import pytest + +from tests.support.asserts import assert_success +from tests.support.helpers import is_element_in_viewport + +from . import take_element_screenshot + + +def test_scroll_into_view(session, inline): + session.url = inline(""" + + + +
+ +
+ """) + + reference = session.find.css("#reference", all=False) + response = take_element_screenshot(session, reference.id) + reference_screenshot = assert_success(response) + + element = session.find.css("#target", all=False) + response = take_element_screenshot(session, element.id) + screenshot = assert_success(response) + + assert is_element_in_viewport(session, element) + + assert screenshot == reference_screenshot diff --git a/tests/wpt/tests/webgpu/WEB_FEATURES.yml b/tests/wpt/tests/webgpu/WEB_FEATURES.yml new file mode 100644 index 00000000000..c2f16d88c6b --- /dev/null +++ b/tests/wpt/tests/webgpu/WEB_FEATURES.yml @@ -0,0 +1,3 @@ +features: +- name: webgpu + files: "**" diff --git a/tests/wpt/tests/webnn/WEB_FEATURES.yml b/tests/wpt/tests/webnn/WEB_FEATURES.yml new file mode 100644 index 00000000000..f747ef978f1 --- /dev/null +++ b/tests/wpt/tests/webnn/WEB_FEATURES.yml @@ -0,0 +1,3 @@ +features: +- name: webnn + files: "**" diff --git a/tests/wpt/tests/webnn/conformance_tests/tensor.https.any.js b/tests/wpt/tests/webnn/conformance_tests/tensor.https.any.js index 4b6a4ab8e7f..4c895b98157 100644 --- a/tests/wpt/tests/webnn/conformance_tests/tensor.https.any.js +++ b/tests/wpt/tests/webnn/conformance_tests/tensor.https.any.js @@ -1401,11 +1401,12 @@ const testExportToGPU = (testName) => { // Check if WebNN interop is supported. try { - await mlContext.createTensor({ + let mlTensor = await mlContext.createTensor({ dataType: 'float32', shape: shape, exportableToGPU: true, }); + await mlContext.exportToGPU(mlTensor); } catch (e) { if (e.name === 'NotSupportedError') { isExportToGPUSupported = false; diff --git a/tests/wpt/tests/webrtc-stats/WEB_FEATURES.yml b/tests/wpt/tests/webrtc-stats/WEB_FEATURES.yml new file mode 100644 index 00000000000..0be5cb8425c --- /dev/null +++ b/tests/wpt/tests/webrtc-stats/WEB_FEATURES.yml @@ -0,0 +1,3 @@ +features: +- name: webrtc-stats + files: "**" diff --git a/tests/wpt/tests/webrtc/RTCDataChannel-send.html b/tests/wpt/tests/webrtc/RTCDataChannel-send.html index 69bdf9dbe62..bc93edce697 100644 --- a/tests/wpt/tests/webrtc/RTCDataChannel-send.html +++ b/tests/wpt/tests/webrtc/RTCDataChannel-send.html @@ -5,6 +5,7 @@ + diff --git a/tests/wpt/tests/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/lang_object/lang_attribute-ref.html b/tests/wpt/tests/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/lang_object/lang_attribute-ref.html new file mode 100644 index 00000000000..82af621e457 --- /dev/null +++ b/tests/wpt/tests/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/lang_object/lang_attribute-ref.html @@ -0,0 +1,29 @@ + +Reference for WebVTT rendering, ::cue([lang=]) + +
DeutschEnglish
diff --git a/tests/wpt/tests/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/lang_object/lang_attribute.html b/tests/wpt/tests/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/lang_object/lang_attribute.html new file mode 100644 index 00000000000..8ee3a551eb3 --- /dev/null +++ b/tests/wpt/tests/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/lang_object/lang_attribute.html @@ -0,0 +1,26 @@ + + +WebVTT rendering, ::cue([lang=]) + + + + + diff --git a/tests/wpt/tests/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/lang_object/lang_color-ref.html b/tests/wpt/tests/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/lang_object/lang_color-ref.html new file mode 100644 index 00000000000..957df145fb3 --- /dev/null +++ b/tests/wpt/tests/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/lang_object/lang_color-ref.html @@ -0,0 +1,29 @@ + +Reference for WebVTT rendering, ::cue(lang), color: #0000ff + +
DeutschEnglish
diff --git a/tests/wpt/tests/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/lang_object/lang_color.html b/tests/wpt/tests/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/lang_object/lang_color.html new file mode 100644 index 00000000000..de0c838065a --- /dev/null +++ b/tests/wpt/tests/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/lang_object/lang_color.html @@ -0,0 +1,22 @@ + + +WebVTT rendering, ::cue(lang), color: #0000ff + + + + + diff --git a/tests/wpt/tests/webvtt/rendering/cues-with-video/processing-model/support/test_lang_object.vtt b/tests/wpt/tests/webvtt/rendering/cues-with-video/processing-model/support/test_lang_object.vtt new file mode 100644 index 00000000000..957c7a906b4 --- /dev/null +++ b/tests/wpt/tests/webvtt/rendering/cues-with-video/processing-model/support/test_lang_object.vtt @@ -0,0 +1,4 @@ +WEBVTT + +00:00:00.000 --> 00:00:05.000 +DeutschEnglish \ No newline at end of file diff --git a/tests/wpt/tests/window-management/WEB_FEATURES.yml b/tests/wpt/tests/window-management/WEB_FEATURES.yml new file mode 100644 index 00000000000..efaa052f5da --- /dev/null +++ b/tests/wpt/tests/window-management/WEB_FEATURES.yml @@ -0,0 +1,3 @@ +features: +- name: window-management + files: "**"