diff --git a/tests/wpt/metadata/FileAPI/url/url-in-tags-revoke.window.js.ini b/tests/wpt/metadata/FileAPI/url/url-in-tags-revoke.window.js.ini index a9e467132440..76b398963aee 100644 --- a/tests/wpt/metadata/FileAPI/url/url-in-tags-revoke.window.js.ini +++ b/tests/wpt/metadata/FileAPI/url/url-in-tags-revoke.window.js.ini @@ -7,7 +7,7 @@ expected: FAIL [Opening a blob URL in a new window immediately before revoking it works.] - expected: TIMEOUT + expected: FAIL [Opening a blob URL in a noopener about:blank window immediately before revoking it works.] expected: FAIL diff --git a/tests/wpt/metadata/FileAPI/url/url-with-fetch.any.js.ini b/tests/wpt/metadata/FileAPI/url/url-with-fetch.any.js.ini index f28a19f12507..4c1aa18e695d 100644 --- a/tests/wpt/metadata/FileAPI/url/url-with-fetch.any.js.ini +++ b/tests/wpt/metadata/FileAPI/url/url-with-fetch.any.js.ini @@ -10,3 +10,6 @@ [Revoke blob URL after creating Request, will fetch] expected: FAIL + [Revoke blob URL after calling fetch, fetch should succeed] + expected: FAIL + diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json index 3081e9d40de3..b5d26a19d6cb 100644 --- a/tests/wpt/metadata/MANIFEST.json +++ b/tests/wpt/metadata/MANIFEST.json @@ -137869,6 +137869,18 @@ {} ] ], + "css/css-position/position-absolute-dynamic-static-position-inline.html": [ + [ + "css/css-position/position-absolute-dynamic-static-position-inline.html", + [ + [ + "/css/reference/ref-filled-green-100px-square-only.html", + "==" + ] + ], + {} + ] + ], "css/css-position/position-absolute-dynamic-static-position-margin-001.html": [ [ "css/css-position/position-absolute-dynamic-static-position-margin-001.html", @@ -139153,9 +139165,9 @@ {} ] ], - "css/css-pseudo/marker-content-007.html": [ + "css/css-pseudo/marker-content-007.tentative.html": [ [ - "css/css-pseudo/marker-content-007.html", + "css/css-pseudo/marker-content-007.tentative.html", [ [ "/css/css-pseudo/marker-content-007-ref.html", @@ -139165,9 +139177,9 @@ {} ] ], - "css/css-pseudo/marker-content-008.html": [ + "css/css-pseudo/marker-content-008.tentative.html": [ [ - "css/css-pseudo/marker-content-008.html", + "css/css-pseudo/marker-content-008.tentative.html", [ [ "/css/css-pseudo/marker-content-008-ref.html", @@ -139177,9 +139189,9 @@ {} ] ], - "css/css-pseudo/marker-content-009.html": [ + "css/css-pseudo/marker-content-009.tentative.html": [ [ - "css/css-pseudo/marker-content-009.html", + "css/css-pseudo/marker-content-009.tentative.html", [ [ "/css/css-pseudo/marker-content-009-ref.html", @@ -139201,9 +139213,9 @@ {} ] ], - "css/css-pseudo/marker-content-011.html": [ + "css/css-pseudo/marker-content-011.tentative.html": [ [ - "css/css-pseudo/marker-content-011.html", + "css/css-pseudo/marker-content-011.tentative.html", [ [ "/css/css-pseudo/marker-content-011-ref.html", @@ -144453,18 +144465,6 @@ {} ] ], - "css/css-sizing/ortho-writing-mode-001.html": [ - [ - "css/css-sizing/ortho-writing-mode-001.html", - [ - [ - "/css/reference/ref-filled-green-100px-square.xht", - "==" - ] - ], - {} - ] - ], "css/css-sizing/orthogonal-writing-mode-float-in-inline.html": [ [ "css/css-sizing/orthogonal-writing-mode-float-in-inline.html", @@ -207935,6 +207935,30 @@ {} ] ], + "svg/painting/reftests/marker-units-strokewidth-non-scaling-stroke.svg": [ + [ + "svg/painting/reftests/marker-units-strokewidth-non-scaling-stroke.svg", + [ + [ + "/svg/embedded/reference/green-rect-100x100.svg", + "==" + ] + ], + {} + ] + ], + "svg/painting/reftests/marker-units-userspaceonuse-non-scaling-stroke.svg": [ + [ + "svg/painting/reftests/marker-units-userspaceonuse-non-scaling-stroke.svg", + [ + [ + "/svg/embedded/reference/green-rect-100x100.svg", + "==" + ] + ], + {} + ] + ], "svg/painting/reftests/markers-orient-001.svg": [ [ "svg/painting/reftests/markers-orient-001.svg", @@ -208595,6 +208619,30 @@ {} ] ], + "svg/struct/reftests/requiredextensions-empty-string.svg": [ + [ + "svg/struct/reftests/requiredextensions-empty-string.svg", + [ + [ + "/svg/struct/scripted/blank.svg", + "==" + ] + ], + {} + ] + ], + "svg/struct/reftests/requiredextensions-xhtml.tentative.svg": [ + [ + "svg/struct/reftests/requiredextensions-xhtml.tentative.svg", + [ + [ + "/svg/struct/reftests/reference/green-100x100.svg", + "==" + ] + ], + {} + ] + ], "svg/struct/reftests/use-external-resource-with-revalidation.tentative.html": [ [ "svg/struct/reftests/use-external-resource-with-revalidation.tentative.html", @@ -226772,6 +226820,9 @@ "conformance-checkers/html/elements/picture/parent-noscript-in-head-novalid.html": [ [] ], + "conformance-checkers/html/elements/picture/parent-rp-novalid.html": [ + [] + ], "conformance-checkers/html/elements/picture/parent-ul-novalid.html": [ [] ], @@ -268406,6 +268457,9 @@ "feature-policy/feature-policy-frame-policy-disallowed-for-all.https.sub.html.sub.headers": [ [] ], + "feature-policy/feature-policy-frame-policy-timing-iframe-camera.https.sub.html": [ + [] + ], "feature-policy/feature-policy-header-policy-allowed-for-all.https.sub.html.sub.headers": [ [] ], @@ -270479,6 +270533,9 @@ "html/browsers/sandboxing/resources/post-done-to-opener.html": [ [] ], + "html/browsers/sandboxing/sandbox-navigation-timing-iframe.tentative.html": [ + [] + ], "html/browsers/sandboxing/sandbox-new-execution-context-iframe.html": [ [] ], @@ -270743,6 +270800,12 @@ "html/cross-origin-embedder-policy/none.https.html.headers": [ [] ], + "html/cross-origin-embedder-policy/require-corp-about-blank.html.headers": [ + [] + ], + "html/cross-origin-embedder-policy/require-corp-about-srcdoc.html.headers": [ + [] + ], "html/cross-origin-embedder-policy/require-corp-sw-from-require-corp.https.html.headers": [ [] ], @@ -276857,6 +276920,9 @@ "infrastructure/metadata/infrastructure/testdriver/actions/multiTouchPoints.html.ini": [ [] ], + "infrastructure/metadata/infrastructure/testdriver/actions/multiTouchPointsTwoTouchStarts.html.ini": [ + [] + ], "infrastructure/metadata/infrastructure/testdriver/actions/multiTouchPointsWithPause.html.ini": [ [] ], @@ -276872,7 +276938,7 @@ "infrastructure/metadata/infrastructure/testdriver/generate_test_report.html.ini": [ [] ], - "infrastructure/metadata/infrastructure/testdriver/set_permission.html.ini": [ + "infrastructure/metadata/infrastructure/testdriver/set_permission.https.html.ini": [ [] ], "infrastructure/metadata/infrastructure/testdriver/virtual_authenticator.html.ini": [ @@ -281897,6 +281963,12 @@ "resource-timing/resources/status-code.py": [ [] ], + "resource-timing/resources/sw-install.html": [ + [] + ], + "resource-timing/resources/sw.js": [ + [] + ], "resource-timing/resources/webperftestharness.js": [ [] ], @@ -282278,6 +282350,9 @@ "resources/test/tests/unit/IdlInterfaceMember/is_to_json_regular_operation.html": [ [] ], + "resources/test/tests/unit/assert_object_equals.html": [ + [] + ], "resources/test/tests/unit/basic.html": [ [] ], @@ -289052,6 +289127,9 @@ "tools/wptrunner/wptrunner/browsers/__init__.py": [ [] ], + "tools/wptrunner/wptrunner/browsers/android_weblayer.py": [ + [] + ], "tools/wptrunner/wptrunner/browsers/android_webview.py": [ [] ], @@ -290576,6 +290654,12 @@ "webauthn/helpers.js": [ [] ], + "webauthn/resources/common-inputs.js": [ + [] + ], + "webauthn/resources/utils.js": [ + [] + ], "webdriver/META.yml": [ [] ], @@ -335867,6 +335951,12 @@ {} ] ], + "css/cssom/border-shorthand-serialization.html": [ + [ + "css/cssom/border-shorthand-serialization.html", + {} + ] + ], "css/cssom/computed-style-001.html": [ [ "css/cssom/computed-style-001.html", @@ -340200,6 +340290,12 @@ {} ] ], + "dom/svg-insert-crash.html": [ + [ + "dom/svg-insert-crash.html", + {} + ] + ], "dom/traversal/NodeFilter-constants.html": [ [ "dom/traversal/NodeFilter-constants.html", @@ -351565,6 +351661,12 @@ } ] ], + "feature-policy/feature-policy-frame-policy-timing.https.sub.html": [ + [ + "feature-policy/feature-policy-frame-policy-timing.https.sub.html", + {} + ] + ], "feature-policy/feature-policy-header-policy-allowed-for-all.https.sub.html": [ [ "feature-policy/feature-policy-header-policy-allowed-for-all.https.sub.html", @@ -357307,6 +357409,12 @@ {} ] ], + "html/browsers/sandboxing/sandbox-navigation-timing.tentative.html": [ + [ + "html/browsers/sandboxing/sandbox-navigation-timing.tentative.html", + {} + ] + ], "html/browsers/sandboxing/sandbox-new-execution-context.html": [ [ "html/browsers/sandboxing/sandbox-new-execution-context.html", @@ -358052,6 +358160,18 @@ } ] ], + "html/cross-origin-embedder-policy/require-corp-about-blank.html": [ + [ + "html/cross-origin-embedder-policy/require-corp-about-blank.html", + {} + ] + ], + "html/cross-origin-embedder-policy/require-corp-about-srcdoc.html": [ + [ + "html/cross-origin-embedder-policy/require-corp-about-srcdoc.html", + {} + ] + ], "html/cross-origin-embedder-policy/require-corp-sw-from-none.https.html": [ [ "html/cross-origin-embedder-policy/require-corp-sw-from-none.https.html", @@ -360339,6 +360459,12 @@ {} ] ], + "html/semantics/document-metadata/the-style-element/mutations.window.js": [ + [ + "html/semantics/document-metadata/the-style-element/mutations.window.html", + {} + ] + ], "html/semantics/document-metadata/the-style-element/style-error-01.html": [ [ "html/semantics/document-metadata/the-style-element/style-error-01.html", @@ -371573,6 +371699,14 @@ } ] ], + "infrastructure/testdriver/actions/multiTouchPointsTwoTouchStarts.html": [ + [ + "infrastructure/testdriver/actions/multiTouchPointsTwoTouchStarts.html", + { + "testdriver": true + } + ] + ], "infrastructure/testdriver/actions/multiTouchPointsWithPause.html": [ [ "infrastructure/testdriver/actions/multiTouchPointsWithPause.html", @@ -371629,9 +371763,9 @@ } ] ], - "infrastructure/testdriver/set_permission.html": [ + "infrastructure/testdriver/set_permission.https.html": [ [ - "infrastructure/testdriver/set_permission.html", + "infrastructure/testdriver/set_permission.https.html", { "testdriver": true } @@ -372669,6 +372803,12 @@ {} ] ], + "loading/lazyload/disconnected-image-loading-lazy.tentative.html": [ + [ + "loading/lazyload/disconnected-image-loading-lazy.tentative.html", + {} + ] + ], "loading/lazyload/iframe-loading-eager.tentative.html": [ [ "loading/lazyload/iframe-loading-eager.tentative.html", @@ -389309,6 +389449,12 @@ {} ] ], + "permissions/test-periodic-background-sync-permission.html": [ + [ + "permissions/test-periodic-background-sync-permission.html", + {} + ] + ], "picture-in-picture/css-selector.html": [ [ "picture-in-picture/css-selector.html", @@ -390148,6 +390294,14 @@ {} ] ], + "portals/csp/frame-ancestors.sub.html": [ + [ + "portals/csp/frame-ancestors.sub.html", + { + "timeout": "long" + } + ] + ], "portals/csp/frame-src.sub.html": [ [ "portals/csp/frame-src.sub.html", @@ -405919,6 +406073,14 @@ {} ] ], + "resource-timing/workerStart-tao-protected.https.html": [ + [ + "resource-timing/workerStart-tao-protected.https.html", + { + "timeout": "long" + } + ] + ], "screen-capture/feature-policy.https.html": [ [ "screen-capture/feature-policy.https.html", @@ -406041,42 +406203,9 @@ } ] ], - "screen_enumeration/getScreens.tentative.https.any.js": [ - [ - "screen_enumeration/getScreens.tentative.https.any.html", - { - "script_metadata": [ - [ - "global", - "window,dedicatedworker,sharedworker,serviceworker" - ] - ] - } - ], - [ - "screen_enumeration/getScreens.tentative.https.any.serviceworker.html", - { - "script_metadata": [ - [ - "global", - "window,dedicatedworker,sharedworker,serviceworker" - ] - ] - } - ], - [ - "screen_enumeration/getScreens.tentative.https.any.sharedworker.html", - { - "script_metadata": [ - [ - "global", - "window,dedicatedworker,sharedworker,serviceworker" - ] - ] - } - ], + "screen_enumeration/getScreens.tentative.https.window.js": [ [ - "screen_enumeration/getScreens.tentative.https.any.worker.html", + "screen_enumeration/getScreens.tentative.https.window.html", { "script_metadata": [ [ @@ -409560,6 +409689,12 @@ {} ] ], + "sms/detached-iframe.https.html": [ + [ + "sms/detached-iframe.https.html", + {} + ] + ], "sms/idlharness.https.any.js": [ [ "sms/idlharness.https.any.html", @@ -415638,12 +415773,6 @@ {} ] ], - "svg/animations/discard-on-discard.html": [ - [ - "svg/animations/discard-on-discard.html", - {} - ] - ], "svg/animations/end-attribute-change-end-time.html": [ [ "svg/animations/end-attribute-change-end-time.html", @@ -426655,12 +426784,6 @@ {} ] ], - "web-nfc/NDEFErrorEvent_constructor.https.html": [ - [ - "web-nfc/NDEFErrorEvent_constructor.https.html", - {} - ] - ], "web-nfc/NDEFMessage_constructor.https.html": [ [ "web-nfc/NDEFMessage_constructor.https.html", @@ -428143,6 +428266,14 @@ {} ] ], + "webauthn/webauthn-testdriver-basic.https.html": [ + [ + "webauthn/webauthn-testdriver-basic.https.html", + { + "testdriver": true + } + ] + ], "webdriver/tests/interface.html": [ [ "webdriver/tests/interface.html", @@ -461056,7 +461187,7 @@ "support" ], ".taskcluster.yml": [ - "8bdbabb9e2a6ddbc367f54c205ee25139a002cfe", + "815648df5121e596dced15ce9384815d2e6c426f", "support" ], ".well-known/README.md": [ @@ -465908,7 +466039,7 @@ "testharness" ], "IndexedDB/get-databases.any.js": [ - "823cfce284b2beed49821825f2794849edda5753", + "2e533dceb0187902045c9e77fb685ba298a10f27", "testharness" ], "IndexedDB/globalscope-indexedDB-SameObject.html": [ @@ -472040,11 +472171,11 @@ "support" ], "client-hints/accept_ch_feature_policy.tentative.sub.https.html": [ - "6a5c00a759dc602c36adefd2d6d21bcee65add16", + "1df308ab2f82628fc251c5db21929d55193897f0", "testharness" ], "client-hints/accept_ch_feature_policy.tentative.sub.https.html.headers": [ - "31e3b5be18bed65b8582a86bd33098d88e6b71cb", + "cf453cf368ddfb8096a62ad9720af877480bcc07", "support" ], "client-hints/accept_ch_malformed_header.https.html": [ @@ -472064,7 +472195,7 @@ "support" ], "client-hints/echo_client_hints_received.py": [ - "e5088c87199247416aac2397ee1a3a78f0a6e688", + "7427a3878e1a41aa7b8f589834bc1b5139f693a3", "support" ], "client-hints/echo_ua_client_hints_received.py": [ @@ -472744,7 +472875,7 @@ "support" ], "conformance-checkers/META.yml": [ - "978b5c85721c28f267ec21ceb620017514441385", + "9b8c31d67eeac86ab7c5875d63d16cac965aafcc", "support" ], "conformance-checkers/Makefile": [ @@ -486272,663 +486403,667 @@ "support" ], "conformance-checkers/html/elements/picture/always-matching-source-media-all-spaces-with-following-source-srcset-novalid.html": [ - "7bcac2b42f2d404203dc392d0f8b79655ffa70cd", + "e63f7c12190dfcaf17d40a19971e52723b046d01", "support" ], "conformance-checkers/html/elements/picture/always-matching-source-media-all-with-following-source-srcset-novalid.html": [ - "320ca6912484622b1a174bcc3048764a6cad2723", + "f97bc41f451cb93266b7f329467756667dcc61fa", "support" ], "conformance-checkers/html/elements/picture/always-matching-source-media-empty-with-following-source-srcset-novalid.html": [ - "a9dd0ab87ca08041db1eb4339b8ec49fee08495d", + "b1bf9476d906c2ae3dbbbdfb47568c7c7d3beafc", "support" ], "conformance-checkers/html/elements/picture/always-matching-source-media-spaces-with-following-source-srcset-novalid.html": [ - "95c36b0cd217ef58c28a7ba5227b62597f1b1511", + "66641ad6129b547e43b111f4626350de8574a61b", "support" ], "conformance-checkers/html/elements/picture/always-matching-source-media-uppercase-with-following-source-srcset-novalid.html": [ - "d495d18b46ba59ebe1cb921a211df554a3d1c090", + "584dfe97c704cab66749afd69f48d22dbd26931e", "support" ], "conformance-checkers/html/elements/picture/always-matching-source-sizes-with-following-source-srcset-novalid.html": [ - "2cb7ea8029771bad2543fa20e1b89e2fc2f4c168", + "4fdbe261b3fc50fd281d93475bc199a3940bba3c", "support" ], "conformance-checkers/html/elements/picture/always-matching-source-with-following-img-srcset-novalid.html": [ - "c2962a9a7f8cd93c303ccb7804d2f9fb57de7ec9", + "15e0a02c9f6cd3729e7baa9255d4eaca24192ae3", "support" ], "conformance-checkers/html/elements/picture/always-matching-source-with-following-source-media-novalid.html": [ - "a097307cd1ed26c9047407cb80f49c88968da39e", + "b3723fc63b853288fc97a4765a7659897c16e8c3", "support" ], "conformance-checkers/html/elements/picture/always-matching-source-with-following-source-srcset-novalid.html": [ - "d0f3ea9379ef78823b447ac5083e6d70e4997f92", + "45046bcc44eb8961ab76b56f0d75e8215624163d", "support" ], "conformance-checkers/html/elements/picture/always-matching-source-with-following-source-type-novalid.html": [ - "99eadd808d66fe64c39c3f5504a70511f7402720", + "ad6f6bd971ece3c3ec3baad886a36ec784ba5f53", "support" ], "conformance-checkers/html/elements/picture/audio-srcset-novalid.html": [ - "883f05be4326b6b66024e7f6cb9b8cc7e3dcadc4", + "39d47ac73abf690247130dc461795772bbb2422d", "support" ], "conformance-checkers/html/elements/picture/html-syntax-img-end-tag-novalid.html": [ - "0c56b597abe501f8cb3e7e0cf2f182027c8bf4aa", + "69676d5cb29190077a450e8d4ba8bbee9b0054db", "support" ], "conformance-checkers/html/elements/picture/html-syntax-picture-no-end-tag-novalid.html": [ - "a7e378d38ed27bc3ff41378db64aff9f17b7470b", + "f12ef1203f6e54af56627194e2eb789cf70dd7bf", "support" ], "conformance-checkers/html/elements/picture/html-syntax-picture-slash-no-end-tag-novalid.html": [ - "50816e522d45679768c717f2af57cde53fc46e50", + "a555b834d0786a725ebf6ddd4364373f00f89f81", "support" ], "conformance-checkers/html/elements/picture/html-syntax-picture-slash-novalid.html": [ - "0c824ef56c8f6262d2ad9b927d71e109c4bd2d58", + "ffb3476e3abfd96c7c50f586b881377dc8fa7dde", "support" ], "conformance-checkers/html/elements/picture/html-syntax-source-end-tag-novalid.html": [ - "8a8b2c447ef056e13aa8c351f1d0dcd97f1a2baf", + "747a6def29af825f25ceeceb7f34897db10bb9d2", "support" ], "conformance-checkers/html/elements/picture/img-no-src-novalid.html": [ - "a97c2a52d80609a91e960412118604a0caece759", + "23f09e118e880bcc6816e811352863c3a838c5ff", "support" ], "conformance-checkers/html/elements/picture/img-no-src-with-picture-novalid.html": [ - "aae2586129e1b869226ee9518a482d35a5f5f037", + "e414b938a06e3544e57491945dcd910f58a3073f", "support" ], "conformance-checkers/html/elements/picture/img-no-src-with-source-novalid.html": [ - "185231fd6322d70ee29ed1578eeee0d70b5eab7f", + "10ef732eb462646a800d841d72734344c16a36bd", "support" ], "conformance-checkers/html/elements/picture/img-no-src-with-srcset-and-picture-novalid.html": [ - "d7e820a1eec72e3d33d5e0c9def4c94ea931304b", + "d91f5a7e5848033d05b113cfca17ddccecd3769c", "support" ], "conformance-checkers/html/elements/picture/img-no-src-with-srcset-novalid.html": [ - "aade7df01ca033fdfd45c1f6782710e9e5ac5f9d", + "de5b4504db0fb8bfd7459ef24ca1c2fed9a7563c", "support" ], "conformance-checkers/html/elements/picture/img-srcset-no-descriptor-with-sizes-novalid.html": [ - "c23295931bb878f62e4f17d4ec6e00163979bc4c", + "12101c39ddba05d1a092ed3c85213b646f088640", "support" ], "conformance-checkers/html/elements/picture/img-srcset-w-and-x-width-sizes-novalid.html": [ - "ae5cba4e1891fef7d2d4e73793ebf94e86e25c0c", + "e3f979775b77965bef9b6ecb5154ba63518fb97e", "support" ], "conformance-checkers/html/elements/picture/img-srcset-w-no-sizes-novalid.html": [ - "c6970b7587fb278e7817bf7025f9ae28fa564a8a", + "3a62ae23528b3388b0ab7847f117d2eb06692804", "support" ], "conformance-checkers/html/elements/picture/img-type-novalid.html": [ - "41a813c1c446c9e51df7c749472128f20ebf9b45", + "c65a153a17e6f259775723d412048af5add7dc4f", "support" ], "conformance-checkers/html/elements/picture/img-type-with-picture-novalid.html": [ - "d05284ee5895617d1780b8422ba3320de69061c4", + "844eb5cfa0e23ae6635bba090a022a140aef8916", "support" ], "conformance-checkers/html/elements/picture/img-with-sizes-no-srcset-novalid.html": [ - "a77c4a53906786508e99f0531c401fc0a2c60c3f", + "4afba1247497a970971f93618a14c897877665c2", "support" ], "conformance-checkers/html/elements/picture/input-type-image-srcset-novalid.html": [ - "80c7995e5b042662a9e8901a74989befc21633d9", + "f8c882c05953edb4620f99cf35dfc5ccdf57eab0", "support" ], "conformance-checkers/html/elements/picture/junk-br-after-img-novalid.html": [ - "66ea1f9605fe0508ce580f5b105d4c3b64a191a1", + "21b5995725432acb5ae70543a8952ffc61558c1a", "support" ], "conformance-checkers/html/elements/picture/junk-br-after-source-novalid.html": [ - "55bb78c19e6d8fe4388637706ff2958d37f5bc63", + "ae89b13710bd0f893b4f2dd844fa3a4edc221c0f", "support" ], "conformance-checkers/html/elements/picture/junk-br-before-img-novalid.html": [ - "06462c42bfefc34d856e0f8cca9e94fd08d305ec", + "9e0f29df1d8882a3920398d042a62e4d9b291b74", "support" ], "conformance-checkers/html/elements/picture/junk-br-before-source-novalid.html": [ - "7f9bbc0a26f7fb13cdb68db731670adc346740d6", + "08fc66213decbc2b54ae77908083ea20f91e597b", "support" ], "conformance-checkers/html/elements/picture/junk-figure-wrapping-novalid.html": [ - "ffe22b73b13f702134a6edf24ad2b4d195c23996", + "948cb83a2a1dae2755710da0bcaabed732b28626", "support" ], "conformance-checkers/html/elements/picture/junk-input-type-hidden-novalid.html": [ - "b4763de6e4ca24505e2474c1fbefc61dc65c06c9", + "29e5310ce80433baa9688bbdeafd852212b1032a", "support" ], "conformance-checkers/html/elements/picture/junk-math-nog-img-novalid.html": [ - "5f1b85dbb282d5835c99e8e62fca5e2c423eb9e0", + "cbe6391cf5906cb550fec81ea4dc58175e3348c2", "support" ], "conformance-checkers/html/elements/picture/junk-noscript-after-source-no-img-novalid.html": [ - "957c8bc1a39a24fe6c277e18d4838e9e495ccae4", + "e66f61684301cc5656e45640031f6b0b2c05e10f", "support" ], "conformance-checkers/html/elements/picture/junk-noscript-novalid.html": [ - "45efb6712c5f8f722152995858bb3337f6c7aa4a", + "430cc880fb9c2ad0f288f920a8d86b5a343f11f9", "support" ], "conformance-checkers/html/elements/picture/junk-p-after-novalid.html": [ - "0848d51e045b891f3580fd1e4c417df251328c94", + "f09c344ce42d5f7b6a2b49840444161ad2f692b1", "support" ], "conformance-checkers/html/elements/picture/junk-p-before-novalid.html": [ - "abb046b764056244d264c21c9e50e84c5b683fe9", + "3e12510b541e39285e526f8e42973b2ac997aed9", "support" ], "conformance-checkers/html/elements/picture/junk-p-wrapping-novalid.html": [ - "c1561cf33b46fe7256af13ef11f3bc307e318409", + "45d19b42769ac65de325942c3e6d66215ef265d2", "support" ], "conformance-checkers/html/elements/picture/junk-picture-before-novalid.html": [ - "d2d3ce9ff230782a994e14963cd008289e5882e7", + "001e5429b2398b0c9c508f7a789a122b8c756f42", "support" ], "conformance-checkers/html/elements/picture/junk-picture-wrapping-novalid.html": [ - "beb9577c5ebf98a4cc6c9462a86c0f0a772c63c6", + "611ebde6d35869e5aafb4231235d857c2039f085", "support" ], "conformance-checkers/html/elements/picture/junk-span-after-novalid.html": [ - "03f6923e776cd53119ade7593ad2950678c15c2c", + "0e6d842539fffddb3d17355477b397b857b97aa4", "support" ], "conformance-checkers/html/elements/picture/junk-span-before-novalid.html": [ - "85307cfb5ec1569f39b01aeb8609767223204426", + "4fd5c2c1c3ba784b12a4ff2541805295cfffd385", "support" ], "conformance-checkers/html/elements/picture/junk-span-wrapping-novalid.html": [ - "701a263d569e1c7e598fa323bfbfb1718e129c0a", + "5e9262ddb70d3874615807343347da5e6f4fb4ce", "support" ], "conformance-checkers/html/elements/picture/junk-style-scroped-novalid.html": [ - "7aae2a0fe7a9e48b7f496d9de6fc57789bc6eb6c", + "bb622258f3405dbe6bcefdf2cd585676277ebfe3", "support" ], "conformance-checkers/html/elements/picture/junk-svg-no-img-novalid.html": [ - "0a444584989ad9f5c9b75da64cf773cd789d6875", + "1464b8f79ba060630ed6791644cb8d99b0d258d2", "support" ], "conformance-checkers/html/elements/picture/junk-svg-novalid.html": [ - "03d47c7189fe52119bfd144c87ee1cd08dabdbf2", + "769415548ec4e7b9b6cb0a95e1d47e92d2931612", "support" ], "conformance-checkers/html/elements/picture/junk-text-after-img-novalid.html": [ - "700f317c2b0984a3da0b0a50433265a68d4c47e6", + "f730e98115514760daa0c862cbd0d8c13e4c2067", "support" ], "conformance-checkers/html/elements/picture/junk-text-after-source-novalid.html": [ - "99c173e8f6049b19c235ee3e043daeb8661a6823", + "82023174149e4b159787e63f1efc43845af2da05", "support" ], "conformance-checkers/html/elements/picture/junk-text-before-img-novalid.html": [ - "256804c9623031882f8c303c417fa1eed61d8e6c", + "dc5b2e57a110730ebc282e4f34245563babbe1a4", "support" ], "conformance-checkers/html/elements/picture/junk-text-before-source-novalid.html": [ - "cf1cf0f4ea5a67cb4240c29a8f0a0aa4b033d308", + "0817bd361692113bee6a2392dbf57246913e4661", "support" ], "conformance-checkers/html/elements/picture/junk-video-before-novalid.html": [ - "2e91d9c2984aad5ccf22a6a46b5752a5b3c2963a", + "e7f2cd93d256c94753259a66b2f2618a5036373d", "support" ], "conformance-checkers/html/elements/picture/junk-video-no-img-novalid.html": [ - "05d89383b991d823b0f51a8480befb081a2cd23c", + "e65fe3d85e6653b94b89d542330e576ab5fabe91", "support" ], "conformance-checkers/html/elements/picture/link-rel-icon-srcset-novalid.html": [ - "df2d56c8efeff15a75ae531bbe99ba8a0b9085d9", + "bbd4ec8ecac75a75635c22859e39d50d2dd092ee", "support" ], "conformance-checkers/html/elements/picture/missing-img-empty-picture-novalid.html": [ - "6f604e165be844c1edeb6ebf9e6d2c01617ba0f0", + "5772ba29a70a0f850dfd3e1dece8ddc0a5512872", "support" ], "conformance-checkers/html/elements/picture/missing-img-only-script-novalid.html": [ - "96015048cff3d8e58097d620c980862f254e4388", + "5d1e7dca71b5497ac3a7daf35f2d7569fe5480ad", "support" ], "conformance-checkers/html/elements/picture/missing-img-only-source-novalid.html": [ - "b8b25bd73773e312d9fdb53a6b0e52fd026cb46f", + "dc535ae8fb42d01f5cca0869be6ec67bfb1b66bd", "support" ], "conformance-checkers/html/elements/picture/missing-img-script-and-source-novalid.html": [ - "ea61fadbdb1690fa3ecaf770417c15f5a980b4ee", + "c41226368c0c18730a6c923bb12700ac2731a88a", "support" ], "conformance-checkers/html/elements/picture/missing-img-source-and-script-novalid.html": [ - "a31715d3369cd45604d544dc5c2f9c26769fcd2a", + "01f4c833640101eafcf7b1af9a7d4045ebd4ffbc", "support" ], "conformance-checkers/html/elements/picture/multiple-img-novalid.html": [ - "bed5b38ac90e5739a99493e234e29df902b7627c", + "5da354872dbb56e794e93bbbdc6ca63288a071bb", "support" ], "conformance-checkers/html/elements/picture/multiple-img-with-script-novalid.html": [ - "973d01f807bcf7d7fbf0a2d6ce16a991b0052fc7", + "9a0d3c7b4437cc0777f0ce144175742e0b5278e7", "support" ], "conformance-checkers/html/elements/picture/multiple-img-with-source-and-script-novalid.html": [ - "8c722ac0704fd81da87dffc24ab034659cb7faca", + "a97d7ccca1f5cfe3488dea622688f77edd864fa2", "support" ], "conformance-checkers/html/elements/picture/multiple-img-with-source-novalid.html": [ - "d6c2402e85f7d9ec5503ef27f7a8501491274208", + "60740ee48e1ca6ab49a22d76a3e30561c2f99bc8", "support" ], "conformance-checkers/html/elements/picture/object-srcset-novalid.html": [ - "df784de7ef2bb9d77ba175e7b641df3b1b105a10", + "62482e92db9110c90634756c17d5fcae2dda99d8", "support" ], "conformance-checkers/html/elements/picture/parent-dl-novalid.html": [ - "12b32af343028038c4bf9a6570bbbd75dbcab183", + "8277b989d9483d857f1d009b585b233b34ccb424", "support" ], "conformance-checkers/html/elements/picture/parent-hgroup-novalid.html": [ - "3b260d27f285a858e78e31d326ffc6e7a3ce7de5", + "936d93e21fdcd82ce7812e0d9750b7a8d932823c", "support" ], "conformance-checkers/html/elements/picture/parent-noscript-in-head-novalid.html": [ - "648a16c1dc886f0e41fc4271c4b48300e929b487", + "d04b77248c0e14695ae8060b954a32529ebf6ca8", + "support" + ], + "conformance-checkers/html/elements/picture/parent-rp-novalid.html": [ + "5763e57ae90bb98faeebb6a15eb49a80180f2062", "support" ], "conformance-checkers/html/elements/picture/parent-ul-novalid.html": [ - "ed39ef722bb834a83f916920b2667d6f9061a756", + "2bad211f31d4b536f766d8694f25f4ce0e72e63e", "support" ], "conformance-checkers/html/elements/picture/picture-align-novalid.html": [ - "494a44d0b5d5acf46aac9b4dfd9a1bf3aa9f7563", + "81ce1eeed07a288a32d117c76ff2d60341738e1d", "support" ], "conformance-checkers/html/elements/picture/picture-alt-novalid.html": [ - "678dfe46a99bb9230d6d32b175153b7a58b435be", + "80f5bfe9482ed20b2f3f4005b3f902115950780e", "support" ], "conformance-checkers/html/elements/picture/picture-aria-role-application-novalid.html": [ - "6d1771f2a9e99aba3dc10b0f7e5788383a30121a", + "db4a9356c3b872a7b8a7b675d53cf8e5eeb537be", "support" ], "conformance-checkers/html/elements/picture/picture-aria-role-button-novalid.html": [ - "ad144b79d7f34cfaf989ddc6f84497dabd3fe03c", + "e362cfdc23816589f88b2e645b4cb089ae713662", "support" ], "conformance-checkers/html/elements/picture/picture-aria-role-img-novalid.html": [ - "f91f267105892a33ed95a283fbb0605ffecc92ba", + "1d9540acf555914b12bf0f904a732ea998f22d57", "support" ], "conformance-checkers/html/elements/picture/picture-aria-role-presentation-novalid.html": [ - "7c8998c2ab90a157699a4509057e95858c24e9cf", + "428fdc7477873223f6e63ca773be9577a708fbcb", "support" ], "conformance-checkers/html/elements/picture/picture-aria-role-region-novalid.html": [ - "336b58d6fa98d574d941e2af5617fe492b9ab09e", + "b264824ea8074500581b27e66ef8b4fea7fe354f", "support" ], "conformance-checkers/html/elements/picture/picture-border-novalid.html": [ - "013d6d668b5b950a376fa9c8f5d56c4ad0873db1", + "1882bb31e6027d2d8755afd83647fcd40a18e512", "support" ], "conformance-checkers/html/elements/picture/picture-crossorigin-novalid.html": [ - "733be02c5bd2d462a41521778631cd5bd4c52d44", + "ed45d49a63f34eb0c673922ded0104bfd08a2988", "support" ], "conformance-checkers/html/elements/picture/picture-height-novalid.html": [ - "d5c0f0c1a0fd3f4e981b16cbbf5dabcce0484814", + "ad7da34636015f56fff99986d6992651dd8c2ec1", "support" ], "conformance-checkers/html/elements/picture/picture-hspace-novalid.html": [ - "53912928bfd0823234fe20ed490fff54725d9192", + "fb9b97ee5819435fa238df016df90b568ff6c6a9", "support" ], "conformance-checkers/html/elements/picture/picture-ismap-novalid.html": [ - "d6dbfe4254a0517a7a034dfd348eb14e98033cf3", + "58fcfcfae2069d49c463f1ea0541753d62d0a9e0", "support" ], "conformance-checkers/html/elements/picture/picture-isvalid.html": [ - "302ce107e9a5641654c678048e7915de0b385a69", + "efc4d4023eb0c8f3adb46f57f0f1fa298461de19", "support" ], "conformance-checkers/html/elements/picture/picture-longdesc-novalid.html": [ - "86d77931388830754cd03fbcdd943e333f2c56ab", + "2aa1e086b178c156f8b6f9b2113911baec04c5c8", "support" ], "conformance-checkers/html/elements/picture/picture-lowsrc-novalid.html": [ - "00361b00febae086126c94267496dbadda881ad3", + "be2315431dc16e945ca1924d630be144c526a466", "support" ], "conformance-checkers/html/elements/picture/picture-media-novalid.html": [ - "e81f5e9ef0cf7804c4421ef21480a25a3fdc4814", + "4e3e8c4f427a30325079fcd3161063691fe2e4cb", "support" ], "conformance-checkers/html/elements/picture/picture-name-novalid.html": [ - "d8867a1b2efd318aa1b54dae87edabf2cfb1acbf", + "b846050183e4350faac53934ccbe5bd7c7b3a8f9", "support" ], "conformance-checkers/html/elements/picture/picture-sizes-novalid.html": [ - "8064a3d26859804f056972afe9c096f30f1e6202", + "8f90bdd6d92f97597db76fa7c1ef4e162dac4d3a", "support" ], "conformance-checkers/html/elements/picture/picture-src-novalid.html": [ - "b5e6e30e829799091a704ab1afd04aaf04d341e5", + "00b5825c4f183924b4efac35d4eaf7f1d9d61582", "support" ], "conformance-checkers/html/elements/picture/picture-srcset-novalid.html": [ - "1f3703e50be693e6ba97b6386d748817060954b8", + "6075ef734eebd6d8de47e1e15e7d7a3e63a92e02", "support" ], "conformance-checkers/html/elements/picture/picture-usemap-novalid.html": [ - "1def698f176805c92bc4e80b8241a93b38323f57", + "60d2cdcf6ffcbe9e1b30e77a6d6c3e62a9913762", "support" ], "conformance-checkers/html/elements/picture/picture-vspace-novalid.html": [ - "fc62cd514d9b874579041db156945f3d7ffd3430", + "aed4fa45ac779f64f6097a3f985b9d172bc726c0", "support" ], "conformance-checkers/html/elements/picture/picture-width-novalid.html": [ - "1fa63afa0c4cc78c39ed58306a2a48a2bcceb07c", + "01b3901953257c278dcb9482c398f27de9aaf94f", "support" ], "conformance-checkers/html/elements/picture/sizes-microsyntax-auto-source-size-value-novalid.html": [ - "734ed4a8c52ce2316d7184c8fc331d3e9054eff8", + "df9c8b24e808ae99c8842db7d485759edd40d122", "support" ], "conformance-checkers/html/elements/picture/sizes-microsyntax-comma-novalid.html": [ - "06b83dc4ae5d191e65f881bd20b45ec59c80af0e", + "c33642a21d0e630e6b712f8b8b7df62390d29228", "support" ], "conformance-checkers/html/elements/picture/sizes-microsyntax-css-comment-after-plus-novalid.html": [ - "c3e04ca6b6e93ccbfc4a12126d3b1d1eef13b503", + "14c85d1e67b933edeca2a446834c797149629ded", "support" ], "conformance-checkers/html/elements/picture/sizes-microsyntax-css-comment-before-unit-novalid.html": [ - "3d0ad297dc244a2909710808a28a93bf1d91fa32", + "3e5ee116ed75e647a903c64b9a77a0b2bf10082f", "support" ], "conformance-checkers/html/elements/picture/sizes-microsyntax-default-first-novalid.html": [ - "c5331b0d4ef6d3ddee8cb3e5a2eb5183e99fa3d4", + "5afb90ef047f7158f1e389fd3402665bc3a7341e", "support" ], "conformance-checkers/html/elements/picture/sizes-microsyntax-default-source-size-value-novalid.html": [ - "2f70de718abd24d34091c700f10fa792365ac3c8", + "3a419b379c79bb43778d5506f4b7f6bf549bff91", "support" ], "conformance-checkers/html/elements/picture/sizes-microsyntax-deg-source-size-value-novalid.html": [ - "d0e608b95d69a56433a3cb676a7cfb3f9c9354d8", + "038faa5323164637ceb049730af5812c921a999e", "support" ], "conformance-checkers/html/elements/picture/sizes-microsyntax-dpcm-source-size-value-novalid.html": [ - "c8b8b7a2dd85cc6876e466fbe37ad4966fc2a174", + "84db64355b51c25e454719098a741470b4adc932", "support" ], "conformance-checkers/html/elements/picture/sizes-microsyntax-dpi-source-size-value-novalid.html": [ - "95160c13939edaed15a1e794f1fc4d360541f5e2", + "a50757617b902cf1cd13aa585c7d7f0de39f14f7", "support" ], "conformance-checkers/html/elements/picture/sizes-microsyntax-dppx-source-size-value-novalid.html": [ - "778f6b49b9975e033f1fd7a096d6379a396aeabf", + "e50642ba48539bfb77f08718296aaa31e4b362a7", "support" ], "conformance-checkers/html/elements/picture/sizes-microsyntax-empty-novalid.html": [ - "be232a5cd1f04e4470fa79b088c86c9e60633936", + "9ffe660d5fcbb3a3e7cd09955dab60310dab067b", "support" ], "conformance-checkers/html/elements/picture/sizes-microsyntax-foo-bar-source-size-value-novalid.html": [ - "7e969dafcb6efaffe5a7ad478fd104896b2dd788", + "45ce5512bf633017dbe169848e54da224a991acf", "support" ], "conformance-checkers/html/elements/picture/sizes-microsyntax-grad-source-size-value-novalid.html": [ - "506ebf561cb2cb288d95f7c8433b439476269cb8", + "ac89302bce3468558768cef67bf3bd73f36444a0", "support" ], "conformance-checkers/html/elements/picture/sizes-microsyntax-hz-source-size-value-novalid.html": [ - "bc4e21c3fd202cc0f4625f432d4cab21387ee7ca", + "94d58ec98c4c4b758488177627e99af7e0ed258c", "support" ], "conformance-checkers/html/elements/picture/sizes-microsyntax-inherit-source-size-value-novalid.html": [ - "c232648dc6f94a578015b32a1bd7adb9106432e2", + "96103df2dc0cf1a1793a64c0d09f058bf6ef76f8", "support" ], "conformance-checkers/html/elements/picture/sizes-microsyntax-initial-source-size-value-novalid.html": [ - "b70a543dee38bf3211d215ad925a50dcf5132a04", + "94dfcbd9431b10ec3e13c6308e90453836e85dde", "support" ], "conformance-checkers/html/elements/picture/sizes-microsyntax-junk-in-default-novalid.html": [ - "1121b56691f4fbc2c10f21261fb506f60ff5970b", + "d73502a8ec110eb3735002d5fc48584eee417792", "support" ], "conformance-checkers/html/elements/picture/sizes-microsyntax-junk-in-source-size-novalid.html": [ - "1fc7cffec927e8c3e8a7b896531cb0bf24ba10b8", + "9681d67bf1fc6b4fbdda727a627b8cc21058c7c4", "support" ], "conformance-checkers/html/elements/picture/sizes-microsyntax-khz-source-size-value-novalid.html": [ - "039da34cf6906384bca119ce02695499bb9cd492", + "b1a31b0c024291aa2fff6692a50d131f93a8266d", "support" ], "conformance-checkers/html/elements/picture/sizes-microsyntax-media-all-and-min-width-novalid.html": [ - "1ac0cf6e31ae6739e146d6a952962731786c449f", + "8ba429c8a1eeb0f66d45addacc006c995c2ba648", "support" ], "conformance-checkers/html/elements/picture/sizes-microsyntax-media-all-novalid.html": [ - "453ba8ac9e2ec824593c1622e3385acc87835cc1", + "e09bb2b593e30a1c612d946897060c60dbe625e3", "support" ], "conformance-checkers/html/elements/picture/sizes-microsyntax-media-bad-junk-novalid.html": [ - "27fc624ac537fd7f91c1aae5d627c090aa1b4f95", + "0d5854417f0e4688bfffca8d053832db176ea5da", "support" ], "conformance-checkers/html/elements/picture/sizes-microsyntax-media-general-enclosed-junk-novalid.html": [ - "b8b8f8e990912814a0fc80eb8e123fadb27239ff", + "67f80827174394e7f954562f3197295cc3693ea8", "support" ], "conformance-checkers/html/elements/picture/sizes-microsyntax-media-min-width-no-parenthesis-novalid.html": [ - "b442eeddcc116fcaf1a9c9e88bfa01356c0c4013", + "0a3e5cb2c640691302b8ecacdc6bcfbc8f986ea4", "support" ], "conformance-checkers/html/elements/picture/sizes-microsyntax-ms-source-size-value-novalid.html": [ - "4fa0acf7c17e3584539a157f9d362048c6941150", + "da8f67714ee94cb33256d24c75a89e7668ba6cc5", "support" ], "conformance-checkers/html/elements/picture/sizes-microsyntax-negative-source-size-value-novalid.html": [ - "0ac929a8194c6c8d95c828efb90be06d446d950d", + "ad28f404b5a7f8157ce864160cfb43cc8e7743e6", "support" ], "conformance-checkers/html/elements/picture/sizes-microsyntax-no-unit-in-source-size-value-novalid.html": [ - "6c01862695095f7d316ae34144b42ad963bc57a9", + "915d5be21f60280022da3d758a606ac07915f10b", "support" ], "conformance-checkers/html/elements/picture/sizes-microsyntax-percent-in-source-size-value-novalid.html": [ - "2864631e091bc0069513de4afb3ef55389d5cfe2", + "7d5b7c102d1fa389500cbe1251e49684677097e8", "support" ], "conformance-checkers/html/elements/picture/sizes-microsyntax-rad-source-size-value-novalid.html": [ - "ec98f9d349f5e8cb19438c39765e347554cb27a3", + "c33365f75482a462d06805ab6cbfc08b8d72668b", "support" ], "conformance-checkers/html/elements/picture/sizes-microsyntax-s-source-size-value-novalid.html": [ - "a85f14d919073cf421669823c661d84569a19e7e", + "0aac2f5330483f73bb12c3624c336642e9e275f3", "support" ], "conformance-checkers/html/elements/picture/sizes-microsyntax-scientific-notation-negative-novalid.html": [ - "8a4d9c66830f086e3f4814f033872053441fe952", + "816f2fa0e219dbfac0df55aa7e65dbd455c7a623", "support" ], "conformance-checkers/html/elements/picture/sizes-microsyntax-scientific-notation-non-integer-in-exponent-novalid.html": [ - "08db943cd92b4df750a8803c6af0c6c38ca8fac2", + "fac203893e97c29329178095632595b98a47bdc8", "support" ], "conformance-checkers/html/elements/picture/sizes-microsyntax-trailing-comma-novalid.html": [ - "8a6a809375f3788ea29c0f4470c73fd16edf2d9f", + "29316620eceead6acfe8cfc7af19163d79a35f74", "support" ], "conformance-checkers/html/elements/picture/sizes-microsyntax-trailing-junk-novalid.html": [ - "d987fecfc2406a9e3aebb401e6caada149475e92", + "deef3b0e43632001a1b459cea980e7ed2c0551ff", "support" ], "conformance-checkers/html/elements/picture/sizes-microsyntax-turn-source-size-value-novalid.html": [ - "6edfd39c8af1deaf957cdce416a270e2b3e7c716", + "4e7870d5b180ec7164eb14e91392f2e4a18bb01d", "support" ], "conformance-checkers/html/elements/picture/sizes-microsyntax-two-defaults-novalid.html": [ - "ee6ce9f63e367ba89d620e76286116444b4443d8", + "bb5a144b525746bf0fa9f4f5ddd02e622dbccfd1", "support" ], "conformance-checkers/html/elements/picture/source-after-img-novalid.html": [ - "3a209dc590def1544d518b6b9e9e00a0ca20620a", + "de9f5461ff6011e12118e4af38326bcb31cb73f9", "support" ], "conformance-checkers/html/elements/picture/source-align-novalid.html": [ - "e1584674f0c0986a0d5fb672323902404420dc97", + "958aea50ee1e61a41b390c2ac2987c2063f6a3a4", "support" ], "conformance-checkers/html/elements/picture/source-alt-novalid.html": [ - "0bd6646f096c9deb86e0ec93053e5b6589766535", + "31799a727c4149b62f9551a762786e4c02b8acff", "support" ], "conformance-checkers/html/elements/picture/source-aria-role-img-novalid.html": [ - "6f8d130aa1f4f77eddb33ac6bb232691c7c6ccd9", + "d88e29ff93dba30457102c0698a071d898936f20", "support" ], "conformance-checkers/html/elements/picture/source-aria-role-presentation-novalid.html": [ - "b0fcbc05e10d177d76184b4eaf89cb085ede4311", + "13464a014190c065cb16f8a21f5a9bf0819e5525", "support" ], "conformance-checkers/html/elements/picture/source-before-and-after-img-novalid.html": [ - "3e083105bbcbd6f8fdb053defc3f122dd628fe7e", + "9b54722b266fa619d751c704f6f7aaa521ef5c12", "support" ], "conformance-checkers/html/elements/picture/source-border-novalid.html": [ - "fa746a81d98de883d797a5ac830fb753073c08c5", + "c75a22191210f488ddaf38c1e7fe65c778a8d444", "support" ], "conformance-checkers/html/elements/picture/source-crossorigin-novalid.html": [ - "a4ebb7ecb0d8538967d918b93a260d27629c3115", + "aadccf9658356964018793eaeb517022cbc7fd88", "support" ], "conformance-checkers/html/elements/picture/source-height-novalid.html": [ - "2eeb159345c4c1ff1ee0e1374d4b03fe07350a94", + "af37ef1f1894bb32f20d581312a3eac7c80a558d", "support" ], "conformance-checkers/html/elements/picture/source-hspace-novalid.html": [ - "a6e717357f782e53abc2981ab4d5d5e9e958844b", + "cf796bd27ddb4a8523462ab3ad94de2f8a59c81a", "support" ], "conformance-checkers/html/elements/picture/source-ismap-novalid.html": [ - "2c02869e3578081b2bc5b708bf75e17a5f872e4f", + "a31514f431edd06afe771b05049dc951412760af", "support" ], "conformance-checkers/html/elements/picture/source-longdesc-novalid.html": [ - "c523ef2107605d9dab748b0806660c00a56326d0", + "84a6f124db20f7e1036ae76cf35676a16e905cd5", "support" ], "conformance-checkers/html/elements/picture/source-name-novalid.html": [ - "dab3247e7730c7fb1772dcc8e8ee7f590f88fbf9", + "0308647413877def2c1986023cf951405d23dad0", "support" ], "conformance-checkers/html/elements/picture/source-no-srcset-novalid.html": [ - "acb6eab05bf689928e910c2b15418ed64b4219ea", + "5b2a3837b610cceb891a972a2776f79358d49e34", "support" ], "conformance-checkers/html/elements/picture/source-no-srcset-with-media-novalid.html": [ - "a7625f755a2bc2cab6fd5f1dc87c20293d104547", + "a3e687433147541d4a198a89489f381df3b9d37b", "support" ], "conformance-checkers/html/elements/picture/source-no-srcset-with-sizes-novalid.html": [ - "517c67054b729802c8f7e2ee7b605966edcbca5e", + "503f7d55854a8821399140d8e864be6a6f456609", "support" ], "conformance-checkers/html/elements/picture/source-no-srcset-with-type-novalid.html": [ - "510c7eed6b9aa5c53b2dc128f4db67271c14d53a", + "4d21d5b860987f79c41e3d6e30f494d61352ba3c", "support" ], "conformance-checkers/html/elements/picture/source-src-novalid.html": [ - "a5eff2b7019d06a8f8fc6417128dbb9fb0c1e539", + "758a29a9fa51fbcd4f850da0f3087963edb62e20", "support" ], "conformance-checkers/html/elements/picture/source-src-srcset-novalid.html": [ - "80714cb86fb49a28d44546461679917862791d82", + "3dbab2194d3a74e8b2546932f4cee749fba97a9a", "support" ], "conformance-checkers/html/elements/picture/source-srcset-h-with-sizes-novalid.html": [ - "5da6331e53959a57e416a8fc1496f1a90a3d7784", + "91bbf65cfd4144e0a497ae48c8b8de1018c36350", "support" ], "conformance-checkers/html/elements/picture/source-srcset-w-and-x-with-sizes-novalid.html": [ - "cf6603ea8ff9fc83d7a6738f81d64e8cd0e44ff5", + "babdcb6b9be14f68932a0a59b24b61724f0b8dc2", "support" ], "conformance-checkers/html/elements/picture/source-srcset-w-no-sizes-novalid.html": [ - "0375c5415f25291f5a00b91481158afa51951624", + "94fd3aef229e44a340e3b0db7dc2103c16689dc1", "support" ], "conformance-checkers/html/elements/picture/source-srcset-x-with-sizes-novalid.html": [ - "a8efda291ee13ff898bc93a0af1830092db87f5f", + "4e3d679554063a2157ef785caaa3332b540364a7", "support" ], "conformance-checkers/html/elements/picture/source-type-srcset-w-novalid.html": [ - "a9ccaa312b8c6e3cd34717e2dc506d26da760ea7", + "7a8fe9af0e1ea9aaafb755c3e453c35c6a28be65", "support" ], "conformance-checkers/html/elements/picture/source-usemap-novalid.html": [ - "603bb472d8a7abd1a1e8c901169b0064ba417559", + "5eb2fdc66b9250f1e14945a0bc01a62138ecf414", "support" ], "conformance-checkers/html/elements/picture/source-vspace-novalid.html": [ - "2e26c73ce442d0dd797cb435ea8145dcaca04cf5", + "6bd83d1be992dfde9b729c8475edef7a1fb7509a", "support" ], "conformance-checkers/html/elements/picture/source-width-novalid.html": [ - "1649b791b29a77ac8cd9bf2ac7050029af481321", + "a481bd1421d8bcb8c0238ed13d2fa4228fcd915f", "support" ], "conformance-checkers/html/elements/picture/srcset-microsyntax-broken-url-novalid.html": [ - "82388ab5136d132ab6e60804d0c73d9b56644240", + "43aa15f762189fa97ac9df56fa2db6e65dff64ff", "support" ], "conformance-checkers/html/elements/picture/srcset-microsyntax-comma-novalid.html": [ - "ff36674849eb114a37f927005a3e53520e00ee58", + "94d6e199c694879698bd68a53b88baccb3e94aa3", "support" ], "conformance-checkers/html/elements/picture/srcset-microsyntax-css-comment-after-descriptor-novalid.html": [ - "758c3551ca7d282f5138f89b08d87c854eb45f1e", + "8a7360a2e69b64bef1cfbbcc5a698fe863e79def", "support" ], "conformance-checkers/html/elements/picture/srcset-microsyntax-curly-bracket-junk-novalid.html": [ - "346f160886d0c05dad7c9dfecd08027fd5fe752d", + "98230eac7b95b1e570fb0c8c4feee9c729a1112d", "support" ], "conformance-checkers/html/elements/picture/srcset-microsyntax-empty-novalid.html": [ - "ad8a12a3a03e9503f4ca80cb8cc8998d8a04fac5", + "f511e88e732dcbb70ec58130cf8efd44c18eadbc", "support" ], "conformance-checkers/html/elements/picture/srcset-microsyntax-function-novalid.html": [ - "499a14752b4edd7e68325673589fcabf7e8d67de", + "aadcc4c648687c851982c9f611886c0e418bdd3b", "support" ], "conformance-checkers/html/elements/picture/srcset-microsyntax-h-novalid.html": [ - "3c381e04ebac7aaa091009303ba269161988b9ea", + "66b739688f595eae1a97c53304c08a6fde15943c", "support" ], "conformance-checkers/html/elements/picture/srcset-microsyntax-infinity-x-novalid.html": [ - "51aba7b2970dc1c76abc8a3ba29989f60b0470ea", + "19d679d8e3130e4c1b57a2d272d49cefacf057ab", "support" ], "conformance-checkers/html/elements/picture/srcset-microsyntax-leading-comma-multiple-novalid.html": [ - "c715e0e35d0f9d7ad51420c6ba1fc790738bcfb1", + "c9407d1d7ab4efaccc2a44ed32d6015f4e56cce5", "support" ], "conformance-checkers/html/elements/picture/srcset-microsyntax-leading-comma-novalid.html": [ - "ad138943734fa353ec5404e946b6e0303d50fe08", + "c09dc183534223c34ea17c1edb444f8f24808829", "support" ], "conformance-checkers/html/elements/picture/srcset-microsyntax-leading-dot-x-valid.html": [ @@ -486936,131 +487071,131 @@ "support" ], "conformance-checkers/html/elements/picture/srcset-microsyntax-nan-x-novalid.html": [ - "da7d829dff656e3ddb3eb90f9c4c06aaa53c2310", + "3cd64a69cfc8a134e74989ab17788c3130c4f100", "support" ], "conformance-checkers/html/elements/picture/srcset-microsyntax-negative-w-novalid.html": [ - "0e61668fd882284f6e1f04a4d22edad9cb733997", + "093552e9a1c17af58b99f3326ee213f88775ba2b", "support" ], "conformance-checkers/html/elements/picture/srcset-microsyntax-negative-x-novalid.html": [ - "08e5fb70a4a8d52dff8b52ab4c5483558a18eef5", + "9b69e0c1f81c9446bec4cbbdaffecb94efdd7e46", "support" ], "conformance-checkers/html/elements/picture/srcset-microsyntax-negative-zero-w-novalid.html": [ - "ebc5d346a76c900dc04a8f4fc2b67da1a87b1d13", + "b4edfbe9742b4455b58ebcda9b29c3df503609cd", "support" ], "conformance-checkers/html/elements/picture/srcset-microsyntax-negative-zero-x-novalid.html": [ - "d1260c027fb01ce648b96f642faa8cb4d3e54418", + "a68489093a989640d23ec9ebb3148d92e63c7449", "support" ], "conformance-checkers/html/elements/picture/srcset-microsyntax-non-integer-w-novalid.html": [ - "05554d8ee376d07b5e7ea1ab05b2b2ccdc844eba", + "e09f9f003b71c545d9345bf3b5242c806e0b0e69", "support" ], "conformance-checkers/html/elements/picture/srcset-microsyntax-parenthesis-junk-novalid.html": [ - "1459e1610b2c62446e60201565e94484c9765107", + "b58caaa0754c369f1b1cfd7129852e51515a85db", "support" ], "conformance-checkers/html/elements/picture/srcset-microsyntax-pipe-junk-novalid.html": [ - "7c1ee3a0414bc93faa87f7c5949f61fd1d6f165c", + "9becc4fbabdb53dd5115f30893f7226bc9eac4ff", "support" ], "conformance-checkers/html/elements/picture/srcset-microsyntax-plus-w-novalid.html": [ - "c452c91738e49d89e307e84c5e4f4c0fb882334a", + "5bc9d91495ae3f7e746746b6aa678bb92cddb0b9", "support" ], "conformance-checkers/html/elements/picture/srcset-microsyntax-plus-x-novalid.html": [ - "7c285635d9694cdb1f9e7efe2f93d31b02033710", + "242a0a5eabdedb4459438f9d71aeee42eaa4d859", "support" ], "conformance-checkers/html/elements/picture/srcset-microsyntax-scientific-notation-w-novalid.html": [ - "b1be35753909d76b3351f50dac532209d27caf28", + "e17e4bc65128ef486313c5b06184f1bbe34347f6", "support" ], "conformance-checkers/html/elements/picture/srcset-microsyntax-square-bracket-junk-novalid.html": [ - "effc9379673f3feedf366525b6a2175aecbb135e", + "69e7febbd93f976f5421d734cf10a19c00111606", "support" ], "conformance-checkers/html/elements/picture/srcset-microsyntax-trailing-comma-multiple-novalid.html": [ - "869af64fa5b0be42d72bbec0d2a2dc22b3965311", + "978b7d44b119152829e42a246a05fc4af9270813", "support" ], "conformance-checkers/html/elements/picture/srcset-microsyntax-trailing-comma-novalid.html": [ - "9250e468dff6043226e30fb02340c7b39170c16b", + "0a0ad83f06f2c8c15512df53833709e7aa07ebd0", "support" ], "conformance-checkers/html/elements/picture/srcset-microsyntax-unique-descriptors-1x-and-omitted-novalid.html": [ - "72bc68e075bad7fe0878bbcbe601f0c600feb01d", + "0a381c378ca498a4143aafe157ba16a9a01c87c7", "support" ], "conformance-checkers/html/elements/picture/srcset-microsyntax-unique-descriptors-2x-novalid.html": [ - "9ab38cd24128dc421eefa317de8774202b9d4282", + "d2559446e83d4b176a6e957758f53f379e7f31e9", "support" ], "conformance-checkers/html/elements/picture/srcset-microsyntax-unique-descriptors-integer-and-decimals-x-novalid.html": [ - "76d6eeccf493b45817c02b0cc091a6cfa6d286f3", + "22130738061cfee025553601b65c6f08b28dc0bd", "support" ], "conformance-checkers/html/elements/picture/srcset-microsyntax-unique-descriptors-w-novalid.html": [ - "d5c8fdab130a65eedc8b08e87591d1e65ec87f11", + "c561e1041434f5650c5d6bdf812bf97719d89e58", "support" ], "conformance-checkers/html/elements/picture/srcset-microsyntax-uppercase-w-novalid.html": [ - "51601192f3faf88bb8eb28435cf76b064ac513f5", + "d587be5f5ee0c6468cdcca15dd0f007520e0a3ca", "support" ], "conformance-checkers/html/elements/picture/srcset-microsyntax-w-and-h-novalid.html": [ - "84ef6ae2bb85305e6c88b357adfb338e74f3ebca", + "036f5a46e45b85c275de759ebd675a546863bacd", "support" ], "conformance-checkers/html/elements/picture/srcset-microsyntax-w-and-no-descriptor-novalid.html": [ - "78c44834ef307a3385d51a036e43142f3eff6cfc", + "b4084fbd82961e87303992301609fc4b8b562c2a", "support" ], "conformance-checkers/html/elements/picture/srcset-microsyntax-x-and-h-novalid.html": [ - "4c26cfaf3b964eb175d9b805988dfc603bedb3ff", + "54d4d1f03ee5738603fc66f1f1af2499a2ec3850", "support" ], "conformance-checkers/html/elements/picture/srcset-microsyntax-x-and-w-novalid.html": [ - "3c0cd89b9fe3c68b0d0d5a5bef1dfbda318d3f6f", + "2dedd9c2c8229ffb1cb1e021ceef492d212c482d", "support" ], "conformance-checkers/html/elements/picture/srcset-microsyntax-zero-w-novalid.html": [ - "908343f81b226eb5b4a43586708adbd24b24b8e6", + "2f1a5abe9d97834c31a36ad6816d734e5b62deb3", "support" ], "conformance-checkers/html/elements/picture/srcset-microsyntax-zero-x-novalid.html": [ - "fbf7e98e69805b09fdaad97c930811adad9ff25a", + "39b610772725043de8a8f8da79f6ef7f33cde39a", "support" ], "conformance-checkers/html/elements/picture/svg-image-srcset-novalid.html": [ - "22950c23e83a6b1499b7e7a89edbe4fabb3a0c3b", + "fd6289fd7eaaaff57ffbb7abbfab7e8033fb50ed", "support" ], "conformance-checkers/html/elements/picture/track-srcset-novalid.html": [ - "99dd22be0fd577c4227f23108d69998fd6b2d94b", + "2668a8400ed4b0440d020310824b18f146732077", "support" ], "conformance-checkers/html/elements/picture/video-source-media-src-novalid.html": [ - "f065a12f49357079e8242592ef415434e8e5a98a", + "a18d20389d2f4553ad5a1171fa2e09639a995ab2", "support" ], "conformance-checkers/html/elements/picture/video-source-sizes-srcset-novalid.html": [ - "a20fd2db62671b25422724040da4006e39cc181c", + "be370c75cf782b1f170c4ed196553b9d5e8715d5", "support" ], "conformance-checkers/html/elements/picture/video-source-srcset-novalid.html": [ - "bde4a64b8f62b688f40a5290ee32dcf78d5c8490", + "440a2885908c9c4de74b21ac2a5b741dcc17ea57", "support" ], "conformance-checkers/html/elements/picture/video-source-srcset-src-novalid.html": [ - "f7bf48446543efeee872180f7ccb9e0c30dd8c1e", + "588581fce792a34abd4569b908e3ce764b163fed", "support" ], "conformance-checkers/html/elements/picture/video-srcset-novalid.html": [ - "2115044869dd63193d39568b0ff844c974a7b364", + "7ff3e3ecddbb4a492813f918ea303f6d21abbd49", "support" ], "conformance-checkers/html/elements/pre/model-isvalid.html": [ @@ -489812,7 +489947,7 @@ "support" ], "conformance-checkers/messages.json": [ - "2dcd3830d72dc42396e7270557954d107e6abbc0", + "4439888f1753132daf7aa6c07dc55397a18d94fd", "support" ], "conformance-checkers/tools/build-svg-tests.py": [ @@ -489828,7 +489963,7 @@ "support" ], "conformance-checkers/tools/picture.py": [ - "5b03f67ac9884a02c2ad0369104f9a4e4856079a", + "417eff14368fe057e0415363ae89531b31fd03a3", "support" ], "conformance-checkers/tools/url.py": [ @@ -496664,7 +496799,7 @@ "testharness" ], "credential-management/federatedcredential-framed-get.sub.https.html": [ - "08688ab440bbfdf76896da5353bdddb3e9876c34", + "a7c87e2331ffdb518fe33d42aed1f269cfc8b9a3", "testharness" ], "credential-management/idlharness.https.window.js": [ @@ -496672,7 +496807,7 @@ "testharness" ], "credential-management/passwordcredential-framed-get.sub.https.html": [ - "04bb16a2670b81246ae4b8c21472e777a54a23df", + "d86c6e09c70874f06714c9cde0b63a2cef959f69", "testharness" ], "credential-management/require_securecontext.html": [ @@ -587507,6 +587642,10 @@ "3ccd1462fd1530e29b43b3710b0708d270818a8f", "reftest" ], + "css/css-position/position-absolute-dynamic-static-position-inline.html": [ + "c0f9ac07188f1e49e869ac65f8a075f4827a6cb8", + "reftest" + ], "css/css-position/position-absolute-dynamic-static-position-margin-001.html": [ "78b0ced9df2fd0ea299a7cc35e9ca0c360f453fa", "reftest" @@ -588387,7 +588526,7 @@ "8cec2799c2e0218e2e0c796ee4589b64d732cb39", "support" ], - "css/css-pseudo/marker-content-007.html": [ + "css/css-pseudo/marker-content-007.tentative.html": [ "fb452666e3c16094945ea5212e66cf04914f47f4", "reftest" ], @@ -588395,7 +588534,7 @@ "6d5052b378b7a5f626a51cb033fba8f7339192aa", "support" ], - "css/css-pseudo/marker-content-008.html": [ + "css/css-pseudo/marker-content-008.tentative.html": [ "88aee13dc8c9530967d73da7f09a609a40e483ac", "reftest" ], @@ -588403,7 +588542,7 @@ "a3db09f078148cdfe8105bc0d12186e15cf33d48", "support" ], - "css/css-pseudo/marker-content-009.html": [ + "css/css-pseudo/marker-content-009.tentative.html": [ "b3627cca7554076f85d59869eec7bc80e39b82be", "reftest" ], @@ -588419,7 +588558,7 @@ "62a64a1e5e16ac7d90ada265317235cfb6dbe64f", "support" ], - "css/css-pseudo/marker-content-011.html": [ + "css/css-pseudo/marker-content-011.tentative.html": [ "0cc20b0cdcd242021bc37b9e2d3500ed21c5b35f", "reftest" ], @@ -588504,7 +588643,7 @@ "reftest" ], "css/css-pseudo/parsing/marker-supported-properties.html": [ - "a34fd76fea48eb05b080933b63e049a667d33b3c", + "0ffd6f4c2b82dfa9819b4890b1d7c1e61dd8e2b2", "testharness" ], "css/css-pseudo/parsing/tree-abiding-pseudo-elements.html": [ @@ -593299,10 +593438,6 @@ "d2617f8aa2d1c966e394abb1d1617c012ea4648e", "testharness" ], - "css/css-sizing/ortho-writing-mode-001.html": [ - "9342802645faa7b57a12ce4b8ef17d755fcaface", - "reftest" - ], "css/css-sizing/orthogonal-writing-mode-float-in-inline.html": [ "fa95069dbf0083b0dc7095d2bb3acf20a6ccf898", "reftest" @@ -607500,7 +607635,7 @@ "support" ], "css/css-transitions/README.md": [ - "f11374e47b1876d06231854907c3082b5d4774ab", + "f72f11dccae5e8b63de6148573723f86fbb4c708", "support" ], "css/css-transitions/animations/text-shadow-interpolation.html": [ @@ -612692,7 +612827,7 @@ "testharness" ], "css/css-values/minmax-length-computed.html": [ - "410884495461508d94b3a11c385ab1afba60d75d", + "2d6e24e51944beb0f7d030bd99eb14576f7dd3dc", "testharness" ], "css/css-values/minmax-length-invalid.html": [ @@ -612700,7 +612835,7 @@ "testharness" ], "css/css-values/minmax-length-percent-computed.html": [ - "881905ddd565960d47839f1b5a64770ad7627ba5", + "acd0f2b31bb7554d1e74dd43ad56bd5a68543f07", "testharness" ], "css/css-values/minmax-length-percent-invalid.html": [ @@ -621315,6 +621450,10 @@ "04a8a2289aa67e05a359ece1d09d961539d82571", "testharness" ], + "css/cssom/border-shorthand-serialization.html": [ + "9b5821563c49c8874f7bbd8dc4ffb2f9813a789e", + "testharness" + ], "css/cssom/computed-style-001.html": [ "d637b066b03a71283ad89315a5c346a1715900f1", "testharness" @@ -625712,7 +625851,7 @@ "support" ], "css/support/computed-testcommon.js": [ - "c7c7e073203a67844ebcdf029f5c323964a41c99", + "43851cb87fccb7d09cb985b294ae27d14317aedd", "support" ], "css/support/green.ico": [ @@ -625888,7 +626027,7 @@ "support" ], "css/tools/apiclient/README.md": [ - "528625e45274cbb481ed8bfb2d3b2ff4d0e07dc7", + "6e332b852adc993940e6765ff9f7075d09a21fcf", "support" ], "css/tools/apiclient/__init__.py": [ @@ -635988,11 +636127,11 @@ "support" ], "docs/writing-tests/testdriver-extension-tutorial.md": [ - "262e394353632ccc4aaa8b42955d09a0de61624f", + "92ce939f09f5499c7a0bdff60bf42c0752e2ff78", "support" ], "docs/writing-tests/testdriver.md": [ - "6b398b993b61f835dc18b1a97019ab3d3d1377e0", + "bc1cf8dcad17210ad0400c79ea33b1231cfff4c8", "support" ], "docs/writing-tests/testharness-api.md": [ @@ -637667,6 +637806,10 @@ "55a969415ce62e9c14d02e58d63b2827ae2aa6bc", "testharness" ], + "dom/svg-insert-crash.html": [ + "539fb1fae7057a2d331d6c5f8e4a07efab6bc98a", + "testharness" + ], "dom/traversal/NodeFilter-constants.html": [ "1ce4736cc618046fdc3def9aa1bf1b9469beb56e", "testharness" @@ -637908,7 +638051,7 @@ "support" ], "dpub-aam/README.md": [ - "ce4804944404b7bb51690d763070ffb7f6b6a986", + "2805b143bda310e6f0570e4e4a78bc8898dd3282", "support" ], "dpub-aam/doc-abstract-manual.html": [ @@ -638076,7 +638219,7 @@ "support" ], "dpub-aria/README.md": [ - "b2ffb99fd51a2448af4259768603fb6388d01185", + "cf76613c6b9e01d1cb77f99d9c39c57f01c7861a", "support" ], "dpub-aria/inuse-manual.html": [ @@ -641515,6 +641658,14 @@ "961d40336aeb3ed04c58b9a8b6196b3393cb92d5", "support" ], + "feature-policy/feature-policy-frame-policy-timing-iframe-camera.https.sub.html": [ + "8ea5d77cfecae3ff97791fd29b7f5cc0cd77323b", + "support" + ], + "feature-policy/feature-policy-frame-policy-timing.https.sub.html": [ + "c78d16132bc6ab1dc787fef4901f215d1377272d", + "testharness" + ], "feature-policy/feature-policy-header-policy-allowed-for-all.https.sub.html": [ "6bf7ca65326a8a5a146b2f5c399b7adbce527805", "testharness" @@ -642952,7 +643103,7 @@ "support" ], "fetch/content-type/README.md": [ - "3a9d1bd7266baaaaf74c29954debcd0187511ca4", + "f553b7ee8e6c9b158f73120c6c77542297d47931", "support" ], "fetch/content-type/resources/content-type.py": [ @@ -643136,7 +643287,7 @@ "testharness" ], "fetch/corb/script-resource-with-nonsniffable-types.tentative.sub.html": [ - "4e34ecd94b47839f271ec8d6998c06941e76b44f", + "917e54984f460fc1f5a9c13c9ae4520492e17355", "testharness" ], "fetch/corb/style-css-mislabeled-as-html-nosniff.sub.html": [ @@ -643324,7 +643475,7 @@ "support" ], "fetch/metadata/appcache.tentative.https.sub.html": [ - "5e35472fcfdce6972191160b57fa7cce559f96a0", + "3dc47c696fb87ead0ef808b99b7e6e52cff01ebe", "testharness" ], "fetch/metadata/embed.tentative.https.sub.html": [ @@ -647259,12 +647410,20 @@ "1bc116ada46d39b0e7b17dc448cab0c33707057a", "testharness" ], + "html/browsers/sandboxing/sandbox-navigation-timing-iframe.tentative.html": [ + "43726e7720065d9fe3c7d2ea3f3563f5f80315bb", + "support" + ], + "html/browsers/sandboxing/sandbox-navigation-timing.tentative.html": [ + "686f1c0c9f6847772edbe2ef070a483db1df3d9d", + "testharness" + ], "html/browsers/sandboxing/sandbox-new-execution-context-iframe.html": [ "dc15d57c6a352e045ef59d6103ac1540ebc3ad82", "support" ], "html/browsers/sandboxing/sandbox-new-execution-context.html": [ - "6692257bc416114df6c29a2b63586646f5113925", + "653729384feccd527e40cbe7b5ba514c09bed8ba", "testharness" ], "html/browsers/sandboxing/sandbox-parse-noscript-ref.html": [ @@ -648083,6 +648242,22 @@ "43c44cffd64e01f12a8d0dc22bbddfdd05a79a90", "support" ], + "html/cross-origin-embedder-policy/require-corp-about-blank.html": [ + "b94cb57b95f8c290a8d3ed32b4f6b55d4f629159", + "testharness" + ], + "html/cross-origin-embedder-policy/require-corp-about-blank.html.headers": [ + "8df98474b589d070992677cb0134bd47bd0509c4", + "support" + ], + "html/cross-origin-embedder-policy/require-corp-about-srcdoc.html": [ + "a832db1cebbf106b215a8f7c8900bf5f1d3287e3", + "testharness" + ], + "html/cross-origin-embedder-policy/require-corp-about-srcdoc.html.headers": [ + "8df98474b589d070992677cb0134bd47bd0509c4", + "support" + ], "html/cross-origin-embedder-policy/require-corp-sw-from-none.https.html": [ "896ea46ff08000dae262187268b7d8f57ccd1573", "testharness" @@ -655639,6 +655814,10 @@ "839548f01cf0283607d35bedfe4d9dfb25320982", "reftest" ], + "html/semantics/document-metadata/the-style-element/mutations.window.js": [ + "145ea8b66a97e2684ff64bc36ab63b6504841e40", + "testharness" + ], "html/semantics/document-metadata/the-style-element/style-error-01.html": [ "0bdef0e17588cf6d2f95a2a14784f2ac26ad1c43", "testharness" @@ -666208,11 +666387,15 @@ "support" ], "infrastructure/metadata/infrastructure/testdriver/actions/multiTouchPoints.html.ini": [ - "358c6f0902e88fc61d24368b0d0874d318ae92d3", + "c7b3482c786fc4532488f388b802930ccea8dc0e", + "support" + ], + "infrastructure/metadata/infrastructure/testdriver/actions/multiTouchPointsTwoTouchStarts.html.ini": [ + "40626b8193ecc99e3e5ec5fe181f5553bfd8473a", "support" ], "infrastructure/metadata/infrastructure/testdriver/actions/multiTouchPointsWithPause.html.ini": [ - "83ade1dddf02b0e9d9df5721338bd68c0d0acac3", + "4f1939a431ae272024f62a4169bf8431efc2c5bb", "support" ], "infrastructure/metadata/infrastructure/testdriver/actions/pause.html.ini": [ @@ -666231,8 +666414,8 @@ "3e43b63af9545f2828efd2f7ce510bbc9a87bbfc", "support" ], - "infrastructure/metadata/infrastructure/testdriver/set_permission.html.ini": [ - "9a250edf1a918bc53b41ef9fee429478a9587e1e", + "infrastructure/metadata/infrastructure/testdriver/set_permission.https.html.ini": [ + "2101196fa2fe436c3f94c5f84451f1746501c84d", "support" ], "infrastructure/metadata/infrastructure/testdriver/virtual_authenticator.html.ini": [ @@ -666455,6 +666638,10 @@ "c8169733306b4f348509145f2f04df2573cc6c3e", "testharness" ], + "infrastructure/testdriver/actions/multiTouchPointsTwoTouchStarts.html": [ + "5014be40f6176111107e4e8d49a67fe0af1cdb31", + "testharness" + ], "infrastructure/testdriver/actions/multiTouchPointsWithPause.html": [ "645caf2c720ee6af08a37d4c7e1e1d68c565fd55", "testharness" @@ -666491,8 +666678,8 @@ "2170347c9729564f7e492009b3d20b3267422c1d", "testharness" ], - "infrastructure/testdriver/set_permission.html": [ - "1e92a26398d3215646e4d4d152549510abea1cdc", + "infrastructure/testdriver/set_permission.https.html": [ + "af743f638289602ecc512a7dbd4000de6056b796", "testharness" ], "infrastructure/testdriver/virtual_authenticator.html": [ @@ -667080,7 +667267,7 @@ "support" ], "interfaces/webauthn.idl": [ - "fd35c0dfd373a6b31ae3664ca20637b07c35ecec", + "29025f35eecb5c82b33ffcc7039c4a99f081f4e3", "support" ], "interfaces/webdriver.idl": [ @@ -667903,6 +668090,10 @@ "0a7b408b649fe04604b6f08188a2399eefbbd0a4", "support" ], + "loading/lazyload/disconnected-image-loading-lazy.tentative.html": [ + "c3b72b26239ea18c0575b65d0d6aa3aaef08792d", + "testharness" + ], "loading/lazyload/iframe-loading-eager.tentative.html": [ "26209332ff5a0c4af64e0ae4893f1c396a111ce1", "testharness" @@ -681219,6 +681410,10 @@ "c824ecf1d2b47630f8ebcef3ed42c8c908c8e9eb", "testharness" ], + "permissions/test-periodic-background-sync-permission.html": [ + "c3b6a1d8b9e2ae2e0d1819959fb03d43fa058fbb", + "testharness" + ], "picture-in-picture/META.yml": [ "b878dd547b8267196db6563b0009035af3d4f52a", "support" @@ -681771,6 +681966,10 @@ "207d477697d823d6611b4d8dc6681b3e2fc90a73", "testharness" ], + "portals/csp/frame-ancestors.sub.html": [ + "57f1eb3d88c7b27a1ab82e66b06a7e7511bb0b1d", + "testharness" + ], "portals/csp/frame-src.sub.html": [ "34f1474d4b37f6a867b858a0bfc88e03db48153a", "testharness" @@ -695623,6 +695822,14 @@ "6ddad159524db2870acd4a56115af6d74c460387", "support" ], + "resource-timing/resources/sw-install.html": [ + "0a2fbe2245b865681e88178903e450a6edfe9d73", + "support" + ], + "resource-timing/resources/sw.js": [ + "4e4fe1e1f068fd88e57506ac4ac295a9ea4f0193", + "support" + ], "resource-timing/resources/webperftestharness.js": [ "8e04e52f9c57fafb6a599da3a1963aa6ed545e6f", "support" @@ -695663,6 +695870,10 @@ "598a727bf88e7f47556d509f6929a86b64b0506c", "support" ], + "resource-timing/workerStart-tao-protected.https.html": [ + "cf5c2e3d606fba4543e251caa980abc71a901c14", + "testharness" + ], "resources/.htaccess": [ "fd46101ca0099e76a8ed5723515f6e1bd220aebb", "support" @@ -695776,7 +695987,7 @@ "support" ], "resources/chromium/nfc-mock.js": [ - "224a6078c1e0d95299d1e3a2e79c6bf3f7614b5f", + "6823f6362fa13c77c3acb556b4b7f6467144dde8", "support" ], "resources/chromium/sensor.mojom.js": [ @@ -695836,7 +696047,7 @@ "support" ], "resources/chromium/webxr-test.js": [ - "c4bfec3547d42524c7d3df4a0cda47720466251c", + "739d771d40bede77937cf5f767727fff63f8b9f9", "support" ], "resources/chromium/webxr-test.js.headers": [ @@ -695924,7 +696135,7 @@ "support" ], "resources/test/tests/functional/api-tests-1.html": [ - "e4246e7faba8a57920bca06eafa11f7817fb07ed", + "7d46994aa9903fcd156477d56eefe1d6157ffb32", "support" ], "resources/test/tests/functional/api-tests-2.html": [ @@ -696151,6 +696362,10 @@ "abfa4ab800b3c8e6b5f6fd3b42a982cc2e4fe99e", "support" ], + "resources/test/tests/unit/assert_object_equals.html": [ + "73a9b958438c1b83d1e4b4c79870013c98bc5ad7", + "support" + ], "resources/test/tests/unit/basic.html": [ "d907c7bb9fbf4fa4dc674bd57e6a856b68ed13ea", "support" @@ -696220,7 +696435,7 @@ "support" ], "resources/testdriver.js": [ - "22d5ead72267a39b7a0b954b479e60ab6516ec9f", + "f102c8774f7efcb3e9c9bddebcd5ab3d715011d2", "support" ], "resources/testdriver.js.headers": [ @@ -696339,8 +696554,8 @@ "e1b50f670105f3a05dacd3518d62770685121c67", "support" ], - "screen_enumeration/getScreens.tentative.https.any.js": [ - "0b8c226ddbd7035d29760b8afa84d8429a3d3482", + "screen_enumeration/getScreens.tentative.https.window.js": [ + "3b893bbbb772a773dfa9c18cf4bd844cfe4db99f", "testharness" ], "scroll-animations/META.yml": [ @@ -698716,7 +698931,7 @@ "support" ], "service-workers/service-worker/resources/dummy-worker-interceptor.js": [ - "1c381fd180e2b3d3b7a11394926096141b0a3c76", + "5129ed51ea550c210abc53e11209e7a3e9dc36b1", "support" ], "service-workers/service-worker/resources/dummy.html": [ @@ -701111,6 +701326,10 @@ "1f34178beace0786a347a6b378489b3741c960d9", "support" ], + "sms/detached-iframe.https.html": [ + "bde6e25b80c63ff30ef279bc576e3d993466c3f3", + "testharness" + ], "sms/idlharness.https.any.js": [ "0c31744937c6dbc9b292586ab8ce5f10b268f3ed", "testharness" @@ -701820,11 +702039,11 @@ "support" ], "svg-aam/README.md": [ - "e9163e3536129676dbc5e381180f6ec9b3143e89", + "a1dcef58700dd65643e49dcd4f1abec417f12f34", "support" ], "svg/META.yml": [ - "ee0fff087c4f9a5723f53cc002e228a713e730da", + "a928f0c399126a5e463e1497c4a454dabe6f24fe", "support" ], "svg/README.md": [ @@ -702091,10 +702310,6 @@ "4879e5f6ce8774f176526406ecff680bba65b6a9", "testharness" ], - "svg/animations/discard-on-discard.html": [ - "4a6b9f9368dcb020120f502e4528860beb5f14c6", - "testharness" - ], "svg/animations/end-attribute-change-end-time.html": [ "9f05d7d405d364a1eadfa104c1c4bd90a2bf3b8c", "testharness" @@ -705575,6 +705790,14 @@ "d1a7dbf747efa7c26973773c8233c38c3ff74ea0", "testharness" ], + "svg/painting/reftests/marker-units-strokewidth-non-scaling-stroke.svg": [ + "116c61c45ebfa7d2725df78f3a920fc3c24c7165", + "reftest" + ], + "svg/painting/reftests/marker-units-userspaceonuse-non-scaling-stroke.svg": [ + "7c4c5e0fcf3352e89f808e308c5477ae7e862f24", + "reftest" + ], "svg/painting/reftests/markers-orient-001-ref.svg": [ "871003f3a2303404696d467a7cfaad729b811206", "support" @@ -706123,6 +706346,14 @@ "120941444a4898197d6b6001f9908a6cd48b62ba", "support" ], + "svg/struct/reftests/requiredextensions-empty-string.svg": [ + "28f5da4a3e4358821d907a2883b6ef8fa40eeaa4", + "reftest" + ], + "svg/struct/reftests/requiredextensions-xhtml.tentative.svg": [ + "911f983cab68ee733b01517486b198fa6fcf3dc0", + "reftest" + ], "svg/struct/reftests/support/etag-max-age-zero-icons.svg": [ "6f7fb0f830158972800e2c5c6d8f8de6a53bf2c8", "support" @@ -706844,7 +707075,7 @@ "support" ], "tools/ci/run_tc.py": [ - "b4cb2b01b9745de1c234c9eeaf414e65b8fe7ae3", + "482de1ad336a1824d2335c9e6d7996063f71a78e", "support" ], "tools/ci/taskcluster-run.py": [ @@ -706860,7 +707091,7 @@ "support" ], "tools/ci/tc/decision.py": [ - "92a27ef79ab3fb49aff79197ca503b7a766c8c03", + "0c935b93f8ee87f66dadefddd3a116160ed9dd3f", "support" ], "tools/ci/tc/download.py": [ @@ -706872,7 +707103,7 @@ "support" ], "tools/ci/tc/tasks/test.yml": [ - "a64ef3749211bbb2b3580efc2eee3ea5a810ea6f", + "6e5e1b5070adc14c0c90498b82e5fecaae4f6c1e", "support" ], "tools/ci/tc/testdata/epochs_daily_push_event.json": [ @@ -706900,7 +707131,7 @@ "support" ], "tools/ci/tc/tests/test_valid.py": [ - "d6cbfba4e2cb69488ce585d4db9064dcaa5fe6fa", + "4280387127d35a513592908242c60f4bd3610ffe", "support" ], "tools/ci/tests/test_jobs.py": [ @@ -707184,7 +707415,7 @@ "support" ], "tools/manifest/testpaths.py": [ - "3c1f09d437304a0ce7bbcbc542dede672f01a17e", + "2197792cd64eb8b61a48c1615089fd5376902a8f", "support" ], "tools/manifest/tests/__init__.py": [ @@ -711664,7 +711895,7 @@ "support" ], "tools/wpt/browser.py": [ - "a94d5509cc8ba1bfcc4cbceafd9f511a4f9804ab", + "3ee98d959ec5befc58b884e0ec5385d554bc8725", "support" ], "tools/wpt/commands.json": [ @@ -711700,7 +711931,7 @@ "support" ], "tools/wpt/run.py": [ - "4c1f2c99128de8937dca01479b1b4c4319414f8b", + "0c732e7ae8aee7d441015642ba8f2fcbd7e66e0e", "support" ], "tools/wpt/testfiles.py": [ @@ -711776,7 +712007,7 @@ "support" ], "tools/wptrunner/docs/expectation.rst": [ - "77938abe03d55ce14571ec1b4c2b43d0ed4a409b", + "e0bc7a850bf581921d5062a07154d01a0cb18e4e", "support" ], "tools/wptrunner/docs/internals.rst": [ @@ -711972,7 +712203,11 @@ "support" ], "tools/wptrunner/wptrunner/browsers/__init__.py": [ - "957d2a689acda4801cddc351e1c2cd4c06a8d7e3", + "da68ddb861876262864b3cf7954f2584edb06c65", + "support" + ], + "tools/wptrunner/wptrunner/browsers/android_weblayer.py": [ + "93f4d6b630d288c75f888cb7304bbf8a4195db6c", "support" ], "tools/wptrunner/wptrunner/browsers/android_webview.py": [ @@ -712072,7 +712307,7 @@ "support" ], "tools/wptrunner/wptrunner/executors/base.py": [ - "c8a26d042ebb3fc8276b73f3520e8e523bffc7df", + "9e302107118fd42fb84765fb16d87ecbf0270c5a", "support" ], "tools/wptrunner/wptrunner/executors/executorchrome.py": [ @@ -712116,7 +712351,7 @@ "support" ], "tools/wptrunner/wptrunner/executors/executorwebdriver.py": [ - "8ea59b2577d0825080e1f425e33e114d62b695fb", + "221f48a3ea9cb8cf37a687203bce94af5a8b0f2a", "support" ], "tools/wptrunner/wptrunner/executors/executorwebkit.py": [ @@ -712128,7 +712363,7 @@ "support" ], "tools/wptrunner/wptrunner/executors/protocol.py": [ - "1a47fa9f1d8cc46a7fe5b8657b20dea6de60b0bf", + "a1e8dacecb695af1039829dceb493f91da77b6dc", "support" ], "tools/wptrunner/wptrunner/executors/pytestrunner/__init__.py": [ @@ -712244,7 +712479,7 @@ "support" ], "tools/wptrunner/wptrunner/testrunner.py": [ - "8dece20a8e93e279204ccfee70f07ce8a8debab3", + "f1b1faa4498ca61483159acd690f458b5ba32fbe", "support" ], "tools/wptrunner/wptrunner/tests/__init__.py": [ @@ -712872,7 +713107,7 @@ "testharness" ], "trusted-types/TrustedTypePolicyFactory-constants.tentative.html": [ - "001a6cea4813b0c7f720448d95690c63429405a6", + "0ba2eb62375a57c78f1caba4592e880b92483599", "testharness" ], "trusted-types/TrustedTypePolicyFactory-createPolicy-createXYZTests.tentative.html": [ @@ -712964,7 +713199,7 @@ "testharness" ], "trusted-types/block-text-node-insertion-into-script-element.tentative.html": [ - "a6aa061f7307330e027c3e8b26e6b931cee2bb7c", + "04b19f7e42111a11073a4049350f7d8ddde7d1b2", "testharness" ], "trusted-types/csp-block-eval.tentative.html": [ @@ -716852,7 +717087,7 @@ "support" ], "wai-aria/README.md": [ - "66d6d087f68e7b5d0220c80ac0b2f5f0ab88cf4c", + "4e1a7706e33337e798f98d983a89eb44b77a21d5", "support" ], "wai-aria/alertdialog_modal_false-manual.html": [ @@ -718336,7 +718571,7 @@ "testharness" ], "web-animations/interfaces/Animatable/animate.html": [ - "2d09cdf4545e8073786215169fd3f26c28a7e119", + "95d7db7bb3ba36fc9a0914ebe0d2c8e910e29cf1", "testharness" ], "web-animations/interfaces/Animatable/getAnimations.html": [ @@ -718468,7 +718703,7 @@ "testharness" ], "web-animations/interfaces/KeyframeEffect/target.html": [ - "10f42eea4e5b406c822802c1078fcc1295cb8a39", + "a9827d64d3d076185daee4787589832cc74f0ec0", "testharness" ], "web-animations/resources/easing-tests.js": [ @@ -718548,11 +718783,11 @@ "testharness" ], "web-animations/timing-model/animations/reverse-running-animation-ref.html": [ - "0aaa0443649acd9453f5b52534016a92889b157e", + "7fcdf9156f82ae51ed3004fa00ef1fc1f01192db", "support" ], "web-animations/timing-model/animations/reverse-running-animation.html": [ - "584aa0029ea2e5aa4926035756b5f49d74fa9f54", + "c5179a72c9dc83ce1c4426b5a844d61a039e250b", "reftest" ], "web-animations/timing-model/animations/reversing-an-animation.html": [ @@ -718564,15 +718799,15 @@ "testharness" ], "web-animations/timing-model/animations/setting-the-current-time-of-an-animation.html": [ - "b1fc43e795226dd8a395bc62ebee9792c541b191", + "6687ad7612e2b37fc7d4d5604e27252cbeb7166d", "testharness" ], "web-animations/timing-model/animations/setting-the-playback-rate-of-an-animation.html": [ - "9d07d53df46164d53b1a3c8f4a10787608c5f014", + "0522c43b16a881a14b339294e5ed56b8ae064f92", "testharness" ], "web-animations/timing-model/animations/setting-the-start-time-of-an-animation.html": [ - "a1727994bdb9b8da10bfdd36baa3d8e0ccc4ef1d", + "14c9c60100585554f55dde1e225fdfc5b27f1df3", "testharness" ], "web-animations/timing-model/animations/setting-the-target-effect-of-an-animation.html": [ @@ -718759,12 +718994,8 @@ "32c24570db165422a60a18b767c828dab10c5b9c", "support" ], - "web-nfc/NDEFErrorEvent_constructor.https.html": [ - "243893620c64a7d9fd0e71f506293dc5705716e7", - "testharness" - ], "web-nfc/NDEFMessage_constructor.https.html": [ - "f32f179b95798fe590a518603eff35265cd51494", + "1c842f5c7b61c35d09e2cd41014e1b8e04839624", "testharness" ], "web-nfc/NDEFReader-document-hidden-manual.https.html": [ @@ -718772,11 +719003,11 @@ "manual" ], "web-nfc/NDEFReader_scan.https.html": [ - "78160fbcb2ab11a8ebc80c39a6fd935eddc0844b", + "d3101ab8e1a9b3da7b16b4b2530493ac46ed2528", "testharness" ], "web-nfc/NDEFReader_scan_filter.https.html": [ - "4c1e7de44008889386e71431d7b4d0042739fe4e", + "850d9b9c08833e6048b88e84c14945d3c0629a17", "testharness" ], "web-nfc/NDEFReader_scan_iframe.https.html": [ @@ -718784,11 +719015,11 @@ "testharness" ], "web-nfc/NDEFReadingEvent_constructor.https.html": [ - "3d734105e9ce0ed68e86e421f80847fa485779fe", + "cc56f8a18bdc6f7a0cde3f9f7246330f8e867dd6", "testharness" ], "web-nfc/NDEFRecord_constructor.https.html": [ - "1b2dda9bfc87da146c3b3562dff64568fb68f9b1", + "f3546b99dcb9461a519579b656ce33adacaaf5a3", "testharness" ], "web-nfc/NDEFWriter-document-hidden-manual.https.html": [ @@ -718796,7 +719027,7 @@ "manual" ], "web-nfc/NDEFWriter_push.https.html": [ - "a33b1fab3034af2058a133e8182086dc2cb2dfbe", + "bacbcaaeff39955c062a99f93d3ee443184e824e", "testharness" ], "web-nfc/README.md": [ @@ -718804,7 +719035,7 @@ "support" ], "web-nfc/idlharness.https.window.js": [ - "74ffc21b2204ea894dcea32a4aface9bc69739c1", + "a1eb3386b73a8425dbd85bf1498bcce783a10857", "testharness" ], "web-nfc/nfc_insecure_context.html": [ @@ -718812,7 +719043,7 @@ "testharness" ], "web-nfc/resources/nfc-helpers.js": [ - "3ce725a7c475b28d96f15dfd12736ed8a54f0006", + "b9e260ac71403a8e30422b4f8d1d63c40d3d00c4", "support" ], "web-nfc/resources/support-iframe.html": [ @@ -719428,11 +719659,11 @@ "testharness" ], "webaudio/the-audio-api/the-audioworklet-interface/audioworkletglobalscope-sample-rate.https.html": [ - "d87e35b571d75c0ff595ab023f4a54a420111523", + "84458d0aaa77788b6de7ccd09b64f18a6bf9ede4", "testharness" ], "webaudio/the-audio-api/the-audioworklet-interface/audioworkletglobalscope-timing-info.https.html": [ - "79d402c51862f019413f4ed789bbe8ce4b27e175", + "5f4bee7c5312c89207a25801cd0c2d6055ec00b5", "testharness" ], "webaudio/the-audio-api/the-audioworklet-interface/audioworkletnode-automatic-pull.https.html": [ @@ -719456,11 +719687,11 @@ "testharness" ], "webaudio/the-audio-api/the-audioworklet-interface/audioworkletnode-onerror.https.html": [ - "0a9966add85c6cdd35ce54eb05aae0986c5d9b8e", + "0914edbb3b0ababb646784be605177c8e4a79a09", "testharness" ], "webaudio/the-audio-api/the-audioworklet-interface/audioworkletnode-output-channel-count.https.html": [ - "9d65d872b987943491cace95b8cdf729158fbd0d", + "a8a7f5ed1de78b90432641d617e60a1b58dd893f", "testharness" ], "webaudio/the-audio-api/the-audioworklet-interface/audioworkletprocessor-options.https.html": [ @@ -719812,7 +720043,7 @@ "support" ], "webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/cors-check.https.html": [ - "a2fa8040b2c6100f7ec22f0f133525808403ce01", + "38bd94a037c3b15e59fe6e99acbf013636de9003", "testharness" ], "webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/mediaElementAudioSourceToScriptProcessorTest.html": [ @@ -719820,7 +720051,7 @@ "testharness" ], "webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/no-cors.https.html": [ - "38324a9f67a67f50f134fb78af43117e2ec9b8c8", + "de2f0b7dd3b680cbb38d1b0546c6656b1e03e1b2", "testharness" ], "webaudio/the-audio-api/the-mediastreamaudiodestinationnode-interface/.gitkeep": [ @@ -720067,6 +720298,14 @@ "ff0efcb656a740e9fdee2a3cc8dbfddda9b2a563", "testharness" ], + "webauthn/resources/common-inputs.js": [ + "8370f7f079a014ea58dd3ce606b7fa48dcc88a3e", + "support" + ], + "webauthn/resources/utils.js": [ + "f361a94d2e4f63b18bf1f7f2971db6322a30000f", + "support" + ], "webauthn/securecontext.http.html": [ "52786950f383eb0454edcf9fad9b637dde956ca8", "testharness" @@ -720075,6 +720314,10 @@ "6c9aabd11ea3a51688962890dde29d5c41ec6c6f", "testharness" ], + "webauthn/webauthn-testdriver-basic.https.html": [ + "7790f5d0d3fd7567df24a3aeebc4d7541c118e1a", + "testharness" + ], "webdriver/META.yml": [ "a397b497c32234d3889c738f51b96a3ba3b2a96f", "support" @@ -727524,7 +727767,7 @@ "testharness" ], "workers/Worker-constructor-proto.any.js": [ - "73eabd55226d67b05fc3a86a9e57880b9a725e5b", + "90ad767b9807853f6fbc611dbeac435b4c14079b", "testharness" ], "workers/Worker-custom-event.any.js": [ @@ -727536,7 +727779,7 @@ "testharness" ], "workers/Worker-location.sub.any.js": [ - "2ef944553105767535f6e3119048091f959bfac8", + "1c3dabff0361c03b0a338b004854f728a8ea5d29", "testharness" ], "workers/Worker-messageport.html": [ @@ -727544,7 +727787,7 @@ "testharness" ], "workers/Worker-multi-port.html": [ - "9a89583ad91b40e64c7a3682da1e5053e18b4d26", + "138f8f02d4e722509905f01cd64bfb93b997f9bd", "testharness" ], "workers/Worker-nested-importScripts-error.html": [ @@ -727592,7 +727835,7 @@ "testharness" ], "workers/WorkerGlobalScope-close.html": [ - "a193a3478f4a58176314727898593428a53726a3", + "08ab1ca515c60b6ecf1d3e4555d8ade349e28c13", "testharness" ], "workers/WorkerGlobalScope_ErrorEvent_colno.htm": [ @@ -727768,7 +728011,7 @@ "testharness" ], "workers/Worker_script_mimetype.htm": [ - "04fe68e6628675f8c9a0b1f300dab4001f381615", + "55d81d5d1c9b6105f1815dc09390467b47f0965d", "testharness" ], "workers/Worker_terminate_event_queue.htm": [ diff --git a/tests/wpt/metadata/css/CSS2/floats/floats-in-table-caption-001.html.ini b/tests/wpt/metadata/css/CSS2/floats/floats-in-table-caption-001.html.ini deleted file mode 100644 index 86715ffc9c20..000000000000 --- a/tests/wpt/metadata/css/CSS2/floats/floats-in-table-caption-001.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[floats-in-table-caption-001.html] - expected: FAIL diff --git a/tests/wpt/metadata/css/CSS2/text/white-space-002.xht.ini b/tests/wpt/metadata/css/CSS2/text/white-space-002.xht.ini new file mode 100644 index 000000000000..b1d1b14db72b --- /dev/null +++ b/tests/wpt/metadata/css/CSS2/text/white-space-002.xht.ini @@ -0,0 +1,2 @@ +[white-space-002.xht] + expected: FAIL diff --git a/tests/wpt/metadata/css/CSS2/text/white-space-003.xht.ini b/tests/wpt/metadata/css/CSS2/text/white-space-003.xht.ini new file mode 100644 index 000000000000..182a9fc2d1e7 --- /dev/null +++ b/tests/wpt/metadata/css/CSS2/text/white-space-003.xht.ini @@ -0,0 +1,2 @@ +[white-space-003.xht] + expected: FAIL diff --git a/tests/wpt/metadata/css/CSS2/visudet/line-height-204.html.ini b/tests/wpt/metadata/css/CSS2/visudet/line-height-204.html.ini new file mode 100644 index 000000000000..3d28990c2831 --- /dev/null +++ b/tests/wpt/metadata/css/CSS2/visudet/line-height-204.html.ini @@ -0,0 +1,2 @@ +[line-height-204.html] + expected: FAIL diff --git a/tests/wpt/metadata/css/compositing/parsing/background-blend-mode-computed.html.ini b/tests/wpt/metadata/css/compositing/parsing/background-blend-mode-computed.html.ini index 96ac8d2b25df..fbf61931b981 100644 --- a/tests/wpt/metadata/css/compositing/parsing/background-blend-mode-computed.html.ini +++ b/tests/wpt/metadata/css/compositing/parsing/background-blend-mode-computed.html.ini @@ -56,3 +56,60 @@ [Property background-blend-mode value 'difference' computes to 'difference'] expected: FAIL + [Property background-blend-mode value 'screen, overlay'] + expected: FAIL + + [Property background-blend-mode value 'darken'] + expected: FAIL + + [Property background-blend-mode value 'normal, luminosity'] + expected: FAIL + + [Property background-blend-mode value 'luminosity'] + expected: FAIL + + [Property background-blend-mode value 'exclusion'] + expected: FAIL + + [Property background-blend-mode value 'multiply'] + expected: FAIL + + [Property background-blend-mode value 'screen'] + expected: FAIL + + [Property background-blend-mode value 'color-burn'] + expected: FAIL + + [Property background-blend-mode value 'hue'] + expected: FAIL + + [Property background-blend-mode value 'saturation'] + expected: FAIL + + [Property background-blend-mode value 'hard-light'] + expected: FAIL + + [Property background-blend-mode value 'color-dodge'] + expected: FAIL + + [Property background-blend-mode value 'normal'] + expected: FAIL + + [Property background-blend-mode value 'color'] + expected: FAIL + + [Property background-blend-mode value 'difference'] + expected: FAIL + + [Property background-blend-mode value 'lighten'] + expected: FAIL + + [Property background-blend-mode value 'soft-light'] + expected: FAIL + + [Property background-blend-mode value 'overlay'] + expected: FAIL + + [Property background-blend-mode value 'color, saturation'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/compositing/parsing/isolation-computed.html.ini b/tests/wpt/metadata/css/compositing/parsing/isolation-computed.html.ini index ef7f5a83c6ed..8978a3dea3d6 100644 --- a/tests/wpt/metadata/css/compositing/parsing/isolation-computed.html.ini +++ b/tests/wpt/metadata/css/compositing/parsing/isolation-computed.html.ini @@ -5,3 +5,9 @@ [Property isolation value 'auto' computes to 'auto'] expected: FAIL + [Property isolation value 'auto'] + expected: FAIL + + [Property isolation value 'isolate'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-align/parsing/align-content-computed.html.ini b/tests/wpt/metadata/css/css-align/parsing/align-content-computed.html.ini index 036730941a3e..165bf87de0b0 100644 --- a/tests/wpt/metadata/css/css-align/parsing/align-content-computed.html.ini +++ b/tests/wpt/metadata/css/css-align/parsing/align-content-computed.html.ini @@ -23,3 +23,27 @@ [Property align-content value 'space-evenly' computes to 'space-evenly'] expected: FAIL + [Property align-content value 'last baseline'] + expected: FAIL + + [Property align-content value 'baseline'] + expected: FAIL + + [Property align-content value 'unsafe end'] + expected: FAIL + + [Property align-content value 'normal'] + expected: FAIL + + [Property align-content value 'space-evenly'] + expected: FAIL + + [Property align-content value 'safe flex-start'] + expected: FAIL + + [Property align-content value 'start'] + expected: FAIL + + [Property align-content value 'end'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-align/parsing/align-items-computed.html.ini b/tests/wpt/metadata/css/css-align/parsing/align-items-computed.html.ini index 7901836699fb..a6bf5fa814dc 100644 --- a/tests/wpt/metadata/css/css-align/parsing/align-items-computed.html.ini +++ b/tests/wpt/metadata/css/css-align/parsing/align-items-computed.html.ini @@ -23,3 +23,27 @@ [Property align-items value 'last baseline' computes to 'last baseline'] expected: FAIL + [Property align-items value 'self-end'] + expected: FAIL + + [Property align-items value 'start'] + expected: FAIL + + [Property align-items value 'unsafe center'] + expected: FAIL + + [Property align-items value 'last baseline'] + expected: FAIL + + [Property align-items value 'end'] + expected: FAIL + + [Property align-items value 'self-start'] + expected: FAIL + + [Property align-items value 'safe self-end'] + expected: FAIL + + [Property align-items value 'normal'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-align/parsing/align-self-computed.html.ini b/tests/wpt/metadata/css/css-align/parsing/align-self-computed.html.ini index fa61b083ab80..6d95449604f8 100644 --- a/tests/wpt/metadata/css/css-align/parsing/align-self-computed.html.ini +++ b/tests/wpt/metadata/css/css-align/parsing/align-self-computed.html.ini @@ -26,3 +26,30 @@ [Property align-self value 'start' computes to 'start'] expected: FAIL + [Property align-self value 'safe self-end'] + expected: FAIL + + [Property align-self value 'self-start'] + expected: FAIL + + [Property align-self value 'unsafe center'] + expected: FAIL + + [Property align-self value 'normal'] + expected: FAIL + + [Property align-self value 'self-end'] + expected: FAIL + + [Property align-self value 'start'] + expected: FAIL + + [Property align-self value 'auto'] + expected: FAIL + + [Property align-self value 'last baseline'] + expected: FAIL + + [Property align-self value 'end'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-align/parsing/column-gap-computed.html.ini b/tests/wpt/metadata/css/css-align/parsing/column-gap-computed.html.ini index 1ac6a8db6fef..25d3ec3ed8de 100644 --- a/tests/wpt/metadata/css/css-align/parsing/column-gap-computed.html.ini +++ b/tests/wpt/metadata/css/css-align/parsing/column-gap-computed.html.ini @@ -14,3 +14,18 @@ [Property column-gap value 'calc(10px - 0.5em)' computes to '0px'] expected: FAIL + [Property column-gap value 'normal'] + expected: FAIL + + [Property column-gap value 'calc(10px + 0.5em)'] + expected: FAIL + + [Property column-gap value '40%'] + expected: FAIL + + [Property column-gap value 'calc(10px - 0.5em)'] + expected: FAIL + + [Property column-gap value 'calc(50% + 60px)'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-align/parsing/gap-computed.html.ini b/tests/wpt/metadata/css/css-align/parsing/gap-computed.html.ini index 77d70251f90f..4b82ec79ae39 100644 --- a/tests/wpt/metadata/css/css-align/parsing/gap-computed.html.ini +++ b/tests/wpt/metadata/css/css-align/parsing/gap-computed.html.ini @@ -32,3 +32,36 @@ [Property gap value 'calc(-0.5em + 10px)' computes to '0px'] expected: FAIL + [Property gap value '20% calc(20% + 10px)'] + expected: FAIL + + [Property gap value 'normal'] + expected: FAIL + + [Property gap value 'normal 10px'] + expected: FAIL + + [Property gap value '20%'] + expected: FAIL + + [Property gap value '10px'] + expected: FAIL + + [Property gap value '10px 20%'] + expected: FAIL + + [Property gap value 'calc(-0.5em + 10px) calc(0.5em + 10px)'] + expected: FAIL + + [Property gap value 'calc(20% + 10px) normal'] + expected: FAIL + + [Property gap value 'calc(20% + 10px)'] + expected: FAIL + + [Property gap value 'calc(-0.5em + 10px)'] + expected: FAIL + + [Property gap value 'calc(0.5em + 10px)'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-align/parsing/justify-content-computed.html.ini b/tests/wpt/metadata/css/css-align/parsing/justify-content-computed.html.ini index f96a01069a2c..47abd3064e3e 100644 --- a/tests/wpt/metadata/css/css-align/parsing/justify-content-computed.html.ini +++ b/tests/wpt/metadata/css/css-align/parsing/justify-content-computed.html.ini @@ -23,3 +23,27 @@ [Property justify-content value 'safe flex-start' computes to 'safe flex-start'] expected: FAIL + [Property justify-content value 'start'] + expected: FAIL + + [Property justify-content value 'end'] + expected: FAIL + + [Property justify-content value 'unsafe end'] + expected: FAIL + + [Property justify-content value 'normal'] + expected: FAIL + + [Property justify-content value 'unsafe right'] + expected: FAIL + + [Property justify-content value 'safe flex-start'] + expected: FAIL + + [Property justify-content value 'space-evenly'] + expected: FAIL + + [Property justify-content value 'left'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-align/parsing/justify-items-computed.html.ini b/tests/wpt/metadata/css/css-align/parsing/justify-items-computed.html.ini index b9104efccf32..3cd51733267a 100644 --- a/tests/wpt/metadata/css/css-align/parsing/justify-items-computed.html.ini +++ b/tests/wpt/metadata/css/css-align/parsing/justify-items-computed.html.ini @@ -59,3 +59,60 @@ [Property justify-items value 'end' computes to 'end'] expected: FAIL + [Property justify-items value 'legacy right'] + expected: FAIL + + [Property justify-items value 'safe self-end'] + expected: FAIL + + [Property justify-items value 'center'] + expected: FAIL + + [Property justify-items value 'legacy'] + expected: FAIL + + [Property justify-items value 'normal'] + expected: FAIL + + [Property justify-items value 'legacy center'] + expected: FAIL + + [Property justify-items value 'flex-start'] + expected: FAIL + + [Property justify-items value 'self-end'] + expected: FAIL + + [Property justify-items value 'last baseline'] + expected: FAIL + + [Property justify-items value 'safe left'] + expected: FAIL + + [Property justify-items value 'right'] + expected: FAIL + + [Property justify-items value 'start'] + expected: FAIL + + [Property justify-items value 'end'] + expected: FAIL + + [Property justify-items value 'stretch'] + expected: FAIL + + [Property justify-items value 'unsafe center'] + expected: FAIL + + [Property justify-items value 'flex-end'] + expected: FAIL + + [Property justify-items value 'self-start'] + expected: FAIL + + [Property justify-items value 'legacy left'] + expected: FAIL + + [Property justify-items value 'baseline'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-align/parsing/justify-self-computed.html.ini b/tests/wpt/metadata/css/css-align/parsing/justify-self-computed.html.ini index 97de7bd520a5..b739e8a51d0c 100644 --- a/tests/wpt/metadata/css/css-align/parsing/justify-self-computed.html.ini +++ b/tests/wpt/metadata/css/css-align/parsing/justify-self-computed.html.ini @@ -47,3 +47,51 @@ [Property justify-self value 'unsafe center' computes to 'unsafe center'] expected: FAIL + [Property justify-self value 'center'] + expected: FAIL + + [Property justify-self value 'safe self-end'] + expected: FAIL + + [Property justify-self value 'auto'] + expected: FAIL + + [Property justify-self value 'unsafe center'] + expected: FAIL + + [Property justify-self value 'baseline'] + expected: FAIL + + [Property justify-self value 'start'] + expected: FAIL + + [Property justify-self value 'last baseline'] + expected: FAIL + + [Property justify-self value 'normal'] + expected: FAIL + + [Property justify-self value 'end'] + expected: FAIL + + [Property justify-self value 'flex-end'] + expected: FAIL + + [Property justify-self value 'stretch'] + expected: FAIL + + [Property justify-self value 'self-start'] + expected: FAIL + + [Property justify-self value 'flex-start'] + expected: FAIL + + [Property justify-self value 'self-end'] + expected: FAIL + + [Property justify-self value 'left'] + expected: FAIL + + [Property justify-self value 'unsafe right'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-align/parsing/place-content-computed.html.ini b/tests/wpt/metadata/css/css-align/parsing/place-content-computed.html.ini index ffe746f3fcf8..c940f4a8ce10 100644 --- a/tests/wpt/metadata/css/css-align/parsing/place-content-computed.html.ini +++ b/tests/wpt/metadata/css/css-align/parsing/place-content-computed.html.ini @@ -68,3 +68,72 @@ [Property place-content value 'normal right' computes to 'normal right'] expected: FAIL + [Property place-content value 'last baseline flex-start'] + expected: FAIL + + [Property place-content value 'first baseline stretch'] + expected: FAIL + + [Property place-content value 'flex-start flex-start'] + expected: FAIL + + [Property place-content value 'space-around'] + expected: FAIL + + [Property place-content value 'space-evenly'] + expected: FAIL + + [Property place-content value 'safe flex-start'] + expected: FAIL + + [Property place-content value 'center normal'] + expected: FAIL + + [Property place-content value 'end'] + expected: FAIL + + [Property place-content value 'stretch'] + expected: FAIL + + [Property place-content value 'normal normal'] + expected: FAIL + + [Property place-content value 'center'] + expected: FAIL + + [Property place-content value 'space-evenly unsafe end'] + expected: FAIL + + [Property place-content value 'baseline stretch'] + expected: FAIL + + [Property place-content value 'space-between'] + expected: FAIL + + [Property place-content value 'baseline space-around'] + expected: FAIL + + [Property place-content value 'first baseline start'] + expected: FAIL + + [Property place-content value 'baseline'] + expected: FAIL + + [Property place-content value 'last baseline'] + expected: FAIL + + [Property place-content value 'normal stretch'] + expected: FAIL + + [Property place-content value 'normal right'] + expected: FAIL + + [Property place-content value 'first baseline'] + expected: FAIL + + [Property place-content value 'baseline unsafe left'] + expected: FAIL + + [Property place-content value 'unsafe end unsafe end'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-align/parsing/place-items-computed.html.ini b/tests/wpt/metadata/css/css-align/parsing/place-items-computed.html.ini index 5acfddefa0d6..92e56bb50adc 100644 --- a/tests/wpt/metadata/css/css-align/parsing/place-items-computed.html.ini +++ b/tests/wpt/metadata/css/css-align/parsing/place-items-computed.html.ini @@ -53,3 +53,57 @@ [Property place-items value 'stretch baseline' computes to 'stretch baseline'] expected: FAIL + [Property place-items value 'flex-end'] + expected: FAIL + + [Property place-items value 'safe self-end'] + expected: FAIL + + [Property place-items value 'center'] + expected: FAIL + + [Property place-items value 'stretch legacy left'] + expected: FAIL + + [Property place-items value 'first baseline right legacy'] + expected: FAIL + + [Property place-items value 'unsafe center unsafe center'] + expected: FAIL + + [Property place-items value 'stretch stretch'] + expected: FAIL + + [Property place-items value 'safe self-end normal'] + expected: FAIL + + [Property place-items value 'normal'] + expected: FAIL + + [Property place-items value 'baseline unsafe left'] + expected: FAIL + + [Property place-items value 'self-start'] + expected: FAIL + + [Property place-items value 'first baseline'] + expected: FAIL + + [Property place-items value 'flex-end legacy'] + expected: FAIL + + [Property place-items value 'normal right'] + expected: FAIL + + [Property place-items value 'last baseline center'] + expected: FAIL + + [Property place-items value 'last baseline last baseline'] + expected: FAIL + + [Property place-items value 'end end'] + expected: FAIL + + [Property place-items value 'stretch baseline'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-align/parsing/place-self-computed.html.ini b/tests/wpt/metadata/css/css-align/parsing/place-self-computed.html.ini index 5c6b792b5ff5..cdfa9f7b4920 100644 --- a/tests/wpt/metadata/css/css-align/parsing/place-self-computed.html.ini +++ b/tests/wpt/metadata/css/css-align/parsing/place-self-computed.html.ini @@ -47,3 +47,51 @@ [Property place-self value 'center center' computes to 'center'] expected: FAIL + [Property place-self value 'safe self-end safe self-end'] + expected: FAIL + + [Property place-self value 'unsafe center stretch'] + expected: FAIL + + [Property place-self value 'auto last baseline'] + expected: FAIL + + [Property place-self value 'baseline flex-end'] + expected: FAIL + + [Property place-self value 'center center'] + expected: FAIL + + [Property place-self value 'flex-end'] + expected: FAIL + + [Property place-self value 'last baseline last baseline'] + expected: FAIL + + [Property place-self value 'auto auto'] + expected: FAIL + + [Property place-self value 'normal right'] + expected: FAIL + + [Property place-self value 'stretch'] + expected: FAIL + + [Property place-self value 'start'] + expected: FAIL + + [Property place-self value 'unsafe center'] + expected: FAIL + + [Property place-self value 'normal'] + expected: FAIL + + [Property place-self value 'first baseline'] + expected: FAIL + + [Property place-self value 'baseline unsafe left'] + expected: FAIL + + [Property place-self value 'self-start'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-align/parsing/row-gap-computed.html.ini b/tests/wpt/metadata/css/css-align/parsing/row-gap-computed.html.ini index 076774827b97..a6b345735387 100644 --- a/tests/wpt/metadata/css/css-align/parsing/row-gap-computed.html.ini +++ b/tests/wpt/metadata/css/css-align/parsing/row-gap-computed.html.ini @@ -17,3 +17,21 @@ [Property row-gap value 'calc(-0.5em + 10px)' computes to '0px'] expected: FAIL + [Property row-gap value '20%'] + expected: FAIL + + [Property row-gap value 'normal'] + expected: FAIL + + [Property row-gap value 'calc(20% + 10px)'] + expected: FAIL + + [Property row-gap value '10px'] + expected: FAIL + + [Property row-gap value 'calc(-0.5em + 10px)'] + expected: FAIL + + [Property row-gap value 'calc(0.5em + 10px)'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-animations/parsing/animation-computed.html.ini b/tests/wpt/metadata/css/css-animations/parsing/animation-computed.html.ini index 543182ae329c..4664b2fec703 100644 --- a/tests/wpt/metadata/css/css-animations/parsing/animation-computed.html.ini +++ b/tests/wpt/metadata/css/css-animations/parsing/animation-computed.html.ini @@ -32,3 +32,36 @@ [Property animation value 'both' computes to '0s ease 0s 1 normal both running none'] expected: FAIL + [Property animation value '1s'] + expected: FAIL + + [Property animation value 'anim paused both reverse, 4 1s -3s cubic-bezier(0, -2, 1, 3)'] + expected: FAIL + + [Property animation value 'none'] + expected: FAIL + + [Property animation value 'cubic-bezier(0, -2, 1, 3)'] + expected: FAIL + + [Property animation value 'anim paused both reverse 4 1s -3s cubic-bezier(0, -2, 1, 3)'] + expected: FAIL + + [Property animation value '1s -3s'] + expected: FAIL + + [Property animation value 'anim'] + expected: FAIL + + [Property animation value 'paused'] + expected: FAIL + + [Property animation value 'both'] + expected: FAIL + + [Property animation value '4'] + expected: FAIL + + [Property animation value 'reverse'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-animations/parsing/animation-timing-function-computed.html.ini b/tests/wpt/metadata/css/css-animations/parsing/animation-timing-function-computed.html.ini index e414d490ff34..5b93366e8982 100644 --- a/tests/wpt/metadata/css/css-animations/parsing/animation-timing-function-computed.html.ini +++ b/tests/wpt/metadata/css/css-animations/parsing/animation-timing-function-computed.html.ini @@ -11,3 +11,15 @@ [Property animation-timing-function value 'steps(2, jump-end)' computes to 'steps(2)'] expected: FAIL + [Property animation-timing-function value 'steps(2, jump-start)'] + expected: FAIL + + [Property animation-timing-function value 'steps(2, jump-none)'] + expected: FAIL + + [Property animation-timing-function value 'steps(2, jump-end)'] + expected: FAIL + + [Property animation-timing-function value 'steps(2, jump-both)'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-backgrounds/background-repeat/background-repeat-round-roundup.xht.ini b/tests/wpt/metadata/css/css-backgrounds/background-repeat/background-repeat-round-roundup.xht.ini new file mode 100644 index 000000000000..f20284a53962 --- /dev/null +++ b/tests/wpt/metadata/css/css-backgrounds/background-repeat/background-repeat-round-roundup.xht.ini @@ -0,0 +1,2 @@ +[background-repeat-round-roundup.xht] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-backgrounds/parsing/background-attachment-computed.html.ini b/tests/wpt/metadata/css/css-backgrounds/parsing/background-attachment-computed.html.ini index 4ab44b88fb0f..457bb8231397 100644 --- a/tests/wpt/metadata/css/css-backgrounds/parsing/background-attachment-computed.html.ini +++ b/tests/wpt/metadata/css/css-backgrounds/parsing/background-attachment-computed.html.ini @@ -2,3 +2,6 @@ [Property background-attachment value 'scroll, fixed, local' computes to 'scroll'] expected: FAIL + [Property background-attachment value 'scroll, fixed, local'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-backgrounds/parsing/background-clip-computed.html.ini b/tests/wpt/metadata/css/css-backgrounds/parsing/background-clip-computed.html.ini index 9c5428876813..2237d957e084 100644 --- a/tests/wpt/metadata/css/css-backgrounds/parsing/background-clip-computed.html.ini +++ b/tests/wpt/metadata/css/css-backgrounds/parsing/background-clip-computed.html.ini @@ -2,3 +2,6 @@ [Property background-clip value 'border-box, padding-box, content-box' computes to 'border-box'] expected: FAIL + [Property background-clip value 'border-box, padding-box, content-box'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-backgrounds/parsing/background-computed.html.ini b/tests/wpt/metadata/css/css-backgrounds/parsing/background-computed.html.ini index dd4fdc7e6c80..d759e0e484a4 100644 --- a/tests/wpt/metadata/css/css-backgrounds/parsing/background-computed.html.ini +++ b/tests/wpt/metadata/css/css-backgrounds/parsing/background-computed.html.ini @@ -77,3 +77,81 @@ [Property background-size value 'contain' computes to 'contain, contain, contain'] expected: FAIL + [Property background-origin value 'content-box, border-box, padding-box, content-box'] + expected: FAIL + + [Property background-clip value 'content-box, border-box'] + expected: FAIL + + [Property background-position-y value '-20%, 10px'] + expected: FAIL + + [Property background-position value '12px 13px, 50% 6px, 30px -10px'] + expected: FAIL + + [Property background-clip value 'border-box'] + expected: FAIL + + [Property background-repeat value 'repeat-x, repeat'] + expected: FAIL + + [Property background-repeat value 'repeat-y, round no-repeat, repeat-x, repeat'] + expected: FAIL + + [Property background-position-x value 'calc(10px - 0.5em), -20%, right, 15%'] + expected: FAIL + + [Property background-origin value 'border-box'] + expected: FAIL + + [Property background-position-y value '0.5em'] + expected: FAIL + + [Property background-attachment value 'local, fixed, scroll'] + expected: FAIL + + [Property background-position value '12px 13px, 50% 6px, 30px -10px, -7px 8px'] + expected: FAIL + + [Property background-clip value 'content-box, border-box, padding-box, content-box'] + expected: FAIL + + [Property background-position value '50% 6px'] + expected: FAIL + + [Property background-attachment value 'scroll, fixed'] + expected: FAIL + + [Property background-origin value 'content-box, border-box'] + expected: FAIL + + [Property background-size value 'contain'] + expected: FAIL + + [Property background-attachment value 'local'] + expected: FAIL + + [Property background-attachment value 'local, fixed, scroll, fixed'] + expected: FAIL + + [Property background-position-y value 'calc(10px - 0.5em), -20%, bottom, 15%'] + expected: FAIL + + [Property background-repeat value 'round'] + expected: FAIL + + [Property background-position-x value '0.5em'] + expected: FAIL + + [Property background-size value 'auto 1px, 2% 3%, contain, 7px 8px'] + expected: FAIL + + [Property background-size value 'auto 1px, 2% 3%'] + expected: FAIL + + [Property background-position value '12px 13px, 50% 6px'] + expected: FAIL + + [Property background-position-x value '-20%, 10px'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-backgrounds/parsing/background-origin-computed.html.ini b/tests/wpt/metadata/css/css-backgrounds/parsing/background-origin-computed.html.ini index 4a015c2ccb9a..a2a8b8df621e 100644 --- a/tests/wpt/metadata/css/css-backgrounds/parsing/background-origin-computed.html.ini +++ b/tests/wpt/metadata/css/css-backgrounds/parsing/background-origin-computed.html.ini @@ -2,3 +2,6 @@ [Property background-origin value 'border-box, padding-box, content-box' computes to 'border-box'] expected: FAIL + [Property background-origin value 'border-box, padding-box, content-box'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-backgrounds/parsing/background-position-computed.html.ini b/tests/wpt/metadata/css/css-backgrounds/parsing/background-position-computed.html.ini index 360feb221db3..85664759844d 100644 --- a/tests/wpt/metadata/css/css-backgrounds/parsing/background-position-computed.html.ini +++ b/tests/wpt/metadata/css/css-backgrounds/parsing/background-position-computed.html.ini @@ -86,3 +86,90 @@ [Property background-position value 'calc(10px - 0.5em) calc(10px + 0.5em)' computes to '-10px 30px'] expected: FAIL + [Property background-position value 'center left'] + expected: FAIL + + [Property background-position value 'center right 7%'] + expected: FAIL + + [Property background-position value '12px 13px, 50% 6px, 30px -10px'] + expected: FAIL + + [Property background-position value 'bottom'] + expected: FAIL + + [Property background-position value 'right 11% bottom'] + expected: FAIL + + [Property background-position value 'right 9%'] + expected: FAIL + + [Property background-position value 'bottom 16% left'] + expected: FAIL + + [Property background-position value '5% top'] + expected: FAIL + + [Property background-position value 'left'] + expected: FAIL + + [Property background-position value '-2% -3%'] + expected: FAIL + + [Property background-position value 'calc(10px + 0.5em) calc(10px - 0.5em)'] + expected: FAIL + + [Property background-position value 'center 6px'] + expected: FAIL + + [Property background-position value 'center center'] + expected: FAIL + + [Property background-position value 'left bottom'] + expected: FAIL + + [Property background-position value 'right top 14%'] + expected: FAIL + + [Property background-position value 'left 10px center'] + expected: FAIL + + [Property background-position value 'bottom center'] + expected: FAIL + + [Property background-position value 'left 12px top 13px'] + expected: FAIL + + [Property background-position value 'right center'] + expected: FAIL + + [Property background-position value 'center'] + expected: FAIL + + [Property background-position value 'center top 8px'] + expected: FAIL + + [Property background-position value '1px center'] + expected: FAIL + + [Property background-position value 'bottom right 19%'] + expected: FAIL + + [Property background-position value 'calc(10px - 0.5em) calc(10px + 0.5em)'] + expected: FAIL + + [Property background-position value 'top 15px center'] + expected: FAIL + + [Property background-position value '1px'] + expected: FAIL + + [Property background-position value 'top 17px right -18px'] + expected: FAIL + + [Property background-position value 'top left'] + expected: FAIL + + [Property background-position value 'center bottom'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-backgrounds/parsing/background-position-x-computed.html.ini b/tests/wpt/metadata/css/css-backgrounds/parsing/background-position-x-computed.html.ini index 774732efcbda..dc222895fe20 100644 --- a/tests/wpt/metadata/css/css-backgrounds/parsing/background-position-x-computed.html.ini +++ b/tests/wpt/metadata/css/css-backgrounds/parsing/background-position-x-computed.html.ini @@ -32,3 +32,24 @@ [Property background-position-x value '0.5em, x-start, x-end' computes to '20px'] expected: FAIL + [Property background-position-x value 'calc(10px - 0.5em), left -20%, right 10px'] + expected: FAIL + + [Property background-position-x value 'center, left, right'] + expected: FAIL + + [Property background-position-x value '0.5em, x-start, x-end'] + expected: FAIL + + [Property background-position-x value 'x-end'] + expected: FAIL + + [Property background-position-x value 'x-start'] + expected: FAIL + + [Property background-position-x value 'calc(10px - 0.5em), -20%, 10px'] + expected: FAIL + + [Property background-position-x value '-20%, 10px'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-backgrounds/parsing/background-position-y-computed.html.ini b/tests/wpt/metadata/css/css-backgrounds/parsing/background-position-y-computed.html.ini index cd34047f7ad6..591ba3f32c3f 100644 --- a/tests/wpt/metadata/css/css-backgrounds/parsing/background-position-y-computed.html.ini +++ b/tests/wpt/metadata/css/css-backgrounds/parsing/background-position-y-computed.html.ini @@ -32,3 +32,24 @@ [Property background-position-y value 'calc(10px - 0.5em), -20%, 10px' computes to '-10px'] expected: FAIL + [Property background-position-y value 'y-end'] + expected: FAIL + + [Property background-position-y value '0.5em, y-start, y-end'] + expected: FAIL + + [Property background-position-y value 'calc(10px - 0.5em), top -20%, bottom 10px'] + expected: FAIL + + [Property background-position-y value 'y-start'] + expected: FAIL + + [Property background-position-y value 'calc(10px - 0.5em), -20%, 10px'] + expected: FAIL + + [Property background-position-y value '-20%, 10px'] + expected: FAIL + + [Property background-position-y value 'center, top, bottom'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-backgrounds/parsing/background-repeat-computed.html.ini b/tests/wpt/metadata/css/css-backgrounds/parsing/background-repeat-computed.html.ini index 9868193e4e3a..ee19764bded7 100644 --- a/tests/wpt/metadata/css/css-backgrounds/parsing/background-repeat-computed.html.ini +++ b/tests/wpt/metadata/css/css-backgrounds/parsing/background-repeat-computed.html.ini @@ -2,3 +2,6 @@ [Property background-repeat value 'repeat-x, repeat-y, repeat' computes to 'repeat-x'] expected: FAIL + [Property background-repeat value 'repeat-x, repeat-y, repeat'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-backgrounds/parsing/background-size-computed.html.ini b/tests/wpt/metadata/css/css-backgrounds/parsing/background-size-computed.html.ini index ede3103de7ad..5a6bde56052c 100644 --- a/tests/wpt/metadata/css/css-backgrounds/parsing/background-size-computed.html.ini +++ b/tests/wpt/metadata/css/css-backgrounds/parsing/background-size-computed.html.ini @@ -1,3 +1,7 @@ [background-size-computed.html] [Property background-size value 'auto 1px, 2% 3%, contain' computes to 'auto 1px'] expected: FAIL + + [Property background-size value 'auto 1px, 2% 3%, contain'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-backgrounds/parsing/border-color-computed.html.ini b/tests/wpt/metadata/css/css-backgrounds/parsing/border-color-computed.html.ini index 4fd1a9683e43..c56e81b8669e 100644 --- a/tests/wpt/metadata/css/css-backgrounds/parsing/border-color-computed.html.ini +++ b/tests/wpt/metadata/css/css-backgrounds/parsing/border-color-computed.html.ini @@ -11,3 +11,15 @@ [Property border-color value 'red yellow green blue' computes to 'rgb(255, 0, 0) rgb(255, 255, 0) rgb(0, 128, 0) rgb(0, 0, 255)'] expected: FAIL + [Property border-color value 'red yellow currentcolor'] + expected: FAIL + + [Property border-color value 'red yellow'] + expected: FAIL + + [Property border-color value 'red yellow green blue'] + expected: FAIL + + [Property border-color value 'currentcolor'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-backgrounds/parsing/border-image-source-computed.sub.html.ini b/tests/wpt/metadata/css/css-backgrounds/parsing/border-image-source-computed.sub.html.ini index 7ffe55ac9422..19f4337a2126 100644 --- a/tests/wpt/metadata/css/css-backgrounds/parsing/border-image-source-computed.sub.html.ini +++ b/tests/wpt/metadata/css/css-backgrounds/parsing/border-image-source-computed.sub.html.ini @@ -2,3 +2,6 @@ [Property border-image-source value 'conic-gradient(from 90deg at 80% 90%, lime, black)' computes to 'conic-gradient(from 90deg at 80% 90%, rgb(0, 255, 0), rgb(0, 0, 0))'] expected: FAIL + [Property border-image-source value 'conic-gradient(from 90deg at 80% 90%, lime, black)'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-backgrounds/parsing/border-radius-computed.html.ini b/tests/wpt/metadata/css/css-backgrounds/parsing/border-radius-computed.html.ini index 913f868a0eb0..7b3c38d84969 100644 --- a/tests/wpt/metadata/css/css-backgrounds/parsing/border-radius-computed.html.ini +++ b/tests/wpt/metadata/css/css-backgrounds/parsing/border-radius-computed.html.ini @@ -26,3 +26,30 @@ [Property border-radius value '1px 2% 2% 2% / 1px 2% 3px 2%' computes to '1px 2% 2% / 1px 2% 3px'] expected: FAIL + [Property border-radius value '1px 2% 1px 1px'] + expected: FAIL + + [Property border-radius value '1px 1px 2% 2%'] + expected: FAIL + + [Property border-radius value '1px 2% 3px 4%'] + expected: FAIL + + [Property border-radius value '1px 1px 1px 1px / 1px 1px 2% 1px'] + expected: FAIL + + [Property border-radius value '5em / 1px 2% 3px 4%'] + expected: FAIL + + [Property border-radius value '1px 1px 1px 2% / 1px 2% 1px 2%'] + expected: FAIL + + [Property border-radius value '1px 2% 3px 4% / 5em'] + expected: FAIL + + [Property border-radius value '1px 2% 2% 2% / 1px 2% 3px 2%'] + expected: FAIL + + [Property border-radius value '1px'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-backgrounds/parsing/border-style-computed.html.ini b/tests/wpt/metadata/css/css-backgrounds/parsing/border-style-computed.html.ini index f7eb5184b126..2a6fb0cb85e6 100644 --- a/tests/wpt/metadata/css/css-backgrounds/parsing/border-style-computed.html.ini +++ b/tests/wpt/metadata/css/css-backgrounds/parsing/border-style-computed.html.ini @@ -11,3 +11,15 @@ [Property border-style value 'solid double groove ridge' computes to 'solid double groove ridge'] expected: FAIL + [Property border-style value 'hidden dotted dashed'] + expected: FAIL + + [Property border-style value 'inset outset'] + expected: FAIL + + [Property border-style value 'solid double groove ridge'] + expected: FAIL + + [Property border-style value 'none'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-backgrounds/parsing/border-width-computed.html.ini b/tests/wpt/metadata/css/css-backgrounds/parsing/border-width-computed.html.ini index ff24d33e8b7e..2155e7a85266 100644 --- a/tests/wpt/metadata/css/css-backgrounds/parsing/border-width-computed.html.ini +++ b/tests/wpt/metadata/css/css-backgrounds/parsing/border-width-computed.html.ini @@ -17,3 +17,21 @@ [Property border-width value '2px thin medium thick' computes to '2px 1px 3px 5px'] expected: FAIL + [Property border-width value '1px 2px'] + expected: FAIL + + [Property border-width value '1px 2px 3px 4px'] + expected: FAIL + + [Property border-width value '1px 2px 3px'] + expected: FAIL + + [Property border-width value '2px thin medium thick'] + expected: FAIL + + [Property border-width value '1px'] + expected: FAIL + + [Property border-width value '0.5em'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-flexbox/parsing/flex-computed.html.ini b/tests/wpt/metadata/css/css-flexbox/parsing/flex-computed.html.ini index a4ef36ffacfd..27480998a87e 100644 --- a/tests/wpt/metadata/css/css-flexbox/parsing/flex-computed.html.ini +++ b/tests/wpt/metadata/css/css-flexbox/parsing/flex-computed.html.ini @@ -23,3 +23,27 @@ [Property flex value '2 3' computes to '2 3 0%'] expected: FAIL + [Property flex value '8 auto'] + expected: FAIL + + [Property flex value '7% 8'] + expected: FAIL + + [Property flex value 'calc(10px + 0.5em)'] + expected: FAIL + + [Property flex value '1'] + expected: FAIL + + [Property flex value '4 5 6px'] + expected: FAIL + + [Property flex value '2 3'] + expected: FAIL + + [Property flex value 'calc(10px - 0.5em)'] + expected: FAIL + + [Property flex value 'none'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-flexbox/parsing/flex-flow-computed.html.ini b/tests/wpt/metadata/css/css-flexbox/parsing/flex-flow-computed.html.ini index 527777e42df2..e78684d9220f 100644 --- a/tests/wpt/metadata/css/css-flexbox/parsing/flex-flow-computed.html.ini +++ b/tests/wpt/metadata/css/css-flexbox/parsing/flex-flow-computed.html.ini @@ -5,3 +5,9 @@ [Property flex-flow value 'row-reverse wrap' computes to 'row-reverse wrap'] expected: FAIL + [Property flex-flow value 'column wrap-reverse'] + expected: FAIL + + [Property flex-flow value 'row-reverse wrap'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-flexbox/parsing/flex-grow-computed.html.ini b/tests/wpt/metadata/css/css-flexbox/parsing/flex-grow-computed.html.ini index e981a2b47d19..cf980a5f29ac 100644 --- a/tests/wpt/metadata/css/css-flexbox/parsing/flex-grow-computed.html.ini +++ b/tests/wpt/metadata/css/css-flexbox/parsing/flex-grow-computed.html.ini @@ -5,3 +5,9 @@ [Property flex-grow value '2.34e+06' computes to '2.34e+06'] expected: FAIL + [Property flex-grow value '2.34e+06'] + expected: FAIL + + [Property flex-grow value '6.78e+08'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-flexbox/parsing/flex-shrink-computed.html.ini b/tests/wpt/metadata/css/css-flexbox/parsing/flex-shrink-computed.html.ini index 167953230f37..64b00ffa14e7 100644 --- a/tests/wpt/metadata/css/css-flexbox/parsing/flex-shrink-computed.html.ini +++ b/tests/wpt/metadata/css/css-flexbox/parsing/flex-shrink-computed.html.ini @@ -5,3 +5,9 @@ [Property flex-shrink value '6.78e+08' computes to '6.78e+08'] expected: FAIL + [Property flex-shrink value '2.34e+06'] + expected: FAIL + + [Property flex-shrink value '6.78e+08'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-fonts/parsing/font-computed.html.ini b/tests/wpt/metadata/css/css-fonts/parsing/font-computed.html.ini index 4d97e8212a8d..943a91f0970e 100644 --- a/tests/wpt/metadata/css/css-fonts/parsing/font-computed.html.ini +++ b/tests/wpt/metadata/css/css-fonts/parsing/font-computed.html.ini @@ -1871,3 +1871,930 @@ [Property font value '100 italic semi-condensed small-caps xx-large/1.2 fantasy' computes to 'italic small-caps 100 semi-condensed 32px / 1.2 fantasy'] expected: FAIL + [Property font value 'normal 100 normal ultra-expanded 20%/1.2 serif'] + expected: FAIL + + [Property font value 'small-caps bolder normal italic xx-large/1.2 monospace'] + expected: FAIL + + [Property font value 'italic small-caps bolder 10px/normal "Non-Generic Example Family Name"'] + expected: FAIL + + [Property font value 'italic small-caps lighter normal 20%/1.2 serif'] + expected: FAIL + + [Property font value 'small-caps lighter semi-condensed normal xx-small fantasy'] + expected: FAIL + + [Property font value 'normal lighter normal small-caps 10px/normal "Non-Generic Example Family Name"'] + expected: FAIL + + [Property font value '100 italic xx-small serif'] + expected: FAIL + + [Property font value 'normal lighter condensed calc(30% - 40px)/calc(120% + 1.2em) cursive'] + expected: FAIL + + [Property font value 'small-caps italic bold normal xx-large/1.2 fantasy'] + expected: FAIL + + [Property font value 'italic 900 ultra-expanded normal smaller serif'] + expected: FAIL + + [Property font value 'normal italic small-caps bold 10px/normal cursive'] + expected: FAIL + + [Property font value 'normal italic lighter normal xx-small Menu'] + expected: FAIL + + [Property font value 'normal small-caps normal xx-small "Non-Generic Example Family Name"'] + expected: FAIL + + [Property font value '900 normal semi-condensed smaller fantasy'] + expected: FAIL + + [Property font value '900 italic normal medium/normal sans-serif'] + expected: FAIL + + [Property font value 'bold italic small-caps ultra-condensed calc(30% - 40px)/calc(120% + 1.2em) serif'] + expected: FAIL + + [Property font value 'normal normal ultra-condensed 100 smaller serif'] + expected: FAIL + + [Property font value 'italic normal normal small-caps medium/normal serif'] + expected: FAIL + + [Property font value 'normal bold italic normal xx-small cursive'] + expected: FAIL + + [Property font value 'bolder normal italic smaller cursive'] + expected: FAIL + + [Property font value 'small-caps italic ultra-expanded lighter 20%/1.2 serif'] + expected: FAIL + + [Property font value 'small-caps normal italic xx-small "Non-Generic Example Family Name"'] + expected: FAIL + + [Property font value 'normal normal small-caps italic xx-small cursive'] + expected: FAIL + + [Property font value 'italic bold larger/calc(120% + 1.2em) Menu'] + expected: FAIL + + [Property font value '900 normal normal small-caps xx-large/1.2 serif'] + expected: FAIL + + [Property font value 'small-caps normal italic normal medium/normal serif'] + expected: FAIL + + [Property font value 'italic small-caps semi-condensed 900 xx-large/1.2 monospace'] + expected: FAIL + + [Property font value 'normal semi-condensed small-caps 100 xx-small Menu'] + expected: FAIL + + [Property font value 'normal normal italic normal xx-large/1.2 fantasy'] + expected: FAIL + + [Property font value 'italic normal small-caps normal 10px/normal monospace'] + expected: FAIL + + [Property font value 'normal italic ultra-expanded bold 20%/1.2 monospace'] + expected: FAIL + + [Property font value 'italic ultra-condensed small-caps lighter 10px/normal cursive'] + expected: FAIL + + [Property font value 'normal 900 small-caps normal smaller "Non-Generic Example Family Name"'] + expected: FAIL + + [Property font value '900 10px/normal cursive'] + expected: FAIL + + [Property font value 'ultra-expanded normal small-caps smaller cursive'] + expected: FAIL + + [Property font value 'italic small-caps normal medium/normal cursive'] + expected: FAIL + + [Property font value 'normal extra-condensed normal italic 20%/1.2 cursive'] + expected: FAIL + + [Property font value 'bolder normal expanded italic 20%/1.2 Menu'] + expected: FAIL + + [Property font value 'normal normal small-caps condensed xx-large/1.2 monospace'] + expected: FAIL + + [Property font value 'italic small-caps xx-small sans-serif'] + expected: FAIL + + [Property font value 'normal normal normal small-caps 20%/1.2 "Non-Generic Example Family Name"'] + expected: FAIL + + [Property font value 'normal normal italic small-caps larger/calc(120% + 1.2em) monospace'] + expected: FAIL + + [Property font value 'small-caps 100 italic smaller "Non-Generic Example Family Name"'] + expected: FAIL + + [Property font value 'normal expanded italic normal xx-large/1.2 "Non-Generic Example Family Name"'] + expected: FAIL + + [Property font value 'normal 100 medium/normal cursive'] + expected: FAIL + + [Property font value 'normal normal 900 normal smaller "Non-Generic Example Family Name"'] + expected: FAIL + + [Property font value 'italic normal semi-condensed smaller monospace'] + expected: FAIL + + [Property font value 'small-caps normal xx-large/1.2 serif'] + expected: FAIL + + [Property font value 'small-caps extra-expanded normal larger/calc(120% + 1.2em) "Non-Generic Example Family Name"'] + expected: FAIL + + [Property font value 'expanded normal italic small-caps xx-large/1.2 serif'] + expected: FAIL + + [Property font value 'normal normal ultra-expanded small-caps larger/calc(120% + 1.2em) "Non-Generic Example Family Name"'] + expected: FAIL + + [Property font value 'italic bold small-caps xx-small fantasy'] + expected: FAIL + + [Property font value 'italic 100 extra-expanded larger/calc(120% + 1.2em) "Non-Generic Example Family Name"'] + expected: FAIL + + [Property font value 'lighter normal small-caps italic xx-large/1.2 sans-serif'] + expected: FAIL + + [Property font value 'small-caps bold italic extra-condensed 20%/1.2 sans-serif'] + expected: FAIL + + [Property font value 'ultra-condensed italic normal 10px/normal monospace'] + expected: FAIL + + [Property font value 'normal normal normal normal smaller monospace'] + expected: FAIL + + [Property font value 'italic condensed normal calc(30% - 40px)/calc(120% + 1.2em) fantasy'] + expected: FAIL + + [Property font value 'small-caps normal ultra-condensed normal medium/normal sans-serif'] + expected: FAIL + + [Property font value 'small-caps ultra-condensed normal italic 10px/normal sans-serif'] + expected: FAIL + + [Property font value 'ultra-expanded 100 small-caps italic smaller serif'] + expected: FAIL + + [Property font value 'normal small-caps normal normal medium/normal serif'] + expected: FAIL + + [Property font value 'italic small-caps extra-condensed xx-small cursive'] + expected: FAIL + + [Property font value 'bolder italic extra-condensed xx-small sans-serif'] + expected: FAIL + + [Property font value 'ultra-condensed bolder normal italic 10px/normal serif'] + expected: FAIL + + [Property font value 'normal italic small-caps condensed 20%/1.2 fantasy'] + expected: FAIL + + [Property font value 'normal small-caps italic lighter calc(30% - 40px)/calc(120% + 1.2em) "Non-Generic Example Family Name"'] + expected: FAIL + + [Property font value 'normal small-caps semi-condensed 10px/normal Menu'] + expected: FAIL + + [Property font value '100 italic small-caps 10px/normal Menu'] + expected: FAIL + + [Property font value 'expanded 100 xx-large/1.2 monospace'] + expected: FAIL + + [Property font value 'normal normal normal ultra-condensed xx-small sans-serif'] + expected: FAIL + + [Property font value 'small-caps normal condensed lighter larger/calc(120% + 1.2em) fantasy'] + expected: FAIL + + [Property font value 'small-caps italic normal normal 20%/1.2 "Non-Generic Example Family Name"'] + expected: FAIL + + [Property font value 'bold normal 20%/1.2 fantasy'] + expected: FAIL + + [Property font value 'small-caps normal normal larger/calc(120% + 1.2em) sans-serif'] + expected: FAIL + + [Property font value 'bolder condensed normal calc(30% - 40px)/calc(120% + 1.2em) cursive'] + expected: FAIL + + [Property font value 'italic normal extra-expanded 900 calc(30% - 40px)/calc(120% + 1.2em) serif'] + expected: FAIL + + [Property font value 'extra-expanded normal normal larger/calc(120% + 1.2em) serif'] + expected: FAIL + + [Property font value 'normal italic 100 small-caps medium/normal "Non-Generic Example Family Name"'] + expected: FAIL + + [Property font value 'normal italic extra-expanded small-caps 10px/normal fantasy'] + expected: FAIL + + [Property font value 'extra-condensed small-caps italic 900 20%/1.2 serif'] + expected: FAIL + + [Property font value 'italic extra-condensed 20%/1.2 cursive'] + expected: FAIL + + [Property font value 'condensed small-caps bold calc(30% - 40px)/calc(120% + 1.2em) sans-serif'] + expected: FAIL + + [Property font value 'extra-expanded small-caps normal 100 larger/calc(120% + 1.2em) monospace'] + expected: FAIL + + [Property font value 'normal italic small-caps larger/calc(120% + 1.2em) serif'] + expected: FAIL + + [Property font value '100 normal normal italic medium/normal "Non-Generic Example Family Name"'] + expected: FAIL + + [Property font value 'normal normal small-caps lighter medium/normal fantasy'] + expected: FAIL + + [Property font value 'italic lighter small-caps expanded xx-large/1.2 Menu'] + expected: FAIL + + [Property font value 'small-caps italic normal semi-condensed xx-small sans-serif'] + expected: FAIL + + [Property font value 'normal normal small-caps 20%/1.2 serif'] + expected: FAIL + + [Property font value 'extra-expanded lighter small-caps normal larger/calc(120% + 1.2em) "Non-Generic Example Family Name"'] + expected: FAIL + + [Property font value 'normal small-caps italic extra-condensed xx-small serif'] + expected: FAIL + + [Property font value 'normal small-caps 100 medium/normal sans-serif'] + expected: FAIL + + [Property font value 'normal italic normal extra-condensed xx-large/1.2 "Non-Generic Example Family Name"'] + expected: FAIL + + [Property font value 'normal normal italic medium/normal cursive'] + expected: FAIL + + [Property font value 'semi-condensed normal italic xx-small Menu'] + expected: FAIL + + [Property font value 'italic semi-expanded normal small-caps medium/normal Menu'] + expected: FAIL + + [Property font value 'ultra-condensed normal small-caps normal 10px/normal fantasy'] + expected: FAIL + + [Property font value 'semi-expanded normal italic normal medium/normal "Non-Generic Example Family Name"'] + expected: FAIL + + [Property font value 'bold small-caps normal smaller Menu'] + expected: FAIL + + [Property font value '100 normal italic small-caps 20%/1.2 monospace'] + expected: FAIL + + [Property font value 'italic normal bold xx-small serif'] + expected: FAIL + + [Property font value 'normal small-caps expanded italic calc(30% - 40px)/calc(120% + 1.2em) serif'] + expected: FAIL + + [Property font value 'italic 100 normal small-caps 20%/1.2 sans-serif'] + expected: FAIL + + [Property font value 'normal bolder normal italic smaller Menu'] + expected: FAIL + + [Property font value 'italic normal normal calc(30% - 40px)/calc(120% + 1.2em) Menu'] + expected: FAIL + + [Property font value 'normal semi-condensed normal bolder xx-small monospace'] + expected: FAIL + + [Property font value '900 expanded normal small-caps xx-large/1.2 Menu'] + expected: FAIL + + [Property font value 'bold normal small-caps xx-small "Non-Generic Example Family Name"'] + expected: FAIL + + [Property font value 'semi-expanded small-caps lighter italic medium/normal fantasy'] + expected: FAIL + + [Property font value 'lighter normal normal normal xx-small Menu'] + expected: FAIL + + [Property font value 'small-caps normal 900 normal 10px/normal monospace'] + expected: FAIL + + [Property font value 'condensed italic normal small-caps calc(30% - 40px)/calc(120% + 1.2em) "Non-Generic Example Family Name"'] + expected: FAIL + + [Property font value 'normal italic normal 900 medium/normal Menu'] + expected: FAIL + + [Property font value 'small-caps extra-condensed normal 900 20%/1.2 cursive'] + expected: FAIL + + [Property font value 'normal small-caps italic 10px/normal monospace'] + expected: FAIL + + [Property font value 'normal small-caps normal ultra-condensed smaller fantasy'] + expected: FAIL + + [Property font value 'extra-condensed italic lighter small-caps 20%/1.2 "Non-Generic Example Family Name"'] + expected: FAIL + + [Property font value 'normal ultra-condensed small-caps 10px/normal cursive'] + expected: FAIL + + [Property font value 'italic normal 20%/1.2 monospace'] + expected: FAIL + + [Property font value 'lighter normal italic normal 10px/normal fantasy'] + expected: FAIL + + [Property font value '100 semi-expanded normal italic medium/normal monospace'] + expected: FAIL + + [Property font value 'small-caps normal bold italic 20%/1.2 Menu'] + expected: FAIL + + [Property font value '900 italic small-caps normal 20%/1.2 "Non-Generic Example Family Name"'] + expected: FAIL + + [Property font value 'italic condensed 900 normal calc(30% - 40px)/calc(120% + 1.2em) monospace'] + expected: FAIL + + [Property font value 'semi-expanded medium/normal Menu'] + expected: FAIL + + [Property font value 'normal small-caps italic normal 20%/1.2 Menu'] + expected: FAIL + + [Property font value 'normal 900 italic calc(30% - 40px)/calc(120% + 1.2em) sans-serif'] + expected: FAIL + + [Property font value 'italic extra-expanded small-caps larger/calc(120% + 1.2em) serif'] + expected: FAIL + + [Property font value 'small-caps bold normal normal medium/normal fantasy'] + expected: FAIL + + [Property font value 'italic 10px/normal fantasy'] + expected: FAIL + + [Property font value 'italic normal lighter small-caps xx-large/1.2 cursive'] + expected: FAIL + + [Property font value '900 condensed small-caps normal calc(30% - 40px)/calc(120% + 1.2em) fantasy'] + expected: FAIL + + [Property font value 'normal small-caps calc(30% - 40px)/calc(120% + 1.2em) Menu'] + expected: FAIL + + [Property font value 'normal 100 small-caps larger/calc(120% + 1.2em) Menu'] + expected: FAIL + + [Property font value 'bold small-caps italic normal medium/normal fantasy'] + expected: FAIL + + [Property font value 'small-caps normal normal normal smaller cursive'] + expected: FAIL + + [Property font value 'condensed 100 italic calc(30% - 40px)/calc(120% + 1.2em) cursive'] + expected: FAIL + + [Property font value 'bolder small-caps normal normal 10px/normal "Non-Generic Example Family Name"'] + expected: FAIL + + [Property font value 'italic normal semi-expanded normal 10px/normal Menu'] + expected: FAIL + + [Property font value 'normal normal normal larger/calc(120% + 1.2em) fantasy'] + expected: FAIL + + [Property font value 'italic bold ultra-condensed small-caps 10px/normal sans-serif'] + expected: FAIL + + [Property font value '100 normal small-caps condensed larger/calc(120% + 1.2em) cursive'] + expected: FAIL + + [Property font value 'extra-condensed italic normal normal 20%/1.2 Menu'] + expected: FAIL + + [Property font value 'normal italic normal normal calc(30% - 40px)/calc(120% + 1.2em) fantasy'] + expected: FAIL + + [Property font value 'semi-condensed italic normal 100 xx-small serif'] + expected: FAIL + + [Property font value 'ultra-condensed italic bolder normal 10px/normal Menu'] + expected: FAIL + + [Property font value 'small-caps condensed italic calc(30% - 40px)/calc(120% + 1.2em) fantasy'] + expected: FAIL + + [Property font value 'extra-condensed normal normal small-caps 20%/1.2 fantasy'] + expected: FAIL + + [Property font value 'condensed normal normal bolder calc(30% - 40px)/calc(120% + 1.2em) monospace'] + expected: FAIL + + [Property font value 'extra-expanded normal italic lighter larger/calc(120% + 1.2em) sans-serif'] + expected: FAIL + + [Property font value 'ultra-expanded normal normal normal smaller sans-serif'] + expected: FAIL + + [Property font value 'italic normal normal normal xx-small "Non-Generic Example Family Name"'] + expected: FAIL + + [Property font value 'small-caps 100 calc(30% - 40px)/calc(120% + 1.2em) sans-serif'] + expected: FAIL + + [Property font value 'small-caps italic normal 10px/normal Menu'] + expected: FAIL + + [Property font value 'italic semi-condensed bold small-caps xx-small Menu'] + expected: FAIL + + [Property font value 'small-caps italic expanded smaller Menu'] + expected: FAIL + + [Property font value 'semi-condensed normal 900 xx-small "Non-Generic Example Family Name"'] + expected: FAIL + + [Property font value 'normal italic 900 semi-condensed xx-large/1.2 serif'] + expected: FAIL + + [Property font value 'small-caps italic smaller monospace'] + expected: FAIL + + [Property font value 'bolder normal normal calc(30% - 40px)/calc(120% + 1.2em) monospace'] + expected: FAIL + + [Property font value 'normal extra-condensed small-caps normal 20%/1.2 fantasy'] + expected: FAIL + + [Property font value 'italic semi-condensed normal normal xx-small monospace'] + expected: FAIL + + [Property font value 'bolder normal small-caps normal medium/normal serif'] + expected: FAIL + + [Property font value 'bold extra-condensed 20%/1.2 sans-serif'] + expected: FAIL + + [Property font value 'lighter small-caps extra-expanded larger/calc(120% + 1.2em) Menu'] + expected: FAIL + + [Property font value 'normal extra-expanded bolder italic larger/calc(120% + 1.2em) sans-serif'] + expected: FAIL + + [Property font value 'small-caps 900 italic normal 10px/normal serif'] + expected: FAIL + + [Property font value 'italic small-caps normal normal xx-large/1.2 fantasy'] + expected: FAIL + + [Property font value 'italic small-caps 100 ultra-condensed calc(30% - 40px)/calc(120% + 1.2em) sans-serif'] + expected: FAIL + + [Property font value 'normal small-caps normal italic xx-large/1.2 sans-serif'] + expected: FAIL + + [Property font value 'italic small-caps condensed normal medium/normal fantasy'] + expected: FAIL + + [Property font value 'ultra-expanded italic smaller fantasy'] + expected: FAIL + + [Property font value 'normal bolder small-caps extra-condensed 20%/1.2 sans-serif'] + expected: FAIL + + [Property font value 'normal normal lighter semi-condensed calc(30% - 40px)/calc(120% + 1.2em) cursive'] + expected: FAIL + + [Property font value 'normal normal small-caps normal calc(30% - 40px)/calc(120% + 1.2em) sans-serif'] + expected: FAIL + + [Property font value 'semi-expanded italic small-caps medium/normal sans-serif'] + expected: FAIL + + [Property font value 'normal normal italic extra-condensed 10px/normal "Non-Generic Example Family Name"'] + expected: FAIL + + [Property font value 'normal bold normal normal larger/calc(120% + 1.2em) monospace'] + expected: FAIL + + [Property font value 'ultra-condensed small-caps italic normal 10px/normal "Non-Generic Example Family Name"'] + expected: FAIL + + [Property font value 'semi-condensed 900 italic normal xx-small fantasy'] + expected: FAIL + + [Property font value 'normal normal normal bold calc(30% - 40px)/calc(120% + 1.2em) serif'] + expected: FAIL + + [Property font value 'normal lighter italic ultra-condensed xx-large/1.2 monospace'] + expected: FAIL + + [Property font value 'small-caps lighter normal ultra-condensed larger/calc(120% + 1.2em) Menu'] + expected: FAIL + + [Property font value 'normal bold small-caps italic 10px/normal serif'] + expected: FAIL + + [Property font value 'condensed normal small-caps 100 calc(30% - 40px)/calc(120% + 1.2em) Menu'] + expected: FAIL + + [Property font value 'normal normal bolder small-caps 20%/1.2 sans-serif'] + expected: FAIL + + [Property font value 'normal extra-expanded larger/calc(120% + 1.2em) "Non-Generic Example Family Name"'] + expected: FAIL + + [Property font value 'extra-expanded italic small-caps 900 larger/calc(120% + 1.2em) fantasy'] + expected: FAIL + + [Property font value 'normal medium/normal sans-serif'] + expected: FAIL + + [Property font value 'normal normal expanded normal medium/normal monospace'] + expected: FAIL + + [Property font value 'lighter italic condensed normal medium/normal cursive'] + expected: FAIL + + [Property font value 'small-caps semi-condensed italic normal xx-small monospace'] + expected: FAIL + + [Property font value 'semi-condensed small-caps normal xx-small sans-serif'] + expected: FAIL + + [Property font value 'italic small-caps normal ultra-expanded smaller Menu'] + expected: FAIL + + [Property font value 'italic 900 normal semi-expanded calc(30% - 40px)/calc(120% + 1.2em) cursive'] + expected: FAIL + + [Property font value 'bold semi-condensed small-caps italic xx-small monospace'] + expected: FAIL + + [Property font value 'normal normal semi-expanded xx-small fantasy'] + expected: FAIL + + [Property font value '900 small-caps larger/calc(120% + 1.2em) monospace'] + expected: FAIL + + [Property font value 'italic expanded normal bolder xx-large/1.2 "Non-Generic Example Family Name"'] + expected: FAIL + + [Property font value 'expanded bolder small-caps xx-large/1.2 Menu'] + expected: FAIL + + [Property font value 'normal normal normal italic 10px/normal Menu'] + expected: FAIL + + [Property font value 'normal italic small-caps normal smaller sans-serif'] + expected: FAIL + + [Property font value 'italic normal small-caps extra-condensed calc(30% - 40px)/calc(120% + 1.2em) "Non-Generic Example Family Name"'] + expected: FAIL + + [Property font value 'italic normal 100 condensed larger/calc(120% + 1.2em) fantasy'] + expected: FAIL + + [Property font value 'semi-expanded normal bold normal medium/normal serif'] + expected: FAIL + + [Property font value '100 italic semi-condensed small-caps xx-large/1.2 fantasy'] + expected: FAIL + + [Property font value 'extra-expanded 900 normal larger/calc(120% + 1.2em) Menu'] + expected: FAIL + + [Property font value 'italic normal bolder normal medium/normal sans-serif'] + expected: FAIL + + [Property font value 'italic normal expanded small-caps 20%/1.2 "Non-Generic Example Family Name"'] + expected: FAIL + + [Property font value 'normal italic expanded normal smaller cursive'] + expected: FAIL + + [Property font value 'small-caps 900 normal xx-small cursive'] + expected: FAIL + + [Property font value 'expanded small-caps normal italic xx-large/1.2 fantasy'] + expected: FAIL + + [Property font value '900 small-caps ultra-condensed italic 10px/normal serif'] + expected: FAIL + + [Property font value 'normal small-caps 900 normal xx-large/1.2 cursive'] + expected: FAIL + + [Property font value 'italic normal normal ultra-condensed larger/calc(120% + 1.2em) cursive'] + expected: FAIL + + [Property font value 'normal 100 semi-condensed normal xx-small fantasy'] + expected: FAIL + + [Property font value 'xx-small serif'] + expected: FAIL + + [Property font value 'italic lighter normal normal 10px/normal serif'] + expected: FAIL + + [Property font value 'normal normal bold italic 10px/normal serif'] + expected: FAIL + + [Property font value 'normal ultra-expanded normal smaller serif'] + expected: FAIL + + [Property font value 'small-caps normal 100 smaller fantasy'] + expected: FAIL + + [Property font value 'extra-condensed lighter normal small-caps 20%/1.2 sans-serif'] + expected: FAIL + + [Property font value 'small-caps italic normal 100 calc(30% - 40px)/calc(120% + 1.2em) serif'] + expected: FAIL + + [Property font value 'normal normal extra-expanded italic xx-large/1.2 Menu'] + expected: FAIL + + [Property font value 'small-caps normal ultra-expanded xx-small serif'] + expected: FAIL + + [Property font value 'ultra-expanded bold normal normal smaller "Non-Generic Example Family Name"'] + expected: FAIL + + [Property font value 'small-caps ultra-expanded 100 italic smaller sans-serif'] + expected: FAIL + + [Property font value 'lighter semi-condensed normal normal xx-small fantasy'] + expected: FAIL + + [Property font value 'expanded italic small-caps normal xx-large/1.2 cursive'] + expected: FAIL + + [Property font value 'small-caps normal normal italic 10px/normal fantasy'] + expected: FAIL + + [Property font value 'normal italic normal small-caps xx-small monospace'] + expected: FAIL + + [Property font value 'lighter ultra-condensed italic small-caps 10px/normal sans-serif'] + expected: FAIL + + [Property font value 'condensed small-caps calc(30% - 40px)/calc(120% + 1.2em) serif'] + expected: FAIL + + [Property font value 'small-caps semi-expanded italic bold medium/normal Menu'] + expected: FAIL + + [Property font value 'bolder small-caps italic expanded xx-large/1.2 monospace'] + expected: FAIL + + [Property font value 'bolder ultra-expanded italic normal smaller serif'] + expected: FAIL + + [Property font value 'small-caps italic extra-expanded normal 10px/normal "Non-Generic Example Family Name"'] + expected: FAIL + + [Property font value 'normal ultra-condensed normal normal 10px/normal sans-serif'] + expected: FAIL + + [Property font value 'small-caps normal italic expanded larger/calc(120% + 1.2em) cursive'] + expected: FAIL + + [Property font value 'normal bolder italic small-caps medium/normal fantasy'] + expected: FAIL + + [Property font value '100 small-caps ultra-expanded normal smaller "Non-Generic Example Family Name"'] + expected: FAIL + + [Property font value 'bold extra-expanded italic larger/calc(120% + 1.2em) "Non-Generic Example Family Name"'] + expected: FAIL + + [Property font value 'normal ultra-expanded lighter small-caps smaller cursive'] + expected: FAIL + + [Property font value 'italic small-caps normal bold larger/calc(120% + 1.2em) monospace'] + expected: FAIL + + [Property font value 'italic extra-condensed 100 20%/1.2 fantasy'] + expected: FAIL + + [Property font value 'normal bold expanded small-caps xx-large/1.2 Menu'] + expected: FAIL + + [Property font value 'italic normal small-caps smaller fantasy'] + expected: FAIL + + [Property font value 'italic bolder small-caps normal medium/normal monospace'] + expected: FAIL + + [Property font value 'normal italic bolder calc(30% - 40px)/calc(120% + 1.2em) monospace'] + expected: FAIL + + [Property font value 'normal italic semi-expanded larger/calc(120% + 1.2em) sans-serif'] + expected: FAIL + + [Property font value 'semi-expanded bold italic small-caps medium/normal monospace'] + expected: FAIL + + [Property font value 'small-caps normal normal bolder 20%/1.2 monospace'] + expected: FAIL + + [Property font value 'normal small-caps bolder condensed smaller monospace'] + expected: FAIL + + [Property font value 'ultra-expanded italic bold smaller monospace'] + expected: FAIL + + [Property font value 'lighter small-caps normal italic 20%/1.2 serif'] + expected: FAIL + + [Property font value 'extra-condensed normal small-caps italic 20%/1.2 monospace'] + expected: FAIL + + [Property font value 'normal normal italic bolder smaller Menu'] + expected: FAIL + + [Property font value 'small-caps normal extra-condensed italic xx-large/1.2 cursive'] + expected: FAIL + + [Property font value 'normal italic 10px/normal sans-serif'] + expected: FAIL + + [Property font value 'small-caps extra-expanded lighter normal larger/calc(120% + 1.2em) serif'] + expected: FAIL + + [Property font value 'lighter normal extra-expanded small-caps calc(30% - 40px)/calc(120% + 1.2em) "Non-Generic Example Family Name"'] + expected: FAIL + + [Property font value 'normal ultra-expanded italic lighter smaller sans-serif'] + expected: FAIL + + [Property font value 'extra-expanded normal lighter small-caps larger/calc(120% + 1.2em) cursive'] + expected: FAIL + + [Property font value 'ultra-condensed normal normal italic 10px/normal cursive'] + expected: FAIL + + [Property font value 'small-caps bolder condensed calc(30% - 40px)/calc(120% + 1.2em) cursive'] + expected: FAIL + + [Property font value 'bold italic normal normal xx-large/1.2 cursive'] + expected: FAIL + + [Property font value '100 small-caps normal semi-expanded calc(30% - 40px)/calc(120% + 1.2em) sans-serif'] + expected: FAIL + + [Property font value 'italic normal small-caps 900 20%/1.2 Menu'] + expected: FAIL + + [Property font value 'small-caps expanded bolder xx-large/1.2 "Non-Generic Example Family Name"'] + expected: FAIL + + [Property font value 'small-caps ultra-expanded normal normal smaller serif'] + expected: FAIL + + [Property font value 'normal normal 100 larger/calc(120% + 1.2em) Menu'] + expected: FAIL + + [Property font value 'italic ultra-expanded small-caps normal smaller sans-serif'] + expected: FAIL + + [Property font value 'normal semi-expanded 900 medium/normal "Non-Generic Example Family Name"'] + expected: FAIL + + [Property font value 'normal small-caps extra-expanded lighter xx-small sans-serif'] + expected: FAIL + + [Property font value 'normal expanded bold normal xx-large/1.2 serif'] + expected: FAIL + + [Property font value 'ultra-expanded small-caps italic smaller Menu'] + expected: FAIL + + [Property font value 'normal small-caps bold italic larger/calc(120% + 1.2em) fantasy'] + expected: FAIL + + [Property font value 'bold normal normal ultra-condensed larger/calc(120% + 1.2em) sans-serif'] + expected: FAIL + + [Property font value 'normal small-caps semi-expanded normal 20%/1.2 "Non-Generic Example Family Name"'] + expected: FAIL + + [Property font value 'italic bolder normal smaller "Non-Generic Example Family Name"'] + expected: FAIL + + [Property font value 'expanded normal xx-large/1.2 "Non-Generic Example Family Name"'] + expected: FAIL + + [Property font value 'expanded normal bolder italic xx-large/1.2 sans-serif'] + expected: FAIL + + [Property font value 'bold normal semi-expanded normal 10px/normal monospace'] + expected: FAIL + + [Property font value 'normal italic normal 20%/1.2 cursive'] + expected: FAIL + + [Property font value 'normal 900 semi-expanded italic medium/normal monospace'] + expected: FAIL + + [Property font value 'normal condensed normal small-caps calc(30% - 40px)/calc(120% + 1.2em) fantasy'] + expected: FAIL + + [Property font value 'small-caps medium/normal "Non-Generic Example Family Name"'] + expected: FAIL + + [Property font value 'semi-expanded small-caps normal normal medium/normal cursive'] + expected: FAIL + + [Property font value 'bolder italic normal small-caps larger/calc(120% + 1.2em) fantasy'] + expected: FAIL + + [Property font value 'normal extra-expanded italic small-caps larger/calc(120% + 1.2em) serif'] + expected: FAIL + + [Property font value 'small-caps 100 semi-expanded italic medium/normal monospace'] + expected: FAIL + + [Property font value '900 normal italic extra-condensed calc(30% - 40px)/calc(120% + 1.2em) Menu'] + expected: FAIL + + [Property font value 'small-caps italic bolder semi-expanded larger/calc(120% + 1.2em) monospace'] + expected: FAIL + + [Property font value 'normal condensed small-caps italic calc(30% - 40px)/calc(120% + 1.2em) monospace'] + expected: FAIL + + [Property font value 'small-caps italic 900 medium/normal cursive'] + expected: FAIL + + [Property font value '100 extra-condensed small-caps 20%/1.2 cursive'] + expected: FAIL + + [Property font value 'normal semi-expanded italic medium/normal Menu'] + expected: FAIL + + [Property font value '900 small-caps italic xx-small cursive'] + expected: FAIL + + [Property font value 'normal 900 normal xx-large/1.2 fantasy'] + expected: FAIL + + [Property font value 'lighter italic normal ultra-expanded smaller monospace'] + expected: FAIL + + [Property font value 'small-caps normal italic lighter xx-large/1.2 sans-serif'] + expected: FAIL + + [Property font value 'semi-condensed small-caps bolder normal xx-small cursive'] + expected: FAIL + + [Property font value 'small-caps normal normal semi-expanded calc(30% - 40px)/calc(120% + 1.2em) Menu'] + expected: FAIL + + [Property font value 'italic normal normal 100 xx-large/1.2 sans-serif'] + expected: FAIL + + [Property font value 'normal small-caps normal bolder larger/calc(120% + 1.2em) cursive'] + expected: FAIL + + [Property font value 'small-caps normal bolder extra-expanded calc(30% - 40px)/calc(120% + 1.2em) "Non-Generic Example Family Name"'] + expected: FAIL + + [Property font value 'normal normal xx-large/1.2 cursive'] + expected: FAIL + + [Property font value 'small-caps expanded xx-large/1.2 Menu'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-fonts/parsing/font-feature-settings-computed.html.ini b/tests/wpt/metadata/css/css-fonts/parsing/font-feature-settings-computed.html.ini index 1148fa327564..eba51b4fc57e 100644 --- a/tests/wpt/metadata/css/css-fonts/parsing/font-feature-settings-computed.html.ini +++ b/tests/wpt/metadata/css/css-fonts/parsing/font-feature-settings-computed.html.ini @@ -23,3 +23,27 @@ [Property font-feature-settings value '"dlig", "smcp", "dlig" 0' computes to '"dlig", "smcp", "dlig" 0'] expected: FAIL + [Property font-feature-settings value '"liga" 0'] + expected: FAIL + + [Property font-feature-settings value '"smcp"'] + expected: FAIL + + [Property font-feature-settings value '"PKRN"'] + expected: FAIL + + [Property font-feature-settings value '"dlig"'] + expected: FAIL + + [Property font-feature-settings value '"c2sc"'] + expected: FAIL + + [Property font-feature-settings value '"tnum", "hist"'] + expected: FAIL + + [Property font-feature-settings value 'normal'] + expected: FAIL + + [Property font-feature-settings value '"dlig", "smcp", "dlig" 0'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-fonts/parsing/font-kerning-computed.html.ini b/tests/wpt/metadata/css/css-fonts/parsing/font-kerning-computed.html.ini index 211838e7cd9f..271696393ddf 100644 --- a/tests/wpt/metadata/css/css-fonts/parsing/font-kerning-computed.html.ini +++ b/tests/wpt/metadata/css/css-fonts/parsing/font-kerning-computed.html.ini @@ -8,3 +8,12 @@ [Property font-kerning value 'auto' computes to 'auto'] expected: FAIL + [Property font-kerning value 'none'] + expected: FAIL + + [Property font-kerning value 'auto'] + expected: FAIL + + [Property font-kerning value 'normal'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-fonts/parsing/font-language-override-computed.html.ini b/tests/wpt/metadata/css/css-fonts/parsing/font-language-override-computed.html.ini index fcfff00336de..a2ee8c7b6b41 100644 --- a/tests/wpt/metadata/css/css-fonts/parsing/font-language-override-computed.html.ini +++ b/tests/wpt/metadata/css/css-fonts/parsing/font-language-override-computed.html.ini @@ -5,3 +5,9 @@ [Property font-language-override value 'normal' computes to 'normal'] expected: FAIL + [Property font-language-override value 'normal'] + expected: FAIL + + [Property font-language-override value '"ksw"'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-fonts/parsing/font-optical-sizing-computed.html.ini b/tests/wpt/metadata/css/css-fonts/parsing/font-optical-sizing-computed.html.ini index 484fb8b1c175..7d95f3eaac55 100644 --- a/tests/wpt/metadata/css/css-fonts/parsing/font-optical-sizing-computed.html.ini +++ b/tests/wpt/metadata/css/css-fonts/parsing/font-optical-sizing-computed.html.ini @@ -5,3 +5,9 @@ [Property font-optical-sizing value 'auto' computes to 'auto'] expected: FAIL + [Property font-optical-sizing value 'auto'] + expected: FAIL + + [Property font-optical-sizing value 'none'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-fonts/parsing/font-size-adjust-computed.html.ini b/tests/wpt/metadata/css/css-fonts/parsing/font-size-adjust-computed.html.ini index dba0bd0bcc93..0e1a60620347 100644 --- a/tests/wpt/metadata/css/css-fonts/parsing/font-size-adjust-computed.html.ini +++ b/tests/wpt/metadata/css/css-fonts/parsing/font-size-adjust-computed.html.ini @@ -5,3 +5,9 @@ [Property font-size-adjust value '0.5' computes to '0.5'] expected: FAIL + [Property font-size-adjust value 'none'] + expected: FAIL + + [Property font-size-adjust value '0.5'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-fonts/parsing/font-synthesis-computed.html.ini b/tests/wpt/metadata/css/css-fonts/parsing/font-synthesis-computed.html.ini index 8ad737926c95..16d9c01f11ab 100644 --- a/tests/wpt/metadata/css/css-fonts/parsing/font-synthesis-computed.html.ini +++ b/tests/wpt/metadata/css/css-fonts/parsing/font-synthesis-computed.html.ini @@ -11,3 +11,15 @@ [Property font-synthesis value 'none' computes to 'none'] expected: FAIL + [Property font-synthesis value 'style'] + expected: FAIL + + [Property font-synthesis value 'weight'] + expected: FAIL + + [Property font-synthesis value 'weight style'] + expected: FAIL + + [Property font-synthesis value 'none'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-fonts/parsing/font-variant-caps-computed.html.ini b/tests/wpt/metadata/css/css-fonts/parsing/font-variant-caps-computed.html.ini index cbc02f7cb8ec..b6d18476954a 100644 --- a/tests/wpt/metadata/css/css-fonts/parsing/font-variant-caps-computed.html.ini +++ b/tests/wpt/metadata/css/css-fonts/parsing/font-variant-caps-computed.html.ini @@ -14,3 +14,18 @@ [Property font-variant-caps value 'petite-caps' computes to 'petite-caps'] expected: FAIL + [Property font-variant-caps value 'all-small-caps'] + expected: FAIL + + [Property font-variant-caps value 'titling-caps'] + expected: FAIL + + [Property font-variant-caps value 'petite-caps'] + expected: FAIL + + [Property font-variant-caps value 'all-petite-caps'] + expected: FAIL + + [Property font-variant-caps value 'unicase'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-fonts/parsing/font-variant-east-asian-computed.html.ini b/tests/wpt/metadata/css/css-fonts/parsing/font-variant-east-asian-computed.html.ini index b9cf050a1a39..1329ea5052f3 100644 --- a/tests/wpt/metadata/css/css-fonts/parsing/font-variant-east-asian-computed.html.ini +++ b/tests/wpt/metadata/css/css-fonts/parsing/font-variant-east-asian-computed.html.ini @@ -35,3 +35,39 @@ [Property font-variant-east-asian value 'traditional' computes to 'traditional'] expected: FAIL + [Property font-variant-east-asian value 'jis78 proportional-width'] + expected: FAIL + + [Property font-variant-east-asian value 'simplified'] + expected: FAIL + + [Property font-variant-east-asian value 'proportional-width'] + expected: FAIL + + [Property font-variant-east-asian value 'simplified full-width ruby'] + expected: FAIL + + [Property font-variant-east-asian value 'ruby'] + expected: FAIL + + [Property font-variant-east-asian value 'normal'] + expected: FAIL + + [Property font-variant-east-asian value 'jis78'] + expected: FAIL + + [Property font-variant-east-asian value 'jis83'] + expected: FAIL + + [Property font-variant-east-asian value 'full-width'] + expected: FAIL + + [Property font-variant-east-asian value 'jis04'] + expected: FAIL + + [Property font-variant-east-asian value 'traditional'] + expected: FAIL + + [Property font-variant-east-asian value 'jis90'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-fonts/parsing/font-variant-ligatures-computed.html.ini b/tests/wpt/metadata/css/css-fonts/parsing/font-variant-ligatures-computed.html.ini index aa3ef8279aac..c8ec81b8edb3 100644 --- a/tests/wpt/metadata/css/css-fonts/parsing/font-variant-ligatures-computed.html.ini +++ b/tests/wpt/metadata/css/css-fonts/parsing/font-variant-ligatures-computed.html.ini @@ -29,3 +29,33 @@ [Property font-variant-ligatures value 'no-contextual' computes to 'no-contextual'] expected: FAIL + [Property font-variant-ligatures value 'discretionary-ligatures'] + expected: FAIL + + [Property font-variant-ligatures value 'historical-ligatures'] + expected: FAIL + + [Property font-variant-ligatures value 'contextual'] + expected: FAIL + + [Property font-variant-ligatures value 'common-ligatures'] + expected: FAIL + + [Property font-variant-ligatures value 'no-discretionary-ligatures'] + expected: FAIL + + [Property font-variant-ligatures value 'none'] + expected: FAIL + + [Property font-variant-ligatures value 'no-historical-ligatures'] + expected: FAIL + + [Property font-variant-ligatures value 'no-contextual'] + expected: FAIL + + [Property font-variant-ligatures value 'normal'] + expected: FAIL + + [Property font-variant-ligatures value 'no-common-ligatures'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-fonts/parsing/font-variant-numeric-computed.html.ini b/tests/wpt/metadata/css/css-fonts/parsing/font-variant-numeric-computed.html.ini index 5e02c7861803..50f66a016678 100644 --- a/tests/wpt/metadata/css/css-fonts/parsing/font-variant-numeric-computed.html.ini +++ b/tests/wpt/metadata/css/css-fonts/parsing/font-variant-numeric-computed.html.ini @@ -32,3 +32,36 @@ [Property font-variant-numeric value 'slashed-zero' computes to 'slashed-zero'] expected: FAIL + [Property font-variant-numeric value 'normal'] + expected: FAIL + + [Property font-variant-numeric value 'oldstyle-nums tabular-nums diagonal-fractions'] + expected: FAIL + + [Property font-variant-numeric value 'slashed-zero'] + expected: FAIL + + [Property font-variant-numeric value 'ordinal'] + expected: FAIL + + [Property font-variant-numeric value 'oldstyle-nums'] + expected: FAIL + + [Property font-variant-numeric value 'diagonal-fractions'] + expected: FAIL + + [Property font-variant-numeric value 'stacked-fractions'] + expected: FAIL + + [Property font-variant-numeric value 'proportional-nums'] + expected: FAIL + + [Property font-variant-numeric value 'lining-nums'] + expected: FAIL + + [Property font-variant-numeric value 'lining-nums proportional-nums stacked-fractions ordinal slashed-zero'] + expected: FAIL + + [Property font-variant-numeric value 'tabular-nums'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-fonts/parsing/font-variant-position-computed.html.ini b/tests/wpt/metadata/css/css-fonts/parsing/font-variant-position-computed.html.ini index 5ff2096182a6..309c079adb7f 100644 --- a/tests/wpt/metadata/css/css-fonts/parsing/font-variant-position-computed.html.ini +++ b/tests/wpt/metadata/css/css-fonts/parsing/font-variant-position-computed.html.ini @@ -8,3 +8,12 @@ [Property font-variant-position value 'normal' computes to 'normal'] expected: FAIL + [Property font-variant-position value 'super'] + expected: FAIL + + [Property font-variant-position value 'normal'] + expected: FAIL + + [Property font-variant-position value 'sub'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-fonts/parsing/font-variation-settings-computed.html.ini b/tests/wpt/metadata/css/css-fonts/parsing/font-variation-settings-computed.html.ini index b75e941bdc66..4956456d560d 100644 --- a/tests/wpt/metadata/css/css-fonts/parsing/font-variation-settings-computed.html.ini +++ b/tests/wpt/metadata/css/css-fonts/parsing/font-variation-settings-computed.html.ini @@ -11,3 +11,15 @@ [Property font-variation-settings value '"XHGT" calc(0.4 + 0.3)' computes to '"XHGT" 0.7'] expected: FAIL + [Property font-variation-settings value 'normal'] + expected: FAIL + + [Property font-variation-settings value '"wght" 700, "XHGT" 0.7'] + expected: FAIL + + [Property font-variation-settings value '"wght" 700'] + expected: FAIL + + [Property font-variation-settings value '"XHGT" calc(0.4 + 0.3)'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-images/parsing/image-orientation-computed.html.ini b/tests/wpt/metadata/css/css-images/parsing/image-orientation-computed.html.ini index 8388d10fd669..f505a6039401 100644 --- a/tests/wpt/metadata/css/css-images/parsing/image-orientation-computed.html.ini +++ b/tests/wpt/metadata/css/css-images/parsing/image-orientation-computed.html.ini @@ -5,3 +5,9 @@ [Property image-orientation value 'none' computes to 'none'] expected: FAIL + [Property image-orientation value 'none'] + expected: FAIL + + [Property image-orientation value 'from-image'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-images/parsing/image-rendering-computed.html.ini b/tests/wpt/metadata/css/css-images/parsing/image-rendering-computed.html.ini index 1b0fc140356f..7f86c7bc52d8 100644 --- a/tests/wpt/metadata/css/css-images/parsing/image-rendering-computed.html.ini +++ b/tests/wpt/metadata/css/css-images/parsing/image-rendering-computed.html.ini @@ -5,3 +5,9 @@ [Property image-rendering value 'high-quality' computes to 'high-quality'] expected: FAIL + [Property image-rendering value 'smooth'] + expected: FAIL + + [Property image-rendering value 'high-quality'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-images/parsing/object-fit-computed.html.ini b/tests/wpt/metadata/css/css-images/parsing/object-fit-computed.html.ini index 27a9b2a40a73..7245a4bc7787 100644 --- a/tests/wpt/metadata/css/css-images/parsing/object-fit-computed.html.ini +++ b/tests/wpt/metadata/css/css-images/parsing/object-fit-computed.html.ini @@ -17,3 +17,21 @@ [Property object-fit value 'cover' computes to 'cover'] expected: FAIL + [Property object-fit value 'fill'] + expected: FAIL + + [Property object-fit value 'cover scale-down'] + expected: FAIL + + [Property object-fit value 'contain'] + expected: FAIL + + [Property object-fit value 'cover'] + expected: FAIL + + [Property object-fit value 'scale-down'] + expected: FAIL + + [Property object-fit value 'none'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-images/parsing/object-position-computed.html.ini b/tests/wpt/metadata/css/css-images/parsing/object-position-computed.html.ini index c0556d12e5d4..245daffddff1 100644 --- a/tests/wpt/metadata/css/css-images/parsing/object-position-computed.html.ini +++ b/tests/wpt/metadata/css/css-images/parsing/object-position-computed.html.ini @@ -47,3 +47,51 @@ [Property object-position value 'right 20px bottom 10px' computes to 'calc(100% - 20px) calc(100% - 10px)'] expected: FAIL + [Property object-position value '-20% -30px'] + expected: FAIL + + [Property object-position value 'right 40%'] + expected: FAIL + + [Property object-position value '30px center'] + expected: FAIL + + [Property object-position value 'center 50px'] + expected: FAIL + + [Property object-position value '40px top'] + expected: FAIL + + [Property object-position value 'right 30% top 60px'] + expected: FAIL + + [Property object-position value 'right 20px bottom 10px'] + expected: FAIL + + [Property object-position value 'left bottom'] + expected: FAIL + + [Property object-position value 'right 20% bottom 10%'] + expected: FAIL + + [Property object-position value '10% center'] + expected: FAIL + + [Property object-position value 'center'] + expected: FAIL + + [Property object-position value 'center bottom'] + expected: FAIL + + [Property object-position value 'center top'] + expected: FAIL + + [Property object-position value 'center center'] + expected: FAIL + + [Property object-position value 'left center'] + expected: FAIL + + [Property object-position value 'right bottom'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-text-decor/parsing/text-decoration-color-computed.html.ini b/tests/wpt/metadata/css/css-text-decor/parsing/text-decoration-color-computed.html.ini index 26d7104a5259..683542535760 100644 --- a/tests/wpt/metadata/css/css-text-decor/parsing/text-decoration-color-computed.html.ini +++ b/tests/wpt/metadata/css/css-text-decor/parsing/text-decoration-color-computed.html.ini @@ -8,3 +8,12 @@ [Property text-decoration-color value 'rgb(0, 0, 255)' computes to 'rgb(0, 0, 255)'] expected: FAIL + [Property text-decoration-color value 'inherit'] + expected: FAIL + + [Property text-decoration-color value 'rgb(0, 0, 255)'] + expected: FAIL + + [Property text-decoration-color value 'currentcolor'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-text-decor/parsing/text-decoration-computed.html.ini b/tests/wpt/metadata/css/css-text-decor/parsing/text-decoration-computed.html.ini index f17954acc2ad..44e2ee712b23 100644 --- a/tests/wpt/metadata/css/css-text-decor/parsing/text-decoration-computed.html.ini +++ b/tests/wpt/metadata/css/css-text-decor/parsing/text-decoration-computed.html.ini @@ -53,3 +53,39 @@ [Property text-decoration value 'rgba(10, 20, 30, 0.4) dotted' computes to 'dotted rgba(10, 20, 30, 0.4)'] expected: FAIL + [Property text-decoration value 'auto'] + expected: FAIL + + [Property text-decoration value 'currentcolor'] + expected: FAIL + + [Property text-decoration value 'double overline underline'] + expected: FAIL + + [Property text-decoration value 'line-through'] + expected: FAIL + + [Property text-decoration value 'underline dashed rgb(0, 255, 0)'] + expected: FAIL + + [Property text-decoration value 'underline overline line-through red'] + expected: FAIL + + [Property text-decoration value 'rgba(10, 20, 30, 0.4) dotted'] + expected: FAIL + + [Property text-decoration value 'none'] + expected: FAIL + + [Property text-decoration value '10px'] + expected: FAIL + + [Property text-decoration value 'underline red from-font'] + expected: FAIL + + [Property text-decoration value 'solid'] + expected: FAIL + + [Property text-decoration value 'from-font'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-text-decor/parsing/text-decoration-line-computed.html.ini b/tests/wpt/metadata/css/css-text-decor/parsing/text-decoration-line-computed.html.ini index ffc3641723a6..d6f183413005 100644 --- a/tests/wpt/metadata/css/css-text-decor/parsing/text-decoration-line-computed.html.ini +++ b/tests/wpt/metadata/css/css-text-decor/parsing/text-decoration-line-computed.html.ini @@ -5,3 +5,9 @@ [Property text-decoration-line value 'grammar-error' computes to 'grammar-error'] expected: FAIL + [Property text-decoration-line value 'spelling-error'] + expected: FAIL + + [Property text-decoration-line value 'grammar-error'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-text-decor/parsing/text-decoration-skip-ink-computed.html.ini b/tests/wpt/metadata/css/css-text-decor/parsing/text-decoration-skip-ink-computed.html.ini index cd7bfe6eae5e..6b6cc9dcf55f 100644 --- a/tests/wpt/metadata/css/css-text-decor/parsing/text-decoration-skip-ink-computed.html.ini +++ b/tests/wpt/metadata/css/css-text-decor/parsing/text-decoration-skip-ink-computed.html.ini @@ -5,3 +5,9 @@ [Property text-decoration-skip-ink value 'none' computes to 'none'] expected: FAIL + [Property text-decoration-skip-ink value 'none'] + expected: FAIL + + [Property text-decoration-skip-ink value 'auto'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-text-decor/parsing/text-decoration-style-computed.html.ini b/tests/wpt/metadata/css/css-text-decor/parsing/text-decoration-style-computed.html.ini index 9057105353f2..5cff5aa0b389 100644 --- a/tests/wpt/metadata/css/css-text-decor/parsing/text-decoration-style-computed.html.ini +++ b/tests/wpt/metadata/css/css-text-decor/parsing/text-decoration-style-computed.html.ini @@ -14,3 +14,18 @@ [Property text-decoration-style value 'dashed' computes to 'dashed'] expected: FAIL + [Property text-decoration-style value 'wavy'] + expected: FAIL + + [Property text-decoration-style value 'double'] + expected: FAIL + + [Property text-decoration-style value 'dashed'] + expected: FAIL + + [Property text-decoration-style value 'dotted'] + expected: FAIL + + [Property text-decoration-style value 'solid'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-text-decor/parsing/text-underline-position-computed.html.ini b/tests/wpt/metadata/css/css-text-decor/parsing/text-underline-position-computed.html.ini index 477e68c0fdc1..9bb540564a31 100644 --- a/tests/wpt/metadata/css/css-text-decor/parsing/text-underline-position-computed.html.ini +++ b/tests/wpt/metadata/css/css-text-decor/parsing/text-underline-position-computed.html.ini @@ -14,3 +14,18 @@ [Property text-underline-position value 'right' computes to 'right'] expected: FAIL + [Property text-underline-position value 'under left'] + expected: FAIL + + [Property text-underline-position value 'left'] + expected: FAIL + + [Property text-underline-position value 'under'] + expected: FAIL + + [Property text-underline-position value 'right'] + expected: FAIL + + [Property text-underline-position value 'auto'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-text-decor/text-decoration-thickness-computed.html.ini b/tests/wpt/metadata/css/css-text-decor/text-decoration-thickness-computed.html.ini index 7b59ea11fdf9..04ab080d661d 100644 --- a/tests/wpt/metadata/css/css-text-decor/text-decoration-thickness-computed.html.ini +++ b/tests/wpt/metadata/css/css-text-decor/text-decoration-thickness-computed.html.ini @@ -8,3 +8,12 @@ [Property text-decoration-thickness value 'calc(10px - 8px)' computes to '2px'] expected: FAIL + [Property text-decoration-thickness value 'auto'] + expected: FAIL + + [Property text-decoration-thickness value 'from-font'] + expected: FAIL + + [Property text-decoration-thickness value 'calc(10px - 8px)'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-text-decor/text-underline-offset-computed.html.ini b/tests/wpt/metadata/css/css-text-decor/text-underline-offset-computed.html.ini index 3b68af5f2b85..d33451897c99 100644 --- a/tests/wpt/metadata/css/css-text-decor/text-underline-offset-computed.html.ini +++ b/tests/wpt/metadata/css/css-text-decor/text-underline-offset-computed.html.ini @@ -8,3 +8,12 @@ [Property text-underline-offset value 'from-font' computes to 'from-font'] expected: FAIL + [Property text-underline-offset value 'auto'] + expected: FAIL + + [Property text-underline-offset value 'from-font'] + expected: FAIL + + [Property text-underline-offset value 'calc(10px - 8px)'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-text/hyphens/hyphens-out-of-flow-001.html.ini b/tests/wpt/metadata/css/css-text/hyphens/hyphens-out-of-flow-001.html.ini deleted file mode 100644 index be32a87e09c5..000000000000 --- a/tests/wpt/metadata/css/css-text/hyphens/hyphens-out-of-flow-001.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[hyphens-out-of-flow-001.html] - expected: FAIL diff --git a/tests/wpt/metadata/css/css-text/line-break/line-break-normal-018.xht.ini b/tests/wpt/metadata/css/css-text/line-break/line-break-normal-018.xht.ini deleted file mode 100644 index 693999d7f9de..000000000000 --- a/tests/wpt/metadata/css/css-text/line-break/line-break-normal-018.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[line-break-normal-018.xht] - expected: FAIL diff --git a/tests/wpt/metadata/css/css-text/line-break/line-break-strict-018.xht.ini b/tests/wpt/metadata/css/css-text/line-break/line-break-strict-018.xht.ini deleted file mode 100644 index bd79bd226f90..000000000000 --- a/tests/wpt/metadata/css/css-text/line-break/line-break-strict-018.xht.ini +++ /dev/null @@ -1,2 +0,0 @@ -[line-break-strict-018.xht] - expected: FAIL diff --git a/tests/wpt/metadata/css/css-text/parsing/hyphens-computed.html.ini b/tests/wpt/metadata/css/css-text/parsing/hyphens-computed.html.ini index 5f9ade1908c6..710bcfd8ff06 100644 --- a/tests/wpt/metadata/css/css-text/parsing/hyphens-computed.html.ini +++ b/tests/wpt/metadata/css/css-text/parsing/hyphens-computed.html.ini @@ -8,3 +8,12 @@ [Property hyphens value 'auto' computes to 'auto'] expected: FAIL + [Property hyphens value 'auto'] + expected: FAIL + + [Property hyphens value 'manual'] + expected: FAIL + + [Property hyphens value 'none'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-text/parsing/line-break-computed.html.ini b/tests/wpt/metadata/css/css-text/parsing/line-break-computed.html.ini index 9bccc62d4195..e8f87f9aa3d4 100644 --- a/tests/wpt/metadata/css/css-text/parsing/line-break-computed.html.ini +++ b/tests/wpt/metadata/css/css-text/parsing/line-break-computed.html.ini @@ -14,3 +14,18 @@ [Property line-break value 'auto' computes to 'auto'] expected: FAIL + [Property line-break value 'anywhere'] + expected: FAIL + + [Property line-break value 'strict'] + expected: FAIL + + [Property line-break value 'auto'] + expected: FAIL + + [Property line-break value 'loose'] + expected: FAIL + + [Property line-break value 'normal'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-text/parsing/tab-size-computed.html.ini b/tests/wpt/metadata/css/css-text/parsing/tab-size-computed.html.ini index 01c3c5768663..1e48f3528d60 100644 --- a/tests/wpt/metadata/css/css-text/parsing/tab-size-computed.html.ini +++ b/tests/wpt/metadata/css/css-text/parsing/tab-size-computed.html.ini @@ -23,3 +23,27 @@ [Property tab-size value 'calc(10px + 0.5em)' computes to '30px'] expected: FAIL + [Property tab-size value '2.5'] + expected: FAIL + + [Property tab-size value '4'] + expected: FAIL + + [Property tab-size value 'calc(10px + 0.5em)'] + expected: FAIL + + [Property tab-size value '0px'] + expected: FAIL + + [Property tab-size value '16'] + expected: FAIL + + [Property tab-size value '10px'] + expected: FAIL + + [Property tab-size value 'calc(10px - 0.5em)'] + expected: FAIL + + [Property tab-size value '0'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-text/parsing/text-align-computed.html.ini b/tests/wpt/metadata/css/css-text/parsing/text-align-computed.html.ini index 368a34f8ac1a..946a9e60638c 100644 --- a/tests/wpt/metadata/css/css-text/parsing/text-align-computed.html.ini +++ b/tests/wpt/metadata/css/css-text/parsing/text-align-computed.html.ini @@ -2,3 +2,6 @@ [Property text-align value 'match-parent' computes to 'center'] expected: FAIL + [Property text-align value 'match-parent'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-text/parsing/text-align-last-computed.html.ini b/tests/wpt/metadata/css/css-text/parsing/text-align-last-computed.html.ini index 96f920e032ca..cc223d31d55b 100644 --- a/tests/wpt/metadata/css/css-text/parsing/text-align-last-computed.html.ini +++ b/tests/wpt/metadata/css/css-text/parsing/text-align-last-computed.html.ini @@ -23,3 +23,27 @@ [Property text-align-last value 'left' computes to 'left'] expected: FAIL + [Property text-align-last value 'end'] + expected: FAIL + + [Property text-align-last value 'center'] + expected: FAIL + + [Property text-align-last value 'auto'] + expected: FAIL + + [Property text-align-last value 'start'] + expected: FAIL + + [Property text-align-last value 'right'] + expected: FAIL + + [Property text-align-last value 'left'] + expected: FAIL + + [Property text-align-last value 'match-parent'] + expected: FAIL + + [Property text-align-last value 'justify'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-text/parsing/text-indent-computed.html.ini b/tests/wpt/metadata/css/css-text/parsing/text-indent-computed.html.ini index acb1aea64c90..f55b4b0e6fc0 100644 --- a/tests/wpt/metadata/css/css-text/parsing/text-indent-computed.html.ini +++ b/tests/wpt/metadata/css/css-text/parsing/text-indent-computed.html.ini @@ -11,3 +11,15 @@ [Property text-indent value 'calc(50% + 60px) hanging each-line' computes to 'calc(50% + 60px) hanging each-line'] expected: FAIL + [Property text-indent value 'each-line hanging calc(10px + 0.5em)'] + expected: FAIL + + [Property text-indent value '20% each-line'] + expected: FAIL + + [Property text-indent value 'calc(50% + 60px) hanging each-line'] + expected: FAIL + + [Property text-indent value '10px hanging'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-text/parsing/text-justify-computed.html.ini b/tests/wpt/metadata/css/css-text/parsing/text-justify-computed.html.ini index d7b982ed6187..ae897a3a05ab 100644 --- a/tests/wpt/metadata/css/css-text/parsing/text-justify-computed.html.ini +++ b/tests/wpt/metadata/css/css-text/parsing/text-justify-computed.html.ini @@ -2,3 +2,6 @@ [Property text-justify value 'inter-character' computes to 'inter-character'] expected: FAIL + [Property text-justify value 'inter-character'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-text/parsing/white-space-computed.html.ini b/tests/wpt/metadata/css/css-text/parsing/white-space-computed.html.ini index dbc4390d8bfe..20a75f681bf7 100644 --- a/tests/wpt/metadata/css/css-text/parsing/white-space-computed.html.ini +++ b/tests/wpt/metadata/css/css-text/parsing/white-space-computed.html.ini @@ -2,3 +2,6 @@ [Property white-space value 'break-spaces' computes to 'break-spaces'] expected: FAIL + [Property white-space value 'break-spaces'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-text/parsing/word-boundary-detection-computed.html.ini b/tests/wpt/metadata/css/css-text/parsing/word-boundary-detection-computed.html.ini index f22c4186d504..59898e48af0b 100644 --- a/tests/wpt/metadata/css/css-text/parsing/word-boundary-detection-computed.html.ini +++ b/tests/wpt/metadata/css/css-text/parsing/word-boundary-detection-computed.html.ini @@ -5,3 +5,9 @@ [Property word-boundary-detection value 'manual' computes to 'manual'] expected: FAIL + [Property word-boundary-detection value 'manual'] + expected: FAIL + + [Property word-boundary-detection value 'normal'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-text/parsing/word-boundary-expansion-computed.html.ini b/tests/wpt/metadata/css/css-text/parsing/word-boundary-expansion-computed.html.ini index f2dea9cf7a2f..1ec2a730d65a 100644 --- a/tests/wpt/metadata/css/css-text/parsing/word-boundary-expansion-computed.html.ini +++ b/tests/wpt/metadata/css/css-text/parsing/word-boundary-expansion-computed.html.ini @@ -8,3 +8,12 @@ [Property word-boundary-expansion value 'none' computes to 'none'] expected: FAIL + [Property word-boundary-expansion value 'none'] + expected: FAIL + + [Property word-boundary-expansion value 'ideographic-space'] + expected: FAIL + + [Property word-boundary-expansion value 'space'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-text/parsing/word-break-computed.html.ini b/tests/wpt/metadata/css/css-text/parsing/word-break-computed.html.ini index dc7a2c8a1239..3de00d7d68af 100644 --- a/tests/wpt/metadata/css/css-text/parsing/word-break-computed.html.ini +++ b/tests/wpt/metadata/css/css-text/parsing/word-break-computed.html.ini @@ -2,3 +2,6 @@ [Property word-break value 'break-word' computes to 'break-word'] expected: FAIL + [Property word-break value 'break-word'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-text/text-transform/text-transform-full-size-kana-001.html.ini b/tests/wpt/metadata/css/css-text/text-transform/text-transform-full-size-kana-001.html.ini deleted file mode 100644 index ded993140ebc..000000000000 --- a/tests/wpt/metadata/css/css-text/text-transform/text-transform-full-size-kana-001.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[text-transform-full-size-kana-001.html] - expected: FAIL diff --git a/tests/wpt/metadata/css/css-text/text-transform/text-transform-full-size-kana-002.html.ini b/tests/wpt/metadata/css/css-text/text-transform/text-transform-full-size-kana-002.html.ini deleted file mode 100644 index 047905d059be..000000000000 --- a/tests/wpt/metadata/css/css-text/text-transform/text-transform-full-size-kana-002.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[text-transform-full-size-kana-002.html] - expected: FAIL diff --git a/tests/wpt/metadata/css/css-text/text-transform/text-transform-full-size-kana-003.html.ini b/tests/wpt/metadata/css/css-text/text-transform/text-transform-full-size-kana-003.html.ini deleted file mode 100644 index 7e9e3e15a50a..000000000000 --- a/tests/wpt/metadata/css/css-text/text-transform/text-transform-full-size-kana-003.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[text-transform-full-size-kana-003.html] - expected: FAIL diff --git a/tests/wpt/metadata/css/css-text/text-transform/text-transform-full-size-kana-004.html.ini b/tests/wpt/metadata/css/css-text/text-transform/text-transform-full-size-kana-004.html.ini deleted file mode 100644 index f90c86d0e3d9..000000000000 --- a/tests/wpt/metadata/css/css-text/text-transform/text-transform-full-size-kana-004.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[text-transform-full-size-kana-004.html] - expected: FAIL diff --git a/tests/wpt/metadata/css/css-text/white-space/trailing-ideographic-space-004.html.ini b/tests/wpt/metadata/css/css-text/white-space/trailing-ideographic-space-004.html.ini deleted file mode 100644 index 240d1283c3a2..000000000000 --- a/tests/wpt/metadata/css/css-text/white-space/trailing-ideographic-space-004.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[trailing-ideographic-space-004.html] - expected: FAIL diff --git a/tests/wpt/metadata/css/css-text/word-break/word-break-break-all-007.html.ini b/tests/wpt/metadata/css/css-text/word-break/word-break-break-all-007.html.ini new file mode 100644 index 000000000000..192f64b0826f --- /dev/null +++ b/tests/wpt/metadata/css/css-text/word-break/word-break-break-all-007.html.ini @@ -0,0 +1,2 @@ +[word-break-break-all-007.html] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-text/word-break/word-break-keep-all-006.html.ini b/tests/wpt/metadata/css/css-text/word-break/word-break-keep-all-006.html.ini new file mode 100644 index 000000000000..3a512b4a1244 --- /dev/null +++ b/tests/wpt/metadata/css/css-text/word-break/word-break-keep-all-006.html.ini @@ -0,0 +1,2 @@ +[word-break-keep-all-006.html] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-transforms/animation/perspective-interpolation.html.ini b/tests/wpt/metadata/css/css-transforms/animation/perspective-interpolation.html.ini index af79ecd5f12d..03f2f3fe9d12 100644 --- a/tests/wpt/metadata/css/css-transforms/animation/perspective-interpolation.html.ini +++ b/tests/wpt/metadata/css/css-transforms/animation/perspective-interpolation.html.ini @@ -1,5 +1,5 @@ [perspective-interpolation.html] - expected: TIMEOUT + expected: CRASH [ perspective interpolation] expected: FAIL diff --git a/tests/wpt/metadata/css/css-transforms/parsing/perspective-origin-computed.html.ini b/tests/wpt/metadata/css/css-transforms/parsing/perspective-origin-computed.html.ini index 60c6c1751e9c..5266055ce8b5 100644 --- a/tests/wpt/metadata/css/css-transforms/parsing/perspective-origin-computed.html.ini +++ b/tests/wpt/metadata/css/css-transforms/parsing/perspective-origin-computed.html.ini @@ -62,3 +62,66 @@ [Property perspective-origin value 'center center' computes to '100px 150px'] expected: FAIL + [Property perspective-origin value 'left'] + expected: FAIL + + [Property perspective-origin value 'right 40%'] + expected: FAIL + + [Property perspective-origin value 'center center'] + expected: FAIL + + [Property perspective-origin value '40px top'] + expected: FAIL + + [Property perspective-origin value 'bottom right'] + expected: FAIL + + [Property perspective-origin value '20% 30px'] + expected: FAIL + + [Property perspective-origin value 'center 50px'] + expected: FAIL + + [Property perspective-origin value '10%'] + expected: FAIL + + [Property perspective-origin value 'right calc(10px - 0.5em) top calc(10px - 0.5em)'] + expected: FAIL + + [Property perspective-origin value 'left 10px'] + expected: FAIL + + [Property perspective-origin value 'center bottom'] + expected: FAIL + + [Property perspective-origin value 'center left'] + expected: FAIL + + [Property perspective-origin value 'top'] + expected: FAIL + + [Property perspective-origin value '10% center'] + expected: FAIL + + [Property perspective-origin value 'left center'] + expected: FAIL + + [Property perspective-origin value 'center'] + expected: FAIL + + [Property perspective-origin value 'bottom 10% right 20%'] + expected: FAIL + + [Property perspective-origin value 'right 30% top -60px'] + expected: FAIL + + [Property perspective-origin value 'right 20px bottom 30px'] + expected: FAIL + + [Property perspective-origin value 'left bottom'] + expected: FAIL + + [Property perspective-origin value '30px center'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-transforms/parsing/transform-box-computed.html.ini b/tests/wpt/metadata/css/css-transforms/parsing/transform-box-computed.html.ini index 3cb6576be8c4..13a32f78c49e 100644 --- a/tests/wpt/metadata/css/css-transforms/parsing/transform-box-computed.html.ini +++ b/tests/wpt/metadata/css/css-transforms/parsing/transform-box-computed.html.ini @@ -14,3 +14,18 @@ [Property transform-box value 'fill-box' computes to 'fill-box'] expected: FAIL + [Property transform-box value 'border-box'] + expected: FAIL + + [Property transform-box value 'content-box'] + expected: FAIL + + [Property transform-box value 'view-box'] + expected: FAIL + + [Property transform-box value 'stroke-box'] + expected: FAIL + + [Property transform-box value 'fill-box'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-transforms/parsing/transform-origin-computed.html.ini b/tests/wpt/metadata/css/css-transforms/parsing/transform-origin-computed.html.ini index 04aff3c92163..a214ae306a2d 100644 --- a/tests/wpt/metadata/css/css-transforms/parsing/transform-origin-computed.html.ini +++ b/tests/wpt/metadata/css/css-transforms/parsing/transform-origin-computed.html.ini @@ -65,3 +65,69 @@ [Property transform-origin value 'left' computes to '0px 150px'] expected: FAIL + [Property transform-origin value 'left'] + expected: FAIL + + [Property transform-origin value 'center 50px'] + expected: FAIL + + [Property transform-origin value 'center top'] + expected: FAIL + + [Property transform-origin value 'left bottom'] + expected: FAIL + + [Property transform-origin value '20% 30px'] + expected: FAIL + + [Property transform-origin value '-1px bottom 5px'] + expected: FAIL + + [Property transform-origin value '10% center'] + expected: FAIL + + [Property transform-origin value 'left 10px'] + expected: FAIL + + [Property transform-origin value 'center center'] + expected: FAIL + + [Property transform-origin value '10%'] + expected: FAIL + + [Property transform-origin value 'center left'] + expected: FAIL + + [Property transform-origin value '30px center'] + expected: FAIL + + [Property transform-origin value '40px top'] + expected: FAIL + + [Property transform-origin value 'bottom right'] + expected: FAIL + + [Property transform-origin value 'top'] + expected: FAIL + + [Property transform-origin value 'center'] + expected: FAIL + + [Property transform-origin value 'calc(-100% + 10px - 0.5em) calc(10px - 0.5em) calc(10px - 0.5em)'] + expected: FAIL + + [Property transform-origin value 'right 40%'] + expected: FAIL + + [Property transform-origin value 'left center 6px'] + expected: FAIL + + [Property transform-origin value 'center bottom'] + expected: FAIL + + [Property transform-origin value 'left center'] + expected: FAIL + + [Property transform-origin value 'right bottom 7px'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-transitions/no-transition-from-ua-to-blocking-stylesheet.html.ini b/tests/wpt/metadata/css/css-transitions/no-transition-from-ua-to-blocking-stylesheet.html.ini index 70a00a101f69..e35a452a1864 100644 --- a/tests/wpt/metadata/css/css-transitions/no-transition-from-ua-to-blocking-stylesheet.html.ini +++ b/tests/wpt/metadata/css/css-transitions/no-transition-from-ua-to-blocking-stylesheet.html.ini @@ -1,2 +1,2 @@ [no-transition-from-ua-to-blocking-stylesheet.html] - expected: FAIL + expected: TIMEOUT diff --git a/tests/wpt/metadata/css/css-transitions/parsing/transition-computed.html.ini b/tests/wpt/metadata/css/css-transitions/parsing/transition-computed.html.ini index 6a6c7faf72e4..1d6a584e0531 100644 --- a/tests/wpt/metadata/css/css-transitions/parsing/transition-computed.html.ini +++ b/tests/wpt/metadata/css/css-transitions/parsing/transition-computed.html.ini @@ -20,3 +20,24 @@ [Property transition value '1s -3s cubic-bezier(0, -2, 1, 3) top' computes to 'top 1s cubic-bezier(0, -2, 1, 3) -3s'] expected: FAIL + [Property transition value '1s -3s'] + expected: FAIL + + [Property transition value '1s -3s, cubic-bezier(0, -2, 1, 3) top'] + expected: FAIL + + [Property transition value 'none'] + expected: FAIL + + [Property transition value '1s'] + expected: FAIL + + [Property transition value 'cubic-bezier(0, -2, 1, 3)'] + expected: FAIL + + [Property transition value '1s -3s cubic-bezier(0, -2, 1, 3) top'] + expected: FAIL + + [Property transition value 'top'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-transitions/parsing/transition-timing-function-computed.html.ini b/tests/wpt/metadata/css/css-transitions/parsing/transition-timing-function-computed.html.ini index 5a41ca5ad572..a464ab197c6e 100644 --- a/tests/wpt/metadata/css/css-transitions/parsing/transition-timing-function-computed.html.ini +++ b/tests/wpt/metadata/css/css-transitions/parsing/transition-timing-function-computed.html.ini @@ -11,3 +11,15 @@ [Property transition-timing-function value 'steps(2, jump-both)' computes to 'steps(2, jump-both)'] expected: FAIL + [Property transition-timing-function value 'steps(2, jump-both)'] + expected: FAIL + + [Property transition-timing-function value 'steps(2, jump-end)'] + expected: FAIL + + [Property transition-timing-function value 'steps(2, jump-start)'] + expected: FAIL + + [Property transition-timing-function value 'steps(2, jump-none)'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-ui/parsing/caret-color-computed.html.ini b/tests/wpt/metadata/css/css-ui/parsing/caret-color-computed.html.ini index 9103c108a5ff..c217a44d76c0 100644 --- a/tests/wpt/metadata/css/css-ui/parsing/caret-color-computed.html.ini +++ b/tests/wpt/metadata/css/css-ui/parsing/caret-color-computed.html.ini @@ -8,3 +8,12 @@ [Property caret-color value 'red' computes to 'rgb(255, 0, 0)'] expected: FAIL + [Property caret-color value 'currentColor'] + expected: FAIL + + [Property caret-color value 'red'] + expected: FAIL + + [Property caret-color value 'auto'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-ui/parsing/resize-computed.html.ini b/tests/wpt/metadata/css/css-ui/parsing/resize-computed.html.ini index 04988af8df23..16a68e628d69 100644 --- a/tests/wpt/metadata/css/css-ui/parsing/resize-computed.html.ini +++ b/tests/wpt/metadata/css/css-ui/parsing/resize-computed.html.ini @@ -11,3 +11,15 @@ [Property resize value 'none' computes to 'none'] expected: FAIL + [Property resize value 'none'] + expected: FAIL + + [Property resize value 'horizontal'] + expected: FAIL + + [Property resize value 'vertical'] + expected: FAIL + + [Property resize value 'both'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-ui/parsing/user-select-computed.html.ini b/tests/wpt/metadata/css/css-ui/parsing/user-select-computed.html.ini index c6b1f4b60de8..a0e53a1f7baf 100644 --- a/tests/wpt/metadata/css/css-ui/parsing/user-select-computed.html.ini +++ b/tests/wpt/metadata/css/css-ui/parsing/user-select-computed.html.ini @@ -14,3 +14,18 @@ [Property user-select value 'all' computes to 'all'] expected: FAIL + [Property user-select value 'all'] + expected: FAIL + + [Property user-select value 'text'] + expected: FAIL + + [Property user-select value 'none'] + expected: FAIL + + [Property user-select value 'auto'] + expected: FAIL + + [Property user-select value 'contain'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-values/clamp-length-computed.html.ini b/tests/wpt/metadata/css/css-values/clamp-length-computed.html.ini index 1e17130fab55..35bc011d78a7 100644 --- a/tests/wpt/metadata/css/css-values/clamp-length-computed.html.ini +++ b/tests/wpt/metadata/css/css-values/clamp-length-computed.html.ini @@ -11,3 +11,15 @@ [Property letter-spacing value 'clamp(10px, 20px, 30px)' computes to '20px'] expected: FAIL + [Property letter-spacing value 'clamp(10px, 20px, 30px)'] + expected: FAIL + + [Property letter-spacing value 'clamp(10px, 35px, 30px)'] + expected: FAIL + + [Property letter-spacing value 'clamp(30px, 100px, 20px)'] + expected: FAIL + + [Property letter-spacing value 'clamp(10px, 5px, 30px)'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-values/minmax-angle-computed.html.ini b/tests/wpt/metadata/css/css-values/minmax-angle-computed.html.ini index 2ccfc9a5c87c..3a9e368ccdbc 100644 --- a/tests/wpt/metadata/css/css-values/minmax-angle-computed.html.ini +++ b/tests/wpt/metadata/css/css-values/minmax-angle-computed.html.ini @@ -95,3 +95,99 @@ [Property transform value 'rotate(min(1turn, 2turn))' computes to 'rotate(360deg)'] expected: FAIL + [Property transform value 'rotate(max(1rad))'] + expected: FAIL + + [Property transform value 'rotate(max(1deg, 2deg))'] + expected: FAIL + + [Property transform value 'rotate(max(1grad))'] + expected: FAIL + + [Property transform value 'rotate(min(1.57rad, 95deg))'] + expected: FAIL + + [Property transform value 'rotate(max(1rad, 2rad))'] + expected: FAIL + + [Property transform value 'rotate(min(1rad))'] + expected: FAIL + + [Property transform value 'rotate(calc(min(90deg, 1.58rad) + max(0.25turn, 99grad)))'] + expected: FAIL + + [Property transform value 'rotate(calc(max(90deg, 1.56rad) / 2)'] + expected: FAIL + + [Property transform value 'rotate(calc(min(90deg, 1.58rad) - max(0.25turn, 99grad)))'] + expected: FAIL + + [Property transform value 'rotate(min(1deg, 2deg))'] + expected: FAIL + + [Property transform value 'rotate(calc(min(90deg, 1.58rad) + 0.25turn))'] + expected: FAIL + + [Property transform value 'rotate(min(1rad, 2rad))'] + expected: FAIL + + [Property transform value 'rotate(max(1turn))'] + expected: FAIL + + [Property transform value 'rotate(min(1grad))'] + expected: FAIL + + [Property transform value 'rotate(min(1turn, 2turn))'] + expected: FAIL + + [Property transform value 'rotate(max(1grad, 2grad))'] + expected: FAIL + + [Property transform value 'rotate(max(1deg))'] + expected: FAIL + + [Property transform value 'rotate(calc(min(90deg, 1.58rad) - 0.125turn))'] + expected: FAIL + + [Property transform value 'rotate(max(91deg, 0.25turn))'] + expected: FAIL + + [Property transform value 'rotate(min(270deg, max(0.25turn, 3.14rad)))'] + expected: FAIL + + [Property transform value 'rotate(max(0.25turn, min(270deg, 3.14rad)))'] + expected: FAIL + + [Property transform value 'rotate(calc(min(90deg, 1.58rad) / 2)'] + expected: FAIL + + [Property transform value 'rotate(max(1turn, 2turn))'] + expected: FAIL + + [Property transform value 'rotate(calc(max(90deg, 1.56rad) + 0.25turn))'] + expected: FAIL + + [Property transform value 'rotate(calc(max(90deg, 1.56rad) - 0.125turn))'] + expected: FAIL + + [Property transform value 'rotate(min(1deg))'] + expected: FAIL + + [Property transform value 'rotate(max(1.58rad, 90deg))'] + expected: FAIL + + [Property transform value 'rotate(min(1grad, 2grad))'] + expected: FAIL + + [Property transform value 'rotate(min(1turn))'] + expected: FAIL + + [Property transform value 'rotate(calc(min(90deg, 1.58rad) * 2)'] + expected: FAIL + + [Property transform value 'rotate(min(90deg, 0.26turn))'] + expected: FAIL + + [Property transform value 'rotate(calc(max(90deg, 1.56rad) * 2)'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-values/minmax-integer-computed.html.ini b/tests/wpt/metadata/css/css-values/minmax-integer-computed.html.ini index 0b6cc5fc5506..8c5176025bb7 100644 --- a/tests/wpt/metadata/css/css-values/minmax-integer-computed.html.ini +++ b/tests/wpt/metadata/css/css-values/minmax-integer-computed.html.ini @@ -29,3 +29,33 @@ [Property z-index value 'calc(min(0.3, 0.6) * 2)' computes to '1'] expected: FAIL + [Property z-index value 'max(0.4)'] + expected: FAIL + + [Property z-index value 'min(1.1, max(0.4, 0.6))'] + expected: FAIL + + [Property z-index value 'min(1)'] + expected: FAIL + + [Property z-index value 'calc(max(0.3, 0.6) / 2)'] + expected: FAIL + + [Property z-index value 'min(0.4)'] + expected: FAIL + + [Property z-index value 'max(1)'] + expected: FAIL + + [Property z-index value 'max(0.6)'] + expected: FAIL + + [Property z-index value 'calc(min(0.3, 0.6) * 2)'] + expected: FAIL + + [Property z-index value 'max(0.3, min(1.1, 0.4))'] + expected: FAIL + + [Property z-index value 'min(0.6)'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-values/minmax-length-computed.html.ini b/tests/wpt/metadata/css/css-values/minmax-length-computed.html.ini index 0955fb5aa7a8..0a95b909192b 100644 --- a/tests/wpt/metadata/css/css-values/minmax-length-computed.html.ini +++ b/tests/wpt/metadata/css/css-values/minmax-length-computed.html.ini @@ -239,3 +239,243 @@ [Property letter-spacing value 'calc(min(1em, 21px) - max(0.9em, 20px))' computes to 'normal'] expected: FAIL + [Property letter-spacing value 'min(1vmax)'] + expected: FAIL + + [Property letter-spacing value 'max(1ex, 2ex)'] + expected: FAIL + + [Property letter-spacing value 'max(15px, min(25px, 1em))'] + expected: FAIL + + [Property letter-spacing value 'max(1em, 2em)'] + expected: FAIL + + [Property letter-spacing value 'max(1px, 2px)'] + expected: FAIL + + [Property letter-spacing value 'max(1pc)'] + expected: FAIL + + [Property letter-spacing value 'min(15px, 1em)' fontSize=10px] + expected: FAIL + + [Property letter-spacing value 'max(1em)'] + expected: FAIL + + [Property letter-spacing value 'min(1px)'] + expected: FAIL + + [Property letter-spacing value 'calc(max(1em, 19px) + 10px)'] + expected: FAIL + + [Property letter-spacing value 'calc(min(1em, 21px) * 2'] + expected: FAIL + + [Property letter-spacing value 'min(1pt)'] + expected: FAIL + + [Property letter-spacing value 'min(1vmax, 2vmax)'] + expected: FAIL + + [Property letter-spacing value 'min(1em)'] + expected: FAIL + + [Property letter-spacing value 'min(25px, max(15px, 1em))'] + expected: FAIL + + [Property letter-spacing value 'max(1pt, 2pt)'] + expected: FAIL + + [Property letter-spacing value 'max(1mm, 2mm)'] + expected: FAIL + + [Property letter-spacing value 'calc(min(1em, 21px) + max(0.9em, 20px))'] + expected: FAIL + + [Property letter-spacing value 'min(1pt, 2pt)'] + expected: FAIL + + [Property letter-spacing value 'calc(min(1em, 21px) - max(0.9em, 20px))'] + expected: FAIL + + [Property letter-spacing value 'min(1vw)'] + expected: FAIL + + [Property letter-spacing value 'max(1rem)'] + expected: FAIL + + [Property letter-spacing value 'min(1rem)'] + expected: FAIL + + [Property letter-spacing value 'min(15px, 1em)'] + expected: FAIL + + [Property letter-spacing value 'calc(max(1em, 19px) / 2'] + expected: FAIL + + [Property letter-spacing value 'min(1vmin)'] + expected: FAIL + + [Property letter-spacing value 'min(1pc, 2pc)'] + expected: FAIL + + [Property letter-spacing value 'max(1pc, 2pc)'] + expected: FAIL + + [Property letter-spacing value 'max(1ex)'] + expected: FAIL + + [Property letter-spacing value 'min(1mm)'] + expected: FAIL + + [Property letter-spacing value 'max(1in)'] + expected: FAIL + + [Property letter-spacing value 'max(1pt)'] + expected: FAIL + + [Property letter-spacing value 'max(95px, 1in)'] + expected: FAIL + + [Property letter-spacing value 'max(1vmax)'] + expected: FAIL + + [Property letter-spacing value 'min(1in)'] + expected: FAIL + + [Property letter-spacing value 'min(1ex)'] + expected: FAIL + + [Property letter-spacing value 'min(1in, 2in)'] + expected: FAIL + + [Property letter-spacing value 'min(1ch, 2ch)'] + expected: FAIL + + [Property letter-spacing value 'max(15px, 1em)'] + expected: FAIL + + [Property letter-spacing value 'min(25px, 1em)'] + expected: FAIL + + [Property letter-spacing value 'max(1vmin)'] + expected: FAIL + + [Property letter-spacing value 'max(1vh, 2vh)'] + expected: FAIL + + [Property letter-spacing value 'max(1mm)'] + expected: FAIL + + [Property letter-spacing value 'min(1vmin, 2vmin)'] + expected: FAIL + + [Property letter-spacing value 'min(1vh, 2vh)'] + expected: FAIL + + [Property letter-spacing value 'max(15px, 2em)' fontSize=10px] + expected: FAIL + + [Property letter-spacing value 'max(1vmax, 2vmax)'] + expected: FAIL + + [Property letter-spacing value 'min(1mm, 2mm)'] + expected: FAIL + + [Property letter-spacing value 'calc(min(1em, 21px) - 10px)'] + expected: FAIL + + [Property letter-spacing value 'max(1rem, 2rem)'] + expected: FAIL + + [Property letter-spacing value 'max(1Q, 2Q)'] + expected: FAIL + + [Property letter-spacing value 'calc(min(1em, 21px) + 10px)'] + expected: FAIL + + [Property letter-spacing value 'min(1ex, 2ex)'] + expected: FAIL + + [Property letter-spacing value 'max(1cm)'] + expected: FAIL + + [Property letter-spacing value 'min(1Q, 2Q)'] + expected: FAIL + + [Property letter-spacing value 'min(1pc)'] + expected: FAIL + + [Property letter-spacing value 'min(1cm)'] + expected: FAIL + + [Property letter-spacing value 'max(1cm, 2cm)'] + expected: FAIL + + [Property letter-spacing value 'calc(max(1em, 19px) * 2'] + expected: FAIL + + [Property letter-spacing value 'max(1ch)'] + expected: FAIL + + [Property letter-spacing value 'max(1vw, 2vw)'] + expected: FAIL + + [Property letter-spacing value 'min(1px, 2px)'] + expected: FAIL + + [Property letter-spacing value 'min(95px, 1in)'] + expected: FAIL + + [Property letter-spacing value 'min(1rem, 2rem)'] + expected: FAIL + + [Property letter-spacing value 'min(1vh)'] + expected: FAIL + + [Property letter-spacing value 'min(1cm, 2cm)'] + expected: FAIL + + [Property letter-spacing value 'max(1px)'] + expected: FAIL + + [Property letter-spacing value 'max(1vw)'] + expected: FAIL + + [Property letter-spacing value 'min(1vw, 2vw)'] + expected: FAIL + + [Property letter-spacing value 'min(1Q)'] + expected: FAIL + + [Property letter-spacing value 'max(1in, 2in)'] + expected: FAIL + + [Property letter-spacing value 'max(1ch, 2ch)'] + expected: FAIL + + [Property letter-spacing value 'min(1ch)'] + expected: FAIL + + [Property letter-spacing value 'calc(min(1em, 21px) / 2'] + expected: FAIL + + [Property letter-spacing value 'max(25px, 1em)'] + expected: FAIL + + [Property letter-spacing value 'max(1Q)'] + expected: FAIL + + [Property letter-spacing value 'max(1vmin, 2vmin)'] + expected: FAIL + + [Property letter-spacing value 'min(1em, 2em)'] + expected: FAIL + + [Property letter-spacing value 'max(1vh)'] + expected: FAIL + + [Property letter-spacing value 'calc(max(1em, 19px) - 10px)'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-values/minmax-length-percent-computed.html.ini b/tests/wpt/metadata/css/css-values/minmax-length-percent-computed.html.ini index 2c3c8100418b..5534ae5c0233 100644 --- a/tests/wpt/metadata/css/css-values/minmax-length-percent-computed.html.ini +++ b/tests/wpt/metadata/css/css-values/minmax-length-percent-computed.html.ini @@ -149,3 +149,153 @@ [Property margin-left value 'calc(max(1em, 15%) + 10px)' computes to '70px'] expected: FAIL + [Property margin-left value 'calc(min(1.5em, 10%) - max(1em, 15%))'] + expected: FAIL + + [Property margin-left value 'min(1em + 1%)'] + expected: FAIL + + [Property margin-left value 'calc(min(1.5em, 10%) + 10px)'] + expected: FAIL + + [Property margin-left value 'min(1Q + 1%)'] + expected: FAIL + + [Property margin-left value 'calc(min(1.5em, 10%) - 10px)'] + expected: FAIL + + [Property margin-left value 'calc(min(1.5em, 10%) * 2)'] + expected: FAIL + + [Property margin-left value 'calc(max(1em, 15%) * 2)'] + expected: FAIL + + [Property margin-left value 'max(1Q + 1%)'] + expected: FAIL + + [Property margin-left value 'calc(max(1em, 15%) - 10px)'] + expected: FAIL + + [Property margin-left value 'min(30px + 10%, 60px + 5%)'] + expected: FAIL + + [Property margin-left value 'min(1vmax + 1%)'] + expected: FAIL + + [Property margin-left value 'max(1px + 1%)'] + expected: FAIL + + [Property margin-left value 'max(1vw + 1%)'] + expected: FAIL + + [Property margin-left value 'min(1rem + 1%)'] + expected: FAIL + + [Property margin-left value 'max(1pc + 1%)'] + expected: FAIL + + [Property margin-left value 'min(1vmin + 1%)'] + expected: FAIL + + [Property margin-left value 'max(1cm + 1%)'] + expected: FAIL + + [Property margin-left value 'min(1cm + 1%)'] + expected: FAIL + + [Property margin-left value 'max(1em, 10%)'] + expected: FAIL + + [Property margin-left value 'min(1px + 1%)'] + expected: FAIL + + [Property margin-left value 'max(20px, 10%)'] + expected: FAIL + + [Property margin-left value 'max(1in + 1%)'] + expected: FAIL + + [Property margin-left value 'min(20px, 10%)' width=100px] + expected: FAIL + + [Property margin-left value 'min(1pc + 1%)'] + expected: FAIL + + [Property margin-left value 'max(1vmax + 1%)'] + expected: FAIL + + [Property margin-left value 'calc(min(1.5em, 10%) / 2)'] + expected: FAIL + + [Property margin-left value 'min(1em, 10%)'] + expected: FAIL + + [Property margin-left value 'max(1vmin + 1%)'] + expected: FAIL + + [Property margin-left value 'max(1pt + 1%)'] + expected: FAIL + + [Property margin-left value 'min(1ex + 1%)'] + expected: FAIL + + [Property margin-left value 'max(1vh + 1%)'] + expected: FAIL + + [Property margin-left value 'max(2em + 10%, 1em + 20%)'] + expected: FAIL + + [Property margin-left value 'min(1ch + 1%)'] + expected: FAIL + + [Property margin-left value 'max(1mm + 1%)'] + expected: FAIL + + [Property margin-left value 'calc(max(1em, 15%) + 10px)'] + expected: FAIL + + [Property margin-left value 'min(1em, 10%)' width=100px] + expected: FAIL + + [Property margin-left value 'min(20px, 10%)'] + expected: FAIL + + [Property margin-left value 'max(1em, 10%)' width=100px] + expected: FAIL + + [Property margin-left value 'max(1rem + 1%)'] + expected: FAIL + + [Property margin-left value 'min(1in + 1%)'] + expected: FAIL + + [Property margin-left value 'calc(min(1.5em, 10%) + max(1em, 15%))'] + expected: FAIL + + [Property margin-left value 'max(20px, 10%)' width=100px] + expected: FAIL + + [Property margin-left value 'max(1ex + 1%)'] + expected: FAIL + + [Property margin-left value 'min(1mm + 1%)'] + expected: FAIL + + [Property margin-left value 'min(1vh + 1%)'] + expected: FAIL + + [Property margin-left value 'min(1pt + 1%)'] + expected: FAIL + + [Property margin-left value 'max(1em + 1%)'] + expected: FAIL + + [Property margin-left value 'max(1ch + 1%)'] + expected: FAIL + + [Property margin-left value 'min(1vw + 1%)'] + expected: FAIL + + [Property margin-left value 'calc(max(1em, 15%) / 2)'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-values/minmax-number-computed.html.ini b/tests/wpt/metadata/css/css-values/minmax-number-computed.html.ini index da5d7c62959a..7293d0a802ac 100644 --- a/tests/wpt/metadata/css/css-values/minmax-number-computed.html.ini +++ b/tests/wpt/metadata/css/css-values/minmax-number-computed.html.ini @@ -41,3 +41,45 @@ [Property opacity value 'min(1)' computes to '1'] expected: FAIL + [Property opacity value 'calc(min(0.1, 0.2) + 0.05)'] + expected: FAIL + + [Property opacity value 'min(0.2, max(0.1, 0.15))'] + expected: FAIL + + [Property opacity value 'calc(max(0.1, 0.2) + 0.05)'] + expected: FAIL + + [Property opacity value 'max(1)'] + expected: FAIL + + [Property opacity value 'calc(min(0.1, 0.2) / 2)'] + expected: FAIL + + [Property opacity value 'calc(min(0.1, 0.2) * 2)'] + expected: FAIL + + [Property opacity value 'min(1)'] + expected: FAIL + + [Property opacity value 'calc(min(0.1, 0.2) + max(0.1, 0.05))'] + expected: FAIL + + [Property opacity value 'calc(max(0.1, 0.2) - 0.05)'] + expected: FAIL + + [Property opacity value 'calc(max(0.1, 0.2) / 2)'] + expected: FAIL + + [Property opacity value 'calc(min(0.1, 0.2) - max(0.1, 0.05))'] + expected: FAIL + + [Property opacity value 'calc(min(0.1, 0.2) - 0.05)'] + expected: FAIL + + [Property opacity value 'max(0.1, min(0.2, 0.15))'] + expected: FAIL + + [Property opacity value 'calc(max(0.1, 0.2) * 2)'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-values/minmax-percentage-computed.html.ini b/tests/wpt/metadata/css/css-values/minmax-percentage-computed.html.ini index fcd372dd1355..320e92be7f9d 100644 --- a/tests/wpt/metadata/css/css-values/minmax-percentage-computed.html.ini +++ b/tests/wpt/metadata/css/css-values/minmax-percentage-computed.html.ini @@ -41,3 +41,45 @@ [Property margin-left value 'calc(min(10%, 20%) - max(10%, 5%))' computes to '0px'] expected: FAIL + [Property margin-left value 'calc(min(10%, 20%) - max(10%, 5%))'] + expected: FAIL + + [Property margin-left value 'calc(max(10%, 20%) * 2)'] + expected: FAIL + + [Property margin-left value 'calc(min(10%, 20%) * 2)'] + expected: FAIL + + [Property margin-left value 'min(20%, max(10%, 15%))'] + expected: FAIL + + [Property margin-left value 'max(10%, min(20%, 15%))'] + expected: FAIL + + [Property margin-left value 'calc(max(10%, 20%) / 2)'] + expected: FAIL + + [Property margin-left value 'min(1%)'] + expected: FAIL + + [Property margin-left value 'calc(max(10%, 20%) - 5%)'] + expected: FAIL + + [Property margin-left value 'calc(min(10%, 20%) / 2)'] + expected: FAIL + + [Property margin-left value 'calc(max(10%, 20%) + 5%)'] + expected: FAIL + + [Property margin-left value 'calc(min(10%, 20%) + 5%)'] + expected: FAIL + + [Property margin-left value 'max(1%)'] + expected: FAIL + + [Property margin-left value 'calc(min(10%, 20%) - 5%)'] + expected: FAIL + + [Property margin-left value 'calc(min(10%, 20%) + max(10%, 5%))'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-values/minmax-time-computed.html.ini b/tests/wpt/metadata/css/css-values/minmax-time-computed.html.ini index 999eafddfd3a..0e9738b9fad5 100644 --- a/tests/wpt/metadata/css/css-values/minmax-time-computed.html.ini +++ b/tests/wpt/metadata/css/css-values/minmax-time-computed.html.ini @@ -65,3 +65,69 @@ [Property transition-delay value 'calc(min(0.5s, 600ms) - max(500ms, 0.4s))' computes to '0s'] expected: FAIL + [Property transition-delay value 'max(0.9s, 1000ms)'] + expected: FAIL + + [Property transition-delay value 'min(1s, 2s)'] + expected: FAIL + + [Property transition-delay value 'calc(max(0.5s, 400ms) + 500ms)'] + expected: FAIL + + [Property transition-delay value 'calc(min(0.5s, 600ms) * 2)'] + expected: FAIL + + [Property transition-delay value 'calc(max(0.5s, 400ms) - 500ms)'] + expected: FAIL + + [Property transition-delay value 'calc(min(0.5s, 600ms) - 500ms)'] + expected: FAIL + + [Property transition-delay value 'max(1s, 2s)'] + expected: FAIL + + [Property transition-delay value 'min(1ms)'] + expected: FAIL + + [Property transition-delay value 'max(1s)'] + expected: FAIL + + [Property transition-delay value 'max(1ms)'] + expected: FAIL + + [Property transition-delay value 'max(1ms, 2ms)'] + expected: FAIL + + [Property transition-delay value 'min(2s, max(1s, 1500ms))'] + expected: FAIL + + [Property transition-delay value 'min(1s)'] + expected: FAIL + + [Property transition-delay value 'calc(max(0.5s, 400ms) / 2)'] + expected: FAIL + + [Property transition-delay value 'max(1000ms, min(2000ms, 1.5s))'] + expected: FAIL + + [Property transition-delay value 'calc(max(0.5s, 400ms) * 2)'] + expected: FAIL + + [Property transition-delay value 'min(1ms, 2ms)'] + expected: FAIL + + [Property transition-delay value 'calc(min(0.5s, 600ms) + max(500ms, 0.4s))'] + expected: FAIL + + [Property transition-delay value 'calc(min(0.5s, 600ms) - max(500ms, 0.4s))'] + expected: FAIL + + [Property transition-delay value 'min(1s, 1100ms)'] + expected: FAIL + + [Property transition-delay value 'calc(min(0.5s, 600ms) + 500ms)'] + expected: FAIL + + [Property transition-delay value 'calc(min(0.5s, 600ms) / 2)'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/cssom-view/parsing/scroll-behavior-computed.html.ini b/tests/wpt/metadata/css/cssom-view/parsing/scroll-behavior-computed.html.ini index d5bad2f64904..27dff89c5adf 100644 --- a/tests/wpt/metadata/css/cssom-view/parsing/scroll-behavior-computed.html.ini +++ b/tests/wpt/metadata/css/cssom-view/parsing/scroll-behavior-computed.html.ini @@ -5,3 +5,9 @@ [Property scroll-behavior value 'auto' computes to 'auto'] expected: FAIL + [Property scroll-behavior value 'smooth'] + expected: FAIL + + [Property scroll-behavior value 'auto'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/cssom/border-shorthand-serialization.html.ini b/tests/wpt/metadata/css/cssom/border-shorthand-serialization.html.ini new file mode 100644 index 000000000000..5e4163cc85dd --- /dev/null +++ b/tests/wpt/metadata/css/cssom/border-shorthand-serialization.html.ini @@ -0,0 +1,4 @@ +[border-shorthand-serialization.html] + [Declaration with border longhands and border-image is not serialized to a border shorthand declaration.] + expected: FAIL + diff --git a/tests/wpt/metadata/css/filter-effects/parsing/backdrop-filter-computed.html.ini b/tests/wpt/metadata/css/filter-effects/parsing/backdrop-filter-computed.html.ini index 668b41b7a22a..5f3732dabbbf 100644 --- a/tests/wpt/metadata/css/filter-effects/parsing/backdrop-filter-computed.html.ini +++ b/tests/wpt/metadata/css/filter-effects/parsing/backdrop-filter-computed.html.ini @@ -89,3 +89,87 @@ [Property backdrop-filter value 'brightness()' computes to 'brightness(1)'] expected: FAIL + [Property backdrop-filter value 'invert()'] + expected: FAIL + + [Property backdrop-filter value 'sepia()'] + expected: FAIL + + [Property backdrop-filter value 'opacity(100%)'] + expected: FAIL + + [Property backdrop-filter value 'sepia(0)'] + expected: FAIL + + [Property backdrop-filter value 'sepia(100%)'] + expected: FAIL + + [Property backdrop-filter value 'brightness(0)'] + expected: FAIL + + [Property backdrop-filter value 'grayscale(50%)'] + expected: FAIL + + [Property backdrop-filter value 'opacity(0)'] + expected: FAIL + + [Property backdrop-filter value 'drop-shadow(1px 2px)'] + expected: FAIL + + [Property backdrop-filter value 'hue-rotate()'] + expected: FAIL + + [Property backdrop-filter value 'invert(0)'] + expected: FAIL + + [Property backdrop-filter value 'contrast()'] + expected: FAIL + + [Property backdrop-filter value 'opacity()'] + expected: FAIL + + [Property backdrop-filter value 'blur(100px)'] + expected: FAIL + + [Property backdrop-filter value 'saturate()'] + expected: FAIL + + [Property backdrop-filter value 'contrast(0)'] + expected: FAIL + + [Property backdrop-filter value 'hue-rotate(90deg)'] + expected: FAIL + + [Property backdrop-filter value 'saturate(300%)'] + expected: FAIL + + [Property backdrop-filter value 'blur(10px) url("https://www.example.com/picture.svg#f") contrast(20) brightness(30)'] + expected: FAIL + + [Property backdrop-filter value 'brightness(300%)'] + expected: FAIL + + [Property backdrop-filter value 'drop-shadow(rgb(4, 5, 6) 1px 2px 0px)'] + expected: FAIL + + [Property backdrop-filter value 'invert(100%)'] + expected: FAIL + + [Property backdrop-filter value 'saturate(0)'] + expected: FAIL + + [Property backdrop-filter value 'contrast(300%)'] + expected: FAIL + + [Property backdrop-filter value 'blur()'] + expected: FAIL + + [Property backdrop-filter value 'none'] + expected: FAIL + + [Property backdrop-filter value 'grayscale()'] + expected: FAIL + + [Property backdrop-filter value 'brightness()'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/filter-effects/parsing/color-interpolation-filters-computed.html.ini b/tests/wpt/metadata/css/filter-effects/parsing/color-interpolation-filters-computed.html.ini index 920feb5800d2..196307a049db 100644 --- a/tests/wpt/metadata/css/filter-effects/parsing/color-interpolation-filters-computed.html.ini +++ b/tests/wpt/metadata/css/filter-effects/parsing/color-interpolation-filters-computed.html.ini @@ -8,3 +8,12 @@ [Property color-interpolation-filters value 'srgb' computes to 'srgb'] expected: FAIL + [Property color-interpolation-filters value 'srgb'] + expected: FAIL + + [Property color-interpolation-filters value 'auto'] + expected: FAIL + + [Property color-interpolation-filters value 'linearrgb'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/filter-effects/parsing/filter-computed.html.ini b/tests/wpt/metadata/css/filter-effects/parsing/filter-computed.html.ini index 9b57d470e5be..ee892e282ec6 100644 --- a/tests/wpt/metadata/css/filter-effects/parsing/filter-computed.html.ini +++ b/tests/wpt/metadata/css/filter-effects/parsing/filter-computed.html.ini @@ -14,3 +14,12 @@ [Property filter value 'blur(10px) url("https://www.example.com/picture.svg#f") contrast(20) brightness(30)' computes to 'blur(10px) url("https://www.example.com/picture.svg#f") contrast(20) brightness(30)'] expected: FAIL + [Property filter value 'blur(10px) url("https://www.example.com/picture.svg#f") contrast(20) brightness(30)'] + expected: FAIL + + [Property filter value 'drop-shadow(1px 2px)'] + expected: FAIL + + [Property filter value 'drop-shadow(rgb(4, 5, 6) 1px 2px 0px)'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/filter-effects/parsing/flood-color-computed.html.ini b/tests/wpt/metadata/css/filter-effects/parsing/flood-color-computed.html.ini index b99b38910827..d5095f991c87 100644 --- a/tests/wpt/metadata/css/filter-effects/parsing/flood-color-computed.html.ini +++ b/tests/wpt/metadata/css/filter-effects/parsing/flood-color-computed.html.ini @@ -23,3 +23,27 @@ [Property flood-color value 'teal' computes to 'rgb(0, 128, 128)'] expected: FAIL + [Property flood-color value 'rgb(100%, 100%, 0%)'] + expected: FAIL + + [Property flood-color value 'red'] + expected: FAIL + + [Property flood-color value 'hsl(120, 100%, 50%)'] + expected: FAIL + + [Property flood-color value 'teal'] + expected: FAIL + + [Property flood-color value 'currentcolor'] + expected: FAIL + + [Property flood-color value 'rgb(0, 0, 255)'] + expected: FAIL + + [Property flood-color value '#00FF00'] + expected: FAIL + + [Property flood-color value 'transparent'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/filter-effects/parsing/lighting-color-computed.html.ini b/tests/wpt/metadata/css/filter-effects/parsing/lighting-color-computed.html.ini index f03ad70aaf9d..6e8b420a5af9 100644 --- a/tests/wpt/metadata/css/filter-effects/parsing/lighting-color-computed.html.ini +++ b/tests/wpt/metadata/css/filter-effects/parsing/lighting-color-computed.html.ini @@ -2,3 +2,6 @@ [Property lighting-color value 'rgb(1, 2, 3)' computes to 'rgb(1, 2, 3)'] expected: FAIL + [Property lighting-color value 'rgb(1, 2, 3)'] + expected: FAIL + diff --git a/tests/wpt/metadata/dom/nodes/Document-contentType/contentType/contenttype_html.html.ini b/tests/wpt/metadata/dom/nodes/Document-contentType/contentType/contenttype_html.html.ini deleted file mode 100644 index d3f46c223771..000000000000 --- a/tests/wpt/metadata/dom/nodes/Document-contentType/contentType/contenttype_html.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[contenttype_html.html] - expected: CRASH diff --git a/tests/wpt/metadata/dom/nodes/Document-contentType/contentType/contenttype_txt.html.ini b/tests/wpt/metadata/dom/nodes/Document-contentType/contentType/contenttype_txt.html.ini deleted file mode 100644 index c3916f8555dd..000000000000 --- a/tests/wpt/metadata/dom/nodes/Document-contentType/contentType/contenttype_txt.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[contenttype_txt.html] - expected: CRASH diff --git a/tests/wpt/metadata/dom/nodes/Document-contentType/contentType/contenttype_xml.html.ini b/tests/wpt/metadata/dom/nodes/Document-contentType/contentType/contenttype_xml.html.ini deleted file mode 100644 index cde6fe16ee26..000000000000 --- a/tests/wpt/metadata/dom/nodes/Document-contentType/contentType/contenttype_xml.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[contenttype_xml.html] - expected: CRASH diff --git a/tests/wpt/metadata/fetch/content-type/response.window.js.ini b/tests/wpt/metadata/fetch/content-type/response.window.js.ini index 0f615a03436f..7f5bd9d35873 100644 --- a/tests/wpt/metadata/fetch/content-type/response.window.js.ini +++ b/tests/wpt/metadata/fetch/content-type/response.window.js.ini @@ -309,18 +309,3 @@ [ + diff --git a/tests/wpt/web-platform-tests/svg-aam/README.md b/tests/wpt/web-platform-tests/svg-aam/README.md index e9163e353612..a1dcef58700d 100644 --- a/tests/wpt/web-platform-tests/svg-aam/README.md +++ b/tests/wpt/web-platform-tests/svg-aam/README.md @@ -3,7 +3,7 @@ svg-aam: Tests for the SVG Accessibility API Mappings The [SVG AAM Recommendation](https://www.w3.org/TR/svg-aam-1.0) define extensions to SVG for support of extended semantics. These -semantics make it easier for Assistive Technologies to intepret and +semantics make it easier for Assistive Technologies to interpret and present content to users with varying physical and cognitive abilities. The purpose of these tests is to help ensure that user agents support the diff --git a/tests/wpt/web-platform-tests/svg/META.yml b/tests/wpt/web-platform-tests/svg/META.yml index ee0fff087c4f..a928f0c39912 100644 --- a/tests/wpt/web-platform-tests/svg/META.yml +++ b/tests/wpt/web-platform-tests/svg/META.yml @@ -7,3 +7,4 @@ suggested_reviewers: - svgeesus - dirkschulze - fsoder + - shallawa diff --git a/tests/wpt/web-platform-tests/svg/animations/discard-on-discard.html b/tests/wpt/web-platform-tests/svg/animations/discard-on-discard.html deleted file mode 100644 index 4a6b9f9368dc..000000000000 --- a/tests/wpt/web-platform-tests/svg/animations/discard-on-discard.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -Test the behavior of one discard applied on another discard - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/svg/painting/reftests/marker-units-strokewidth-non-scaling-stroke.svg b/tests/wpt/web-platform-tests/svg/painting/reftests/marker-units-strokewidth-non-scaling-stroke.svg new file mode 100644 index 000000000000..116c61c45ebf --- /dev/null +++ b/tests/wpt/web-platform-tests/svg/painting/reftests/marker-units-strokewidth-non-scaling-stroke.svg @@ -0,0 +1,13 @@ + + Markers: markerUnits=strokeWidth with vector-effect=non-scaling-stroke + + + + + + + + diff --git a/tests/wpt/web-platform-tests/svg/painting/reftests/marker-units-userspaceonuse-non-scaling-stroke.svg b/tests/wpt/web-platform-tests/svg/painting/reftests/marker-units-userspaceonuse-non-scaling-stroke.svg new file mode 100644 index 000000000000..7c4c5e0fcf33 --- /dev/null +++ b/tests/wpt/web-platform-tests/svg/painting/reftests/marker-units-userspaceonuse-non-scaling-stroke.svg @@ -0,0 +1,13 @@ + + Markers: markerUnits=userSpaceOnUse with vector-effect=non-scaling-stroke + + + + + + + + diff --git a/tests/wpt/web-platform-tests/svg/struct/reftests/requiredextensions-empty-string.svg b/tests/wpt/web-platform-tests/svg/struct/reftests/requiredextensions-empty-string.svg new file mode 100644 index 000000000000..28f5da4a3e43 --- /dev/null +++ b/tests/wpt/web-platform-tests/svg/struct/reftests/requiredextensions-empty-string.svg @@ -0,0 +1,6 @@ + + requiredExtensions: present but empty attribute evaluates to false + + + + diff --git a/tests/wpt/web-platform-tests/svg/struct/reftests/requiredextensions-xhtml.tentative.svg b/tests/wpt/web-platform-tests/svg/struct/reftests/requiredextensions-xhtml.tentative.svg new file mode 100644 index 000000000000..911f983cab68 --- /dev/null +++ b/tests/wpt/web-platform-tests/svg/struct/reftests/requiredextensions-xhtml.tentative.svg @@ -0,0 +1,12 @@ + + requiredExtensions: support for HTML/XHTML (non-normative) + + + + +
+ +
+ +
+
diff --git a/tests/wpt/web-platform-tests/tools/ci/run_tc.py b/tests/wpt/web-platform-tests/tools/ci/run_tc.py index b4cb2b01b974..482de1ad336a 100755 --- a/tests/wpt/web-platform-tests/tools/ci/run_tc.py +++ b/tests/wpt/web-platform-tests/tools/ci/run_tc.py @@ -102,8 +102,12 @@ def get_parser(): help="Install web-platform.test certificates to UA store") p.add_argument("--no-install-certificates", action="store_false", default=None, help="Don't install web-platform.test certificates to UA store") - p.add_argument("--rev", - help="Revision that the task_head ref is expected to point to") + p.add_argument("--ref", + help="Git ref for the commit that should be run") + p.add_argument("--head-rev", + help="Commit at the head of the branch when the decision task ran") + p.add_argument("--merge-rev", + help="Provisional merge commit for PR when the decision task ran") p.add_argument("script", help="Script to run for the job") p.add_argument("script_args", @@ -262,13 +266,65 @@ def setup_environment(args): if args.oom_killer: start_userspace_oom_killer() - if args.checkout: - checkout_revision(args.checkout) +def setup_repository(args): + is_pr = os.environ.get("GITHUB_PULL_REQUEST", "false") != "false" + + # Initially task_head points at the same commit as the ref we want to test. + # However that may not be the same commit as we actually want to test if + # the branch changed since the decision task ran. The branch may have + # changed because someone has pushed more commits (either to the PR + # or later commits to the branch), or because someone has pushed to the + # base branch for the PR. + # + # In that case we take a different approach depending on whether this is a + # PR or a push to a branch. + # If this is a push to a branch, and the original commit is still fetchable, + # we try to fetch that (it may not be in the case of e.g. a force push). + # If it's not fetchable then we fail the run. + # For a PR we are testing the provisional merge commit. If that's changed it + # could be that the PR branch was updated or the base branch was updated. In the + # former case we fail the run because testing an old commit is a waste of + # resources. In the latter case we assume it's OK to use the current merge + # instead of the one at the time the decision task ran. + + if args.ref: + if is_pr: + assert args.ref.endswith("/merge") + expected_head = args.merge_rev + else: + expected_head = args.head_rev + + task_head = run(["git", "rev-parse", "task_head"], return_stdout=True).strip() + + if task_head != expected_head: + if not is_pr: + try: + run(["git", "fetch", "origin", "%s:task_head" % expected_head]) + except subprocess.CalledProcessError: + print("CRITICAL: task_head points at %s, expected %s and " + "unable to fetch expected commit.\n" + "This may be because the branch was updated" % (task_head, args.rev)) + sys.exit(1) + else: + # Convert the refs/pulls//merge to refs/pulls//head + head_ref = args.ref.rsplit("/", 1)[0] + "/head" + try: + remote_head = run(["git", "ls-remote", "origin", head_ref], + return_stdout=True).split("\t")[0] + except subprocess.CalledProcessError: + print("CRITICAL: Failed to read remote ref %s" % head_ref) + sys.exit(1) + if remote_head != args.head_rev: + print("CRITICAL: task_head points at %s, expected %s. " + "This may be because the branch was updated" % (task_head, args.rev)) + sys.exit(1) + print("INFO: Merge commit changed from %s to %s due to base branch changes. " + "Running task anyway." % (expected_head, task_head)) -def setup_repository(): if os.environ.get("GITHUB_PULL_REQUEST", "false") != "false": - parents = run(["git", "show", "--no-patch", "--format=%P", "task_head"], return_stdout=True).strip().split() + parents = run(["git", "rev-parse", "task_head^@"], + return_stdout=True).strip().split() if len(parents) == 2: base_head = parents[0] pr_head = parents[1] @@ -278,7 +334,8 @@ def setup_repository(): else: print("ERROR: Pull request HEAD wasn't a 2-parent merge commit; " "expected to test the merge of PR into the base") - commit = run(["git", "show", "--no-patch", "--format=%H", "task_head"], return_stdout=True).strip() + commit = run(["git", "rev-parse", "task_head"], + return_stdout=True).strip() print("HEAD: %s" % commit) print("Parents: %s" % ", ".join(parents)) sys.exit(1) @@ -289,6 +346,14 @@ def setup_repository(): # TODO: move this somewhere earlier in the task run(["git", "fetch", "--quiet", "origin", "%s:%s" % (branch, branch)]) + checkout_rev = args.checkout if args.checkout is not None else "task_head" + checkout_revision(checkout_rev) + + refs = run(["git", "for-each-ref", "refs/heads"], return_stdout=True) + print("INFO: git refs:\n%s" % refs) + print("INFO: checked out commit:\n%s" % run(["git", "rev-parse", "HEAD"], + return_stdout=True)) + def fetch_event_data(): try: @@ -333,13 +398,6 @@ def include_job(job): def main(): args = get_parser().parse_args() - if args.rev is not None: - task_head = run(["git", "rev-parse", "task_head"], return_stdout=True).strip() - if task_head != args.rev: - print("CRITICAL: task_head points at %s, expected %s. " - "This may be because the branch was updated" % (task_head, args.rev)) - sys.exit(1) - if "TASK_EVENT" in os.environ: event = json.loads(os.environ["TASK_EVENT"]) else: @@ -348,7 +406,7 @@ def main(): if event: set_variables(event) - setup_repository() + setup_repository(args) # Hack for backwards compatibility if args.script in ["run-all", "lint", "update_built", "tools_unittest", diff --git a/tests/wpt/web-platform-tests/tools/ci/tc/decision.py b/tests/wpt/web-platform-tests/tools/ci/tc/decision.py index 92a27ef79ab3..0c935b93f8ee 100644 --- a/tests/wpt/web-platform-tests/tools/ci/tc/decision.py +++ b/tests/wpt/web-platform-tests/tools/ci/tc/decision.py @@ -121,24 +121,35 @@ def get_fetch_rev(event): is_pr, _ = get_triggers(event) if is_pr: # Try to get the actual rev so that all non-decision tasks are pinned to that - ref = "refs/pull/%s/merge" % event["pull_request"]["number"] - try: - output = subprocess.check_output(["git", "ls-remote", "origin", ref]) - except subprocess.CalledProcessError: - import traceback - logger.error(traceback.format_exc()) - logger.error("Failed to get merge commit sha1") - return ref, None - if not output: - logger.error("Failed to get merge commit") - return ref, None - return ref, output.split()[0] + rv = ["refs/pull/%s/merge" % event["pull_request"]["number"]] + # For every PR GitHub maintains a 'head' branch with commits from the + # PR, and a 'merge' branch containing a merge commit between the base + # branch and the PR. + for ref_type in ["head", "merge"]: + ref = "refs/pull/%s/%s" % (event["pull_request"]["number"], ref_type) + sha = None + try: + output = subprocess.check_output(["git", "ls-remote", "origin", ref]) + except subprocess.CalledProcessError: + import traceback + logger.error(traceback.format_exc()) + logger.error("Failed to get commit sha1 for %s" % ref) + else: + if not output: + logger.error("Failed to get commit for %s" % ref) + else: + sha = output.split()[0] + rv.append(sha) + rv = tuple(rv) else: - return event["ref"], event["after"] + # For a branch push we have a ref and a head but no merge SHA + rv = (event["ref"], event["after"], None) + assert len(rv) == 3 + return rv def build_full_command(event, task): - fetch_ref, fetch_sha = get_fetch_rev(event) + fetch_ref, head_sha, merge_sha = get_fetch_rev(event) cmd_args = { "task_name": task["name"], "repo_url": event["repository"]["clone_url"], @@ -149,8 +160,11 @@ def build_full_command(event, task): options = task.get("options", {}) options_args = [] - if fetch_sha is not None: - options_args.append("--rev=%s" % fetch_sha) + options_args.append("--ref=%s" % fetch_ref) + if head_sha is not None: + options_args.append("--head-rev=%s" % head_sha) + if merge_sha is not None: + options_args.append("--merge-rev=%s" % merge_sha) if options.get("oom-killer"): options_args.append("--oom-killer") if options.get("xvfb"): @@ -162,8 +176,6 @@ def build_full_command(event, task): # Check out the expected SHA unless it is overridden (e.g. to base_head). if options.get("checkout"): options_args.append("--checkout=%s" % options["checkout"]) - else: - options_args.append("--checkout=%s" % fetch_sha) for browser in options.get("browser", []): options_args.append("--browser=%s" % browser) if options.get("channel"): @@ -182,7 +194,7 @@ def build_full_command(event, task): return ["/bin/bash", "--login", - "-c", + "-xc", """ ~/start.sh \ %(repo_url)s \ diff --git a/tests/wpt/web-platform-tests/tools/ci/tc/tasks/test.yml b/tests/wpt/web-platform-tests/tools/ci/tc/tasks/test.yml index a64ef3749211..6e5e1b5070ad 100644 --- a/tests/wpt/web-platform-tests/tools/ci/tc/tasks/test.yml +++ b/tests/wpt/web-platform-tests/tools/ci/tc/tasks/test.yml @@ -82,6 +82,8 @@ components: browser-chrome: {} + browser-servo: {} + tox-python2: env: TOXENV: py27 @@ -164,6 +166,11 @@ tasks: use: - trigger-weekly - trigger-push + - vars: + browser: servo + channel: nightly + use: + - trigger-push do: - ${vars.browser}-${vars.channel}-${vars.suite}: diff --git a/tests/wpt/web-platform-tests/tools/ci/tc/tests/test_valid.py b/tests/wpt/web-platform-tests/tools/ci/tc/tests/test_valid.py index d6cbfba4e2cb..4280387127d3 100644 --- a/tests/wpt/web-platform-tests/tools/ci/tc/tests/test_valid.py +++ b/tests/wpt/web-platform-tests/tools/ci/tc/tests/test_valid.py @@ -64,7 +64,7 @@ def test_verify_payload(): with open(data_path(filename), encoding="utf8") as f: event = json.load(f) - with mock.patch("tools.ci.tc.decision.get_fetch_rev", return_value=(event["after"], None)): + with mock.patch("tools.ci.tc.decision.get_fetch_rev", return_value=(None, event["after"], None)): with mock.patch("tools.ci.tc.decision.get_run_jobs", return_value=set(jobs)): task_id_map = decide(event) for name, (task_id, task_data) in task_id_map.items(): @@ -212,7 +212,7 @@ def test_verify_payload(): 'wpt-webkitgtk_minibrowser-nightly-wdspec-1'}) ]) def test_schedule_tasks(event_path, is_pr, files_changed, expected): - with mock.patch("tools.ci.tc.decision.get_fetch_rev", return_value=(is_pr, None)): + with mock.patch("tools.ci.tc.decision.get_fetch_rev", return_value=(None, None, None)): with mock.patch("tools.wpt.testfiles.repo_files_changed", return_value=files_changed): with open(data_path(event_path), encoding="utf8") as event_file: diff --git a/tests/wpt/web-platform-tests/tools/manifest/testpaths.py b/tests/wpt/web-platform-tests/tools/manifest/testpaths.py index 3c1f09d43730..2197792cd64e 100644 --- a/tests/wpt/web-platform-tests/tools/manifest/testpaths.py +++ b/tests/wpt/web-platform-tests/tools/manifest/testpaths.py @@ -32,6 +32,8 @@ def create_parser(): parser = argparse.ArgumentParser() parser.add_argument( "-p", "--path", type=abs_path, help="Path to manifest file.") + parser.add_argument( + "--src-root", type=abs_path, default=None, help="Path to root of sourcetree.") parser.add_argument( "--tests-root", type=abs_path, default=wpt_root, help="Path to root of tests.") parser.add_argument( @@ -55,25 +57,35 @@ def create_parser(): return parser -def get_path_id_map(manifest_file, test_ids): - # type: (Manifest, Iterable[Text]) -> Dict[Text, List[Text]] +def get_path_id_map(src_root, tests_root, manifest_file, test_ids): + # type: (Text, Text, Manifest, Iterable[Text]) -> Dict[Text, List[Text]] test_ids = set(test_ids) path_id_map = defaultdict(list) # type: Dict[Text, List[Text]] + compute_rel_path = src_root != tests_root + for item_type, path, tests in manifest_file: for test in tests: if test.id in test_ids: - path_id_map[path].append(test.id) + if compute_rel_path: + rel_path = os.path.relpath(os.path.join(tests_root, path), + src_root) + else: + rel_path = path + path_id_map[rel_path].append(test.id) return path_id_map -def run(**kwargs): - # type: (**Any) -> None +def get_paths(**kwargs): + # type: (**Any) -> Dict[Text, List[Text]] tests_root = kwargs["tests_root"] assert tests_root is not None path = kwargs["path"] if path is None: path = os.path.join(kwargs["tests_root"], "MANIFEST.json") + src_root = kwargs["src_root"] + if src_root is None: + src_root = tests_root manifest_file = load_and_update(tests_root, path, @@ -82,11 +94,21 @@ def run(**kwargs): rebuild=kwargs["rebuild"], cache_root=kwargs["cache_root"]) - path_id_map = get_path_id_map(manifest_file, kwargs["test_ids"]) - if kwargs["json"]: + return get_path_id_map(src_root, tests_root, manifest_file, kwargs["test_ids"]) + + +def write_output(path_id_map, as_json): + # type: (Dict[Text, List[Text]], bool) -> None + if as_json: print(json.dumps(path_id_map)) else: for path, test_ids in sorted(iteritems(path_id_map)): print(path) for test_id in sorted(test_ids): print(" " + test_id) + + +def run(**kwargs): + # type: (**Any) -> None + path_id_map = get_paths(**kwargs) + write_output(path_id_map, as_json=kwargs["json"]) diff --git a/tests/wpt/web-platform-tests/tools/wpt/browser.py b/tests/wpt/web-platform-tests/tools/wpt/browser.py index a94d5509cc8b..3ee98d959ec5 100644 --- a/tests/wpt/web-platform-tests/tools/wpt/browser.py +++ b/tests/wpt/web-platform-tests/tools/wpt/browser.py @@ -712,6 +712,20 @@ def find_binary(self, venv_path=None, channel=None): return "com.android.chrome" +#TODO(aluo): This is largely copied from the AndroidWebView implementation. +# Tests are not running for weblayer yet (crbug/1019521), this +# initial implementation will help to reproduce and debug any issues. +class AndroidWeblayer(ChromeAndroidBase): + """Weblayer-specific interface for Android.""" + + product = "android_weblayer" + # TODO(aluo): replace this with weblayer version after tests are working. + requirements = "requirements_android_webview.txt" + + def find_binary(self, venv_path=None, channel=None): + return "org.chromium.weblayer.shell" + + class AndroidWebview(ChromeAndroidBase): """Webview-specific interface for Android. @@ -1108,7 +1122,7 @@ def install(self, dest=None, channel="nightly"): _, _, decompress = self.platform_components() - resp = self._get(dest, channel) + resp = self._get(channel) decompress(resp.raw, dest=dest) path = find_executable("servo", os.path.join(dest, "servo")) st = os.stat(path) diff --git a/tests/wpt/web-platform-tests/tools/wpt/run.py b/tests/wpt/web-platform-tests/tools/wpt/run.py index 4c1f2c99128d..0c732e7ae8ae 100644 --- a/tests/wpt/web-platform-tests/tools/wpt/run.py +++ b/tests/wpt/web-platform-tests/tools/wpt/run.py @@ -106,7 +106,7 @@ def args_general(kwargs): def check_environ(product): - if product not in ("android_webview", "chrome", "chrome_android", "firefox", "firefox_android", "servo"): + if product not in ("android_weblayer", "android_webview", "chrome", "chrome_android", "firefox", "firefox_android", "servo"): config_builder = serve.build_config(os.path.join(wpt_root, "config.json")) # Override the ports to avoid looking for free ports config_builder.ssl = {"type": "none"} @@ -399,6 +399,31 @@ def setup_kwargs(self, kwargs): raise WptrunError("Unable to locate or install chromedriver binary") +class AndroidWeblayer(BrowserSetup): + name = "android_weblayer" + browser_cls = browser.AndroidWeblayer + + def setup_kwargs(self, kwargs): + if kwargs.get("device_serial"): + self.browser.device_serial = kwargs["device_serial"] + if kwargs["webdriver_binary"] is None: + webdriver_binary = self.browser.find_webdriver() + + if webdriver_binary is None: + install = self.prompt_install("chromedriver") + + if install: + logger.info("Downloading chromedriver") + webdriver_binary = self.browser.install_webdriver(dest=self.venv.bin_path) + else: + logger.info("Using webdriver binary %s" % webdriver_binary) + + if webdriver_binary: + kwargs["webdriver_binary"] = webdriver_binary + else: + raise WptrunError("Unable to locate or install chromedriver binary") + + class AndroidWebview(BrowserSetup): name = "android_webview" browser_cls = browser.AndroidWebview @@ -638,6 +663,7 @@ def setup_kwargs(self, kwargs): product_setup = { + "android_weblayer": AndroidWeblayer, "android_webview": AndroidWebview, "firefox": Firefox, "firefox_android": FirefoxAndroid, diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/docs/expectation.rst b/tests/wpt/web-platform-tests/tools/wptrunner/docs/expectation.rst index 77938abe03d5..e0bc7a850bf5 100644 --- a/tests/wpt/web-platform-tests/tools/wptrunner/docs/expectation.rst +++ b/tests/wpt/web-platform-tests/tools/wptrunner/docs/expectation.rst @@ -248,7 +248,7 @@ When used for expectation data, manifests have the following format: base test URL, in which case the fuzziness applies to any comparison with that URL, or takes the form lhs url, comparison, rhs url, in which case the fuzziness only applies for any - comparison involving that specifc pair of URLs. Some illustrative + comparison involving that specific pair of URLs. Some illustrative examples are given below. * Variables ``debug``, ``os``, ``version``, ``processor`` and diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/__init__.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/__init__.py index 957d2a689acd..da68ddb86187 100644 --- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/__init__.py +++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/__init__.py @@ -22,7 +22,8 @@ module global scope. """ -product_list = ["android_webview", +product_list = ["android_weblayer", + "android_webview", "chrome", "chrome_android", "chrome_ios", diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/android_weblayer.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/android_weblayer.py new file mode 100644 index 000000000000..93f4d6b630d2 --- /dev/null +++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/android_weblayer.py @@ -0,0 +1,135 @@ +import subprocess + +from .base import Browser, ExecutorBrowser, require_arg +from .base import get_timeout_multiplier # noqa: F401 +from .chrome import executor_kwargs as chrome_executor_kwargs +from ..webdriver_server import ChromeDriverServer +from ..executors.executorwebdriver import (WebDriverTestharnessExecutor, # noqa: F401 + WebDriverRefTestExecutor) # noqa: F401 +from ..executors.executorchrome import ChromeDriverWdspecExecutor # noqa: F401 + + +__wptrunner__ = {"product": "android_weblayer", + "check_args": "check_args", + "browser": "WeblayerShell", + "executor": {"testharness": "WebDriverTestharnessExecutor", + "reftest": "WebDriverRefTestExecutor", + "wdspec": "ChromeDriverWdspecExecutor"}, + "browser_kwargs": "browser_kwargs", + "executor_kwargs": "executor_kwargs", + "env_extras": "env_extras", + "env_options": "env_options", + "timeout_multiplier": "get_timeout_multiplier"} + +_wptserve_ports = set() + + +def check_args(**kwargs): + require_arg(kwargs, "webdriver_binary") + + +def browser_kwargs(test_type, run_info_data, config, **kwargs): + return {"binary": kwargs["binary"], + "device_serial": kwargs["device_serial"], + "webdriver_binary": kwargs["webdriver_binary"], + "webdriver_args": kwargs.get("webdriver_args")} + + +def executor_kwargs(test_type, server_config, cache_manager, run_info_data, + **kwargs): + # Use update() to modify the global list in place. + _wptserve_ports.update(set( + server_config['ports']['http'] + server_config['ports']['https'] + + server_config['ports']['ws'] + server_config['ports']['wss'] + )) + + executor_kwargs = chrome_executor_kwargs(test_type, server_config, + cache_manager, run_info_data, + **kwargs) + del executor_kwargs["capabilities"]["goog:chromeOptions"]["prefs"] + del executor_kwargs["capabilities"]["goog:chromeOptions"]["useAutomationExtension"] + capabilities = executor_kwargs["capabilities"] + # Note that for WebLayer, we launch a test shell and have the test shell use + # WebLayer. + # https://cs.chromium.org/chromium/src/weblayer/shell/android/shell_apk/ + capabilities["goog:chromeOptions"]["androidPackage"] = \ + "org.chromium.weblayer.shell" + capabilities["goog:chromeOptions"]["androidActivity"] = ".WebLayerShellActivity" + if kwargs.get('device_serial'): + capabilities["goog:chromeOptions"]["androidDeviceSerial"] = kwargs['device_serial'] + + # Workaround: driver.quit() cannot quit WeblayerShell. + executor_kwargs["pause_after_test"] = False + # Workaround: driver.close() is not supported. + executor_kwargs["restart_after_test"] = True + executor_kwargs["close_after_done"] = False + return executor_kwargs + + +def env_extras(**kwargs): + return [] + + +def env_options(): + # allow the use of host-resolver-rules in lieu of modifying /etc/hosts file + return {"server_host": "127.0.0.1"} + + +#TODO: refactor common elements of WeblayerShell and ChromeAndroidBrowser +class WeblayerShell(Browser): + """Chrome is backed by chromedriver, which is supplied through + ``wptrunner.webdriver.ChromeDriverServer``. + """ + + def __init__(self, logger, binary, webdriver_binary="chromedriver", + device_serial=None, + webdriver_args=None): + """Creates a new representation of Chrome. The `binary` argument gives + the browser binary to use for testing.""" + Browser.__init__(self, logger) + self.binary = binary + self.device_serial = device_serial + self.server = ChromeDriverServer(self.logger, + binary=webdriver_binary, + args=webdriver_args) + self.setup_adb_reverse() + + def _adb_run(self, args): + cmd = ['adb'] + if self.device_serial: + cmd.extend(['-s', self.device_serial]) + cmd.extend(args) + self.logger.info(' '.join(cmd)) + subprocess.check_call(cmd) + + def setup_adb_reverse(self): + self._adb_run(['wait-for-device']) + self._adb_run(['forward', '--remove-all']) + self._adb_run(['reverse', '--remove-all']) + # "adb reverse" basically forwards network connection from device to + # host. + for port in _wptserve_ports: + self._adb_run(['reverse', 'tcp:%d' % port, 'tcp:%d' % port]) + + def start(self, **kwargs): + self.server.start(block=False) + + def stop(self, force=False): + self.server.stop(force=force) + + def pid(self): + return self.server.pid + + def is_alive(self): + # TODO(ato): This only indicates the driver is alive, + # and doesn't say anything about whether a browser session + # is active. + return self.server.is_alive + + def cleanup(self): + self.stop() + self._adb_run(['forward', '--remove-all']) + self._adb_run(['reverse', '--remove-all']) + + def executor_browser(self): + return ExecutorBrowser, {"webdriver_url": self.server.url} diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/base.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/base.py index c8a26d042ebb..9e302107118f 100644 --- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/base.py +++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/base.py @@ -130,6 +130,7 @@ def __init__(self, status, message): class TimedRunner(object): def __init__(self, logger, func, protocol, url, timeout, extra_timeout): self.func = func + self.logger = logger self.result = None self.protocol = protocol self.url = url @@ -149,7 +150,8 @@ def run(self): # Add twice the timeout multiplier since the called function is expected to # wait at least self.timeout + self.extra_timeout and this gives some leeway - finished = self.result_flag.wait(self.timeout + 2 * self.extra_timeout) + timeout = self.timeout + 2 * self.extra_timeout if self.timeout else None + finished = self.result_flag.wait(timeout) if self.result is None: if finished: # flag is True unless we timeout; this *shouldn't* happen, but @@ -781,7 +783,7 @@ def __call__(self, payload): state = permission_params["state"] one_realm = permission_params.get("oneRealm", False) self.logger.debug("Setting permission %s to %s, oneRealm=%s" % (name, state, one_realm)) - self.protocol.set_permission.set_permission(name, state, one_realm) + self.protocol.set_permission.set_permission(descriptor, state, one_realm) class AddVirtualAuthenticatorAction(object): def __init__(self, logger, protocol): diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorwebdriver.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorwebdriver.py index 8ea59b2577d0..221f48a3ea9c 100644 --- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorwebdriver.py +++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorwebdriver.py @@ -208,11 +208,9 @@ class WebDriverSetPermissionProtocolPart(SetPermissionProtocolPart): def setup(self): self.webdriver = self.parent.webdriver - def set_permission(self, name, state, one_realm): + def set_permission(self, descriptor, state, one_realm): permission_params_dict = { - "descriptor": { - "name": name - }, + "descriptor": descriptor, "state": state, } if one_realm is not None: diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/protocol.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/protocol.py index 1a47fa9f1d8c..a1e8dacecb69 100644 --- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/protocol.py +++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/protocol.py @@ -312,10 +312,10 @@ class SetPermissionProtocolPart(ProtocolPart): name = "set_permission" @abstractmethod - def set_permission(self, name, state, one_realm=False): + def set_permission(self, descriptor, state, one_realm=False): """Set permission state. - :param name: The name of the permission to set. + :param descriptor: A PermissionDescriptor object. :param state: The state to set the permission to. :param one_realm: Whether to set the permission for only one realm.""" pass diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/testrunner.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/testrunner.py index 8dece20a8e93..f1b1faa4498c 100644 --- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/testrunner.py +++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/testrunner.py @@ -561,14 +561,17 @@ def run_test(self): self.logger.info("Run %d/%d" % (self.run_count, self.rerun)) self.send_message("reset") self.run_count += 1 - # Factor of 3 on the extra timeout here is based on allowing the executor - # at least test.timeout + 2 * extra_timeout to complete, - # which in turn is based on having several layers of timeout inside the executor - wait_timeout = (self.state.test.timeout * self.executor_kwargs['timeout_multiplier'] + - 3 * self.executor_cls.extra_timeout) - self.timer = threading.Timer(wait_timeout, self._timeout) + if self.debug_info is None: + # Factor of 3 on the extra timeout here is based on allowing the executor + # at least test.timeout + 2 * extra_timeout to complete, + # which in turn is based on having several layers of timeout inside the executor + wait_timeout = (self.state.test.timeout * self.executor_kwargs['timeout_multiplier'] + + 3 * self.executor_cls.extra_timeout) + self.timer = threading.Timer(wait_timeout, self._timeout) + self.send_message("run_test", self.state.test) - self.timer.start() + if self.timer: + self.timer.start() def _timeout(self): self.logger.info("Got timeout in harness") diff --git a/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-constants.tentative.html b/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-constants.tentative.html index 001a6cea4813..0ba2eb62375a 100644 --- a/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-constants.tentative.html +++ b/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-constants.tentative.html @@ -23,4 +23,22 @@ assert_true(trustedTypes.isHTML(trustedTypes.emptyHTML)); assert_equals(trustedTypes.emptyHTML.toString(), ""); }, 'trustedTypes.emptyHTML cannot be redefined via defineProperty.'); + + test(t => { + const empty = trustedTypes.emptyScript; + assert_true(trustedTypes.isScript(empty)); + assert_equals(empty.toString(), ""); + }, 'trustedTypes.emptyScript returns the intended value.'); + + test(t => { + try { trustedTypes.emptyScript = 'fake'; } catch { } + assert_true(trustedTypes.isScript(trustedTypes.emptyScript)); + assert_equals(trustedTypes.emptyScript.toString(), ""); + }, 'trustedTypes.emptyScript cannot be redefined.'); + + test(t => { + try { Object.defineProperty(TrustedTypes, 'emptyScript', 'fake'); } catch { } + assert_true(trustedTypes.isScript(trustedTypes.emptyScript)); + assert_equals(trustedTypes.emptyScript.toString(), ""); + }, 'trustedTypes.emptyScript cannot be redefined via defineProperty.'); diff --git a/tests/wpt/web-platform-tests/trusted-types/block-text-node-insertion-into-script-element.tentative.html b/tests/wpt/web-platform-tests/trusted-types/block-text-node-insertion-into-script-element.tentative.html index a6aa061f7307..04b19f7e4211 100644 --- a/tests/wpt/web-platform-tests/trusted-types/block-text-node-insertion-into-script-element.tentative.html +++ b/tests/wpt/web-platform-tests/trusted-types/block-text-node-insertion-into-script-element.tentative.html @@ -3,64 +3,235 @@ -
+ + diff --git a/tests/wpt/web-platform-tests/wai-aria/README.md b/tests/wpt/web-platform-tests/wai-aria/README.md index 66d6d087f68e..4e1a7706e333 100644 --- a/tests/wpt/web-platform-tests/wai-aria/README.md +++ b/tests/wpt/web-platform-tests/wai-aria/README.md @@ -3,7 +3,7 @@ Wai-aria: Tests for the WAI-ARIA Recommendations The [WAI ARIA Recommendations](https://www.w3.org/TR/wai-aria) define extensions to HTML4/5 for support of extended semantics. These -semantics make it easier for Assistive Technologies to intepret and +semantics make it easier for Assistive Technologies to interpret and present content to users with varying physical and cognitive abilities. The purpose of these tests is to help ensure that user agents support the diff --git a/tests/wpt/web-platform-tests/web-animations/interfaces/Animatable/animate.html b/tests/wpt/web-platform-tests/web-animations/interfaces/Animatable/animate.html index 2d09cdf4545e..95d7db7bb3ba 100644 --- a/tests/wpt/web-platform-tests/web-animations/interfaces/Animatable/animate.html +++ b/tests/wpt/web-platform-tests/web-animations/interfaces/Animatable/animate.html @@ -241,18 +241,28 @@ }, 'Element.animate() does NOT trigger a style change event'); // Tests on pseudo-elements +// Some tests occur twice (on pseudo-elements with and without content) +// in order to test both code paths for tree-abiding pseudo-elements in blink. test(t => { const div = createDiv(t); div.classList.add('pseudo'); + getComputedStyle(div,"::before").content; // Sync style const anim = div.animate(null, {pseudoElement: '::before'}); assert_class_string(anim, 'Animation', 'The returned object is an Animation'); }, 'animate() with pseudoElement parameter creates an Animation object'); +test(t => { + const div = createDiv(t); + const anim = div.animate(null, {pseudoElement: '::before'}); + assert_class_string(anim, 'Animation', 'The returned object is an Animation'); +}, 'animate() with pseudoElement parameter without content creates an Animation object'); + test(t => { const div = createDiv(t); div.classList.add('pseudo'); div.style.display = 'list-item'; + getComputedStyle(div,"::marker").content; // Sync style const anim = div.animate(null, {pseudoElement: '::marker'}); assert_class_string(anim, 'Animation', 'The returned object is an Animation for ::marker'); }, 'animate() with pseudoElement parameter creates an Animation object for ::marker'); @@ -268,31 +278,45 @@ test(t => { const div = createDiv(t); div.classList.add('pseudo'); + getComputedStyle(div,"::before").content; // Sync style const anim = div.animate(null, {pseudoElement: '::before'}); + assert_equals(anim.effect.target, div, 'The returned element has the correct target element'); assert_equals(anim.effect.pseudoElement, '::before', - 'The returned Animation targets to the correct selector'); + 'The returned Animation targets the correct selector'); }, 'animate() with pseudoElement an Animation object targeting ' + - 'to the correct pseudo-element'); + 'the correct pseudo-element'); + +test(t => { + const div = createDiv(t); + const anim = div.animate(null, {pseudoElement: '::before'}); + assert_equals(anim.effect.target, div, 'The returned element has the correct target element'); + assert_equals(anim.effect.pseudoElement, '::before', + 'The returned Animation targets the correct selector'); +}, 'animate() with pseudoElement without content creates an Animation object targeting ' + + 'the correct pseudo-element'); test(t => { const div = createDiv(t); div.classList.add('pseudo'); div.style.display = 'list-item'; + getComputedStyle(div,"::marker").content; // Sync style const anim = div.animate(null, {pseudoElement: '::marker'}); + assert_equals(anim.effect.target, div, 'The returned element has the correct target element'); assert_equals(anim.effect.pseudoElement, '::marker', - 'The returned Animation targets to the correct selector'); + 'The returned Animation targets the correct selector'); }, 'animate() with pseudoElement an Animation object targeting ' + - 'to the correct pseudo-element for ::marker'); + 'the correct pseudo-element for ::marker'); test(t => { const div = createDiv(t); div.classList.add('pseudo'); div.textContent = 'foo'; const anim = div.animate(null, {pseudoElement: '::first-line'}); + assert_equals(anim.effect.target, div, 'The returned element has the correct target element'); assert_equals(anim.effect.pseudoElement, '::first-line', - 'The returned Animation targets to the correct selector'); + 'The returned Animation targets the correct selector'); }, 'animate() with pseudoElement an Animation object targeting ' + - 'to the correct pseudo-element for ::first-line'); + 'the correct pseudo-element for ::first-line'); diff --git a/tests/wpt/web-platform-tests/web-animations/interfaces/KeyframeEffect/target.html b/tests/wpt/web-platform-tests/web-animations/interfaces/KeyframeEffect/target.html index 10f42eea4e5b..a9827d64d3d0 100644 --- a/tests/wpt/web-platform-tests/web-animations/interfaces/KeyframeEffect/target.html +++ b/tests/wpt/web-platform-tests/web-animations/interfaces/KeyframeEffect/target.html @@ -1,11 +1,17 @@ -KeyframeEffect.target +KeyframeEffect.target and .pseudoElement +
diff --git a/tests/wpt/web-platform-tests/web-animations/timing-model/animations/reverse-running-animation-ref.html b/tests/wpt/web-platform-tests/web-animations/timing-model/animations/reverse-running-animation-ref.html index 0aaa0443649a..7fcdf9156f82 100644 --- a/tests/wpt/web-platform-tests/web-animations/timing-model/animations/reverse-running-animation-ref.html +++ b/tests/wpt/web-platform-tests/web-animations/timing-model/animations/reverse-running-animation-ref.html @@ -1,17 +1,18 @@ Reference for reverse running animation -
-

This test reverses the animation shortly after the box starts moving. If - the box doesn't move back to its original position, the test has failed. +

+ This test reverses the animation shortly after the box starts moving. If + any blue pixels are visible the test has failed.

diff --git a/tests/wpt/web-platform-tests/web-animations/timing-model/animations/reverse-running-animation.html b/tests/wpt/web-platform-tests/web-animations/timing-model/animations/reverse-running-animation.html index 584aa0029ea2..c5179a72c9dc 100644 --- a/tests/wpt/web-platform-tests/web-animations/timing-model/animations/reverse-running-animation.html +++ b/tests/wpt/web-platform-tests/web-animations/timing-model/animations/reverse-running-animation.html @@ -6,36 +6,63 @@
-

This test reverses the animation shortly after the box starts moving. If - the box doesn't move back to its original position, the test has failed. -

+
+

+ This test reverses the animation shortly after the box starts moving. If + any blue pixels are visible the test has failed. +

diff --git a/tests/wpt/web-platform-tests/web-animations/timing-model/animations/setting-the-current-time-of-an-animation.html b/tests/wpt/web-platform-tests/web-animations/timing-model/animations/setting-the-current-time-of-an-animation.html index b1fc43e79522..6687ad7612e2 100644 --- a/tests/wpt/web-platform-tests/web-animations/timing-model/animations/setting-the-current-time-of-an-animation.html +++ b/tests/wpt/web-platform-tests/web-animations/timing-model/animations/setting-the-current-time-of-an-animation.html @@ -67,5 +67,74 @@ }, 'Setting the current time of a pausing animation applies a pending playback' + ' rate'); + +// The following tests verify that currentTime can be set outside of the normal +// bounds of an animation. + +promise_test(async t => { + const anim = createDiv(t).animate(null, 100 * MS_PER_SEC); + await anim.ready; + + anim.currentTime = 200 * MS_PER_SEC; + assert_equals(anim.playState, 'finished'); + assert_time_equals_literal(anim.currentTime, 200 * MS_PER_SEC); +}, 'Setting the current time after the end with a positive playback rate'); + +promise_test(async t => { + const anim = createDiv(t).animate(null, 100 * MS_PER_SEC); + await anim.ready; + + anim.currentTime = -100 * MS_PER_SEC; + assert_equals(anim.playState, 'running'); + assert_time_equals_literal(anim.currentTime, -100 * MS_PER_SEC); + + await waitForAnimationFrames(2); + assert_greater_than(anim.currentTime, -100 * MS_PER_SEC); +}, 'Setting a negative current time with a positive playback rate'); + +promise_test(async t => { + const anim = createDiv(t).animate(null, 100 * MS_PER_SEC); + anim.updatePlaybackRate(-1); + await anim.ready; + + anim.currentTime = 200 * MS_PER_SEC; + assert_equals(anim.playState, 'running'); + assert_time_equals_literal(anim.currentTime, 200 * MS_PER_SEC); + + await waitForAnimationFrames(2); + assert_less_than(anim.currentTime, 200 * MS_PER_SEC); +}, 'Setting the current time after the end with a negative playback rate'); + +promise_test(async t => { + const anim = createDiv(t).animate(null, 100 * MS_PER_SEC); + anim.updatePlaybackRate(-1); + await anim.ready; + + anim.currentTime = -100 * MS_PER_SEC; + assert_equals(anim.playState, 'finished'); + assert_time_equals_literal(anim.currentTime, -100 * MS_PER_SEC); +}, 'Setting a negative current time with a negative playback rate'); + +promise_test(async t => { + const anim = createDiv(t).animate(null, 100 * MS_PER_SEC); + anim.updatePlaybackRate(0); + await anim.ready; + + // An animation with a playback rate of zero is never in the finished state + // even if currentTime is outside the normal range of [0, effect end]. + anim.currentTime = 200 * MS_PER_SEC; + assert_equals(anim.playState, 'running'); + assert_time_equals_literal(anim.currentTime, 200 * MS_PER_SEC); + await waitForAnimationFrames(2); + assert_time_equals_literal(anim.currentTime, 200 * MS_PER_SEC); + + anim.currentTime = -200 * MS_PER_SEC; + assert_equals(anim.playState, 'running'); + assert_time_equals_literal(anim.currentTime, -200 * MS_PER_SEC); + await waitForAnimationFrames(2); + assert_time_equals_literal(anim.currentTime, -200 * MS_PER_SEC); + +}, 'Setting the current time on an animation with a zero playback rate'); + diff --git a/tests/wpt/web-platform-tests/web-animations/timing-model/animations/setting-the-playback-rate-of-an-animation.html b/tests/wpt/web-platform-tests/web-animations/timing-model/animations/setting-the-playback-rate-of-an-animation.html index 9d07d53df461..0522c43b16a8 100644 --- a/tests/wpt/web-platform-tests/web-animations/timing-model/animations/setting-the-playback-rate-of-an-animation.html +++ b/tests/wpt/web-platform-tests/web-animations/timing-model/animations/setting-the-playback-rate-of-an-animation.html @@ -57,5 +57,54 @@ assert_equals(animation.playbackRate, 1); }, 'Setting the playback rate should clear any pending playback rate'); +promise_test(async t => { + const animation = createDiv(t).animate(null, 100 * MS_PER_SEC); + animation.currentTime = 50 * MS_PER_SEC; + animation.pause(); + await animation.ready; + animation.playbackRate = 2; + // Ensure that the animation remains paused and current time is preserved. + assert_equals(animation.playState, 'paused'); + assert_time_equals_literal(animation.currentTime, 50 * MS_PER_SEC); +}, 'Setting the playback rate while paused preserves the current time and ' + + 'state'); + +promise_test(async t => { + const animation = createDiv(t).animate(null, 100 * MS_PER_SEC); + animation.currentTime = 150 * MS_PER_SEC; + await animation.ready; + animation.playbackRate = 2; + // Ensure that current time is preserved and does not snap to the effect end + // time. + assert_equals(animation.playState, 'finished'); + assert_time_equals_literal(animation.currentTime, 150 * MS_PER_SEC); +}, 'Setting the playback rate while finished preserves the current time'); + +promise_test(async t => { + const animation = createDiv(t).animate(null, 100 * MS_PER_SEC); + animation.currentTime = 150 * MS_PER_SEC; + await animation.ready; + assert_equals(animation.playState, 'finished'); + animation.playbackRate = -1; + // Ensure that current time does not snap to the effect end time and that the + // animation resumes playing. + assert_equals(animation.playState, 'running'); + assert_time_equals_literal(animation.currentTime, 150 * MS_PER_SEC); + await waitForAnimationFrames(2); + assert_less_than(animation.currentTime, 150 * MS_PER_SEC); +}, 'Reversing the playback rate while finished restarts the animation'); + + +promise_test(async t => { + const animation = createDiv(t).animate(null, 100 * MS_PER_SEC); + animation.currentTime = 50 * MS_PER_SEC; + await animation.ready; + animation.playbackRate = 0; + // Ensure that current time does not drift. + assert_equals(animation.playState, 'running'); + await waitForAnimationFrames(2); + assert_time_equals_literal(animation.currentTime, 50 * MS_PER_SEC); +}, 'Setting a zero playback rate while running preserves the current time'); + diff --git a/tests/wpt/web-platform-tests/web-animations/timing-model/animations/setting-the-start-time-of-an-animation.html b/tests/wpt/web-platform-tests/web-animations/timing-model/animations/setting-the-start-time-of-an-animation.html index a1727994bdb9..14c9c6010058 100644 --- a/tests/wpt/web-platform-tests/web-animations/timing-model/animations/setting-the-start-time-of-an-animation.html +++ b/tests/wpt/web-platform-tests/web-animations/timing-model/animations/setting-the-start-time-of-an-animation.html @@ -266,5 +266,36 @@ assert_time_equals_literal(parseInt(anim.currentTime.toPrecision(5), 10), 50 * MS_PER_SEC); }, 'Setting the start time of a playing animation applies a pending playback rate'); +promise_test(async t => { + const anim = createDiv(t).animate(null, 100 * MS_PER_SEC); + await anim.ready; + assert_equals(anim.playState, 'running'); + + // Setting the start time updates the finished state. The hold time is not + // constrained by the effect end time. + anim.startTime = -200 * MS_PER_SEC; + assert_equals(anim.playState, 'finished'); + + assert_times_equal(anim.currentTime, + document.timeline.currentTime + 200 * MS_PER_SEC); +}, 'Setting the start time on a running animation updates the play state'); + +promise_test(async t => { + const anim = createDiv(t).animate(null, 100 * MS_PER_SEC); + await anim.ready; + + // Setting the start time updates the finished state. The hold time is not + // constrained by the normal range of the animation time. + anim.currentTime = 100 * MS_PER_SEC; + assert_equals(anim.playState, 'finished'); + anim.playbackRate = -1; + assert_equals(anim.playState, 'running'); + anim.startTime = -200 * MS_PER_SEC; + assert_equals(anim.playState, 'finished'); + assert_times_equal(anim.currentTime, + -document.timeline.currentTime - 200 * MS_PER_SEC); +}, 'Setting the start time on a reverse running animation updates the play ' + + 'state'); + diff --git a/tests/wpt/web-platform-tests/web-nfc/NDEFErrorEvent_constructor.https.html b/tests/wpt/web-platform-tests/web-nfc/NDEFErrorEvent_constructor.https.html deleted file mode 100644 index 243893620c64..000000000000 --- a/tests/wpt/web-platform-tests/web-nfc/NDEFErrorEvent_constructor.https.html +++ /dev/null @@ -1,20 +0,0 @@ - -NDEFErrorEvent constructor - - - - diff --git a/tests/wpt/web-platform-tests/web-nfc/NDEFMessage_constructor.https.html b/tests/wpt/web-platform-tests/web-nfc/NDEFMessage_constructor.https.html index f32f179b9579..1c842f5c7b61 100644 --- a/tests/wpt/web-platform-tests/web-nfc/NDEFMessage_constructor.https.html +++ b/tests/wpt/web-platform-tests/web-nfc/NDEFMessage_constructor.https.html @@ -13,7 +13,6 @@ test(() => { const message = new NDEFMessage(null); - assert_equals(message.url.length, 0, 'empty url'); assert_equals(message.records.length, 0, 'empty records'); }, 'NDEFMessage constructor with null init dict'); diff --git a/tests/wpt/web-platform-tests/web-nfc/NDEFReader_scan.https.html b/tests/wpt/web-platform-tests/web-nfc/NDEFReader_scan.https.html index 78160fbcb2ab..d3101ab8e1a9 100644 --- a/tests/wpt/web-platform-tests/web-nfc/NDEFReader_scan.https.html +++ b/tests/wpt/web-platform-tests/web-nfc/NDEFReader_scan.https.html @@ -35,20 +35,6 @@ await Promise.all(promises); }, "Test that NDEFReader.scan rejects if signal is not an AbortSignal."); -promise_test(async t => { - await waitSyntaxErrorPromise(t, {id: "www.a.com"}); -}, "Test that NDEFReader.scan rejects if NDEFScanOptions.id is missing \ -components."); - -promise_test(async t => { - await waitSyntaxErrorPromise(t, {id: "invalid"}); -}, "Test that NDEFReader.scan rejects if NDEFScanOptions.id is invalid."); - -promise_test(async t => { - await waitSyntaxErrorPromise(t, {id: "http://a.com"}); -}, "Test that NDEFReader.scan rejects if NDEFScanOptions.id has wrong \ -protocol."); - promise_test(async t => { if (window.testRunner) { // Deny nfc permissions for Chromium testrunner. @@ -59,6 +45,23 @@ await promise_rejects(t, 'NotAllowedError', reader.scan()); }, "NDEFReader.scan should fail if user permission is not granted."); +// We do not provide NFC mock here to simulate that there has no available +// implementation for NFC Mojo interface. +promise_test(async t => { + if (window.testRunner) { + window.testRunner.setPermission('nfc', 'granted', + location.origin, location.origin); + } + const reader = new NDEFReader(); + const readerWatcher = new EventWatcher(t, reader, ["reading", "error"]); + const promise = readerWatcher.wait_for("error").then(event => { + assert_true(event instanceof ErrorEvent); + }); + await promise_rejects(t, 'NotSupportedError', reader.scan()); + await promise; +}, "Test that an error event happens if no implementation for NFC Mojo interface \ +is available."); + nfc_test(async (t, mockNFC) => { mockNFC.setHWStatus(NFCHWStatus.DISABLED); const reader = new NDEFReader(); @@ -93,56 +96,11 @@ assert_true(event instanceof NDEFReadingEvent); controller.abort(); }); - await reader.scan({signal : controller.signal, url: "https://a.com"}); - - mockNFC.setReadingMessage(createMessage([createTextRecord(test_text_data)])); - await promise; -}, "Test that NDEFReader.scan succeeds if NDEFScanOptions.url is valid URL."); - -nfc_test(async (t, mockNFC) => { - const reader = new NDEFReader(); - const controller = new AbortController(); - const readerWatcher = new EventWatcher(t, reader, ["reading", "error"]); - const promise = readerWatcher.wait_for("reading").then(event => { - assert_true(event instanceof NDEFReadingEvent); - controller.abort(); - }); - await reader.scan({signal : controller.signal, url: "https://a.com/*"}); - - mockNFC.setReadingMessage(createMessage([createTextRecord(test_text_data)])); - await promise; -}, "Test that NDEFReader.scan succeeds if NDEFScanOptions.url is valid URL \ -with '*' wildcard character in path."); - -nfc_test(async (t, mockNFC) => { - const reader = new NDEFReader(); - const controller = new AbortController(); - const readerWatcher = new EventWatcher(t, reader, ["reading", "error"]); - const promise = readerWatcher.wait_for("reading").then(event => { - assert_true(event instanceof NDEFReadingEvent); - controller.abort(); - }); - await reader.scan({signal : controller.signal, url: "https://a.com/*/bar"}); - - mockNFC.setReadingMessage(createMessage([createTextRecord(test_text_data)])); - await promise; -}, "Test that NDEFReader.scan succeeds if NDEFScanOptions.url is valid URL \ -with '*' wildcard character in the beginning of path component followed by \ -subpath."); - -nfc_test(async (t, mockNFC) => { - const reader = new NDEFReader(); - const controller = new AbortController(); - const readerWatcher = new EventWatcher(t, reader, ["reading", "error"]); - const promise = readerWatcher.wait_for("reading").then(event => { - assert_true(event instanceof NDEFReadingEvent); - controller.abort(); - }); - await reader.scan({signal : controller.signal, url: ""}); + await reader.scan({signal : controller.signal}); mockNFC.setReadingMessage(createMessage([createTextRecord(test_text_data)])); await promise; -}, "Test that NDEFReader.scan succeeds if NDEFScanOptions.url is empty."); +}, "Test that NDEFReader.scan matches any ids if NDEFScanOptions.id is undefined."); nfc_test(async (t, mockNFC) => { const reader = new NDEFReader(); diff --git a/tests/wpt/web-platform-tests/web-nfc/NDEFReader_scan_filter.https.html b/tests/wpt/web-platform-tests/web-nfc/NDEFReader_scan_filter.https.html index 4c1e7de44008..850d9b9c0883 100644 --- a/tests/wpt/web-platform-tests/web-nfc/NDEFReader_scan_filter.https.html +++ b/tests/wpt/web-platform-tests/web-nfc/NDEFReader_scan_filter.https.html @@ -62,12 +62,11 @@ message: createMessage([createRecord('w3.org:xyz', test_buffer_data)]) }, { - desc: "Test that the url of NDEFScanOptions filters relevant data" + + desc: "Test that the id of NDEFScanOptions filters relevant data" + " sources correctly.", - scanOptions: {id: `${location.origin}/custom/path`}, - unmatchedScanOptions: {id: `${location.origin}/custom/invalid`}, - message: {url: `${location.origin}/custom/path/update`, - records: [createTextRecord(test_text_data)]} + scanOptions: {id: test_record_id}, + unmatchedScanOptions: {id: 'non_sense_id'}, + message: {records: [createTextRecord(test_text_data)]} }, { desc: "Test that the mediaType of NDEFScanOptions filters relevant data" + @@ -131,12 +130,10 @@ }, { desc: "Test that filtering 'text' record from different messages" + - " correctly with NDEFScanOptions' url set.", - scanOptions: {id: `${location.origin}/custom/path`}, - message: {url: `${location.origin}/custom/path/update`, - records: [createTextRecord(test_text_data)]}, - unmatchedMessage: {url: `${location.origin}/custom/invalid`, - records: [createUrlRecord(test_url_data)]} + " correctly with NDEFScanOptions' id set.", + scanOptions: {id: test_record_id}, + message: {records: [createTextRecord(test_text_data)]}, + unmatchedMessage: {records: [createRecord('url', test_url_data, 'random_record_id')]} }, { desc: "Test that filtering 'mime' record from different messages" + diff --git a/tests/wpt/web-platform-tests/web-nfc/NDEFReadingEvent_constructor.https.html b/tests/wpt/web-platform-tests/web-nfc/NDEFReadingEvent_constructor.https.html index 3d734105e9ce..cc56f8a18bdc 100644 --- a/tests/wpt/web-platform-tests/web-nfc/NDEFReadingEvent_constructor.https.html +++ b/tests/wpt/web-platform-tests/web-nfc/NDEFReadingEvent_constructor.https.html @@ -26,7 +26,6 @@ test(() => { const event = new NDEFReadingEvent('type', {serialNumber: '', message: null}); assert_equals(0, event.message.records.length, 'no records'); - assert_equals(0, event.message.url.length, 'empty url'); }, 'NDEFReadingEvent constructor with null message'); test(() => { diff --git a/tests/wpt/web-platform-tests/web-nfc/NDEFRecord_constructor.https.html b/tests/wpt/web-platform-tests/web-nfc/NDEFRecord_constructor.https.html index 1b2dda9bfc87..f3546b99dcb9 100644 --- a/tests/wpt/web-platform-tests/web-nfc/NDEFRecord_constructor.https.html +++ b/tests/wpt/web-platform-tests/web-nfc/NDEFRecord_constructor.https.html @@ -16,6 +16,12 @@ 'The record has neither type nor data.'); }, 'NDEFRecord constructor with null init dict'); + test(() => { + assert_throws(new TypeError, () => new NDEFRecord( + createRecord('empty', test_text_data, test_record_id)), + 'id does not apply for empty record type.'); + }, 'NDEFRecord constructor with empty record type and id'); + test(() => { assert_throws(new TypeError, () => new NDEFRecord( createRecord('empty', test_text_data, test_record_id, 'text/plain')), diff --git a/tests/wpt/web-platform-tests/web-nfc/NDEFWriter_push.https.html b/tests/wpt/web-platform-tests/web-nfc/NDEFWriter_push.https.html index a33b1fab3034..bacbcaaeff39 100644 --- a/tests/wpt/web-platform-tests/web-nfc/NDEFWriter_push.https.html +++ b/tests/wpt/web-platform-tests/web-nfc/NDEFWriter_push.https.html @@ -124,7 +124,7 @@ }, "Test that promise is rejected with SyntaxError if NDEFMessageSource contains\ invalid records."); - promise_test(async t => { +promise_test(async t => { if (window.testRunner) { // Deny nfc permissions for Chromium testrunner. window.testRunner.setPermission('nfc', 'denied', @@ -134,6 +134,18 @@ await promise_rejects(t, 'NotAllowedError', writer.push(test_text_data)); }, 'NDEFWriter.push should fail if user permission is not granted.'); +// We do not provide NFC mock here to simulate that there has no available +// implementation for NFC Mojo interface. +promise_test(async t => { + if (window.testRunner) { + // Deny nfc permissions for Chromium testrunner. + window.testRunner.setPermission('nfc', 'granted', + location.origin, location.origin); + } + const writer = new NDEFWriter(); + await promise_rejects(t, 'NotSupportedError', writer.push(test_text_data)); +}, 'NDEFWriter.push should fail if no implementation for NFC Mojo interface is available.'); + nfc_test(async (t, mockNFC) => { const writer = new NDEFWriter(); const controller = new AbortController(); @@ -207,14 +219,6 @@ t, 'NotSupportedError', writer.push(new ArrayBuffer(32 * 1024 + 1))); }, "Reject promise with NotSupportedError if NFC message size exceeds 32KB."); -promise_test(async t => { - const writer = new NDEFWriter(); - const message = createMessage([createTextRecord(test_text_data)]); - message.url = '%00/invalid/ path'; - await promise_rejects(t, 'SyntaxError', writer.push(message)); -}, "Reject promise with SyntaxError if WebNFC Id cannot be created from \ -provided URL."); - promise_test(async t => { const writer = new NDEFWriter(); await promise_rejects( diff --git a/tests/wpt/web-platform-tests/web-nfc/idlharness.https.window.js b/tests/wpt/web-platform-tests/web-nfc/idlharness.https.window.js index 74ffc21b2204..a1eb3386b73a 100644 --- a/tests/wpt/web-platform-tests/web-nfc/idlharness.https.window.js +++ b/tests/wpt/web-platform-tests/web-nfc/idlharness.https.window.js @@ -25,7 +25,6 @@ idl_test( NDEFRecord: [`new NDEFRecord(${JSON.stringify(record)});`], NDEFMessage: [`new NDEFMessage(${JSON.stringify(message)});`], NDEFReadingEvent: [`new NDEFReadingEvent("reading", { message: ${JSON.stringify(message)} })`], - NDEFErrorEvent: ['new NDEFErrorEvent("error", { error: new DOMException() });'], }); } ); diff --git a/tests/wpt/web-platform-tests/web-nfc/resources/nfc-helpers.js b/tests/wpt/web-platform-tests/web-nfc/resources/nfc-helpers.js index 3ce725a7c475..b9e260ac7140 100644 --- a/tests/wpt/web-platform-tests/web-nfc/resources/nfc-helpers.js +++ b/tests/wpt/web-platform-tests/web-nfc/resources/nfc-helpers.js @@ -157,9 +157,6 @@ function assertNDEFMessagesEqual(providedMessage, receivedMessage) { // NDEFWriter.onreading() EventHandler and another that is provided to mock NFC // service. function assertWebNDEFMessagesEqual(message, expectedMessage) { - if (expectedMessage.url) - assert_equals(message.url, expectedMessage.url); - assert_equals(message.records.length, expectedMessage.records.length); for(let i in message.records) { diff --git a/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworkletglobalscope-sample-rate.https.html b/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworkletglobalscope-sample-rate.https.html index d87e35b571d7..84458d0aaa77 100644 --- a/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworkletglobalscope-sample-rate.https.html +++ b/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworkletglobalscope-sample-rate.https.html @@ -12,30 +12,32 @@ diff --git a/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworkletglobalscope-timing-info.https.html b/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworkletglobalscope-timing-info.https.html index 79d402c51862..5f4bee7c5312 100644 --- a/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworkletglobalscope-timing-info.https.html +++ b/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworkletglobalscope-timing-info.https.html @@ -12,45 +12,47 @@ diff --git a/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworkletnode-onerror.https.html b/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworkletnode-onerror.https.html index 0a9966add85c..0914edbb3b0a 100644 --- a/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworkletnode-onerror.https.html +++ b/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworkletnode-onerror.https.html @@ -12,43 +12,45 @@ diff --git a/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworkletnode-output-channel-count.https.html b/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworkletnode-output-channel-count.https.html index 9d65d872b987..a8a7f5ed1de7 100644 --- a/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworkletnode-output-channel-count.https.html +++ b/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworkletnode-output-channel-count.https.html @@ -13,7 +13,7 @@ const audit = Audit.createTaskRunner(); const context = new AudioContext(); - (async function () { + setup(async function () { await context.audioWorklet.addModule( 'processors/channel-count-processor.js'); @@ -76,7 +76,7 @@ }); audit.run(); - })(); + }); diff --git a/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/cors-check.https.html b/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/cors-check.https.html index a2fa8040b2c6..38bd94a037c3 100644 --- a/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/cors-check.https.html +++ b/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/cors-check.https.html @@ -14,60 +14,62 @@ diff --git a/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/no-cors.https.html b/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/no-cors.https.html index 38324a9f67a6..de2f0b7dd3b6 100644 --- a/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/no-cors.https.html +++ b/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/no-cors.https.html @@ -14,59 +14,61 @@ diff --git a/tests/wpt/web-platform-tests/webauthn/resources/common-inputs.js b/tests/wpt/web-platform-tests/webauthn/resources/common-inputs.js new file mode 100644 index 000000000000..8370f7f079a0 --- /dev/null +++ b/tests/wpt/web-platform-tests/webauthn/resources/common-inputs.js @@ -0,0 +1,34 @@ +const ES256_ID = -7; +const CHALLENGE = "climb the mountain"; + +const PUBLIC_KEY_RP = { + id: window.location.hostname, + name: "Example RP", +}; + +const PUBLIC_KEY_USER = { + id: new TextEncoder().encode("123456789"), + name: "madeline@example.com", + displayName: "Madeline", + icon: "https://example.com/celeste.png" +}; + +// ES256. +const PUBLIC_KEY_PARAMETERS = [{ + type: "public-key", + alg: ES256_ID, +}]; + +const AUTHENTICATOR_SELECTION_CRITERIA = { + requireResidentKey: false, + userVerification: "discouraged", +}; + +const MAKE_CREDENTIAL_OPTIONS = { + challenge: new TextEncoder("utf-8").encode(CHALLENGE), + rp: PUBLIC_KEY_RP, + user: PUBLIC_KEY_USER, + pubKeyCredParams: PUBLIC_KEY_PARAMETERS, + authenticatorSelection: AUTHENTICATOR_SELECTION_CRITERIA, + excludeCredentials: [], +}; diff --git a/tests/wpt/web-platform-tests/webauthn/resources/utils.js b/tests/wpt/web-platform-tests/webauthn/resources/utils.js new file mode 100644 index 000000000000..f361a94d2e4f --- /dev/null +++ b/tests/wpt/web-platform-tests/webauthn/resources/utils.js @@ -0,0 +1,335 @@ +"use strict"; + +// Encodes |data| into base64url string. There is no '=' padding, and the +// characters '-' and '_' must be used instead of '+' and '/', respectively. +function base64urlEncode(data) { + let result = btoa(data); + return result.replace(/=+$/g, '').replace(/\+/g, "-").replace(/\//g, "_"); +} + +// Decode |encoded| using base64url decoding. +function base64urlDecode(encoded) { + return atob(encoded.replace(/\-/g, "+").replace(/\_/g, "/")); +} + +// Encodes a Uint8Array as a base64url string. +function uint8ArrayToBase64url(array) { + return base64urlEncode(String.fromCharCode.apply(null, array)); +} + +// Convert a EC signature from DER to a concatenation of the r and s parameters, +// as expected by the subtle crypto API. +function convertDERSignatureToSubtle(der) { + let index = -1; + const SEQUENCE = 0x30; + const INTEGER = 0x02; + assert_equals(der[++index], SEQUENCE); + + let size = der[++index]; + assert_equals(size + 2, der.length); + + assert_equals(der[++index], INTEGER); + let rSize = der[++index]; + ++index; + while (der[index] == 0) { + ++index; + --rSize; + } + let r = der.slice(index, index + rSize); + index += rSize; + + assert_equals(der[index], INTEGER); + let sSize = der[++index]; + ++index; + while (der[index] == 0) { + ++index; + --sSize; + } + let s = der.slice(index, index + sSize); + assert_equals(index + sSize, der.length); + + let result = new Uint8Array(64); + result.set(r, 32 - rSize); + result.set(s, 64 - sSize); + return result; +}; + +function coseObjectToJWK(cose) { + // Convert an object representing a COSE_Key encoded public key into a JSON + // Web Key object. + // https://tools.ietf.org/html/rfc7517 + + // The example used on the test is a ES256 key, so we only implement that. + let jwk = {}; + if (cose.type != 2) + assert_unreached("Unknown type: " + cose.type); + + jwk.kty = "EC"; + if (cose.alg != ES256_ID) + assert_unreached("Unknown alg: " + cose.alg); + + if (cose.crv != 1) + assert_unreached("Unknown curve: " + jwk.crv); + + jwk.crv = "P-256"; + jwk.x = uint8ArrayToBase64url(cose.x); + jwk.y = uint8ArrayToBase64url(cose.y); + return jwk; +} + +function parseCosePublicKey(coseKey) { + // Parse a CTAP2 canonical CBOR encoding form key. + // https://fidoalliance.org/specs/fido-v2.0-id-20180227/fido-client-to-authenticator-protocol-v2.0-id-20180227.html#ctap2-canonical-cbor-encoding-form + let parsed = new Cbor(coseKey); + let cbor = parsed.getCBOR(); + let key = { + type: cbor[1], + alg: cbor[3], + }; + if (key.type != 2) + assert_unreached("Unknown key type: " + key.type); + + key.crv = cbor[-1]; + key.x = new Uint8Array(cbor[-2]); + key.y = new Uint8Array(cbor[-3]); + return key; +} + +function parseAttestedCredentialData(attestedCredentialData) { + // Parse the attested credential data according to + // https://w3c.github.io/webauthn/#attested-credential-data + let aaguid = attestedCredentialData.slice(0, 16); + let credentialIdLength = (attestedCredentialData[16] << 8) + + attestedCredentialData[17]; + let credentialId = + attestedCredentialData.slice(18, 18 + credentialIdLength); + let credentialPublicKey = parseCosePublicKey( + attestedCredentialData.slice(18 + credentialIdLength, + attestedCredentialData.length)); + + return { aaguid, credentialIdLength, credentialId, credentialPublicKey }; +} + +function parseAuthenticatorData(authenticatorData) { + // Parse the authenticator data according to + // https://w3c.github.io/webauthn/#sctn-authenticator-data + assert_greater_than_equal(authenticatorData.length, 37); + let flags = authenticatorData[32]; + let counter = authenticatorData.slice(33, 37); + + let attestedCredentialData = authenticatorData.length > 37 ? + parseAttestedCredentialData(authenticatorData.slice(37)) : null; + let extensions = null; + if (attestedCredentialData && + authenticatorData.length > 37 + attestedCredentialData.length) { + extensions = authenticatorData.slice(37 + attestedCredentialData.length); + } + + return { + rpIdHash: authenticatorData.slice(0, 32), + flags: { + up: !!(flags & 0x01), + uv: !!(flags & 0x04), + at: !!(flags & 0x40), + ed: !!(flags & 0x80), + }, + counter: (counter[0] << 24) + + (counter[1] << 16) + + (counter[2] << 8) + + counter[3], + attestedCredentialData, + extensions, + }; +} + +// Taken from +// https://cs.chromium.org/chromium/src/chrome/browser/resources/cryptotoken/cbor.js?rcl=c9b6055cf9c158fb4119afd561a591f8fc95aefe +class Cbor { + constructor(buffer) { + this.slice = new Uint8Array(buffer); + } + get data() { + return this.slice; + } + get length() { + return this.slice.length; + } + get empty() { + return this.slice.length == 0; + } + get hex() { + const hexTable = '0123456789abcdef'; + let s = ''; + for (let i = 0; i < this.data.length; i++) { + s += hexTable.charAt(this.data[i] >> 4); + s += hexTable.charAt(this.data[i] & 15); + } + return s; + } + compare(other) { + if (this.length < other.length) { + return -1; + } else if (this.length > other.length) { + return 1; + } + for (let i = 0; i < this.length; i++) { + if (this.slice[i] < other.slice[i]) { + return -1; + } else if (this.slice[i] > other.slice[i]) { + return 1; + } + } + return 0; + } + getU8() { + if (this.empty) { + throw('Cbor: empty during getU8'); + } + const byte = this.slice[0]; + this.slice = this.slice.subarray(1); + return byte; + } + skip(n) { + if (this.length < n) { + throw('Cbor: too few bytes to skip'); + } + this.slice = this.slice.subarray(n); + } + getBytes(n) { + if (this.length < n) { + throw('Cbor: insufficient bytes in getBytes'); + } + const ret = this.slice.subarray(0, n); + this.slice = this.slice.subarray(n); + return ret; + } + getCBORHeader() { + const copy = new Cbor(this.slice); + const a = this.getU8(); + const majorType = a >> 5; + const info = a & 31; + if (info < 24) { + return [majorType, info, new Cbor(copy.getBytes(1))]; + } else if (info < 28) { + const lengthLength = 1 << (info - 24); + let data = this.getBytes(lengthLength); + let value = 0; + for (let i = 0; i < lengthLength; i++) { + // Javascript has problems handling uint64s given the limited range of + // a double. + if (value > 35184372088831) { + throw('Cbor: cannot represent CBOR number'); + } + // Not using bitwise operations to avoid truncating to 32 bits. + value *= 256; + value += data[i]; + } + switch (lengthLength) { + case 1: + if (value < 24) { + throw('Cbor: value should have been encoded in single byte'); + } + break; + case 2: + if (value < 256) { + throw('Cbor: non-minimal integer'); + } + break; + case 4: + if (value < 65536) { + throw('Cbor: non-minimal integer'); + } + break; + case 8: + if (value < 4294967296) { + throw('Cbor: non-minimal integer'); + } + break; + } + return [majorType, value, new Cbor(copy.getBytes(1 + lengthLength))]; + } else { + throw('Cbor: CBOR contains unhandled info value ' + info); + } + } + getCBOR() { + const [major, value] = this.getCBORHeader(); + switch (major) { + case 0: + return value; + case 1: + return 0 - (1 + value); + case 2: + return this.getBytes(value); + case 3: + return this.getBytes(value); + case 4: { + let ret = new Array(value); + for (let i = 0; i < value; i++) { + ret[i] = this.getCBOR(); + } + return ret; + } + case 5: + if (value == 0) { + return {}; + } + let copy = new Cbor(this.data); + const [firstKeyMajor] = copy.getCBORHeader(); + if (firstKeyMajor == 3) { + // String-keyed map. + let lastKeyHeader = new Cbor(new Uint8Array(0)); + let lastKeyBytes = new Cbor(new Uint8Array(0)); + let ret = {}; + for (let i = 0; i < value; i++) { + const [keyMajor, keyLength, keyHeader] = this.getCBORHeader(); + if (keyMajor != 3) { + throw('Cbor: non-string in string-valued map'); + } + const keyBytes = new Cbor(this.getBytes(keyLength)); + if (i > 0) { + const headerCmp = lastKeyHeader.compare(keyHeader); + if (headerCmp > 0 || + (headerCmp == 0 && lastKeyBytes.compare(keyBytes) >= 0)) { + throw( + 'Cbor: map keys in wrong order: ' + lastKeyHeader.hex + + '/' + lastKeyBytes.hex + ' ' + keyHeader.hex + '/' + + keyBytes.hex); + } + } + lastKeyHeader = keyHeader; + lastKeyBytes = keyBytes; + ret[keyBytes.parseUTF8()] = this.getCBOR(); + } + return ret; + } else if (firstKeyMajor == 0 || firstKeyMajor == 1) { + // Number-keyed map. + let lastKeyHeader = new Cbor(new Uint8Array(0)); + let ret = {}; + for (let i = 0; i < value; i++) { + let [keyMajor, keyValue, keyHeader] = this.getCBORHeader(); + if (keyMajor != 0 && keyMajor != 1) { + throw('Cbor: non-number in number-valued map'); + } + if (i > 0 && lastKeyHeader.compare(keyHeader) >= 0) { + throw( + 'Cbor: map keys in wrong order: ' + lastKeyHeader.hex + ' ' + + keyHeader.hex); + } + lastKeyHeader = keyHeader; + if (keyMajor == 1) { + keyValue = 0 - (1 + keyValue); + } + ret[keyValue] = this.getCBOR(); + } + return ret; + } else { + throw('Cbor: map keyed by invalid major type ' + firstKeyMajor); + } + default: + throw('Cbor: unhandled major type ' + major); + } + } + parseUTF8() { + return (new TextDecoder('utf-8')).decode(this.slice); + } +} diff --git a/tests/wpt/web-platform-tests/webauthn/webauthn-testdriver-basic.https.html b/tests/wpt/web-platform-tests/webauthn/webauthn-testdriver-basic.https.html new file mode 100644 index 000000000000..7790f5d0d3fd --- /dev/null +++ b/tests/wpt/web-platform-tests/webauthn/webauthn-testdriver-basic.https.html @@ -0,0 +1,117 @@ + +Successful WebAuthn tests + + + + + + + + diff --git a/tests/wpt/web-platform-tests/workers/Worker-constructor-proto.any.js b/tests/wpt/web-platform-tests/workers/Worker-constructor-proto.any.js index 73eabd55226d..90ad767b9807 100644 --- a/tests/wpt/web-platform-tests/workers/Worker-constructor-proto.any.js +++ b/tests/wpt/web-platform-tests/workers/Worker-constructor-proto.any.js @@ -1,7 +1,7 @@ //META: global=!default, worker test(() => { proto = new Number(42) - assert_equals(String(Object.getPrototypeOf(WorkerLocation)), "function () { [native code] }"); + assert_equals(String(Object.getPrototypeOf(WorkerLocation)).replace(/\n/g, " ").replace(/\s\s+/g, " "), "function () { [native code] }"); WorkerLocation.__proto__ = proto; assert_object_equals(Object.getPrototypeOf(WorkerLocation), Object(42)); }, 'Tests that setting the proto of a built in constructor is not reset.'); diff --git a/tests/wpt/web-platform-tests/workers/Worker-location.sub.any.js b/tests/wpt/web-platform-tests/workers/Worker-location.sub.any.js index 2ef944553105..1c3dabff0361 100644 --- a/tests/wpt/web-platform-tests/workers/Worker-location.sub.any.js +++ b/tests/wpt/web-platform-tests/workers/Worker-location.sub.any.js @@ -1,6 +1,6 @@ // META: global=!default, dedicatedworker, sharedworker test(() => { - assert_equals(String(WorkerLocation), "function WorkerLocation() { [native code] }"); + assert_equals(String(WorkerLocation).replace(/\n/g, " ").replace(/\s\s+/g, " "), "function WorkerLocation() { [native code] }"); assert_true(location instanceof Object); assert_equals(location.href, 'http://{{host}}:{{ports[http][0]}}/workers/Worker-location.sub.any.worker.js'); assert_equals(location.origin, "http://{{host}}:{{ports[http][0]}}"); diff --git a/tests/wpt/web-platform-tests/workers/Worker-multi-port.html b/tests/wpt/web-platform-tests/workers/Worker-multi-port.html index 9a89583ad91b..138f8f02d4e7 100644 --- a/tests/wpt/web-platform-tests/workers/Worker-multi-port.html +++ b/tests/wpt/web-platform-tests/workers/Worker-multi-port.html @@ -56,7 +56,7 @@ test(() => { var worker = new Worker("support/Worker-thread-multi-port.js") var channel = new MessageChannel(); - assert_throws(new TypeError(), + assert_throws('DataCloneError', function() { worker.postMessage("notAPort", [channel.port1, {}, channel.port2]); }, @@ -65,7 +65,7 @@ test(() => { var worker = new Worker("support/Worker-thread-multi-port.js"); - assert_throws(new TypeError(), + assert_throws('DataCloneError', function() { worker.postMessage("notASequence", [{length: 3}]) }, 'postMessage without sequence should throw exception.'); }, 'Test postMessage without sequence throws exception'); @@ -73,7 +73,7 @@ async_test(function(t) { var worker = new Worker("support/Worker-thread-multi-port.js"); var channel = new MessageChannel(); - assert_throws(new TypeError(), + assert_throws('DataCloneError', function() { worker.postMessage("notAPort", [channel.port1, {}, channel.port2]); }, diff --git a/tests/wpt/web-platform-tests/workers/WorkerGlobalScope-close.html b/tests/wpt/web-platform-tests/workers/WorkerGlobalScope-close.html index a193a3478f4a..08ab1ca515c6 100644 --- a/tests/wpt/web-platform-tests/workers/WorkerGlobalScope-close.html +++ b/tests/wpt/web-platform-tests/workers/WorkerGlobalScope-close.html @@ -16,16 +16,31 @@ async_test(function(t) { var worker = new Worker('support/WorkerGlobalScope-close.js'); worker.postMessage("ping"); - worker.onmessage = t.step_func(function(evt) { + worker.onmessage = t.step_func(function(evt) { assert_equals(evt.data, "pong"); - // Tell the worker to close, then send a followup message. This message - // should not be delivered, since that would require JS to invoke the - // onmessage handler, which does not happen after the JS fragment with - // 'close()' in it exits. So, the 'ping' should not come back as 'pong'. + // Tell the worker to close, then send a followup message. worker.postMessage("close"); + + // The worker may or may not be closing/closed by this call. If it is, the + // message won't be enqueued on the worker's event loop. If it isn't, the + // message will be enqueued but shouldn't be handled by the worker because + // the prior postMessage will cause the worker to close. In either case, + // the worker shouldn't postMessage back "pong". + // + // This also means that at this point we can't confidently test + // postMessage-ing a worker that will close nor a worker that is already + // closing/closed. worker.postMessage("ping"); - worker.onmessage = t.step_func(function(evt) { + + worker.onmessage = t.step_func(function(evt) { assert_not_equals(evt.data, "pong"); + + // The worker should definitely be closed by now, so we can confidently + // test postMessage-ing a closed worker. This postMessage shouldn't throw + // or cause the worker to postMessage back "pong" (it shouldn't receive + // any events after closing). + worker.postMessage("ping"); + t.step_timeout(function() { t.done(); }, 500); }); }); diff --git a/tests/wpt/web-platform-tests/workers/Worker_script_mimetype.htm b/tests/wpt/web-platform-tests/workers/Worker_script_mimetype.htm index 04fe68e66286..55d81d5d1c9b 100644 --- a/tests/wpt/web-platform-tests/workers/Worker_script_mimetype.htm +++ b/tests/wpt/web-platform-tests/workers/Worker_script_mimetype.htm @@ -9,6 +9,8 @@ worker.onmessage = t.step_func_done(function(e) { assert_equals(e.data, "Pass"); }); + // TODO(mkwst): Revisit this after https://github.com/whatwg/html/issues/3255. + worker.onerror = t.unreached_func("Worker should load."); worker.postMessage("start"); });