diff options
author | WPT Sync Bot <josh+wptsync@joshmatthews.net> | 2019-07-20 10:25:14 +0000 |
---|---|---|
committer | WPT Sync Bot <josh+wptsync@joshmatthews.net> | 2019-07-20 14:47:24 +0000 |
commit | dc1f7ba3ec4ac980906bdd130fb1491c5b7acc22 (patch) | |
tree | 768b3927f8d7c51dff23043156c68193afcb18fc | |
parent | 60f1ffc5a79f98c261dbf5f8d184da160dfadfc5 (diff) | |
download | servo-dc1f7ba3ec4ac980906bdd130fb1491c5b7acc22.tar.gz servo-dc1f7ba3ec4ac980906bdd130fb1491c5b7acc22.zip |
Update web-platform-tests to revision 6fa9de7201cd41564d02c3edd62365aeb40e171b
124 files changed, 2001 insertions, 798 deletions
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 76b398963ae..a9e46713244 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: FAIL + expected: TIMEOUT [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 947e223fb28..3b874fc1748 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 @@ -34,3 +34,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 c22c2e55422..5325d206c66 100644 --- a/tests/wpt/metadata/MANIFEST.json +++ b/tests/wpt/metadata/MANIFEST.json @@ -131539,6 +131539,18 @@ {} ] ], + "css/css-multicol/multicol-dynamic-add-001.html": [ + [ + "css/css-multicol/multicol-dynamic-add-001.html", + [ + [ + "/css/css-multicol/multicol-dynamic-add-001-ref.html", + "==" + ] + ], + {} + ] + ], "css/css-multicol/multicol-fill-000.xht": [ [ "css/css-multicol/multicol-fill-000.xht", @@ -142331,120 +142343,120 @@ {} ] ], - "css/css-text-decor/text-decoration-underline-position-horizontal.html": [ + "css/css-text-decor/text-decoration-thickness-001.html": [ [ - "css/css-text-decor/text-decoration-underline-position-horizontal.html", + "css/css-text-decor/text-decoration-thickness-001.html", [ [ - "/css/css-text-decor/reference/text-decoration-underline-position-horizontal-ref.html", - "==" + "/css/css-text-decor/reference/text-decoration-thickness-001-notref.html", + "!=" ] ], {} ] ], - "css/css-text-decor/text-decoration-underline-position-vertical-ja.html": [ + "css/css-text-decor/text-decoration-thickness-linethrough-001.html": [ [ - "css/css-text-decor/text-decoration-underline-position-vertical-ja.html", + "css/css-text-decor/text-decoration-thickness-linethrough-001.html", [ [ - "/css/css-text-decor/reference/text-decoration-underline-position-vertical-ja-ref.html", + "/css/css-text-decor/reference/text-decoration-thickness-green-rect-ref.html", "==" ] ], {} ] ], - "css/css-text-decor/text-decoration-underline-position-vertical.html": [ + "css/css-text-decor/text-decoration-thickness-overline-001.html": [ [ - "css/css-text-decor/text-decoration-underline-position-vertical.html", + "css/css-text-decor/text-decoration-thickness-overline-001.html", [ [ - "/css/css-text-decor/reference/text-decoration-underline-position-vertical-ref.html", + "/css/css-text-decor/reference/text-decoration-thickness-green-rect-ref.html", "==" ] ], {} ] ], - "css/css-text-decor/text-decoration-width-001.html": [ + "css/css-text-decor/text-decoration-thickness-scroll-001.html": [ [ - "css/css-text-decor/text-decoration-width-001.html", + "css/css-text-decor/text-decoration-thickness-scroll-001.html", [ [ - "/css/css-text-decor/reference/text-decoration-width-001-notref.html", - "!=" + "/css/css-text-decor/reference/text-decoration-thickness-scroll-001-ref.html", + "==" ] ], {} ] ], - "css/css-text-decor/text-decoration-width-linethrough-001.html": [ + "css/css-text-decor/text-decoration-thickness-underline-001.html": [ [ - "css/css-text-decor/text-decoration-width-linethrough-001.html", + "css/css-text-decor/text-decoration-thickness-underline-001.html", [ [ - "/css/css-text-decor/reference/text-decoration-width-green-rect-ref.html", + "/css/css-text-decor/reference/text-decoration-thickness-green-rect-ref.html", "==" ] ], {} ] ], - "css/css-text-decor/text-decoration-width-overline-001.html": [ + "css/css-text-decor/text-decoration-thickness-vertical-001.html": [ [ - "css/css-text-decor/text-decoration-width-overline-001.html", + "css/css-text-decor/text-decoration-thickness-vertical-001.html", [ [ - "/css/css-text-decor/reference/text-decoration-width-green-rect-ref.html", + "/css/css-text-decor/reference/text-decoration-thickness-vertical-green-rect-ref.html", "==" ] ], {} ] ], - "css/css-text-decor/text-decoration-width-scroll-001.html": [ + "css/css-text-decor/text-decoration-thickness-vertical-002.html": [ [ - "css/css-text-decor/text-decoration-width-scroll-001.html", + "css/css-text-decor/text-decoration-thickness-vertical-002.html", [ [ - "/css/css-text-decor/reference/text-decoration-width-scroll-001-ref.html", + "/css/css-text-decor/reference/text-decoration-thickness-vertical-green-rect-ref.html", "==" ] ], {} ] ], - "css/css-text-decor/text-decoration-width-underline-001.html": [ + "css/css-text-decor/text-decoration-underline-position-horizontal.html": [ [ - "css/css-text-decor/text-decoration-width-underline-001.html", + "css/css-text-decor/text-decoration-underline-position-horizontal.html", [ [ - "/css/css-text-decor/reference/text-decoration-width-green-rect-ref.html", + "/css/css-text-decor/reference/text-decoration-underline-position-horizontal-ref.html", "==" ] ], {} ] ], - "css/css-text-decor/text-decoration-width-vertical-001.html": [ + "css/css-text-decor/text-decoration-underline-position-vertical-ja.html": [ [ - "css/css-text-decor/text-decoration-width-vertical-001.html", + "css/css-text-decor/text-decoration-underline-position-vertical-ja.html", [ [ - "/css/css-text-decor/reference/text-decoration-width-vertical-green-rect-ref.html", + "/css/css-text-decor/reference/text-decoration-underline-position-vertical-ja-ref.html", "==" ] ], {} ] ], - "css/css-text-decor/text-decoration-width-vertical-002.html": [ + "css/css-text-decor/text-decoration-underline-position-vertical.html": [ [ - "css/css-text-decor/text-decoration-width-vertical-002.html", + "css/css-text-decor/text-decoration-underline-position-vertical.html", [ [ - "/css/css-text-decor/reference/text-decoration-width-vertical-green-rect-ref.html", + "/css/css-text-decor/reference/text-decoration-underline-position-vertical-ref.html", "==" ] ], @@ -250487,6 +250499,9 @@ "css/css-multicol/multicol-count-computed-004-ref.xht": [ [] ], + "css/css-multicol/multicol-dynamic-add-001-ref.html": [ + [] + ], "css/css-multicol/multicol-fill-000-ref.xht": [ [] ], @@ -252962,28 +252977,28 @@ "css/css-text-decor/reference/text-decoration-style-recalc-ref.html": [ [] ], - "css/css-text-decor/reference/text-decoration-underline-position-horizontal-ref.html": [ + "css/css-text-decor/reference/text-decoration-thickness-001-notref.html": [ [] ], - "css/css-text-decor/reference/text-decoration-underline-position-vertical-ja-ref.html": [ + "css/css-text-decor/reference/text-decoration-thickness-green-rect-ref.html": [ [] ], - "css/css-text-decor/reference/text-decoration-underline-position-vertical-ref.html": [ + "css/css-text-decor/reference/text-decoration-thickness-scroll-001-ref.html": [ [] ], - "css/css-text-decor/reference/text-decoration-underline-ref.html": [ + "css/css-text-decor/reference/text-decoration-thickness-vertical-green-rect-ref.html": [ [] ], - "css/css-text-decor/reference/text-decoration-width-001-notref.html": [ + "css/css-text-decor/reference/text-decoration-underline-position-horizontal-ref.html": [ [] ], - "css/css-text-decor/reference/text-decoration-width-green-rect-ref.html": [ + "css/css-text-decor/reference/text-decoration-underline-position-vertical-ja-ref.html": [ [] ], - "css/css-text-decor/reference/text-decoration-width-scroll-001-ref.html": [ + "css/css-text-decor/reference/text-decoration-underline-position-vertical-ref.html": [ [] ], - "css/css-text-decor/reference/text-decoration-width-vertical-green-rect-ref.html": [ + "css/css-text-decor/reference/text-decoration-underline-ref.html": [ [] ], "css/css-text-decor/reference/text-emphasis-color-001-ref.xht": [ @@ -269429,12 +269444,18 @@ "html/infrastructure/safe-passing-of-structured-data/resources/echo-worker.js": [ [] ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success.https.html.headers": [ + [] + ], "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/blank.html": [ [] ], "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/broadcastchannel-iframe.html": [ [] ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/broadcastchannel-iframe.html.headers": [ + [] + ], "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/broadcastchannel-sharedworker.js": [ [] ], @@ -272696,7 +272717,7 @@ "interfaces/xhr.idl": [ [] ], - "interfaces/xslt.idl": [ + "interfaces/xslt.tentative.idl": [ [] ], "intersection-observer/META.yml": [ @@ -278273,6 +278294,9 @@ "service-workers/service-worker/resources/import-scripts-redirect-import.js": [ [] ], + "service-workers/service-worker/resources/import-scripts-redirect-on-second-time-worker.js": [ + [] + ], "service-workers/service-worker/resources/import-scripts-redirect-worker.js": [ [] ], @@ -309109,6 +309133,12 @@ {} ] ], + "css/css-align/parsing/align-content-computed.html": [ + [ + "css/css-align/parsing/align-content-computed.html", + {} + ] + ], "css/css-align/parsing/align-content-invalid.html": [ [ "css/css-align/parsing/align-content-invalid.html", @@ -309121,6 +309151,12 @@ {} ] ], + "css/css-align/parsing/align-items-computed.html": [ + [ + "css/css-align/parsing/align-items-computed.html", + {} + ] + ], "css/css-align/parsing/align-items-invalid.html": [ [ "css/css-align/parsing/align-items-invalid.html", @@ -309133,6 +309169,12 @@ {} ] ], + "css/css-align/parsing/align-self-computed.html": [ + [ + "css/css-align/parsing/align-self-computed.html", + {} + ] + ], "css/css-align/parsing/align-self-invalid.html": [ [ "css/css-align/parsing/align-self-invalid.html", @@ -309145,6 +309187,12 @@ {} ] ], + "css/css-align/parsing/justify-content-computed.html": [ + [ + "css/css-align/parsing/justify-content-computed.html", + {} + ] + ], "css/css-align/parsing/justify-content-invalid.html": [ [ "css/css-align/parsing/justify-content-invalid.html", @@ -309157,6 +309205,12 @@ {} ] ], + "css/css-align/parsing/justify-items-computed.html": [ + [ + "css/css-align/parsing/justify-items-computed.html", + {} + ] + ], "css/css-align/parsing/justify-items-invalid.html": [ [ "css/css-align/parsing/justify-items-invalid.html", @@ -309169,6 +309223,12 @@ {} ] ], + "css/css-align/parsing/justify-self-computed.html": [ + [ + "css/css-align/parsing/justify-self-computed.html", + {} + ] + ], "css/css-align/parsing/justify-self-invalid.html": [ [ "css/css-align/parsing/justify-self-invalid.html", @@ -318307,27 +318367,27 @@ {} ] ], - "css/css-text-decor/text-decoration-width-computed.html": [ + "css/css-text-decor/text-decoration-thickness-computed.html": [ [ - "css/css-text-decor/text-decoration-width-computed.html", + "css/css-text-decor/text-decoration-thickness-computed.html", {} ] ], - "css/css-text-decor/text-decoration-width-initial.html": [ + "css/css-text-decor/text-decoration-thickness-initial.html": [ [ - "css/css-text-decor/text-decoration-width-initial.html", + "css/css-text-decor/text-decoration-thickness-initial.html", {} ] ], - "css/css-text-decor/text-decoration-width-invalid.html": [ + "css/css-text-decor/text-decoration-thickness-invalid.html": [ [ - "css/css-text-decor/text-decoration-width-invalid.html", + "css/css-text-decor/text-decoration-thickness-invalid.html", {} ] ], - "css/css-text-decor/text-decoration-width-valid.html": [ + "css/css-text-decor/text-decoration-thickness-valid.html": [ [ - "css/css-text-decor/text-decoration-width-valid.html", + "css/css-text-decor/text-decoration-thickness-valid.html", {} ] ], @@ -322131,9 +322191,9 @@ {} ] ], - "css/css-typed-om/the-stylepropertymap/properties/text-decoration-width.html": [ + "css/css-typed-om/the-stylepropertymap/properties/text-decoration-thickness.html": [ [ - "css/css-typed-om/the-stylepropertymap/properties/text-decoration-width.html", + "css/css-typed-om/the-stylepropertymap/properties/text-decoration-thickness.html", {} ] ], @@ -346948,9 +347008,9 @@ {} ] ], - "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success.html": [ + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success.https.html": [ [ - "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success.html", + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success.https.html", {} ] ], @@ -359864,6 +359924,12 @@ {} ] ], + "longtask-timing/buffered-flag-unsupported.window.js": [ + [ + "longtask-timing/buffered-flag-unsupported.window.html", + {} + ] + ], "longtask-timing/idlharness.window.js": [ [ "longtask-timing/idlharness.window.html", @@ -364099,6 +364165,12 @@ } ] ], + "navigation-timing/buffered-flag.window.js": [ + [ + "navigation-timing/buffered-flag.window.html", + {} + ] + ], "navigation-timing/dom_interactive_image_document.html": [ [ "navigation-timing/dom_interactive_image_document.html", @@ -410373,6 +410445,18 @@ {} ] ], + "webxr/xrDevice_requestSession_optionalFeatures.https.html": [ + [ + "webxr/xrDevice_requestSession_optionalFeatures.https.html", + {} + ] + ], + "webxr/xrDevice_requestSession_requiredFeatures_unknown.https.html": [ + [ + "webxr/xrDevice_requestSession_requiredFeatures_unknown.https.html", + {} + ] + ], "webxr/xrDevice_supportsSession_immersive.https.html": [ [ "webxr/xrDevice_supportsSession_immersive.https.html", @@ -410517,6 +410601,12 @@ {} ] ], + "webxr/xrSession_requestReferenceSpace_features.https.html": [ + [ + "webxr/xrSession_requestReferenceSpace_features.https.html", + {} + ] + ], "webxr/xrSession_viewer_referenceSpace.https.html": [ [ "webxr/xrSession_viewer_referenceSpace.https.html", @@ -415596,9 +415686,9 @@ {} ] ], - "xslt/idlharness.window.js": [ + "xslt/idlharness.tentative.window.js": [ [ - "xslt/idlharness.window.html", + "xslt/idlharness.tentative.window.html", { "script_metadata": [ [ @@ -531206,6 +531296,10 @@ "7e2fa130be24214fa8c21f58d0f88a744beb6b79", "testharness" ], + "css/css-align/parsing/align-content-computed.html": [ + "8b5465c6b275118ec067cb6ef7b3026aca825e65", + "testharness" + ], "css/css-align/parsing/align-content-invalid.html": [ "ae244389bf1b54f37a9fd6a65111d5e8f3c703fc", "testharness" @@ -531214,6 +531308,10 @@ "46c4724516855f169fba15650e89d56e18d884c9", "testharness" ], + "css/css-align/parsing/align-items-computed.html": [ + "23d4c2fd0d1193181b2aea7b870f0b194dbcdcfd", + "testharness" + ], "css/css-align/parsing/align-items-invalid.html": [ "8e329d50e5c34a8fba0eb122be8686e1dfafed31", "testharness" @@ -531222,6 +531320,10 @@ "e88845b962ac2df802346b8d57c4b17147d79a81", "testharness" ], + "css/css-align/parsing/align-self-computed.html": [ + "e61a88a72e8fe9bb304758ea8a47e29263888a0b", + "testharness" + ], "css/css-align/parsing/align-self-invalid.html": [ "27b025002655d859c290a4e41d46289680a7a810", "testharness" @@ -531230,28 +531332,40 @@ "25ea093b20997419f4d560d47cb9300d136d090e", "testharness" ], + "css/css-align/parsing/justify-content-computed.html": [ + "b04d2db1429c385d57b9d6b232282d7924d6589b", + "testharness" + ], "css/css-align/parsing/justify-content-invalid.html": [ - "971f94bcf8be5ad4e9b4978dc3bc4211e9804881", + "47f3a59a7d7f9723c50d338b04a7c54a0b2f4dc3", "testharness" ], "css/css-align/parsing/justify-content-valid.html": [ - "d476a268addc672fdde32465eb2570315becf0cf", + "4372f6fdc31af0d41e0016aaf250450f8df0a407", + "testharness" + ], + "css/css-align/parsing/justify-items-computed.html": [ + "b93f2a381b110467e89767e0b1c643e245e4e2b0", "testharness" ], "css/css-align/parsing/justify-items-invalid.html": [ - "18da059376095c00c791445268ccba53066b749e", + "87d03cb3d124de868d430b3a10935c99882b2f67", "testharness" ], "css/css-align/parsing/justify-items-valid.html": [ - "36584f86feb4533b712c418f6cdc20f761d4f172", + "51496554cb0214d85c2561fc4b3a7d98340709dc", + "testharness" + ], + "css/css-align/parsing/justify-self-computed.html": [ + "f560d23d7b1df51de41e9339437d391248f931db", "testharness" ], "css/css-align/parsing/justify-self-invalid.html": [ - "846cdd8a00f028b2b04707b4325bfb10f0a5239a", + "7823c0aa586b1d9644973c92ca89fb725262518c", "testharness" ], "css/css-align/parsing/justify-self-valid.html": [ - "1ee23af200f6300bc3a86f0a1b843c875c8c92a9", + "4cca080995859320d7a89943caa8eada6440f46c", "testharness" ], "css/css-align/parsing/place-content-computed.html": [ @@ -534783,7 +534897,7 @@ "testharness" ], "css/css-backgrounds/parsing/background-position-x-valid.html": [ - "282d7d27bf5560bef47f57e43dcc460143f50e7a", + "ca9c229db4a8bd52a39f8c342701b70dab6c82c7", "testharness" ], "css/css-backgrounds/parsing/background-position-y-computed.html": [ @@ -534795,7 +534909,7 @@ "testharness" ], "css/css-backgrounds/parsing/background-position-y-valid.html": [ - "1413a2e959a4cf00b64fecf06932a083e1480e54", + "55c54b84262148a506c15e462e803e7c41690967", "testharness" ], "css/css-backgrounds/parsing/background-repeat-computed.html": [ @@ -554163,19 +554277,19 @@ "reftest" ], "css/css-grid/grid-model/grid-container-scrollbar-vertical-lr-001-ref.html": [ - "e6640cc749e945b0fb78026b7b984d3c72c4c0f0", + "778c97be1f0196bd2123c15c6c5c5a0a177ab5a5", "support" ], "css/css-grid/grid-model/grid-container-scrollbar-vertical-lr-001.html": [ - "6733759cf00b264f4920ef9bca51a0e4a3f4dc63", + "cb1cfdc06a3bcc90a68024af2b264a56a113f869", "reftest" ], "css/css-grid/grid-model/grid-container-scrollbar-vertical-rl-001-ref.html": [ - "2b1bbaebb46e937d9f915d2907564e3061c1cd83", + "a51134751616fdb1eede6a1774c3edd6571ddc28", "support" ], "css/css-grid/grid-model/grid-container-scrollbar-vertical-rl-001.html": [ - "a3de9386a81af4058246842200d889a603d98fd2", + "03144ae0da7ef09e1807e307563428b93acc6640", "reftest" ], "css/css-grid/grid-model/grid-container-sizing-constraints-001.html": [ @@ -555983,7 +556097,7 @@ "testharness" ], "css/css-logical/parsing/border-block-valid.html": [ - "973a1199c285f99713c4ef3790b77a391bf09926", + "68c9797c0f44a760d8252685e727adfb0f72111f", "testharness" ], "css/css-logical/parsing/border-block-width-computed.html": [ @@ -555995,7 +556109,7 @@ "testharness" ], "css/css-logical/parsing/border-block-width-valid.html": [ - "98987df9a703ef38d20c6bc1581b2ca136342615", + "03b02a2566491d9118ad33ce0065691a1143625d", "testharness" ], "css/css-logical/parsing/border-inline-color-computed.html": [ @@ -556023,7 +556137,7 @@ "testharness" ], "css/css-logical/parsing/border-inline-valid.html": [ - "b7207c0f23541e958eeea0bbe0a8c527af67af23", + "be29783acf474d8f1dffe77f335e9f1e155c7370", "testharness" ], "css/css-logical/parsing/border-inline-width-computed.html": [ @@ -556035,7 +556149,7 @@ "testharness" ], "css/css-logical/parsing/border-inline-width-valid.html": [ - "03c3e0fca2fb56b7116aae6b25eae020538ecf57", + "81c7049c5e94c891b72f953356fadac0aeb3ae5c", "testharness" ], "css/css-logical/parsing/inline-size-invalid.html": [ @@ -556055,7 +556169,7 @@ "testharness" ], "css/css-logical/parsing/inset-block-inline-valid.html": [ - "1287f697873efb6a538f8682a484f9db48df054d", + "b08975251d841bda035d1490a32be0543b6d984e", "testharness" ], "css/css-logical/parsing/margin-block-inline-invalid.html": [ @@ -557538,6 +557652,14 @@ "6c94be98775661bea5c5fb698aae868b179be34a", "reftest" ], + "css/css-multicol/multicol-dynamic-add-001-ref.html": [ + "380c746301ff9b871a40692ccacaac7da4d974e2", + "support" + ], + "css/css-multicol/multicol-dynamic-add-001.html": [ + "ccc44add0b4d74d45ec2366f8ae3683c9645f96a", + "reftest" + ], "css/css-multicol/multicol-fill-000-ref.xht": [ "c68a7a61d2de4a4ad8265fb557a88142eb01ab7c", "support" @@ -560935,7 +561057,7 @@ "testharness" ], "css/css-properties-values-api/register-property-syntax-parsing.html": [ - "fe2a63a57a168c8e791c6cec9d9d1843ca2c1216", + "6d7dbc63a1d38f108a3a10e99b09cddd84b135f7", "testharness" ], "css/css-properties-values-api/register-property.html": [ @@ -564115,7 +564237,7 @@ "testharness" ], "css/css-scroll-snap/scroll-snap-type-on-root-element.html": [ - "c2c413d04bde1a419c346fbc1d47c19825de9365", + "eaa94176547481429d0ebdbe296fc5752e31bfb2", "testharness" ], "css/css-scroll-snap/scroll-snap-type.html": [ @@ -566775,7 +566897,7 @@ "testharness" ], "css/css-tables/parsing/border-spacing-valid.html": [ - "98bf402fc6ccd0266908da2d6270e5e4af71f670", + "cf594ee6b89e807ced476a2b7c48464adcff3238", "testharness" ], "css/css-tables/parsing/caption-side-computed.html": [ @@ -567246,36 +567368,36 @@ "30592b44cec51eb7f0835c7abc9aaafe7458ceff", "support" ], - "css/css-text-decor/reference/text-decoration-underline-position-horizontal-ref.html": [ - "be9155bbcf82bec1011de42ed5054ca8d1da72de", + "css/css-text-decor/reference/text-decoration-thickness-001-notref.html": [ + "f876afa68c655535017fe5a6e6feff0ce1df4045", "support" ], - "css/css-text-decor/reference/text-decoration-underline-position-vertical-ja-ref.html": [ - "303655abdd2489884a6e0fd6ab08eef114fcbc5f", + "css/css-text-decor/reference/text-decoration-thickness-green-rect-ref.html": [ + "14d1219001c85dcf785e648db81ca5d6fc6d4301", "support" ], - "css/css-text-decor/reference/text-decoration-underline-position-vertical-ref.html": [ - "8c0bee6720355c6216ce6f11d27e2f1fb4d4b401", + "css/css-text-decor/reference/text-decoration-thickness-scroll-001-ref.html": [ + "394811468fea2d4e7daaffad19742cd8e206a8bd", "support" ], - "css/css-text-decor/reference/text-decoration-underline-ref.html": [ - "2370054a8fbd5cb8c00bfb95401129d01de38d00", + "css/css-text-decor/reference/text-decoration-thickness-vertical-green-rect-ref.html": [ + "8955e8469aa6cd3d63a34e9376b3f6c135f01e85", "support" ], - "css/css-text-decor/reference/text-decoration-width-001-notref.html": [ - "53a87c014d7dff7a33c2cbf042c181173a351618", + "css/css-text-decor/reference/text-decoration-underline-position-horizontal-ref.html": [ + "be9155bbcf82bec1011de42ed5054ca8d1da72de", "support" ], - "css/css-text-decor/reference/text-decoration-width-green-rect-ref.html": [ - "7bc3865a8619ccfb6f5e621b8443d6680f9f2739", + "css/css-text-decor/reference/text-decoration-underline-position-vertical-ja-ref.html": [ + "303655abdd2489884a6e0fd6ab08eef114fcbc5f", "support" ], - "css/css-text-decor/reference/text-decoration-width-scroll-001-ref.html": [ - "dd4868417ba51bfa0b7d86ed4a2f2c3526acb9e5", + "css/css-text-decor/reference/text-decoration-underline-position-vertical-ref.html": [ + "8c0bee6720355c6216ce6f11d27e2f1fb4d4b401", "support" ], - "css/css-text-decor/reference/text-decoration-width-vertical-green-rect-ref.html": [ - "ec7db180dc2c29e82ebb4f2565faf6eeb9b8720c", + "css/css-text-decor/reference/text-decoration-underline-ref.html": [ + "2370054a8fbd5cb8c00bfb95401129d01de38d00", "support" ], "css/css-text-decor/reference/text-emphasis-color-001-ref.xht": [ @@ -567658,6 +567780,50 @@ "d4538e7c7b45356d08cf5dc90273b6aee77c49fa", "reftest" ], + "css/css-text-decor/text-decoration-thickness-001.html": [ + "8f314793f2634406c8ad5d3fa268bf56eb864406", + "reftest" + ], + "css/css-text-decor/text-decoration-thickness-computed.html": [ + "99e693afb5a395f3aa4af59a735054ce3559069c", + "testharness" + ], + "css/css-text-decor/text-decoration-thickness-initial.html": [ + "4c4ca9cc9ab972f61bd9cc6dc87f03e29d027241", + "testharness" + ], + "css/css-text-decor/text-decoration-thickness-invalid.html": [ + "656fa3bba2aee70381eb1c0e82e963f9f4bea502", + "testharness" + ], + "css/css-text-decor/text-decoration-thickness-linethrough-001.html": [ + "37e954b2b8769e882420a49ef0adf42a8b4b096e", + "reftest" + ], + "css/css-text-decor/text-decoration-thickness-overline-001.html": [ + "325811c96fd45463cc4802232fc6e5f5df6fd652", + "reftest" + ], + "css/css-text-decor/text-decoration-thickness-scroll-001.html": [ + "acc829dc66d75e776dbe4ca5ad2976576c5c3241", + "reftest" + ], + "css/css-text-decor/text-decoration-thickness-underline-001.html": [ + "020f849f4cf2d1ffcee7ba494384fc8f5425b876", + "reftest" + ], + "css/css-text-decor/text-decoration-thickness-valid.html": [ + "d05c892674844691ec23bcad1bf4dbd8ab53981c", + "testharness" + ], + "css/css-text-decor/text-decoration-thickness-vertical-001.html": [ + "f04f1b52f95fb307043519c8da9ec34ad978a5f2", + "reftest" + ], + "css/css-text-decor/text-decoration-thickness-vertical-002.html": [ + "70421c507b71e5e0e9775fa73ab5f8671912b80b", + "reftest" + ], "css/css-text-decor/text-decoration-underline-position-horizontal.html": [ "e4d495e722e43414e562c315c530c285d7bc6356", "reftest" @@ -567718,50 +567884,6 @@ "904460a7bfeef5a35261641422a5fde2dd07dce4", "visual" ], - "css/css-text-decor/text-decoration-width-001.html": [ - "ab6dfcadeb1ae1ab967efb85d23470b90a26aefe", - "reftest" - ], - "css/css-text-decor/text-decoration-width-computed.html": [ - "0e00240141ea45ac95e8778474df3472afaf766c", - "testharness" - ], - "css/css-text-decor/text-decoration-width-initial.html": [ - "ee47af0f115d29705b2cb485af63ecec67b5645e", - "testharness" - ], - "css/css-text-decor/text-decoration-width-invalid.html": [ - "e89fe47ff2d567db6eae913a49d3abe2d62eaa7c", - "testharness" - ], - "css/css-text-decor/text-decoration-width-linethrough-001.html": [ - "cc48da15a7a7f07c2efb51868d38a02222420ebd", - "reftest" - ], - "css/css-text-decor/text-decoration-width-overline-001.html": [ - "21eb18b7ab28defcdd5921b3730f11f48bbe848c", - "reftest" - ], - "css/css-text-decor/text-decoration-width-scroll-001.html": [ - "f203bf10c2d67c664a263694c5f6ac69771edc42", - "reftest" - ], - "css/css-text-decor/text-decoration-width-underline-001.html": [ - "97ecc73a4a9119056720daa25e6dc32aefd45012", - "reftest" - ], - "css/css-text-decor/text-decoration-width-valid.html": [ - "583ebb0d3cf52d5af73da39f979e2c1d90ffa8ea", - "testharness" - ], - "css/css-text-decor/text-decoration-width-vertical-001.html": [ - "5b4ab5e74dd8b7efa572e4858c7a1d616d62b8e8", - "reftest" - ], - "css/css-text-decor/text-decoration-width-vertical-002.html": [ - "cbe4b1f8374c4617b43ef288906e6dd5f1a1e347", - "reftest" - ], "css/css-text-decor/text-emphasis-color-001.xht": [ "b60f03591ed067b8a8411cdad2ea8bcd222a37fc", "reftest" @@ -581694,8 +581816,8 @@ "956c6e578b098d1c5a69f8228cb85434b1d048ee", "testharness" ], - "css/css-typed-om/the-stylepropertymap/properties/text-decoration-width.html": [ - "43aeb165645d10bea23db42055453001223f0f3e", + "css/css-typed-om/the-stylepropertymap/properties/text-decoration-thickness.html": [ + "903ca8603fb882e19c0ecfc6760a64495e6361dd", "testharness" ], "css/css-typed-om/the-stylepropertymap/properties/text-decoration.html": [ @@ -612303,15 +612425,15 @@ "support" ], "event-timing/bufferbeforeonload.html": [ - "c30c01aa96bb9bc835bb1ce93bff86f5e99789d7", + "4b003a98f64ed99266f9bb12c09c4b5cde5afa32", "testharness" ], "event-timing/buffered-flag.html": [ - "8b56ad7f44d6b2849d300338b45dd104059c3520", + "b9c63ffd8fdd6dca11211376538c65fa9571c437", "testharness" ], "event-timing/crossiframe.html": [ - "c1a27a5d021e210d7604f6a7dfab436c8547f03c", + "bb19c82a2a1d64e5edcdc965812488aab1a73652", "testharness" ], "event-timing/idlharness.any.js": [ @@ -612323,23 +612445,23 @@ "manual" ], "event-timing/observethenonload.html": [ - "4145eae0a59a5da2fc5fbca95ee2721fc3b58b2b", + "8295aaf04128c3998a6ce30703bcf85c99a49865", "testharness" ], "event-timing/onloadthenobserve-firstInput.html": [ - "fe40bdf65fbb61671e01a4c11039027deaed677a", + "3cd80e2eba1a748a68151a8bf45cfdc93a7b3f71", "testharness" ], "event-timing/onloadthenobserve.html": [ - "d97228577a187ddf10f5513697d9b0424aab4588", + "4365f4837bcceb070f683db2ee1d2f2a7ea050d6", "testharness" ], "event-timing/only-observe-firstInput.html": [ - "d356902c31d4b9d6d23042d8f57cb1d9ec2a8447", + "48df6ec9fc65a9eb8c4adf62f5fc7219b7c5a056", "testharness" ], "event-timing/programmatic-click-not-observed.html": [ - "9eb067024da8c01c2575eeb6ff86c27329498a68", + "c84d4eff6b8779953bcde54eb5169f0ffa1c6314", "testharness" ], "event-timing/resources/crossiframe-childframe.html": [ @@ -612363,7 +612485,7 @@ "testharness" ], "event-timing/retrieve-firstInput.html": [ - "5ea5d74b1a86abf81d69ec1165b58ecd07a72ea5", + "5ddd9b5f01b75d9530adac84acab9a214bfded87", "testharness" ], "event-timing/supported-types.window.js": [ @@ -612371,7 +612493,7 @@ "testharness" ], "event-timing/timingconditions.html": [ - "a7847b3ccc000077a7791e65371bd58344dbf2ef", + "1fcda21a197028ee3b6812f63aef41503d2a7b9b", "testharness" ], "eventsource/META.yml": [ @@ -614275,7 +614397,7 @@ "testharness" ], "fetch/api/response/response-consume-empty.html": [ - "4bfcfbc8f44617190e9469f7ce85ce6dc91d2df9", + "6e51ff8b59a6f2d80f407d0cca0e99d8642f71b1", "testharness" ], "fetch/api/response/response-consume-stream.html": [ @@ -617911,7 +618033,7 @@ "testharness" ], "html/browsers/history/the-location-interface/location_hash.html": [ - "99f64ddea248a2fc77eb3faaa51f12ee97843eed", + "ef6f6331389168c8fed45c1eabe810e0cdf5e512", "testharness" ], "html/browsers/history/the-location-interface/location_host.html": [ @@ -624446,10 +624568,14 @@ "8902de49cfb10293ddb6246dc834268621e0dcad", "testharness" ], - "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success.html": [ - "f6d7f26ce83c17dfb330e683e00b0e562572a03d", + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success.https.html": [ + "d3e9956368a5ce538ff6e57d6f1febcf8d882a59", "testharness" ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success.https.html.headers": [ + "63b60e490f47f4db77d33d7a4ca2f5b9a4181de8", + "support" + ], "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/identity-not-preserved.html": [ "869f49043e9736bf62c2ec60257019175d2961f6", "testharness" @@ -624467,7 +624593,11 @@ "support" ], "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/broadcastchannel-iframe.html": [ - "792d6fd201380723225c7337ed496afffa9cf054", + "02b9bcbbe8827e590e10f70e2a2f4576a7a8ca0a", + "support" + ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/broadcastchannel-iframe.html.headers": [ + "6604450991a122e3e241e40b1b9e0516c525389d", "support" ], "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/broadcastchannel-sharedworker.js": [ @@ -629351,7 +629481,7 @@ "support" ], "html/semantics/embedded-content/the-img-element/invalid-src.html": [ - "49e956565cc7c386cf548eab37097a9b995d4f1b", + "c3c57ee3c0a05019be4db6650eeefdd53648401e", "testharness" ], "html/semantics/embedded-content/the-img-element/ismap/img-ismap-coordinates-iframe-after.html": [ @@ -637287,7 +637417,7 @@ "support" ], "interfaces/webrtc.idl": [ - "83f009fed5346c978deb90b29f3bcc0260e21f58", + "faccd6f47d37443c0d5df63ce71a1f68ebc07bc2", "support" ], "interfaces/webusb.idl": [ @@ -637310,7 +637440,7 @@ "27660bfd573b6dbd38f7c52b514fab9f4bd52996", "support" ], - "interfaces/xslt.idl": [ + "interfaces/xslt.tentative.idl": [ "e97d8b000441bf7c700d377f20f74b44831cffa3", "support" ], @@ -637807,15 +637937,15 @@ "testharness" ], "layout-instability/buffer-layout-shift.html": [ - "216cafd45de0785b27a0ca7fa009352de7887e23", + "0cfce2f7124226cf4256284c1238ba1ef024c42b", "testharness" ], "layout-instability/buffered-flag.html": [ - "6a8c937e5ff17ee54c87facf1e247839a5142707", + "dabc8068931ff3b15eb4b80481ed2102a7725a62", "testharness" ], "layout-instability/observe-layout-shift.html": [ - "a522b49034e58c7aafd98eacae12353bc3476d06", + "8e5624e09a3d92975f315f7601c8cfc474c89c9e", "testharness" ], "layout-instability/resources/slow-image.py": [ @@ -637934,6 +638064,10 @@ "91c07f9fd3f3097367f2ad87a2ebb0d98b11d4e2", "support" ], + "longtask-timing/buffered-flag-unsupported.window.js": [ + "ea17b824c355ace2b67ccefc1ddbf25e03a299d0", + "testharness" + ], "longtask-timing/idlharness.window.js": [ "0ef7e85440ee1fc99c05ef5be0fc1fe61f818118", "testharness" @@ -639787,7 +639921,7 @@ "testharness" ], "mediasession/setactionhandler.html": [ - "06d145b37d1603680ef61de4b2953f5bfc4ed650", + "6e1bb26c67a828ae847734070024b404138e7932", "testharness" ], "mimesniff/META.yml": [ @@ -642506,6 +642640,10 @@ "c09a6e03fd19f5a405b391c2c4671df6ff04edf1", "support" ], + "navigation-timing/buffered-flag.window.js": [ + "c6b1e0bc8558a2908d6471fff0e7f5351d4a0022", + "testharness" + ], "navigation-timing/dom_interactive_image_document.html": [ "36742f0eff6d07c7c0694b066dfa017f0d1042be", "testharness" @@ -650215,7 +650353,7 @@ "manual" ], "payment-request/rejects_if_not_active.https.html": [ - "4ba760ac987746ad9b561377a6b1e4185f7e7331", + "1c666aea435758cd7f79172aaa691f43f7907a47", "testharness" ], "payment-request/resources/page1.html": [ @@ -663683,7 +663821,7 @@ "testharness" ], "service-workers/service-worker/import-scripts-redirect.https.html": [ - "e52adfa37800853a86da9f5f30bc0dd41e4afcb6", + "07ea49439eba8f9762b2bc17b5ae2346d9d15397", "testharness" ], "service-workers/service-worker/import-scripts-resource-map.https.html": [ @@ -664590,6 +664728,10 @@ "56c04f094602b484a289b58dcfb25c4d6620c355", "support" ], + "service-workers/service-worker/resources/import-scripts-redirect-on-second-time-worker.js": [ + "f612ab8e6aa4272083abf573978d1932d18f6535", + "support" + ], "service-workers/service-worker/resources/import-scripts-redirect-worker.js": [ "d02a45349c24298542ea4fca64971a888ae883a6", "support" @@ -665159,7 +665301,7 @@ "support" ], "service-workers/service-worker/resources/update-worker.py": [ - "2bc99a3d044b3d75a40ce60379dc145220d49eda", + "446d547ca78277c69795233f0d7c0f64125059d8", "support" ], "service-workers/service-worker/resources/update/update-after-oneday.https.html": [ @@ -665371,7 +665513,7 @@ "testharness" ], "service-workers/service-worker/update.https.html": [ - "6f7db0542b7898b1765a3d43ed1618cf1d1e45b9", + "7232419cd0acc33515113363540b332e397025d7", "testharness" ], "service-workers/service-worker/waiting.https.html": [ @@ -680255,7 +680397,7 @@ "testharness" ], "web-animations/timing-model/timelines/document-timelines.html": [ - "be8e3cca1c77e34f4a52e5d4e51c423161b7886f", + "4023bba55612b689d98a9773c9c6fafe11408e2b", "testharness" ], "web-animations/timing-model/timelines/timelines.html": [ @@ -688255,7 +688397,7 @@ "support" ], "webxr/resources/webxr_util.js": [ - "3a6a6c96fe0c419c1ff7ed7c5ab347cbc6978c13", + "baf1d66b00daa98c07b9bfc91436018d12eef097", "support" ], "webxr/webGLCanvasContext_create_xrcompatible.https.html": [ @@ -688283,7 +688425,7 @@ "testharness" ], "webxr/xrDevice_requestSession_immersive.https.html": [ - "a397d1a89f6e0d3ac7784a39ac8612350aa69dcd", + "be0bb32995b86ee576c1e55414d7f7d81a1e0fc1", "testharness" ], "webxr/xrDevice_requestSession_immersive_no_gesture.https.html": [ @@ -688302,6 +688444,14 @@ "59950592558513f2530aaedaa86f89c955166863", "testharness" ], + "webxr/xrDevice_requestSession_optionalFeatures.https.html": [ + "c274f4ff7138df2bdc98fbc173db73d29321afc2", + "testharness" + ], + "webxr/xrDevice_requestSession_requiredFeatures_unknown.https.html": [ + "02b26c05cb5dc0e5b721e472632fae3aa83b6275", + "testharness" + ], "webxr/xrDevice_supportsSession_immersive.https.html": [ "fd0827a526ef01299eeccd94f93f131e4014cd7b", "testharness" @@ -688395,7 +688545,11 @@ "testharness" ], "webxr/xrSession_requestReferenceSpace.https.html": [ - "c90d6ce5a545563664ed34d946db2bca48edca40", + "51aa8885f5e853ca4bf225134dee120b71d28011", + "testharness" + ], + "webxr/xrSession_requestReferenceSpace_features.https.html": [ + "1bd516ee12e1d3ba24fd13ff04974c72e284b38a", "testharness" ], "webxr/xrSession_viewer_referenceSpace.https.html": [ @@ -691846,8 +692000,8 @@ "7a2bf3622554937bf483a3b3afa9f16187fdabf6", "support" ], - "xslt/idlharness.window.js": [ - "51b0cd3dbac772f85d50debdf414a5726875b7d4", + "xslt/idlharness.tentative.window.js": [ + "1da8db8cb208aa278527bbe9192944b68e19340b", "testharness" ], "xslt/transformToFragment.tentative.window.js": [ 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 new file mode 100644 index 00000000000..036730941a3 --- /dev/null +++ b/tests/wpt/metadata/css/css-align/parsing/align-content-computed.html.ini @@ -0,0 +1,25 @@ +[align-content-computed.html] + [Property align-content value 'start' computes to 'start'] + expected: FAIL + + [Property align-content value 'safe flex-start' computes to 'safe flex-start'] + expected: FAIL + + [Property align-content value 'unsafe end' computes to 'unsafe end'] + expected: FAIL + + [Property align-content value 'baseline' computes to 'baseline'] + expected: FAIL + + [Property align-content value 'last baseline' computes to 'last baseline'] + expected: FAIL + + [Property align-content value 'normal' computes to 'normal'] + expected: FAIL + + [Property align-content value 'end' computes to 'end'] + expected: FAIL + + [Property align-content value 'space-evenly' computes to 'space-evenly'] + 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 new file mode 100644 index 00000000000..7901836699f --- /dev/null +++ b/tests/wpt/metadata/css/css-align/parsing/align-items-computed.html.ini @@ -0,0 +1,25 @@ +[align-items-computed.html] + [Property align-items value 'self-start' computes to 'self-start'] + expected: FAIL + + [Property align-items value 'self-end' computes to 'self-end'] + expected: FAIL + + [Property align-items value 'unsafe center' computes to 'unsafe center'] + expected: FAIL + + [Property align-items value 'normal' computes to 'normal'] + expected: FAIL + + [Property align-items value 'start' computes to 'start'] + expected: FAIL + + [Property align-items value 'safe self-end' computes to 'safe self-end'] + expected: FAIL + + [Property align-items value 'end' computes to 'end'] + expected: FAIL + + [Property align-items value 'last baseline' computes to 'last baseline'] + 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 new file mode 100644 index 00000000000..fa61b083ab8 --- /dev/null +++ b/tests/wpt/metadata/css/css-align/parsing/align-self-computed.html.ini @@ -0,0 +1,28 @@ +[align-self-computed.html] + [Property align-self value 'safe self-end' computes to 'safe self-end'] + expected: FAIL + + [Property align-self value 'self-start' computes to 'self-start'] + expected: FAIL + + [Property align-self value 'end' computes to 'end'] + expected: FAIL + + [Property align-self value 'auto' computes to 'auto'] + expected: FAIL + + [Property align-self value 'last baseline' computes to 'last baseline'] + expected: FAIL + + [Property align-self value 'normal' computes to 'normal'] + expected: FAIL + + [Property align-self value 'self-end' computes to 'self-end'] + expected: FAIL + + [Property align-self value 'unsafe center' computes to 'unsafe center'] + expected: FAIL + + [Property align-self value 'start' computes to 'start'] + 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 new file mode 100644 index 00000000000..f96a01069a2 --- /dev/null +++ b/tests/wpt/metadata/css/css-align/parsing/justify-content-computed.html.ini @@ -0,0 +1,25 @@ +[justify-content-computed.html] + [Property justify-content value 'unsafe end' computes to 'unsafe end'] + expected: FAIL + + [Property justify-content value 'start' computes to 'start'] + expected: FAIL + + [Property justify-content value 'end' computes to 'end'] + expected: FAIL + + [Property justify-content value 'left' computes to 'left'] + expected: FAIL + + [Property justify-content value 'unsafe right' computes to 'unsafe right'] + expected: FAIL + + [Property justify-content value 'space-evenly' computes to 'space-evenly'] + expected: FAIL + + [Property justify-content value 'normal' computes to 'normal'] + expected: FAIL + + [Property justify-content value 'safe flex-start' computes to 'safe flex-start'] + 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 new file mode 100644 index 00000000000..b9104efccf3 --- /dev/null +++ b/tests/wpt/metadata/css/css-align/parsing/justify-items-computed.html.ini @@ -0,0 +1,61 @@ +[justify-items-computed.html] + [Property justify-items value 'self-start' computes to 'self-start'] + expected: FAIL + + [Property justify-items value 'legacy' computes to 'normal'] + expected: FAIL + + [Property justify-items value 'stretch' computes to 'stretch'] + expected: FAIL + + [Property justify-items value 'start' computes to 'start'] + expected: FAIL + + [Property justify-items value 'right' computes to 'right'] + expected: FAIL + + [Property justify-items value 'center' computes to 'center'] + expected: FAIL + + [Property justify-items value 'legacy right' computes to 'legacy right'] + expected: FAIL + + [Property justify-items value 'self-end' computes to 'self-end'] + expected: FAIL + + [Property justify-items value 'legacy center' computes to 'legacy center'] + expected: FAIL + + [Property justify-items value 'unsafe center' computes to 'unsafe center'] + expected: FAIL + + [Property justify-items value 'flex-start' computes to 'flex-start'] + expected: FAIL + + [Property justify-items value 'legacy left' computes to 'legacy left'] + expected: FAIL + + [Property justify-items value 'flex-end' computes to 'flex-end'] + expected: FAIL + + [justify-items legacy depends on inherited value] + expected: FAIL + + [Property justify-items value 'last baseline' computes to 'last baseline'] + expected: FAIL + + [Property justify-items value 'baseline' computes to 'baseline'] + expected: FAIL + + [Property justify-items value 'safe left' computes to 'safe left'] + expected: FAIL + + [Property justify-items value 'normal' computes to 'normal'] + expected: FAIL + + [Property justify-items value 'safe self-end' computes to 'safe self-end'] + expected: FAIL + + [Property justify-items value 'end' computes to 'end'] + 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 new file mode 100644 index 00000000000..97de7bd520a --- /dev/null +++ b/tests/wpt/metadata/css/css-align/parsing/justify-self-computed.html.ini @@ -0,0 +1,49 @@ +[justify-self-computed.html] + [Property justify-self value 'baseline' computes to 'baseline'] + expected: FAIL + + [Property justify-self value 'end' computes to 'end'] + expected: FAIL + + [Property justify-self value 'safe self-end' computes to 'safe self-end'] + expected: FAIL + + [Property justify-self value 'auto' computes to 'auto'] + expected: FAIL + + [Property justify-self value 'last baseline' computes to 'last baseline'] + expected: FAIL + + [Property justify-self value 'flex-end' computes to 'flex-end'] + expected: FAIL + + [Property justify-self value 'self-end' computes to 'self-end'] + expected: FAIL + + [Property justify-self value 'center' computes to 'center'] + expected: FAIL + + [Property justify-self value 'stretch' computes to 'stretch'] + expected: FAIL + + [Property justify-self value 'normal' computes to 'normal'] + expected: FAIL + + [Property justify-self value 'self-start' computes to 'self-start'] + expected: FAIL + + [Property justify-self value 'start' computes to 'start'] + expected: FAIL + + [Property justify-self value 'left' computes to 'left'] + expected: FAIL + + [Property justify-self value 'unsafe right' computes to 'unsafe right'] + expected: FAIL + + [Property justify-self value 'flex-start' computes to 'flex-start'] + expected: FAIL + + [Property justify-self value 'unsafe center' computes to 'unsafe center'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-backgrounds/parsing/background-position-x-valid.html.ini b/tests/wpt/metadata/css/css-backgrounds/parsing/background-position-x-valid.html.ini index 00376a56fce..566b507fd81 100644 --- a/tests/wpt/metadata/css/css-backgrounds/parsing/background-position-x-valid.html.ini +++ b/tests/wpt/metadata/css/css-backgrounds/parsing/background-position-x-valid.html.ini @@ -1,10 +1,4 @@ [background-position-x-valid.html] - [e.style['background-position-x'\] = "calc(10px - 0.5em)" should set the property value] - expected: FAIL - - [e.style['background-position-x'\] = "calc(10px - 0.5em), left -20%, right 10px" should set the property value] - expected: FAIL - [e.style['background-position-x'\] = "x-end" should set the property value] expected: FAIL diff --git a/tests/wpt/metadata/css/css-backgrounds/parsing/background-position-y-valid.html.ini b/tests/wpt/metadata/css/css-backgrounds/parsing/background-position-y-valid.html.ini index 429c6adbac5..f2a01f43d9a 100644 --- a/tests/wpt/metadata/css/css-backgrounds/parsing/background-position-y-valid.html.ini +++ b/tests/wpt/metadata/css/css-backgrounds/parsing/background-position-y-valid.html.ini @@ -11,6 +11,3 @@ [e.style['background-position-y'\] = "y-end" should set the property value] expected: FAIL - [e.style['background-position-y'\] = "calc(10px - 0.5em)" should set the property value] - expected: FAIL - diff --git a/tests/wpt/metadata/css/css-text-decor/text-decoration-thickness-001.html.ini b/tests/wpt/metadata/css/css-text-decor/text-decoration-thickness-001.html.ini new file mode 100644 index 00000000000..5450301361b --- /dev/null +++ b/tests/wpt/metadata/css/css-text-decor/text-decoration-thickness-001.html.ini @@ -0,0 +1,2 @@ +[text-decoration-thickness-001.html] + 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 new file mode 100644 index 00000000000..7b59ea11fdf --- /dev/null +++ b/tests/wpt/metadata/css/css-text-decor/text-decoration-thickness-computed.html.ini @@ -0,0 +1,10 @@ +[text-decoration-thickness-computed.html] + [Property text-decoration-thickness value 'from-font' computes to 'from-font'] + expected: FAIL + + [Property text-decoration-thickness value 'auto' computes to 'auto'] + expected: FAIL + + [Property text-decoration-thickness value 'calc(10px - 8px)' computes to '2px'] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-text-decor/text-decoration-thickness-initial.html.ini b/tests/wpt/metadata/css/css-text-decor/text-decoration-thickness-initial.html.ini new file mode 100644 index 00000000000..fe8a17fb543 --- /dev/null +++ b/tests/wpt/metadata/css/css-text-decor/text-decoration-thickness-initial.html.ini @@ -0,0 +1,4 @@ +[text-decoration-thickness-initial.html] + [Initial value of text-decoration-thickness should be auto] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-text-decor/text-decoration-thickness-linethrough-001.html.ini b/tests/wpt/metadata/css/css-text-decor/text-decoration-thickness-linethrough-001.html.ini new file mode 100644 index 00000000000..10ec51bb16d --- /dev/null +++ b/tests/wpt/metadata/css/css-text-decor/text-decoration-thickness-linethrough-001.html.ini @@ -0,0 +1,2 @@ +[text-decoration-thickness-linethrough-001.html] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-text-decor/text-decoration-thickness-overline-001.html.ini b/tests/wpt/metadata/css/css-text-decor/text-decoration-thickness-overline-001.html.ini new file mode 100644 index 00000000000..3b81932352b --- /dev/null +++ b/tests/wpt/metadata/css/css-text-decor/text-decoration-thickness-overline-001.html.ini @@ -0,0 +1,2 @@ +[text-decoration-thickness-overline-001.html] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-text-decor/text-decoration-thickness-scroll-001.html.ini b/tests/wpt/metadata/css/css-text-decor/text-decoration-thickness-scroll-001.html.ini new file mode 100644 index 00000000000..84bbbf7b288 --- /dev/null +++ b/tests/wpt/metadata/css/css-text-decor/text-decoration-thickness-scroll-001.html.ini @@ -0,0 +1,2 @@ +[text-decoration-thickness-scroll-001.html] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-text-decor/text-decoration-thickness-underline-001.html.ini b/tests/wpt/metadata/css/css-text-decor/text-decoration-thickness-underline-001.html.ini new file mode 100644 index 00000000000..e68d54c347d --- /dev/null +++ b/tests/wpt/metadata/css/css-text-decor/text-decoration-thickness-underline-001.html.ini @@ -0,0 +1,2 @@ +[text-decoration-thickness-underline-001.html] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-text-decor/text-decoration-thickness-valid.html.ini b/tests/wpt/metadata/css/css-text-decor/text-decoration-thickness-valid.html.ini new file mode 100644 index 00000000000..e89dadce620 --- /dev/null +++ b/tests/wpt/metadata/css/css-text-decor/text-decoration-thickness-valid.html.ini @@ -0,0 +1,25 @@ +[text-decoration-thickness-valid.html] + [e.style['text-decoration-thickness'\] = "from-font" should set the property value] + expected: FAIL + + [e.style['text-decoration-thickness'\] = "2001em" should set the property value] + expected: FAIL + + [e.style['text-decoration-thickness'\] = "-49em" should set the property value] + expected: FAIL + + [e.style['text-decoration-thickness'\] = "auto" should set the property value] + expected: FAIL + + [e.style['text-decoration-thickness'\] = "calc(-50em + 13px)" should set the property value] + expected: FAIL + + [e.style['text-decoration-thickness'\] = "53px" should set the property value] + expected: FAIL + + [e.style['text-decoration-thickness'\] = "calc(40em - 10px)" should set the property value] + expected: FAIL + + [e.style['text-decoration-thickness'\] = "-10px" should set the property value] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-text-decor/text-decoration-thickness-vertical-001.html.ini b/tests/wpt/metadata/css/css-text-decor/text-decoration-thickness-vertical-001.html.ini new file mode 100644 index 00000000000..2f48fe751b2 --- /dev/null +++ b/tests/wpt/metadata/css/css-text-decor/text-decoration-thickness-vertical-001.html.ini @@ -0,0 +1,2 @@ +[text-decoration-thickness-vertical-001.html] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-text-decor/text-decoration-thickness-vertical-002.html.ini b/tests/wpt/metadata/css/css-text-decor/text-decoration-thickness-vertical-002.html.ini new file mode 100644 index 00000000000..1bfad2cf8e8 --- /dev/null +++ b/tests/wpt/metadata/css/css-text-decor/text-decoration-thickness-vertical-002.html.ini @@ -0,0 +1,2 @@ +[text-decoration-thickness-vertical-002.html] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-transitions/properties-value-001.html.ini b/tests/wpt/metadata/css/css-transitions/properties-value-001.html.ini index 38fcecc620d..24c66214652 100644 --- a/tests/wpt/metadata/css/css-transitions/properties-value-001.html.ini +++ b/tests/wpt/metadata/css/css-transitions/properties-value-001.html.ini @@ -1079,12 +1079,6 @@ [text-indent percentage(%) / values] expected: FAIL - [margin-top length(ex) / values] - expected: FAIL - - [margin-top length(mm) / values] - expected: FAIL - - [margin-top length(pt) / values] + [padding-bottom length(ex) / values] expected: FAIL diff --git a/tests/wpt/metadata/css/cssom-view/matchMedia-display-none-iframe.html.ini b/tests/wpt/metadata/css/cssom-view/matchMedia-display-none-iframe.html.ini new file mode 100644 index 00000000000..e6e1f29e274 --- /dev/null +++ b/tests/wpt/metadata/css/cssom-view/matchMedia-display-none-iframe.html.ini @@ -0,0 +1,2 @@ +[matchMedia-display-none-iframe.html] + expected: ERROR 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 86eb218a129..228cc1d76a4 100644 --- a/tests/wpt/metadata/fetch/content-type/response.window.js.ini +++ b/tests/wpt/metadata/fetch/content-type/response.window.js.ini @@ -312,6 +312,15 @@ [<iframe>: separate response Content-Type: */* text/html] expected: FAIL - [<iframe>: combined response Content-Type: text/html;charset=gbk text/plain text/html] + [<iframe>: combined response Content-Type: text/html */*] + expected: FAIL + + [<iframe>: separate response Content-Type: text/plain */*] + expected: FAIL + + [<iframe>: combined response Content-Type: text/html;x=" text/plain] + expected: FAIL + + [<iframe>: separate response Content-Type: text/plain */*;charset=gbk] expected: FAIL diff --git a/tests/wpt/metadata/fetch/content-type/script.window.js.ini b/tests/wpt/metadata/fetch/content-type/script.window.js.ini index d2df9b78483..5c001592859 100644 --- a/tests/wpt/metadata/fetch/content-type/script.window.js.ini +++ b/tests/wpt/metadata/fetch/content-type/script.window.js.ini @@ -56,3 +56,6 @@ [separate text/javascript x/x] expected: FAIL + [separate text/javascript;charset=windows-1252 error text/javascript] + expected: FAIL + diff --git a/tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini b/tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini index a2a0c8f8200..a639f15230c 100644 --- a/tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini +++ b/tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini @@ -11,9 +11,6 @@ [X-Content-Type-Options%3A%20nosniff%0C] expected: FAIL - [X-Content-Type-Options%3A%20'NosniFF'] - expected: FAIL - - [X-Content-Type-Options%3A%20%22nosniFF%22] + [Content-Type-Options%3A%20nosniff] expected: FAIL diff --git a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini new file mode 100644 index 00000000000..87b07c3e670 --- /dev/null +++ b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini @@ -0,0 +1,4 @@ +[traverse_the_history_1.html] + [Multiple history traversals from the same task] + expected: FAIL + diff --git a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_2.html.ini b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_4.html.ini index 75d75b4cda2..385376c7321 100644 --- a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_2.html.ini +++ b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_4.html.ini @@ -1,4 +1,4 @@ -[traverse_the_history_2.html] +[traverse_the_history_4.html] [Multiple history traversals, last would be aborted] expected: FAIL diff --git a/tests/wpt/metadata/html/browsers/history/the-location-interface/location_hash.html.ini b/tests/wpt/metadata/html/browsers/history/the-location-interface/location_hash.html.ini index 14fb78311f2..3fddf7d569b 100644 --- a/tests/wpt/metadata/html/browsers/history/the-location-interface/location_hash.html.ini +++ b/tests/wpt/metadata/html/browsers/history/the-location-interface/location_hash.html.ini @@ -3,3 +3,9 @@ [Setting location.hash on srcdoc iframe] expected: FAIL + [Setting hash which is partially encoded should only encode incompatible characters] + expected: FAIL + + [Setting hash should encode incompatible characters] + expected: FAIL + diff --git a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/creating_browsing_context_test_01.html.ini b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/creating_browsing_context_test_01.html.ini deleted file mode 100644 index 5d28284b841..00000000000 --- a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/creating_browsing_context_test_01.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[creating_browsing_context_test_01.html] - type: testharness - [first argument: absolute url] - expected: FAIL - diff --git a/tests/wpt/metadata/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success.https.html.ini b/tests/wpt/metadata/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success.https.html.ini new file mode 100644 index 00000000000..a9f756ce5e9 --- /dev/null +++ b/tests/wpt/metadata/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success.https.html.ini @@ -0,0 +1,4 @@ +[broadcastchannel-success.https.html] + [Structured cloning of SharedArrayBuffers: BroadcastChannel within the same agent cluster] + expected: FAIL + diff --git a/tests/wpt/metadata/html/semantics/interactive-elements/the-details-element/toggleEvent.html.ini b/tests/wpt/metadata/html/semantics/interactive-elements/the-details-element/toggleEvent.html.ini new file mode 100644 index 00000000000..9e522297c94 --- /dev/null +++ b/tests/wpt/metadata/html/semantics/interactive-elements/the-details-element/toggleEvent.html.ini @@ -0,0 +1,7 @@ +[toggleEvent.html] + [Calling open twice on 'details' fires only one toggle event] + expected: FAIL + + [Setting open=true to opened 'details' element should not fire a toggle event at the 'details' element] + expected: FAIL + diff --git a/tests/wpt/metadata/html/syntax/parsing/DOMContentLoaded-defer.html.ini b/tests/wpt/metadata/html/syntax/parsing/DOMContentLoaded-defer.html.ini deleted file mode 100644 index a9677391662..00000000000 --- a/tests/wpt/metadata/html/syntax/parsing/DOMContentLoaded-defer.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[DOMContentLoaded-defer.html] - [The end: DOMContentLoaded and defer scripts] - expected: FAIL - diff --git a/tests/wpt/metadata/navigation-timing/buffered-flag.window.js.ini b/tests/wpt/metadata/navigation-timing/buffered-flag.window.js.ini new file mode 100644 index 00000000000..611eac9d684 --- /dev/null +++ b/tests/wpt/metadata/navigation-timing/buffered-flag.window.js.ini @@ -0,0 +1,5 @@ +[buffered-flag.window.html] + expected: TIMEOUT + [PerformanceObserver with buffered flag sees previous navigation entry.] + expected: TIMEOUT + diff --git a/tests/wpt/metadata/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini b/tests/wpt/metadata/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini index 537266bfb84..036692e72bf 100644 --- a/tests/wpt/metadata/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini +++ b/tests/wpt/metadata/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini @@ -116,3 +116,9 @@ [X Stitched sine-wave buffers at sample rate 43800 does not equal [0,0.06264832615852356,0.12505052983760834,0.18696144223213196,0.24813786149024963,0.308339387178421,0.36732959747314453,0.4248766601085663,0.480754554271698,0.5347436666488647,0.5866320133209229,0.6362156271934509,0.6832997798919678,0.7276994585990906,0.7692402601242065,0.8077589869499207...\] with an element-wise tolerance of {"absoluteThreshold":0.0038986,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[30\]\t9.4836157560348511e-1\t9.5236867666244507e-1\t4.0071010589599609e-3\t4.2075103446311962e-3\t3.8985999999999999e-3\n\t[31\]\t9.2646563053131104e-1\t9.3139332532882690e-1\t4.9276947975158691e-3\t5.2906700783754857e-3\t3.8985999999999999e-3\n\t[32\]\t9.0087991952896118e-1\t9.0675884485244751e-1\t5.8789253234863281e-3\t6.4834496590358351e-3\t3.8985999999999999e-3\n\t[33\]\t8.7170630693435669e-1\t8.7856203317642212e-1\t6.8557262420654297e-3\t7.8033490899654511e-3\t3.8985999999999999e-3\n\t[34\]\t8.3906102180480957e-1\t8.4691369533538818e-1\t7.8526735305786133e-3\t9.2721059699818163e-3\t3.8985999999999999e-3\n\t...and 31037 more errors.\n\tMax AbsError of 1.1836414583850666e+22 at index of 39267.\n\t[39267\]\t1.1836414583850666e+22\t-9.8276454210281372e-1\t1.1836414583850666e+22\t1.2043998411383850e+22\t3.8985999999999999e-3\n\tMax RelError of 2.3038078820072928e+22 at index of 20238.\n\t[20238\]\t1.0960356369936048e+22\t-4.7574958205223083e-1\t1.0960356369936048e+22\t2.3038078820072928e+22\t3.8985999999999999e-3\n] expected: FAIL + [X Stitched sine-wave buffers at sample rate 43800 does not equal [0,0.06264832615852356,0.12505052983760834,0.18696144223213196,0.24813786149024963,0.308339387178421,0.36732959747314453,0.4248766601085663,0.480754554271698,0.5347436666488647,0.5866320133209229,0.6362156271934509,0.6832997798919678,0.7276994585990906,0.7692402601242065,0.8077589869499207...\] with an element-wise tolerance of {"absoluteThreshold":0.0038986,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[30\]\t9.4836157560348511e-1\t9.5236867666244507e-1\t4.0071010589599609e-3\t4.2075103446311962e-3\t3.8985999999999999e-3\n\t[31\]\t9.2646563053131104e-1\t9.3139332532882690e-1\t4.9276947975158691e-3\t5.2906700783754857e-3\t3.8985999999999999e-3\n\t[32\]\t9.0087991952896118e-1\t9.0675884485244751e-1\t5.8789253234863281e-3\t6.4834496590358351e-3\t3.8985999999999999e-3\n\t[33\]\t8.7170630693435669e-1\t8.7856203317642212e-1\t6.8557262420654297e-3\t7.8033490899654511e-3\t3.8985999999999999e-3\n\t[34\]\t8.3906102180480957e-1\t8.4691369533538818e-1\t7.8526735305786133e-3\t9.2721059699818163e-3\t3.8985999999999999e-3\n\t...and 31037 more errors.\n\tMax AbsError of 1.5492252409458160e+0 at index of 20238.\n\t[20238\]\t-2.0249748229980469e+0\t-4.7574958205223083e-1\t1.5492252409458160e+0\t3.2563880230077262e+0\t3.8985999999999999e-3\n\tMax RelError of 3.3137802965303198e+0 at index of 1253.\n\t[1253\]\t-4.3022233992815018e-2\t-9.9732093513011932e-3\t3.3049024641513824e-2\t3.3137802965303198e+0\t3.8985999999999999e-3\n] + expected: FAIL + + [X SNR (21.35658911509222 dB) is not greater than or equal to 65.737. Got 21.35658911509222.] + expected: FAIL + diff --git a/tests/wpt/metadata/webxr/xrDevice_requestSession_immersive.https.html.ini b/tests/wpt/metadata/webxr/xrDevice_requestSession_immersive.https.html.ini new file mode 100644 index 00000000000..0d5790999bb --- /dev/null +++ b/tests/wpt/metadata/webxr/xrDevice_requestSession_immersive.https.html.ini @@ -0,0 +1,7 @@ +[xrDevice_requestSession_immersive.https.html] + [Tests requestSession ignores unknown optionalFeatures] + expected: FAIL + + [Tests requestSession accepts XRSessionInit dictionary] + expected: FAIL + diff --git a/tests/wpt/metadata/webxr/xrDevice_requestSession_optionalFeatures.https.html.ini b/tests/wpt/metadata/webxr/xrDevice_requestSession_optionalFeatures.https.html.ini new file mode 100644 index 00000000000..40c12b5fea7 --- /dev/null +++ b/tests/wpt/metadata/webxr/xrDevice_requestSession_optionalFeatures.https.html.ini @@ -0,0 +1,7 @@ +[xrDevice_requestSession_optionalFeatures.https.html] + [Tests requestSession ignores unknown optionalFeatures] + expected: FAIL + + [Tests requestSession accepts XRSessionInit dictionary with empty feature lists] + expected: FAIL + diff --git a/tests/wpt/metadata/webxr/xrDevice_requestSession_requiredFeatures_unknown.https.html.ini b/tests/wpt/metadata/webxr/xrDevice_requestSession_requiredFeatures_unknown.https.html.ini new file mode 100644 index 00000000000..f0e6c00ee15 --- /dev/null +++ b/tests/wpt/metadata/webxr/xrDevice_requestSession_requiredFeatures_unknown.https.html.ini @@ -0,0 +1,4 @@ +[xrDevice_requestSession_requiredFeatures_unknown.https.html] + [Tests requestSession rejects for unknown requiredFeatures] + expected: FAIL + diff --git a/tests/wpt/metadata/webxr/xrSession_requestReferenceSpace_features.https.html.ini b/tests/wpt/metadata/webxr/xrSession_requestReferenceSpace_features.https.html.ini new file mode 100644 index 00000000000..84a5e1496a8 --- /dev/null +++ b/tests/wpt/metadata/webxr/xrSession_requestReferenceSpace_features.https.html.ini @@ -0,0 +1,37 @@ +[xrSession_requestReferenceSpace_features.https.html] + [Non-immersive session rejects unbounded space even when requested] + expected: FAIL + + [Immersive session supports local space by default] + expected: FAIL + + [Non-immersive session supports local-floor space when required] + expected: FAIL + + [Immersive session rejects local-floor space if not requested] + expected: FAIL + + [Immersive session supports local-floor space when required] + expected: FAIL + + [Non-immersive session rejects bounded-floor space even when requested] + expected: FAIL + + [Non-immersive session supports local space when optional] + expected: FAIL + + [Immersive session supports local-floor space when optional] + expected: FAIL + + [Non-immersive session supports local space when required] + expected: FAIL + + [Non-immersive session supports viewer space by default] + expected: FAIL + + [Non-immersive session rejects local space if not requested] + expected: FAIL + + [Immersive session supports viewer space by default] + expected: FAIL + diff --git a/tests/wpt/metadata/workers/constructors/Worker/Worker-constructor.html.ini b/tests/wpt/metadata/workers/constructors/Worker/Worker-constructor.html.ini deleted file mode 100644 index 80f9a4f15b8..00000000000 --- a/tests/wpt/metadata/workers/constructors/Worker/Worker-constructor.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[Worker-constructor.html] - expected: ERROR diff --git a/tests/wpt/web-platform-tests/css/css-align/parsing/align-content-computed.html b/tests/wpt/web-platform-tests/css/css-align/parsing/align-content-computed.html new file mode 100644 index 00000000000..8b5465c6b27 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-align/parsing/align-content-computed.html @@ -0,0 +1,34 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Box Alignment Level 3: getComputedStyle().alignContent</title> +<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-content"> +<meta name="assert" content="align-content computed value is as specified."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/computed-testcommon.js"></script> +</head> +<body> +<div id="target"></div> +<script> +test_computed_value("align-content", "normal"); + +test_computed_value("align-content", "baseline"); +test_computed_value("align-content", "last baseline"); + +test_computed_value("align-content", "space-between"); +test_computed_value("align-content", "space-around"); +test_computed_value("align-content", "space-evenly"); +test_computed_value("align-content", "stretch"); + +test_computed_value("align-content", "center"); +test_computed_value("align-content", "start"); +test_computed_value("align-content", "end"); +test_computed_value("align-content", "flex-start"); +test_computed_value("align-content", "flex-end"); +test_computed_value("align-content", "unsafe end"); +test_computed_value("align-content", "safe flex-start"); +</script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-align/parsing/align-items-computed.html b/tests/wpt/web-platform-tests/css/css-align/parsing/align-items-computed.html new file mode 100644 index 00000000000..23d4c2fd0d1 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-align/parsing/align-items-computed.html @@ -0,0 +1,32 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Box Alignment Level 3: getComputedStyle().alignItems</title> +<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-items"> +<meta name="assert" content="align-items computed value is as specified."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/computed-testcommon.js"></script> +</head> +<body> +<div id="target"></div> +<script> +test_computed_value("align-items", "normal"); +test_computed_value("align-items", "stretch"); + +test_computed_value("align-items", "baseline"); +test_computed_value("align-items", "last baseline"); + +test_computed_value("align-items", "center"); +test_computed_value("align-items", "start"); +test_computed_value("align-items", "end"); +test_computed_value("align-items", "self-start"); +test_computed_value("align-items", "self-end"); +test_computed_value("align-items", "flex-start"); +test_computed_value("align-items", "flex-end"); +test_computed_value("align-items", "unsafe center"); +test_computed_value("align-items", "safe self-end"); +</script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-align/parsing/align-self-computed.html b/tests/wpt/web-platform-tests/css/css-align/parsing/align-self-computed.html new file mode 100644 index 00000000000..e61a88a72e8 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-align/parsing/align-self-computed.html @@ -0,0 +1,33 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Box Alignment Level 3: getComputedStyle().alignSelf</title> +<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-self"> +<meta name="assert" content="align-self computed value is as specified."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/computed-testcommon.js"></script> +</head> +<body> +<div id="target"></div> +<script> +test_computed_value("align-self", "auto"); +test_computed_value("align-self", "normal"); +test_computed_value("align-self", "stretch"); + +test_computed_value("align-self", "baseline"); +test_computed_value("align-self", "last baseline"); + +test_computed_value("align-self", "center"); +test_computed_value("align-self", "start"); +test_computed_value("align-self", "end"); +test_computed_value("align-self", "self-start"); +test_computed_value("align-self", "self-end"); +test_computed_value("align-self", "flex-start"); +test_computed_value("align-self", "flex-end"); +test_computed_value("align-self", "unsafe center"); +test_computed_value("align-self", "safe self-end"); +</script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-align/parsing/justify-content-computed.html b/tests/wpt/web-platform-tests/css/css-align/parsing/justify-content-computed.html new file mode 100644 index 00000000000..b04d2db1429 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-align/parsing/justify-content-computed.html @@ -0,0 +1,33 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Box Alignment Level 3: getComputedStyle().justifyContent</title> +<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-content"> +<meta name="assert" content="justify-content computed value is as specified."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/computed-testcommon.js"></script> +</head> +<body> +<div id="target"></div> +<script> +test_computed_value("justify-content", "normal"); + +test_computed_value("justify-content", "space-between"); +test_computed_value("justify-content", "space-around"); +test_computed_value("justify-content", "space-evenly"); +test_computed_value("justify-content", "stretch"); + +test_computed_value("justify-content", "center"); +test_computed_value("justify-content", "start"); +test_computed_value("justify-content", "end"); +test_computed_value("justify-content", "flex-start"); +test_computed_value("justify-content", "flex-end"); +test_computed_value("justify-content", "unsafe end"); +test_computed_value("justify-content", "safe flex-start"); +test_computed_value("justify-content", "left"); +test_computed_value("justify-content", "unsafe right"); +</script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-align/parsing/justify-content-invalid.html b/tests/wpt/web-platform-tests/css/css-align/parsing/justify-content-invalid.html index 971f94bcf8b..47f3a59a7d7 100644 --- a/tests/wpt/web-platform-tests/css/css-align/parsing/justify-content-invalid.html +++ b/tests/wpt/web-platform-tests/css/css-align/parsing/justify-content-invalid.html @@ -3,7 +3,7 @@ <head> <meta charset="utf-8"> <title>CSS Box Alignment Level 3: parsing justify-content with invalid values</title> -<link rel="help" href="https://drafts.csswg.org/css-justify-3/#propdef-justify-content"> +<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-content"> <meta name="assert" content="justify-content supports only the grammar 'normal | <content-distribution> | <overflow-position>? [ <content-position> | left | right ]'."> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> diff --git a/tests/wpt/web-platform-tests/css/css-align/parsing/justify-content-valid.html b/tests/wpt/web-platform-tests/css/css-align/parsing/justify-content-valid.html index d476a268add..4372f6fdc31 100644 --- a/tests/wpt/web-platform-tests/css/css-align/parsing/justify-content-valid.html +++ b/tests/wpt/web-platform-tests/css/css-align/parsing/justify-content-valid.html @@ -3,7 +3,7 @@ <head> <meta charset="utf-8"> <title>CSS Box Alignment Level 3: parsing justify-content with valid values</title> -<link rel="help" href="https://drafts.csswg.org/css-justify-3/#propdef-justify-content"> +<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-content"> <meta name="assert" content="justify-content supports the full grammar 'normal | <content-distribution> | <overflow-position>? [ <content-position> | left | right ]'."> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> diff --git a/tests/wpt/web-platform-tests/css/css-align/parsing/justify-items-computed.html b/tests/wpt/web-platform-tests/css/css-align/parsing/justify-items-computed.html new file mode 100644 index 00000000000..b93f2a381b1 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-align/parsing/justify-items-computed.html @@ -0,0 +1,56 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Box Alignment Level 3: getComputedStyle().justifyItems</title> +<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-items"> +<meta name="assert" content="justify-items computed value is as specified."> +<meta name="assert" content="justify-items legacy depends on inherited value."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/computed-testcommon.js"></script> +</head> +<body> +<div id="container"> + <div id="target"></div> +</div> +<script> +test_computed_value("justify-items", "normal"); +test_computed_value("justify-items", "stretch"); + +test_computed_value("justify-items", "baseline"); +test_computed_value("justify-items", "last baseline"); + +test_computed_value("justify-items", "center"); +test_computed_value("justify-items", "start"); +test_computed_value("justify-items", "end"); +test_computed_value("justify-items", "self-start"); +test_computed_value("justify-items", "self-end"); +test_computed_value("justify-items", "flex-start"); +test_computed_value("justify-items", "flex-end"); +test_computed_value("justify-items", "unsafe center"); +test_computed_value("justify-items", "safe self-end"); +test_computed_value("justify-items", "right"); +test_computed_value("justify-items", "safe left"); + +test_computed_value("justify-items", "legacy", "normal"); +test_computed_value("justify-items", "legacy left"); +test_computed_value("justify-items", "legacy right"); +test_computed_value("justify-items", "legacy center"); + +test(() => { + const container = document.getElementById('container'); + const target = document.getElementById('target'); + target.style.justifyItems = 'legacy'; + container.style.justifyItems = 'legacy left'; + assert_equals(getComputedStyle(target).justifyItems, 'legacy left'); + container.style.justifyItems = 'legacy right'; + assert_equals(getComputedStyle(target).justifyItems, 'legacy right'); + container.style.justifyItems = 'legacy center'; + assert_equals(getComputedStyle(target).justifyItems, 'legacy center'); + container.style.justifyItems = 'flex-end'; + assert_equals(getComputedStyle(target).justifyItems, 'normal'); +}, 'justify-items legacy depends on inherited value'); +</script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-align/parsing/justify-items-invalid.html b/tests/wpt/web-platform-tests/css/css-align/parsing/justify-items-invalid.html index 18da0593760..87d03cb3d12 100644 --- a/tests/wpt/web-platform-tests/css/css-align/parsing/justify-items-invalid.html +++ b/tests/wpt/web-platform-tests/css/css-align/parsing/justify-items-invalid.html @@ -3,7 +3,7 @@ <head> <meta charset="utf-8"> <title>CSS Box Alignment Level 3: parsing justify-items with invalid values</title> -<link rel="help" href="https://drafts.csswg.org/css-justify-3/#propdef-justify-items"> +<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-items"> <meta name="assert" content="justify-items supports only the grammar 'normal | stretch | <baseline-position> | <overflow-position>? [ <self-position> | left | right ] | legacy | legacy && [ left | right | center ]'."> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> diff --git a/tests/wpt/web-platform-tests/css/css-align/parsing/justify-items-valid.html b/tests/wpt/web-platform-tests/css/css-align/parsing/justify-items-valid.html index 36584f86feb..51496554cb0 100644 --- a/tests/wpt/web-platform-tests/css/css-align/parsing/justify-items-valid.html +++ b/tests/wpt/web-platform-tests/css/css-align/parsing/justify-items-valid.html @@ -3,7 +3,7 @@ <head> <meta charset="utf-8"> <title>CSS Box Alignment Level 3: parsing justify-items with valid values</title> -<link rel="help" href="https://drafts.csswg.org/css-justify-3/#propdef-justify-items"> +<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-items"> <meta name="assert" content="justify-items supports the full grammar 'normal | stretch | <baseline-position> | <overflow-position>? [ <self-position> | left | right ] | legacy | legacy && [ left | right | center ]'."> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> diff --git a/tests/wpt/web-platform-tests/css/css-align/parsing/justify-self-computed.html b/tests/wpt/web-platform-tests/css/css-align/parsing/justify-self-computed.html new file mode 100644 index 00000000000..f560d23d7b1 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-align/parsing/justify-self-computed.html @@ -0,0 +1,35 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Box Alignment Level 3: getComputedStyle().justifySelf</title> +<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-self"> +<meta name="assert" content="justify-self computed value is as specified."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/computed-testcommon.js"></script> +</head> +<body> +<div id="target"></div> +<script> +test_computed_value("justify-self", "auto"); +test_computed_value("justify-self", "normal"); +test_computed_value("justify-self", "stretch"); + +test_computed_value("justify-self", "baseline"); +test_computed_value("justify-self", "last baseline"); + +test_computed_value("justify-self", "center"); +test_computed_value("justify-self", "start"); +test_computed_value("justify-self", "end"); +test_computed_value("justify-self", "self-start"); +test_computed_value("justify-self", "self-end"); +test_computed_value("justify-self", "flex-start"); +test_computed_value("justify-self", "flex-end"); +test_computed_value("justify-self", "unsafe center"); +test_computed_value("justify-self", "safe self-end"); +test_computed_value("justify-self", "left"); +test_computed_value("justify-self", "unsafe right"); +</script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-align/parsing/justify-self-invalid.html b/tests/wpt/web-platform-tests/css/css-align/parsing/justify-self-invalid.html index 846cdd8a00f..7823c0aa586 100644 --- a/tests/wpt/web-platform-tests/css/css-align/parsing/justify-self-invalid.html +++ b/tests/wpt/web-platform-tests/css/css-align/parsing/justify-self-invalid.html @@ -3,7 +3,7 @@ <head> <meta charset="utf-8"> <title>CSS Box Alignment Level 3: parsing justify-self with invalid values</title> -<link rel="help" href="https://drafts.csswg.org/css-justify-3/#propdef-justify-self"> +<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-self"> <meta name="assert" content="justify-self supports only the grammar 'auto | normal | stretch | <baseline-position> | <overflow-position>? [ <self-position> | left | right ]'."> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> diff --git a/tests/wpt/web-platform-tests/css/css-align/parsing/justify-self-valid.html b/tests/wpt/web-platform-tests/css/css-align/parsing/justify-self-valid.html index 1ee23af200f..4cca0809958 100644 --- a/tests/wpt/web-platform-tests/css/css-align/parsing/justify-self-valid.html +++ b/tests/wpt/web-platform-tests/css/css-align/parsing/justify-self-valid.html @@ -3,7 +3,7 @@ <head> <meta charset="utf-8"> <title>CSS Box Alignment Level 3: parsing justify-self with valid values</title> -<link rel="help" href="https://drafts.csswg.org/css-justify-3/#propdef-justify-self"> +<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-self"> <meta name="assert" content="justify-self supports the full grammar 'auto | normal | stretch | <baseline-position> | <overflow-position>? [ <self-position> | left | right ]'."> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> diff --git a/tests/wpt/web-platform-tests/css/css-backgrounds/parsing/background-position-x-valid.html b/tests/wpt/web-platform-tests/css/css-backgrounds/parsing/background-position-x-valid.html index 282d7d27bf5..ca9c229db4a 100644 --- a/tests/wpt/web-platform-tests/css/css-backgrounds/parsing/background-position-x-valid.html +++ b/tests/wpt/web-platform-tests/css/css-backgrounds/parsing/background-position-x-valid.html @@ -19,13 +19,13 @@ test_valid_value("background-position-x", "x-end"); test_valid_value("background-position-x", "-20%"); test_valid_value("background-position-x", "10px"); test_valid_value("background-position-x", "0.5em"); -test_valid_value("background-position-x", "calc(10px - 0.5em)"); +test_valid_value("background-position-x", "calc(10px - 0.5em)", "calc(-0.5em + 10px)"); test_valid_value("background-position-x", "left -20%"); test_valid_value("background-position-x", "right 10px"); test_valid_value("background-position-x", "-20%, 10px"); test_valid_value("background-position-x", "center, left, right"); test_valid_value("background-position-x", "0.5em, x-start, x-end"); -test_valid_value("background-position-x", "calc(10px - 0.5em), left -20%, right 10px"); +test_valid_value("background-position-x", "calc(10px - 0.5em), left -20%, right 10px", "calc(-0.5em + 10px), left -20%, right 10px"); </script> </body> </html> diff --git a/tests/wpt/web-platform-tests/css/css-backgrounds/parsing/background-position-y-valid.html b/tests/wpt/web-platform-tests/css/css-backgrounds/parsing/background-position-y-valid.html index 1413a2e959a..55c54b84262 100644 --- a/tests/wpt/web-platform-tests/css/css-backgrounds/parsing/background-position-y-valid.html +++ b/tests/wpt/web-platform-tests/css/css-backgrounds/parsing/background-position-y-valid.html @@ -19,13 +19,13 @@ test_valid_value("background-position-y", "y-end"); test_valid_value("background-position-y", "-20%"); test_valid_value("background-position-y", "10px"); test_valid_value("background-position-y", "0.5em"); -test_valid_value("background-position-y", "calc(10px - 0.5em)"); +test_valid_value("background-position-y", "calc(10px - 0.5em)", "calc(-0.5em + 10px)"); test_valid_value("background-position-y", "top -20%"); test_valid_value("background-position-y", "bottom 10px"); test_valid_value("background-position-y", "-20%, 10px"); test_valid_value("background-position-y", "center, top, bottom"); test_valid_value("background-position-y", "0.5em, y-start, y-end"); -test_valid_value("background-position-y", "calc(10px - 0.5em), top -20%, bottom 10px"); +test_valid_value("background-position-y", "calc(10px - 0.5em), top -20%, bottom 10px", "calc(-0.5em + 10px), top -20%, top 10px"); </script> </body> </html> diff --git a/tests/wpt/web-platform-tests/css/css-grid/grid-model/grid-container-scrollbar-vertical-lr-001-ref.html b/tests/wpt/web-platform-tests/css/css-grid/grid-model/grid-container-scrollbar-vertical-lr-001-ref.html index e6640cc749e..778c97be1f0 100644 --- a/tests/wpt/web-platform-tests/css/css-grid/grid-model/grid-container-scrollbar-vertical-lr-001-ref.html +++ b/tests/wpt/web-platform-tests/css/css-grid/grid-model/grid-container-scrollbar-vertical-lr-001-ref.html @@ -2,6 +2,7 @@ <meta charset="utf-8"> <title>CSS container Layout Test Reference</title> <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com"> +<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" /> <style> .container { font: 10px/1 Ahem; diff --git a/tests/wpt/web-platform-tests/css/css-grid/grid-model/grid-container-scrollbar-vertical-lr-001.html b/tests/wpt/web-platform-tests/css/css-grid/grid-model/grid-container-scrollbar-vertical-lr-001.html index 6733759cf00..cb1cfdc06a3 100644 --- a/tests/wpt/web-platform-tests/css/css-grid/grid-model/grid-container-scrollbar-vertical-lr-001.html +++ b/tests/wpt/web-platform-tests/css/css-grid/grid-model/grid-container-scrollbar-vertical-lr-001.html @@ -6,6 +6,7 @@ <link rel="match" href="grid-container-scrollbar-vertical-lr-001-ref.html"> <meta name="assert" content="This test verifies that scrollbars are properly painted on grid containers, and are shown in the expected position depending on the direction."> <link href="support/grid.css" rel="stylesheet"> +<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" /> <style> .grid { font: 10px/1 Ahem; diff --git a/tests/wpt/web-platform-tests/css/css-grid/grid-model/grid-container-scrollbar-vertical-rl-001-ref.html b/tests/wpt/web-platform-tests/css/css-grid/grid-model/grid-container-scrollbar-vertical-rl-001-ref.html index 2b1bbaebb46..a5113475161 100644 --- a/tests/wpt/web-platform-tests/css/css-grid/grid-model/grid-container-scrollbar-vertical-rl-001-ref.html +++ b/tests/wpt/web-platform-tests/css/css-grid/grid-model/grid-container-scrollbar-vertical-rl-001-ref.html @@ -2,6 +2,7 @@ <meta charset="utf-8"> <title>CSS container Layout Test Reference</title> <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com"> +<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" /> <style> .container { font: 10px/1 Ahem; diff --git a/tests/wpt/web-platform-tests/css/css-grid/grid-model/grid-container-scrollbar-vertical-rl-001.html b/tests/wpt/web-platform-tests/css/css-grid/grid-model/grid-container-scrollbar-vertical-rl-001.html index a3de9386a81..03144ae0da7 100644 --- a/tests/wpt/web-platform-tests/css/css-grid/grid-model/grid-container-scrollbar-vertical-rl-001.html +++ b/tests/wpt/web-platform-tests/css/css-grid/grid-model/grid-container-scrollbar-vertical-rl-001.html @@ -6,6 +6,7 @@ <link rel="match" href="grid-container-scrollbar-vertical-rl-001-ref.html"> <meta name="assert" content="This test verifies that scrollbars are properly painted on grid containers, and are shown in the expected position depending on the direction."> <link href="support/grid.css" rel="stylesheet"> +<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" /> <style> .grid { font: 10px/1 Ahem; diff --git a/tests/wpt/web-platform-tests/css/css-logical/parsing/border-block-valid.html b/tests/wpt/web-platform-tests/css/css-logical/parsing/border-block-valid.html index 973a1199c28..68c9797c0f4 100644 --- a/tests/wpt/web-platform-tests/css/css-logical/parsing/border-block-valid.html +++ b/tests/wpt/web-platform-tests/css/css-logical/parsing/border-block-valid.html @@ -19,7 +19,7 @@ test_valid_value("border-block", "double", ["double", "medium double"]); test_valid_value("border-block-start", "green double thin", "thin double green"); test_valid_value("border-block-start", "green", ["green", "medium none green"]); test_valid_value("border-block-end", "thin", ["thin", "thin none"]); -test_valid_value("border-block-end", "calc(10px - 0.5em) dotted red"); +test_valid_value("border-block-end", "calc(10px - 0.5em) dotted red", "calc(-0.5em + 10px) dotted red"); </script> </body> </html> diff --git a/tests/wpt/web-platform-tests/css/css-logical/parsing/border-block-width-valid.html b/tests/wpt/web-platform-tests/css/css-logical/parsing/border-block-width-valid.html index 98987df9a70..03b02a25664 100644 --- a/tests/wpt/web-platform-tests/css/css-logical/parsing/border-block-width-valid.html +++ b/tests/wpt/web-platform-tests/css/css-logical/parsing/border-block-width-valid.html @@ -13,14 +13,14 @@ <script> // <length> | thin | medium | thick test_valid_value("border-block-start-width", "10px"); -test_valid_value("border-block-start-width", "calc(10px + 0.5em)"); +test_valid_value("border-block-start-width", "calc(10px + 0.5em)", "calc(0.5em + 10px)"); test_valid_value("border-block-start-width", "thick"); test_valid_value("border-block-start-width", "thin"); test_valid_value("border-block-end-width", "0", "0px"); -test_valid_value("border-block-end-width", "calc(10px - 0.5em)"); +test_valid_value("border-block-end-width", "calc(10px - 0.5em)", "calc(-0.5em + 10px)"); test_valid_value("border-block-end-width", "medium"); test_valid_value("border-block-width", "10px"); -test_valid_value("border-block-width", "medium calc(10px + 0.5em)"); +test_valid_value("border-block-width", "medium calc(10px + 0.5em)", "medium calc(0.5em + 10px)"); test_valid_value("border-block-width", "10px 10px", "10px"); </script> </body> diff --git a/tests/wpt/web-platform-tests/css/css-logical/parsing/border-inline-valid.html b/tests/wpt/web-platform-tests/css/css-logical/parsing/border-inline-valid.html index b7207c0f235..be29783acf4 100644 --- a/tests/wpt/web-platform-tests/css/css-logical/parsing/border-inline-valid.html +++ b/tests/wpt/web-platform-tests/css/css-logical/parsing/border-inline-valid.html @@ -19,7 +19,7 @@ test_valid_value("border-inline", "double", ["double", "medium double"]); test_valid_value("border-inline-start", "green double thin", "thin double green"); test_valid_value("border-inline-start", "green", ["green", "medium none green"]); test_valid_value("border-inline-end", "thin", ["thin", "thin none"]); -test_valid_value("border-inline-end", "calc(10px - 0.5em) dotted red"); +test_valid_value("border-inline-end", "calc(10px - 0.5em) dotted red", "calc(-0.5em + 10px) dotted red"); </script> </body> </html> diff --git a/tests/wpt/web-platform-tests/css/css-logical/parsing/border-inline-width-valid.html b/tests/wpt/web-platform-tests/css/css-logical/parsing/border-inline-width-valid.html index 03c3e0fca2f..81c7049c5e9 100644 --- a/tests/wpt/web-platform-tests/css/css-logical/parsing/border-inline-width-valid.html +++ b/tests/wpt/web-platform-tests/css/css-logical/parsing/border-inline-width-valid.html @@ -13,14 +13,14 @@ <script> // <length> | thin | medium | thick test_valid_value("border-inline-start-width", "10px"); -test_valid_value("border-inline-start-width", "calc(10px + 0.5em)"); +test_valid_value("border-inline-start-width", "calc(10px + 0.5em)", "calc(0.5em + 10px)"); test_valid_value("border-inline-start-width", "thick"); test_valid_value("border-inline-start-width", "thin"); test_valid_value("border-inline-end-width", "0", "0px"); -test_valid_value("border-inline-end-width", "calc(10px - 0.5em)"); +test_valid_value("border-inline-end-width", "calc(10px - 0.5em)", "calc(-0.5em + 10px)"); test_valid_value("border-inline-end-width", "medium"); test_valid_value("border-inline-width", "10px"); -test_valid_value("border-inline-width", "medium calc(10px + 0.5em)"); +test_valid_value("border-inline-width", "medium calc(10px + 0.5em)", "medium calc(0.5em + 10px)"); test_valid_value("border-inline-width", "10px 10px", "10px"); </script> </body> diff --git a/tests/wpt/web-platform-tests/css/css-logical/parsing/inset-block-inline-valid.html b/tests/wpt/web-platform-tests/css/css-logical/parsing/inset-block-inline-valid.html index 1287f697873..b08975251d8 100644 --- a/tests/wpt/web-platform-tests/css/css-logical/parsing/inset-block-inline-valid.html +++ b/tests/wpt/web-platform-tests/css/css-logical/parsing/inset-block-inline-valid.html @@ -15,16 +15,16 @@ test_valid_value("inset-block-start", "auto"); test_valid_value("inset-block-end", "-10px"); test_valid_value("inset-inline-start", "-20%"); -test_valid_value("inset-inline-end", "calc(10px - 0.5em)"); +test_valid_value("inset-inline-end", "calc(10px - 0.5em)", "calc(-0.5em + 10px)"); test_valid_value("inset-block", "auto"); test_valid_value("inset-block", "-10px"); -test_valid_value("inset-block", "calc(10px - 0.5em) -20%"); +test_valid_value("inset-block", "calc(10px - 0.5em) -20%", "calc(-0.5em + 10px) -20%"); test_valid_value("inset-block", "auto auto", "auto"); test_valid_value("inset-inline", "-20%"); -test_valid_value("inset-inline", "calc(10px - 0.5em)"); +test_valid_value("inset-inline", "calc(10px - 0.5em)", "calc(-0.5em + 10px)"); test_valid_value("inset-inline", "-10px auto"); -test_valid_value("inset-inline", "auto calc(10px + 0.5em)"); +test_valid_value("inset-inline", "auto calc(10px + 0.5em)", "auto calc(0.5em + 10px)"); </script> </body> </html> diff --git a/tests/wpt/web-platform-tests/css/css-multicol/multicol-dynamic-add-001-ref.html b/tests/wpt/web-platform-tests/css/css-multicol/multicol-dynamic-add-001-ref.html new file mode 100644 index 00000000000..380c746301f --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-multicol/multicol-dynamic-add-001-ref.html @@ -0,0 +1,25 @@ +<!DOCTYPE html> +<html> + <meta charset="utf-8"> + <title>CSS Multi-column Layout Test: Append a block to an empty inline element</title> + <link rel="author" title="Ting-Yu Lin" href="tlin@mozilla.com"> + <link rel="author" title="Mozilla" href="http://www.mozilla.org/"> + + <style> + #column { + column-count: 3; + column-rule: 6px solid; + width: 400px; + outline: 1px solid black; + } + div { + height: 300px; + background-color: yellow; + } + </style> + <body> + <article id="column"> + <span id="span"><div>block</div></span> + </article> + </body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-multicol/multicol-dynamic-add-001.html b/tests/wpt/web-platform-tests/css/css-multicol/multicol-dynamic-add-001.html new file mode 100644 index 00000000000..ccc44add0b4 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-multicol/multicol-dynamic-add-001.html @@ -0,0 +1,46 @@ +<!DOCTYPE html> +<html class="reftest-wait"> + <meta charset="utf-8"> + <title>CSS Multi-column Layout Test: Append a block to an empty inline element</title> + <link rel="author" title="Ting-Yu Lin" href="tlin@mozilla.com"> + <link rel="author" title="Mozilla" href="http://www.mozilla.org/"> + <link rel="help" href="https://drafts.csswg.org/css-multicol-1/#cf"> + <link rel="help" href="https://www.w3.org/TR/CSS22/visuren.html#anonymous-block-level"> + <link rel="match" href="multicol-dynamic-add-001-ref.html"> + <meta name="assert" content="This test checks that the block appended into an inline element should perform correct block-in-inline splitting, and balance the block's height into three columns."> + + <script> + function runTest() { + document.body.offsetHeight; + + /* Append a block to the inline element. */ + var block = document.createElement("div"); + var text = document.createTextNode("block"); + block.appendChild(text); + + var span = document.getElementById("span"); + span.appendChild(block); + + document.documentElement.removeAttribute("class"); + } + </script> + + <style> + #column { + column-count: 3; + column-rule: 6px solid; + width: 400px; + outline: 1px solid black; + } + div { + height: 300px; + background-color: yellow; + } + </style> + + <body onload="runTest();"> + <article id="column"> + <span id="span"><!-- block will be added here. --></span> + </article> + </body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-properties-values-api/register-property-syntax-parsing.html b/tests/wpt/web-platform-tests/css/css-properties-values-api/register-property-syntax-parsing.html index fe2a63a57a1..6d7dbc63a1d 100644 --- a/tests/wpt/web-platform-tests/css/css-properties-values-api/register-property-syntax-parsing.html +++ b/tests/wpt/web-platform-tests/css/css-properties-values-api/register-property-syntax-parsing.html @@ -54,6 +54,8 @@ assert_valid("<percentage>", "-9.3e3%"); assert_valid("<length-percentage>", "-54%"); assert_valid("<length-percentage>", "0"); assert_valid("<length-percentage>", "calc(-11px + 10.4%)"); +assert_valid("<length>", "10vmin"); +assert_valid("<percentage> | <length>+", "calc(100vh - 10px) 30px"); assert_valid("<number>", "-109"); assert_valid("<number>", "2.3e4"); @@ -183,14 +185,12 @@ assert_invalid("<length>", "10%"); assert_invalid("<length>", "calc(5px + 10%)"); assert_invalid("<length>", "calc(5px * 3px / 6px)"); assert_invalid("<length>", "10em"); -assert_invalid("<length>", "10vmin"); assert_invalid("<length>", "calc(4px + 3em)"); assert_invalid("<length>", "calc(4px + calc(8 * 2em))"); assert_invalid("<length>+", "calc(2ex + 16px)"); assert_invalid("<length>+", "10px calc(20px + 4rem)"); assert_invalid("<length>+", ""); assert_invalid("<length>#", ""); -assert_invalid("<percentage> | <length>+", "calc(100vh - 10px) 30px"); assert_invalid("<length>", "10px;"); assert_invalid("<length-percentage>", "calc(2px + 10% + 7ex)"); assert_invalid("<percentage>", "0"); diff --git a/tests/wpt/web-platform-tests/css/css-scroll-snap/scroll-snap-type-on-root-element.html b/tests/wpt/web-platform-tests/css/css-scroll-snap/scroll-snap-type-on-root-element.html index c2c413d04bd..eaa94176547 100644 --- a/tests/wpt/web-platform-tests/css/css-scroll-snap/scroll-snap-type-on-root-element.html +++ b/tests/wpt/web-platform-tests/css/css-scroll-snap/scroll-snap-type-on-root-element.html @@ -1,42 +1,73 @@ <!DOCTYPE html> -<link rel="help" href="https://drafts.csswg.org/css-scroll-snap-1/#scroll-snap-type"/> -<link rel="help" href="https://drafts.csswg.org/css-writing-modes-4/#principal-flow"/> +<link rel="help" href="https://drafts.csswg.org/css-scroll-snap-1/#scroll-snap-type" /> +<link rel="help" href="https://drafts.csswg.org/css-writing-modes-4/#principal-flow" /> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <style> html { height: 3000px; - scroll-snap-type: inline mandatory; + width: 3000px; } + #target { position: absolute; background-color: blue; top: 1000px; - width: 100%; + left: 100px; + + width: 100vw; height: 100px; } </style> <div id="target"></div> <script> const documentHeight = document.documentElement.clientHeight; -test(() => { - target.style.scrollSnapAlign = "end start"; - - window.scrollTo(0, 1000); - - // `target y (1000px)` + `target height (100px)` - document height. - assert_equals(document.scrollingElement.scrollTop, 1100 - documentHeight); +function cleanup() { + document.documentElement.style.scrollSnapType = "none"; target.style.scrollSnapAlign = ""; + document.body.style.writingMode = ""; window.scrollTo(0, 0); -}, "The scroll-snap-type on the root element is applied"); +} + +test(t => { + t.add_cleanup(cleanup); + document.documentElement.style.scrollSnapType = "y mandatory"; + target.style.scrollSnapAlign = "end none"; -test(() => { - document.body.style.writingMode = "vertical-rl"; - target.style.scrollSnapAlign = "start end"; + window.scrollTo(0, 800); - window.scrollTo(0, 1000); // `target y (1000px)` + `target height (100px)` - document height. assert_equals(document.scrollingElement.scrollTop, 1100 - documentHeight); -}, "The writing-mode on the body is used"); -</script> + assert_equals(document.scrollingElement.scrollLeft, 0, "x should not snap"); +}, "The scroll-snap-type on the root element is applied"); + +test(t => { + t.add_cleanup(cleanup); + + document.documentElement.style.scrollSnapType = "inline mandatory"; + document.body.style.writingMode = "vertical-lr"; + target.style.scrollSnapAlign = "none end"; + + window.scrollTo(200, 800); + + // Since inline axis is vertical, scrolling viewport vertically on block + // axis should snap. + assert_equals(document.scrollingElement.scrollTop, 1100 - documentHeight, "inline should snap"); + // `target x (100px)`. + assert_equals(document.scrollingElement.scrollLeft, 200, "block should not snap"); +}, "The writing-mode (vertical-lr) on the body is used"); + +test(t => { + t.add_cleanup(cleanup); + + document.documentElement.style.scrollSnapType = "inline mandatory"; + document.body.style.writingMode = "horizontal-tb"; // inline is horizontal + target.style.scrollSnapAlign = "none start"; + + window.scrollTo(200, 800); + + assert_equals(document.scrollingElement.scrollLeft, 100, "inline should snap"); + assert_equals(document.scrollingElement.scrollTop, 800, "block should not snap"); +}, "The writing-mode (horizontal-tb) on the body is used "); +</script>
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/css/css-tables/parsing/border-spacing-valid.html b/tests/wpt/web-platform-tests/css/css-tables/parsing/border-spacing-valid.html index 98bf402fc6c..cf594ee6b89 100644 --- a/tests/wpt/web-platform-tests/css/css-tables/parsing/border-spacing-valid.html +++ b/tests/wpt/web-platform-tests/css/css-tables/parsing/border-spacing-valid.html @@ -13,7 +13,7 @@ <script> test_valid_value("border-spacing", "0px"); test_valid_value("border-spacing", "10px 20px"); -test_valid_value("border-spacing", "calc(10px + 0.5em) calc(10px - 0.5em)"); +test_valid_value("border-spacing", "calc(10px + 0.5em) calc(10px - 0.5em)", "calc(0.5em + 10px) calc(-0.5em + 10px)"); </script> </body> </html> diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-width-001-notref.html b/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-thickness-001-notref.html index 53a87c014d7..f876afa68c6 100644 --- a/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-width-001-notref.html +++ b/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-thickness-001-notref.html @@ -2,7 +2,7 @@ <html> <head> <meta charset="utf-8"> - <title>Non-reference case for text-decoration-width</title> + <title>Non-reference case for text-decoration-thickness</title> <link rel="stylesheet" type="text/css" href="/fonts/ahem.css"> <style> #main { diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-width-green-rect-ref.html b/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-thickness-green-rect-ref.html index 7bc3865a861..14d1219001c 100644 --- a/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-width-green-rect-ref.html +++ b/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-thickness-green-rect-ref.html @@ -2,7 +2,7 @@ <html> <head> <meta charset="utf-8"> - <title>Reference case for text-decoration-width</title> + <title>Reference case for text-decoration-thickness</title> <link rel="stylesheet" type="text/css" href="/fonts/ahem.css"> <style> div{ diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-width-scroll-001-ref.html b/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-thickness-scroll-001-ref.html index dd4868417ba..394811468fe 100644 --- a/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-width-scroll-001-ref.html +++ b/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-thickness-scroll-001-ref.html @@ -2,7 +2,7 @@ <html> <head> <meta charset="utf-8"> - <title>Reference case for text-decoration-width</title> + <title>Reference case for text-decoration-thickness</title> <link rel="stylesheet" type="text/css" href="/fonts/ahem.css"> <style> #box{ diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-width-vertical-green-rect-ref.html b/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-thickness-vertical-green-rect-ref.html index ec7db180dc2..8955e8469aa 100644 --- a/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-width-vertical-green-rect-ref.html +++ b/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-thickness-vertical-green-rect-ref.html @@ -2,7 +2,7 @@ <html> <head> <meta charset="utf-8"> - <title>Reference case for text-decoration-width</title> + <title>Reference case for text-decoration-thickness</title> <link rel="stylesheet" type="text/css" href="/fonts/ahem.css"> <style> #box{ diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-width-001.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-thickness-001.html index ab6dfcadeb1..8f314793f26 100644 --- a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-width-001.html +++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-thickness-001.html @@ -2,12 +2,12 @@ <html> <head> <meta charset="utf-8"> - <title>Test case for text-decoration-width</title> - <meta name="assert" content="text-decoration-width: should affect the underline thickness"> + <title>Test case for text-decoration-thickness</title> + <meta name="assert" content="text-decoration-thickness: should affect the underline thickness"> <link rel="author" title="Charlie Marlow" href="mailto:cmarlow@mozilla.com"> <link rel="author" title="Mozilla" href="https://www.mozilla.org"> <link rel="help" href="https://drafts.csswg.org/css-text-decor-4/#text-decoration-width-property"> - <link rel="mismatch" href="reference/text-decoration-width-001-notref.html"> + <link rel="mismatch" href="reference/text-decoration-thickness-001-notref.html"> <link rel="stylesheet" type="text/css" href="/fonts/ahem.css"> <style> #main { @@ -21,7 +21,7 @@ padding-right: 1em; } #rightbox { - text-decoration-width: 2em; + text-decoration-thickness: 2em; } </style> </head> diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-width-computed.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-thickness-computed.html index 0e00240141e..99e693afb5a 100644 --- a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-width-computed.html +++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-thickness-computed.html @@ -2,9 +2,9 @@ <html> <head> <meta charset="utf-8"> -<title>CSS Text Decoration Test: parsing text-decoration-width computed values</title> +<title>CSS Text Decoration Test: parsing text-decoration-thickness computed values</title> <link rel="help" href="https://drafts.csswg.org/css-text-decor-4/#text-decoration-width-property"> -<meta name="assert" content="text-decoration-width computed value is as specified."> +<meta name="assert" content="text-decoration-thickness computed value is as specified."> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="/css/support/computed-testcommon.js"></script> @@ -12,9 +12,9 @@ <body> <div id="target"></div> <script> -test_computed_value("text-decoration-width", "auto"); -test_computed_value("text-decoration-width", "from-font"); -test_computed_value("text-decoration-width", "calc(10px - 8px)", "2px"); +test_computed_value("text-decoration-thickness", "auto"); +test_computed_value("text-decoration-thickness", "from-font"); +test_computed_value("text-decoration-thickness", "calc(10px - 8px)", "2px"); </script> </body> </html> diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-width-initial.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-thickness-initial.html index ee47af0f115..4c4ca9cc9ab 100644 --- a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-width-initial.html +++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-thickness-initial.html @@ -4,14 +4,14 @@ <meta charset="utf-8"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> -<link rel="help" title="2.4 Text Decoration Width: the 'text-decoration-width' property" +<link rel="help" title="2.4 Text Decoration Width: the 'text-decoration-thickness' property" href="https://drafts.csswg.org/css-text-decor-4/#text-decoration-width-property" /> </head> <body> <script> test(function() { - assert_equals(getComputedStyle(document.body)["text-decoration-width"], "auto", "Must be set to value auto as initial value."); -}, "Initial value of text-decoration-width should be auto"); + assert_equals(getComputedStyle(document.body)["text-decoration-thickness"], "auto", "Must be set to value auto as initial value."); +}, "Initial value of text-decoration-thickness should be auto"); </script> </body> </html> diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-thickness-invalid.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-thickness-invalid.html new file mode 100644 index 00000000000..656fa3bba2a --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-thickness-invalid.html @@ -0,0 +1,27 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Text Decoration Test: parsing text-decoration-thickness with invalid values</title> +<link rel="help" href="https://drafts.csswg.org/css-text-decor-4/#text-decoration-width-property"> +<meta name="assert" content="text-decoration-thickness supports the following values: auto | from-font | <length>"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/parsing-testcommon.js"></script> +</head> +<body> +<script> +test_invalid_value("text-decoration-thickness", "otto"); +test_invalid_value("text-decoration-thickness", "asdlflj"); +test_invalid_value("text-decoration-thickness", "-10"); +test_invalid_value("text-decoration-thickness", "60002020"); +test_invalid_value("text-decoration-thickness", "!@#$%^&"); +test_invalid_value("text-decoration-thickness", "10e2"); +test_invalid_value("text-decoration-thickness", "from font"); +test_invalid_value("text-decoration-thickness", "10%"); +test_invalid_value("text-decoration-thickness", "-27%"); +test_invalid_value("text-decoration-thickness", "calc(40% - 20px)"); +test_invalid_value("text-decoration-thickness", "calc(100% - 40em)"); +</script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-width-linethrough-001.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-thickness-linethrough-001.html index cc48da15a7a..37e954b2b87 100644 --- a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-width-linethrough-001.html +++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-thickness-linethrough-001.html @@ -2,12 +2,12 @@ <html> <head> <meta charset="utf-8"> - <title>Test case for text-decoration-width</title> - <meta name="assert" content="text-decoration-width; the width of the decoration line is increased"> + <title>Test case for text-decoration-thickness</title> + <meta name="assert" content="text-decoration-thickness; the width of the decoration line is increased"> <link rel="author" title="Charlie Marlow" href="mailto:cmarlow@mozilla.com"> <link rel="author" title="Mozilla" href="https://www.mozilla.org"> <link rel="help" href="https://drafts.csswg.org/css-text-decor-4/#text-decoration-width-property"> - <link rel="match" href="reference/text-decoration-width-green-rect-ref.html"> + <link rel="match" href="reference/text-decoration-thickness-green-rect-ref.html"> <link rel="stylesheet" type="text/css" href="/fonts/ahem.css"> <style> div{ @@ -22,7 +22,7 @@ * it will entirely cover the div's content-box (making it fully green) as long * as the line-through is approximately centered, vertically. */ - text-decoration-width: 1.1em; + text-decoration-thickness: 1.1em; } </style> </head> diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-width-overline-001.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-thickness-overline-001.html index 21eb18b7ab2..325811c96fd 100644 --- a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-width-overline-001.html +++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-thickness-overline-001.html @@ -2,12 +2,12 @@ <html> <head> <meta charset="utf-8"> - <title>Test case for text-decoration-width</title> - <meta name="assert" content="text-decoration-width: the width of the decoration line is increased"> + <title>Test case for text-decoration-thickness</title> + <meta name="assert" content="text-decoration-thickness: the width of the decoration line is increased"> <link rel="author" title="Charlie Marlow" href="mailto:cmarlow@mozilla.com"> <link rel="author" title="Mozilla" href="https://www.mozilla.org"> <link rel="help" href="https://drafts.csswg.org/css-text-decor-4/#text-decoration-width-property"> - <link rel="match" href="reference/text-decoration-width-green-rect-ref.html"> + <link rel="match" href="reference/text-decoration-thickness-green-rect-ref.html"> <link rel="stylesheet" type="text/css" href="/fonts/ahem.css"> <style> #box{ @@ -27,7 +27,7 @@ top: 3em; text-decoration: green overline; text-decoration-skip-ink: none; - text-decoration-width: 4em; + text-decoration-thickness: 4em; } </style> </head> diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-width-scroll-001.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-thickness-scroll-001.html index f203bf10c2d..acc829dc66d 100644 --- a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-width-scroll-001.html +++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-thickness-scroll-001.html @@ -2,12 +2,12 @@ <html> <head> <meta charset="utf-8"> - <title>Test case for text-decoration-width</title> - <meta name="assert" content="text-decoration-width: increased width text decorations don't create scrollable overflow"> + <title>Test case for text-decoration-thickness</title> + <meta name="assert" content="text-decoration-thickness: increased width text decorations don't create scrollable overflow"> <link rel="author" title="Charlie Marlow" href="mailto:cmarlow@mozilla.com"> <link rel="author" title="Mozilla" href="https://www.mozilla.org"> <link rel="help" href="https://drafts.csswg.org/css-text-decor-4/#text-decoration-width-property"> - <link rel="match" href="reference/text-decoration-width-scroll-001-ref.html"> + <link rel="match" href="reference/text-decoration-thickness-scroll-001-ref.html"> <link rel="stylesheet" type="text/css" href="/fonts/ahem.css"> <style> #box{ @@ -29,7 +29,7 @@ color: transparent; text-decoration: green underline; text-decoration-skip-ink: none; - text-decoration-width: 8em; + text-decoration-thickness: 8em; } </style> </head> diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-width-underline-001.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-thickness-underline-001.html index 97ecc73a4a9..020f849f4cf 100644 --- a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-width-underline-001.html +++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-thickness-underline-001.html @@ -2,12 +2,12 @@ <html> <head> <meta charset="utf-8"> - <title>Test case for text-decoration-width</title> - <meta name="assert" content="text-decoration-width: the width of the decoration line is increased"> + <title>Test case for text-decoration-thickness</title> + <meta name="assert" content="text-decoration-thickness: the width of the decoration line is increased"> <link rel="author" title="Charlie Marlow" href="mailto:cmarlow@mozilla.com"> <link rel="author" title="Mozilla" href="https://www.mozilla.org"> <link rel="help" href="https://drafts.csswg.org/css-text-decor-4/#text-decoration-width-property"> - <link rel="match" href="reference/text-decoration-width-green-rect-ref.html"> + <link rel="match" href="reference/text-decoration-thickness-green-rect-ref.html"> <link rel="stylesheet" type="text/css" href="/fonts/ahem.css"> <style> #box{ @@ -27,7 +27,7 @@ bottom: 3em; text-decoration: green underline; text-decoration-skip-ink: none; - text-decoration-width: 4em; + text-decoration-thickness: 4em; } </style> </head> diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-thickness-valid.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-thickness-valid.html new file mode 100644 index 00000000000..d05c8926748 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-thickness-valid.html @@ -0,0 +1,24 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Text Decoration Test: parsing text-decoration-thickness longhands with valid values</title> +<link rel="help" href="https://drafts.csswg.org/css-text-decor-4/#text-decoration-width-property"> +<meta name="assert" content="text-decoration-thickness supports the following values: auto | from-font | <length>"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/parsing-testcommon.js"></script> +</head> +<body> +<script> +test_valid_value("text-decoration-thickness", "auto"); +test_valid_value("text-decoration-thickness", "from-font"); +test_valid_value("text-decoration-thickness", "-10px"); +test_valid_value("text-decoration-thickness", "2001em"); +test_valid_value("text-decoration-thickness", "-49em"); +test_valid_value("text-decoration-thickness", "53px"); +test_valid_value("text-decoration-thickness", "calc(40em - 10px)"); +test_valid_value("text-decoration-thickness", "calc(-50em + 13px)"); +</script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-width-vertical-001.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-thickness-vertical-001.html index 5b4ab5e74dd..f04f1b52f95 100644 --- a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-width-vertical-001.html +++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-thickness-vertical-001.html @@ -2,12 +2,12 @@ <html> <head> <meta charset="utf-8"> - <title>Test case for text-decoration-width</title> - <meta name="assert" content="text-decoration-width: the width of the decoration line is increased"> + <title>Test case for text-decoration-thickness</title> + <meta name="assert" content="text-decoration-thickness: the width of the decoration line is increased"> <link rel="author" title="Charlie Marlow" href="mailto:cmarlow@mozilla.com"> <link rel="author" title="Mozilla" href="https://www.mozilla.org"> <link rel="help" href="https://drafts.csswg.org/css-text-decor-4/#text-decoration-width-property"> - <link rel="match" href="reference/text-decoration-width-vertical-green-rect-ref.html"> + <link rel="match" href="reference/text-decoration-thickness-vertical-green-rect-ref.html"> <link rel="stylesheet" type="text/css" href="/fonts/ahem.css"> <style> #box{ @@ -34,7 +34,7 @@ left: 1.3em; text-decoration: green underline; text-decoration-skip-ink: none; - text-decoration-width: 1.5em; + text-decoration-thickness: 1.5em; } </style> </head> diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-width-vertical-002.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-thickness-vertical-002.html index cbe4b1f8374..70421c507b7 100644 --- a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-width-vertical-002.html +++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-thickness-vertical-002.html @@ -2,12 +2,12 @@ <html> <head> <meta charset="utf-8"> - <title>Test case for text-decoration-width</title> + <title>Test case for text-decoration-thickness</title> <meta name="assert" content="text-decoration:width; the width of the decoration line is increased"> <link rel="author" title="Charlie Marlow" href="mailto:cmarlow@mozilla.com"> <link rel="author" title="Mozilla" href="https://www.mozilla.org"> <link rel="help" href="https://drafts.csswg.org/css-text-decor-4/#text-decoration-width-property"> - <link rel="match" href="reference/text-decoration-width-vertical-green-rect-ref.html"> + <link rel="match" href="reference/text-decoration-thickness-vertical-green-rect-ref.html"> <link rel="stylesheet" type="text/css" href="/fonts/ahem.css"> <style> #box{ @@ -33,7 +33,7 @@ right: 1em; text-decoration: green underline; text-decoration-skip-ink: none; - text-decoration-width: 1.2em; + text-decoration-thickness: 1.2em; } </style> </head> diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-width-invalid.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-width-invalid.html deleted file mode 100644 index e89fe47ff2d..00000000000 --- a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-width-invalid.html +++ /dev/null @@ -1,27 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta charset="utf-8"> -<title>CSS Text Decoration Test: parsing text-decoration-width with invalid values</title> -<link rel="help" href="https://drafts.csswg.org/css-text-decor-4/#text-decoration-width-property"> -<meta name="assert" content="text-decoration-width supports the following values: auto | from-font | <length>"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> -<script src="/css/support/parsing-testcommon.js"></script> -</head> -<body> -<script> -test_invalid_value("text-decoration-width", "otto"); -test_invalid_value("text-decoration-width", "asdlflj"); -test_invalid_value("text-decoration-width", "-10"); -test_invalid_value("text-decoration-width", "60002020"); -test_invalid_value("text-decoration-width", "!@#$%^&"); -test_invalid_value("text-decoration-width", "10e2"); -test_invalid_value("text-decoration-width", "from font"); -test_invalid_value("text-decoration-width", "10%"); -test_invalid_value("text-decoration-width", "-27%"); -test_invalid_value("text-decoration-width", "calc(40% - 20px)"); -test_invalid_value("text-decoration-width", "calc(100% - 40em)"); -</script> -</body> -</html> diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-width-valid.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-width-valid.html deleted file mode 100644 index 583ebb0d3cf..00000000000 --- a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-width-valid.html +++ /dev/null @@ -1,24 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta charset="utf-8"> -<title>CSS Text Decoration Test: parsing text-decoration-width longhands with valid values</title> -<link rel="help" href="https://drafts.csswg.org/css-text-decor-4/#text-decoration-width-property"> -<meta name="assert" content="text-decoration-width supports the following values: auto | from-font | <length>"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> -<script src="/css/support/parsing-testcommon.js"></script> -</head> -<body> -<script> -test_valid_value("text-decoration-width", "auto"); -test_valid_value("text-decoration-width", "from-font"); -test_valid_value("text-decoration-width", "-10px"); -test_valid_value("text-decoration-width", "2001em"); -test_valid_value("text-decoration-width", "-49em"); -test_valid_value("text-decoration-width", "53px"); -test_valid_value("text-decoration-width", "calc(40em - 10px)"); -test_valid_value("text-decoration-width", "calc(-50em + 13px)"); -</script> -</body> -</html> diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/text-decoration-width.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/text-decoration-thickness.html index 43aeb165645..903ca8603fb 100644 --- a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/text-decoration-width.html +++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/text-decoration-thickness.html @@ -1,6 +1,6 @@ <!doctype html> <meta charset="utf-8"> -<title>'text-decoration-width' property</title> +<title>'text-decoration-thickness' property</title> <link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-get"> <link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-set"> <link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#property-stle-value-normalization"> @@ -13,7 +13,7 @@ <script> 'use strict'; -runPropertyTests('text-decoration-width', [ +runPropertyTests('text-decoration-thickness', [ { syntax: 'auto' }, { syntax: '<length>', diff --git a/tests/wpt/web-platform-tests/event-timing/bufferbeforeonload.html b/tests/wpt/web-platform-tests/event-timing/bufferbeforeonload.html index c30c01aa96b..4b003a98f64 100644 --- a/tests/wpt/web-platform-tests/event-timing/bufferbeforeonload.html +++ b/tests/wpt/web-platform-tests/event-timing/bufferbeforeonload.html @@ -62,6 +62,9 @@ (Dispatch and Process Click 2 - not buffered) */ async_test(function(t) { + if (!window.PerformanceEventTiming) + assert_unreached("PerformanceEventTiming is not supported"); + clickTimeMin = performance.now(); clickAndBlockMain('button'); // Event handlers will be dispatched asynchronously, so this will be called diff --git a/tests/wpt/web-platform-tests/event-timing/buffered-flag.html b/tests/wpt/web-platform-tests/event-timing/buffered-flag.html index 8b56ad7f44d..b9c63ffd8fd 100644 --- a/tests/wpt/web-platform-tests/event-timing/buffered-flag.html +++ b/tests/wpt/web-platform-tests/event-timing/buffered-flag.html @@ -12,6 +12,9 @@ let firstInputSeen = false; let eventSeen = false; async_test(t => { + if (!window.PerformanceEventTiming) + assert_unreached("PerformanceEventTiming is not supported"); + const validateEntry = t.step_func(entry => { if (entry.entryType === 'first-input') firstInputSeen = true; diff --git a/tests/wpt/web-platform-tests/event-timing/crossiframe.html b/tests/wpt/web-platform-tests/event-timing/crossiframe.html index c1a27a5d021..bb19c82a2a1 100644 --- a/tests/wpt/web-platform-tests/event-timing/crossiframe.html +++ b/tests/wpt/web-platform-tests/event-timing/crossiframe.html @@ -65,6 +65,9 @@ } async_test(function(t) { + if (!window.PerformanceEventTiming) + assert_unreached("PerformanceEventTiming is not supported"); + clickTimeMin = performance.now(); clickAndBlockMain('button'); processingStartMin = performance.now(); diff --git a/tests/wpt/web-platform-tests/event-timing/observethenonload.html b/tests/wpt/web-platform-tests/event-timing/observethenonload.html index 4145eae0a59..8295aaf0412 100644 --- a/tests/wpt/web-platform-tests/event-timing/observethenonload.html +++ b/tests/wpt/web-platform-tests/event-timing/observethenonload.html @@ -66,6 +66,9 @@ observer callback start */ async_test(function(t) { + if (!window.PerformanceEventTiming) + assert_unreached("PerformanceEventTiming is not supported"); + const observerPromise = new Promise((resolve, reject) => { new PerformanceObserver(function(entryList) { observedEntries = observedEntries.concat(entryList.getEntries().filter( diff --git a/tests/wpt/web-platform-tests/event-timing/onloadthenobserve-firstInput.html b/tests/wpt/web-platform-tests/event-timing/onloadthenobserve-firstInput.html index fe40bdf65fb..3cd80e2eba1 100644 --- a/tests/wpt/web-platform-tests/event-timing/onloadthenobserve-firstInput.html +++ b/tests/wpt/web-platform-tests/event-timing/onloadthenobserve-firstInput.html @@ -21,6 +21,9 @@ (Dispatch and Process Click 2 - not buffered) */ async_test(function(t) { + if (!window.PerformanceEventTiming) + assert_unreached("PerformanceEventTiming is not supported"); + let numFirstInputObserved = 0; let numEventsObserved = 0; let observedEventEntries = []; diff --git a/tests/wpt/web-platform-tests/event-timing/onloadthenobserve.html b/tests/wpt/web-platform-tests/event-timing/onloadthenobserve.html index d97228577a1..4365f4837bc 100644 --- a/tests/wpt/web-platform-tests/event-timing/onloadthenobserve.html +++ b/tests/wpt/web-platform-tests/event-timing/onloadthenobserve.html @@ -56,6 +56,9 @@ registration are lost (Dispatch and Process Click 2 (not buffered, observed)) */ async_test(function(t) { + if (!window.PerformanceEventTiming) + assert_unreached("PerformanceEventTiming is not supported"); + // Use a dummy observer to know when the first click has been dispatched. const observerPromise = new Promise((resolve, reject) => { new PerformanceObserver((entryList, observer) => { diff --git a/tests/wpt/web-platform-tests/event-timing/only-observe-firstInput.html b/tests/wpt/web-platform-tests/event-timing/only-observe-firstInput.html index d356902c31d..48df6ec9fc6 100644 --- a/tests/wpt/web-platform-tests/event-timing/only-observe-firstInput.html +++ b/tests/wpt/web-platform-tests/event-timing/only-observe-firstInput.html @@ -20,6 +20,9 @@ PerformanceObserver should observe one and only one entry. */ async_test(function(t) { + if (!window.PerformanceEventTiming) + assert_unreached("PerformanceEventTiming is not supported"); + let hasObservedFirstInput = false; new PerformanceObserver(t.step_func((entryList) => { assert_false(hasObservedFirstInput); diff --git a/tests/wpt/web-platform-tests/event-timing/programmatic-click-not-observed.html b/tests/wpt/web-platform-tests/event-timing/programmatic-click-not-observed.html index 9eb067024da..c84d4eff6b8 100644 --- a/tests/wpt/web-platform-tests/event-timing/programmatic-click-not-observed.html +++ b/tests/wpt/web-platform-tests/event-timing/programmatic-click-not-observed.html @@ -18,6 +18,9 @@ delayCalled = true; } async_test(function(t) { + if (!window.PerformanceEventTiming) + assert_unreached("PerformanceEventTiming is not supported"); + const observer = new PerformanceObserver(t.step_func_done((entryList) => { const entries = entryList.getEntries().filter(e => e.name === 'mousedown'); // There must only be one click entry: from the clickAndBlockMain() call. diff --git a/tests/wpt/web-platform-tests/event-timing/retrieve-firstInput.html b/tests/wpt/web-platform-tests/event-timing/retrieve-firstInput.html index 5ea5d74b1a8..5ddd9b5f01b 100644 --- a/tests/wpt/web-platform-tests/event-timing/retrieve-firstInput.html +++ b/tests/wpt/web-platform-tests/event-timing/retrieve-firstInput.html @@ -12,6 +12,9 @@ <script> async_test(function(t) { + if (!window.PerformanceEventTiming) + assert_unreached("PerformanceEventTiming is not supported"); + function testEntries() { // First callback is not ensured to have the entry. if (performance.getEntriesByType('first-input').length === 0) { diff --git a/tests/wpt/web-platform-tests/event-timing/timingconditions.html b/tests/wpt/web-platform-tests/event-timing/timingconditions.html index a7847b3ccc0..1fcda21a197 100644 --- a/tests/wpt/web-platform-tests/event-timing/timingconditions.html +++ b/tests/wpt/web-platform-tests/event-timing/timingconditions.html @@ -35,6 +35,9 @@ } async_test(function(t) { + if (!window.PerformanceEventTiming) + assert_unreached("PerformanceEventTiming is not supported"); + new PerformanceObserver(t.step_func_done(entryList => { const observerCallbackTime = performance.now(); const entries = entryList.getEntries().filter( diff --git a/tests/wpt/web-platform-tests/fetch/api/response/response-consume-empty.html b/tests/wpt/web-platform-tests/fetch/api/response/response-consume-empty.html index 4bfcfbc8f44..6e51ff8b59a 100644 --- a/tests/wpt/web-platform-tests/fetch/api/response/response-consume-empty.html +++ b/tests/wpt/web-platform-tests/fetch/api/response/response-consume-empty.html @@ -89,7 +89,7 @@ assert_false(response.bodyUsed, "bodyUsed is false at init"); if (asText) { return response.text().then(function(bodyAsString) { - assert_equals(bodyAsString.length, 0, "Resolved value should be empty"); + assert_equals(bodyAsString, "", "Resolved value should be empty"); assert_true(response.bodyUsed, "bodyUsed is true after being consumed"); }); } diff --git a/tests/wpt/web-platform-tests/html/browsers/history/the-location-interface/location_hash.html b/tests/wpt/web-platform-tests/html/browsers/history/the-location-interface/location_hash.html index 99f64ddea24..ef6f6331389 100644 --- a/tests/wpt/web-platform-tests/html/browsers/history/the-location-interface/location_hash.html +++ b/tests/wpt/web-platform-tests/html/browsers/history/the-location-interface/location_hash.html @@ -10,7 +10,12 @@ <iframe id="srcdoc-iframe" srcdoc="<div style='height: 200vh'></div><div id='test'></div>"></iframe> <script> - test(function () { + function resetHash() { + location.hash = ""; + } + + test(function (t) { + t.add_cleanup(resetHash); window.history.pushState(1, document.title, '#x=1'); var hash = location.hash; @@ -30,6 +35,30 @@ assert_true(frameWin.scrollY > frameWin.innerHeight, "Should have scrolled by more than one viewport height"); })); + + test(function(t) { + t.add_cleanup(resetHash); + location.hash = "test"; + assert_equals(location.hash, "#test"); + }, "Setting hash should automatically include hash character"); + + test(function(t) { + t.add_cleanup(resetHash); + location.hash = "#not encoded"; + assert_equals(location.hash, "#not%20encoded"); + }, "Setting hash should encode incompatible characters"); + + test(function(t) { + t.add_cleanup(resetHash); + location.hash = "#already%20encoded"; + assert_equals(location.hash, "#already%20encoded"); + }, "Setting hash to an already encoded value should not double encode it"); + + test(function(t) { + t.add_cleanup(resetHash); + location.hash = "#mixed encoding%20here"; + assert_equals(location.hash, "#mixed%20encoding%20here"); + }, "Setting hash which is partially encoded should only encode incompatible characters"); </script> </body> </html> diff --git a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success.html b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success.https.html index f6d7f26ce83..d3e9956368a 100644 --- a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success.html +++ b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success.https.html @@ -6,6 +6,7 @@ <link rel="author" title="Domenic Denicola" href="mailto:d@domenic.me"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/common/utils.js"></script> <!-- Use token() to allow running tests in parallel --> <div id="log"></div> @@ -13,23 +14,19 @@ "use strict"; promise_test(t => { + const channelName = token(); return Promise.all([ - createIFrame("resources/broadcastchannel-iframe.html"), - createIFrame("resources/broadcastchannel-iframe.html"), - createIFrame("resources/broadcastchannel-iframe.html") + createIFrame(`resources/broadcastchannel-iframe.html?channel=${channelName}&index=0`), + createIFrame(`resources/broadcastchannel-iframe.html?channel=${channelName}&index=1`), + createIFrame(`resources/broadcastchannel-iframe.html?channel=${channelName}&index=2`) ]).then(() => { const sab = new SharedArrayBuffer(3); const view = new Uint8Array(sab); - const channel = new BroadcastChannel("channel name"); + const channel = new BroadcastChannel(channelName); return new Promise(resolve => { let soFar = 0; - channel.onmessage = t.step_func(({ data: { sab: broadcastSAB, i } }) => { - if (broadcastSAB) { - // We only care about "broadcasts" from the workers. - return; - } - + channel.onmessage = t.step_func(({ data: { i } }) => { assert_in_array(i, [0, 1, 2], "Any message events must come from expected sources"); ++soFar; diff --git a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success.https.html.headers b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success.https.html.headers new file mode 100644 index 00000000000..63b60e490f4 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success.https.html.headers @@ -0,0 +1,2 @@ +Cross-Origin-Opener-Policy: same-origin +Cross-Origin-Embedder-Policy: require-corp diff --git a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/broadcastchannel-iframe.html b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/broadcastchannel-iframe.html index 792d6fd2013..02b9bcbbe88 100644 --- a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/broadcastchannel-iframe.html +++ b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/broadcastchannel-iframe.html @@ -4,10 +4,13 @@ <script> "use strict"; -const channel = new BroadcastChannel("channel name"); +const query = new URLSearchParams(location.search); +const channel = new BroadcastChannel(query.get("channel")); +const i = Number(query.get("index")); -channel.onmessage = ({ data: { sab, i }, source }) => { - if (!sab) { +channel.onmessage = e => { + const sab = e.data.sab; + if (sab === undefined) { // We only care about "broadcasts" from the window return; } diff --git a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/broadcastchannel-iframe.html.headers b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/broadcastchannel-iframe.html.headers new file mode 100644 index 00000000000..6604450991a --- /dev/null +++ b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/broadcastchannel-iframe.html.headers @@ -0,0 +1 @@ +Cross-Origin-Embedder-Policy: require-corp diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-img-element/invalid-src.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-img-element/invalid-src.html index 49e956565cc..c3c57ee3c0a 100644 --- a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-img-element/invalid-src.html +++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-img-element/invalid-src.html @@ -10,12 +10,20 @@ async_test(function(t) { var img = document.getElementById("brokenurl"); img.src = "http://["; var errorevent = false; + var loadendevent = false; // The errors should be queued in the event loop, so they should only trigger // after this block of code finishes, not during the img.src setter itself - img.addEventListener('error', t.step_func(function(){errorevent = true;})); - img.addEventListener('loadend', t.step_func_done(function() { + img.addEventListener('error', t.step_func(function() { + assert_false(loadendevent, "loadend should fire after error"); + errorevent = true; + t.step_timeout(t.step_func_done(function() { + assert_true(loadendevent, "loadend event fired"); + }), 0); + })); + img.addEventListener('loadend', t.step_func(function() { assert_true(errorevent, "error event fired"); + loadendevent = true; })); }, 'src="http://["'); @@ -31,8 +39,8 @@ async_test(function(t) { // Queue this check in the event loop to check there is no loadend event // fired. t.step_timeout(t.step_func_done(function() { - assert_false(loadendevent, "loadend event should not fired"); - }), 0) + assert_false(loadendevent, "loadend event should not be fired"); + }), 0); })); img.addEventListener('loadend', t.step_func(function() { loadendevent = true; diff --git a/tests/wpt/web-platform-tests/interfaces/webrtc.idl b/tests/wpt/web-platform-tests/interfaces/webrtc.idl index 83f009fed53..faccd6f47d3 100644 --- a/tests/wpt/web-platform-tests/interfaces/webrtc.idl +++ b/tests/wpt/web-platform-tests/interfaces/webrtc.idl @@ -4,133 +4,140 @@ // Source: WebRTC 1.0: Real-time Communication Between Browsers (https://w3c.github.io/webrtc-pc/) dictionary RTCConfiguration { - sequence<RTCIceServer> iceServers; - RTCIceTransportPolicy iceTransportPolicy; - RTCBundlePolicy bundlePolicy; - RTCRtcpMuxPolicy rtcpMuxPolicy; - DOMString peerIdentity; - sequence<RTCCertificate> certificates; - [EnforceRange] - octet iceCandidatePoolSize = 0; + sequence<RTCIceServer> iceServers; + RTCIceTransportPolicy iceTransportPolicy; + RTCBundlePolicy bundlePolicy; + RTCRtcpMuxPolicy rtcpMuxPolicy; + DOMString peerIdentity; + sequence<RTCCertificate> certificates; + [EnforceRange] octet iceCandidatePoolSize = 0; }; enum RTCIceCredentialType { - "password", - "oauth" + "password", + "oauth" }; dictionary RTCOAuthCredential { - required DOMString macKey; - required DOMString accessToken; + required DOMString macKey; + required DOMString accessToken; }; dictionary RTCIceServer { - required (DOMString or sequence<DOMString>) urls; - DOMString username; - (DOMString or RTCOAuthCredential) credential; - RTCIceCredentialType credentialType = "password"; + required (DOMString or sequence<DOMString>) urls; + DOMString username; + (DOMString or RTCOAuthCredential) credential; + RTCIceCredentialType credentialType = "password"; }; enum RTCIceTransportPolicy { - "relay", - "all" + "relay", + "all" }; enum RTCBundlePolicy { - "balanced", - "max-compat", - "max-bundle" + "balanced", + "max-compat", + "max-bundle" }; enum RTCRtcpMuxPolicy { - // At risk due to lack of implementers' interest. - "negotiate", - "require" + // At risk due to lack of implementers' interest. + "negotiate", + "require" }; dictionary RTCOfferAnswerOptions { - boolean voiceActivityDetection = true; + boolean voiceActivityDetection = true; }; dictionary RTCOfferOptions : RTCOfferAnswerOptions { - boolean iceRestart = false; + boolean iceRestart = false; }; -dictionary RTCAnswerOptions : RTCOfferAnswerOptions { -}; +dictionary RTCAnswerOptions : RTCOfferAnswerOptions {}; enum RTCSignalingState { - "stable", - "have-local-offer", - "have-remote-offer", - "have-local-pranswer", - "have-remote-pranswer", - "closed" + "stable", + "have-local-offer", + "have-remote-offer", + "have-local-pranswer", + "have-remote-pranswer", + "closed" }; enum RTCIceGatheringState { - "new", - "gathering", - "complete" + "new", + "gathering", + "complete" }; enum RTCPeerConnectionState { - "closed", - "failed", - "disconnected", - "new", - "connecting", - "connected" + "closed", + "failed", + "disconnected", + "new", + "connecting", + "connected" }; enum RTCIceConnectionState { - "closed", - "failed", - "disconnected", - "new", - "checking", - "completed", - "connected" + "closed", + "failed", + "disconnected", + "new", + "checking", + "completed", + "connected" }; -[ Constructor(optional RTCConfiguration configuration), Exposed=Window] +[Exposed=Window, Constructor(optional RTCConfiguration configuration)] interface RTCPeerConnection : EventTarget { - Promise<RTCSessionDescriptionInit> createOffer(optional RTCOfferOptions options); - Promise<RTCSessionDescriptionInit> createAnswer(optional RTCAnswerOptions options); - Promise<void> setLocalDescription(RTCSessionDescriptionInit description); - readonly attribute RTCSessionDescription? localDescription; - readonly attribute RTCSessionDescription? currentLocalDescription; - readonly attribute RTCSessionDescription? pendingLocalDescription; - Promise<void> setRemoteDescription(RTCSessionDescriptionInit description); - readonly attribute RTCSessionDescription? remoteDescription; - readonly attribute RTCSessionDescription? currentRemoteDescription; - readonly attribute RTCSessionDescription? pendingRemoteDescription; - Promise<void> addIceCandidate(optional RTCIceCandidateInit candidate); - readonly attribute RTCSignalingState signalingState; - readonly attribute RTCIceGatheringState iceGatheringState; - readonly attribute RTCIceConnectionState iceConnectionState; - readonly attribute RTCPeerConnectionState connectionState; - readonly attribute boolean? canTrickleIceCandidates; - void restartIce(); - static sequence<RTCIceServer> getDefaultIceServers(); - RTCConfiguration getConfiguration(); - void setConfiguration(RTCConfiguration configuration); - void close(); - attribute EventHandler onnegotiationneeded; - attribute EventHandler onicecandidate; - attribute EventHandler onicecandidateerror; - attribute EventHandler onsignalingstatechange; - attribute EventHandler oniceconnectionstatechange; - attribute EventHandler onicegatheringstatechange; - attribute EventHandler onconnectionstatechange; + Promise<RTCSessionDescriptionInit> createOffer(optional RTCOfferOptions options); + Promise<RTCSessionDescriptionInit> createAnswer(optional RTCAnswerOptions options); + Promise<void> setLocalDescription(RTCSessionDescriptionInit description); + readonly attribute RTCSessionDescription? localDescription; + readonly attribute RTCSessionDescription? currentLocalDescription; + readonly attribute RTCSessionDescription? pendingLocalDescription; + Promise<void> setRemoteDescription(RTCSessionDescriptionInit description); + readonly attribute RTCSessionDescription? remoteDescription; + readonly attribute RTCSessionDescription? currentRemoteDescription; + readonly attribute RTCSessionDescription? pendingRemoteDescription; + Promise<void> addIceCandidate(optional RTCIceCandidateInit candidate); + readonly attribute RTCSignalingState signalingState; + readonly attribute RTCIceGatheringState iceGatheringState; + readonly attribute RTCIceConnectionState iceConnectionState; + readonly attribute RTCPeerConnectionState connectionState; + readonly attribute boolean? canTrickleIceCandidates; + void restartIce(); + static sequence<RTCIceServer> getDefaultIceServers(); + RTCConfiguration getConfiguration(); + void setConfiguration(RTCConfiguration configuration); + void close(); + attribute EventHandler onnegotiationneeded; + attribute EventHandler onicecandidate; + attribute EventHandler onicecandidateerror; + attribute EventHandler onsignalingstatechange; + attribute EventHandler oniceconnectionstatechange; + attribute EventHandler onicegatheringstatechange; + attribute EventHandler onconnectionstatechange; }; partial interface RTCPeerConnection { - Promise<void> createOffer(RTCSessionDescriptionCallback successCallback, RTCPeerConnectionErrorCallback failureCallback, optional RTCOfferOptions options); - Promise<void> setLocalDescription(RTCSessionDescriptionInit description, VoidFunction successCallback, RTCPeerConnectionErrorCallback failureCallback); - Promise<void> createAnswer(RTCSessionDescriptionCallback successCallback, RTCPeerConnectionErrorCallback failureCallback); - Promise<void> setRemoteDescription(RTCSessionDescriptionInit description, VoidFunction successCallback, RTCPeerConnectionErrorCallback failureCallback); - Promise<void> addIceCandidate(RTCIceCandidateInit candidate, VoidFunction successCallback, RTCPeerConnectionErrorCallback failureCallback); + Promise<void> createOffer(RTCSessionDescriptionCallback successCallback, + RTCPeerConnectionErrorCallback failureCallback, + optional RTCOfferOptions options); + Promise<void> setLocalDescription(RTCSessionDescriptionInit description, + VoidFunction successCallback, + RTCPeerConnectionErrorCallback failureCallback); + Promise<void> createAnswer(RTCSessionDescriptionCallback successCallback, + RTCPeerConnectionErrorCallback failureCallback); + Promise<void> setRemoteDescription(RTCSessionDescriptionInit description, + VoidFunction successCallback, + RTCPeerConnectionErrorCallback failureCallback); + Promise<void> addIceCandidate(RTCIceCandidateInit candidate, + VoidFunction successCallback, + RTCPeerConnectionErrorCallback failureCallback); }; callback RTCPeerConnectionErrorCallback = void (DOMException error); @@ -138,524 +145,530 @@ callback RTCPeerConnectionErrorCallback = void (DOMException error); callback RTCSessionDescriptionCallback = void (RTCSessionDescriptionInit description); partial dictionary RTCOfferOptions { - boolean offerToReceiveAudio; - boolean offerToReceiveVideo; - }; + boolean offerToReceiveAudio; + boolean offerToReceiveVideo; +}; enum RTCSdpType { - "offer", - "pranswer", - "answer", - "rollback" + "offer", + "pranswer", + "answer", + "rollback" }; -[ Constructor(RTCSessionDescriptionInit descriptionInitDict), Exposed=Window] +[Exposed=Window, Constructor(RTCSessionDescriptionInit descriptionInitDict)] interface RTCSessionDescription { - readonly attribute RTCSdpType type; - readonly attribute DOMString sdp; - [Default] object toJSON(); + readonly attribute RTCSdpType type; + readonly attribute DOMString sdp; + [Default] object toJSON(); }; dictionary RTCSessionDescriptionInit { - required RTCSdpType type; - DOMString sdp = ""; + required RTCSdpType type; + DOMString sdp = ""; }; -[ Constructor(optional RTCIceCandidateInit candidateInitDict), Exposed=Window] +[Exposed=Window, Constructor(optional RTCIceCandidateInit candidateInitDict)] interface RTCIceCandidate { - readonly attribute DOMString candidate; - readonly attribute DOMString? sdpMid; - readonly attribute unsigned short? sdpMLineIndex; - readonly attribute DOMString? foundation; - readonly attribute RTCIceComponent? component; - readonly attribute unsigned long? priority; - readonly attribute DOMString? address; - readonly attribute RTCIceProtocol? protocol; - readonly attribute unsigned short? port; - readonly attribute RTCIceCandidateType? type; - readonly attribute RTCIceTcpCandidateType? tcpType; - readonly attribute DOMString? relatedAddress; - readonly attribute unsigned short? relatedPort; - readonly attribute DOMString? usernameFragment; - RTCIceCandidateInit toJSON(); + readonly attribute DOMString candidate; + readonly attribute DOMString? sdpMid; + readonly attribute unsigned short? sdpMLineIndex; + readonly attribute DOMString? foundation; + readonly attribute RTCIceComponent? component; + readonly attribute unsigned long? priority; + readonly attribute DOMString? address; + readonly attribute RTCIceProtocol? protocol; + readonly attribute unsigned short? port; + readonly attribute RTCIceCandidateType? type; + readonly attribute RTCIceTcpCandidateType? tcpType; + readonly attribute DOMString? relatedAddress; + readonly attribute unsigned short? relatedPort; + readonly attribute DOMString? usernameFragment; + RTCIceCandidateInit toJSON(); }; dictionary RTCIceCandidateInit { - DOMString candidate = ""; - DOMString? sdpMid = null; - unsigned short? sdpMLineIndex = null; - DOMString? usernameFragment = null; + DOMString candidate = ""; + DOMString? sdpMid = null; + unsigned short? sdpMLineIndex = null; + DOMString? usernameFragment = null; }; enum RTCIceProtocol { - "udp", - "tcp" + "udp", + "tcp" }; enum RTCIceTcpCandidateType { - "active", - "passive", - "so" + "active", + "passive", + "so" }; enum RTCIceCandidateType { - "host", - "srflx", - "prflx", - "relay" + "host", + "srflx", + "prflx", + "relay" }; -[ Constructor(DOMString type, optional RTCPeerConnectionIceEventInit eventInitDict), Exposed=Window] +[Exposed=Window, + Constructor(DOMString type, optional RTCPeerConnectionIceEventInit eventInitDict)] interface RTCPeerConnectionIceEvent : Event { - readonly attribute RTCIceCandidate? candidate; - readonly attribute DOMString? url; + readonly attribute RTCIceCandidate? candidate; + readonly attribute DOMString? url; }; dictionary RTCPeerConnectionIceEventInit : EventInit { - RTCIceCandidate? candidate; - DOMString? url; + RTCIceCandidate? candidate; + DOMString? url; }; -[ Constructor(DOMString type, RTCPeerConnectionIceErrorEventInit eventInitDict), Exposed=Window] +[Exposed=Window, + Constructor(DOMString type, RTCPeerConnectionIceErrorEventInit eventInitDict)] interface RTCPeerConnectionIceErrorEvent : Event { - readonly attribute DOMString hostCandidate; - readonly attribute DOMString url; - readonly attribute unsigned short errorCode; - readonly attribute USVString errorText; + readonly attribute DOMString hostCandidate; + readonly attribute DOMString url; + readonly attribute unsigned short errorCode; + readonly attribute USVString errorText; }; dictionary RTCPeerConnectionIceErrorEventInit : EventInit { - DOMString hostCandidate; - DOMString url; - required unsigned short errorCode; - USVString statusText; + DOMString hostCandidate; + DOMString url; + required unsigned short errorCode; + USVString statusText; }; enum RTCPriorityType { - "very-low", - "low", - "medium", - "high" + "very-low", + "low", + "medium", + "high" }; partial interface RTCPeerConnection { - static Promise<RTCCertificate> generateCertificate(AlgorithmIdentifier keygenAlgorithm); + static Promise<RTCCertificate> generateCertificate(AlgorithmIdentifier keygenAlgorithm); }; dictionary RTCCertificateExpiration { - [EnforceRange] - DOMTimeStamp expires; + [EnforceRange] DOMTimeStamp expires; }; -[Exposed=Window, Serializable] interface RTCCertificate { - readonly attribute DOMTimeStamp expires; - static sequence<AlgorithmIdentifier> getSupportedAlgorithms(); - sequence<RTCDtlsFingerprint> getFingerprints(); +[Exposed=Window, Serializable] +interface RTCCertificate { + readonly attribute DOMTimeStamp expires; + static sequence<AlgorithmIdentifier> getSupportedAlgorithms(); + sequence<RTCDtlsFingerprint> getFingerprints(); }; partial interface RTCPeerConnection { - sequence<RTCRtpSender> getSenders(); - sequence<RTCRtpReceiver> getReceivers(); - sequence<RTCRtpTransceiver> getTransceivers(); - RTCRtpSender addTrack(MediaStreamTrack track, MediaStream... streams); - void removeTrack(RTCRtpSender sender); - RTCRtpTransceiver addTransceiver((MediaStreamTrack or DOMString) trackOrKind, optional RTCRtpTransceiverInit init); - attribute EventHandler ontrack; + sequence<RTCRtpSender> getSenders(); + sequence<RTCRtpReceiver> getReceivers(); + sequence<RTCRtpTransceiver> getTransceivers(); + RTCRtpSender addTrack(MediaStreamTrack track, MediaStream... streams); + void removeTrack(RTCRtpSender sender); + RTCRtpTransceiver addTransceiver((MediaStreamTrack or DOMString) trackOrKind, + optional RTCRtpTransceiverInit init); + attribute EventHandler ontrack; }; dictionary RTCRtpTransceiverInit { - RTCRtpTransceiverDirection direction = "sendrecv"; - sequence<MediaStream> streams = []; - sequence<RTCRtpEncodingParameters> sendEncodings = []; + RTCRtpTransceiverDirection direction = "sendrecv"; + sequence<MediaStream> streams = []; + sequence<RTCRtpEncodingParameters> sendEncodings = []; }; enum RTCRtpTransceiverDirection { - "sendrecv", - "sendonly", - "recvonly", - "inactive" -}; - -[Exposed=Window] interface RTCRtpSender { - readonly attribute MediaStreamTrack? track; - readonly attribute RTCDtlsTransport? transport; - readonly attribute RTCDtlsTransport? rtcpTransport; - static RTCRtpCapabilities? getCapabilities(DOMString kind); - Promise<void> setParameters(RTCRtpSendParameters parameters); - RTCRtpSendParameters getParameters(); - Promise<void> replaceTrack(MediaStreamTrack? withTrack); - void setStreams(MediaStream... streams); - Promise<RTCStatsReport> getStats(); + "sendrecv", + "sendonly", + "recvonly", + "inactive", + "stopped" +}; + +[Exposed=Window] +interface RTCRtpSender { + readonly attribute MediaStreamTrack? track; + readonly attribute RTCDtlsTransport? transport; + readonly attribute RTCDtlsTransport? rtcpTransport; + static RTCRtpCapabilities? getCapabilities(DOMString kind); + Promise<void> setParameters(RTCRtpSendParameters parameters); + RTCRtpSendParameters getParameters(); + Promise<void> replaceTrack(MediaStreamTrack? withTrack); + void setStreams(MediaStream... streams); + Promise<RTCStatsReport> getStats(); }; dictionary RTCRtpParameters { - required sequence<RTCRtpHeaderExtensionParameters> headerExtensions; - required RTCRtcpParameters rtcp; - required sequence<RTCRtpCodecParameters> codecs; + required sequence<RTCRtpHeaderExtensionParameters> headerExtensions; + required RTCRtcpParameters rtcp; + required sequence<RTCRtpCodecParameters> codecs; }; dictionary RTCRtpSendParameters : RTCRtpParameters { - required DOMString transactionId; - required sequence<RTCRtpEncodingParameters> encodings; - RTCDegradationPreference degradationPreference = "balanced"; - RTCPriorityType priority = "low"; + required DOMString transactionId; + required sequence<RTCRtpEncodingParameters> encodings; + RTCDegradationPreference degradationPreference = "balanced"; + RTCPriorityType priority = "low"; }; dictionary RTCRtpReceiveParameters : RTCRtpParameters { - required sequence<RTCRtpDecodingParameters> encodings; + required sequence<RTCRtpDecodingParameters> encodings; }; dictionary RTCRtpCodingParameters { - DOMString rid; + DOMString rid; }; -dictionary RTCRtpDecodingParameters : RTCRtpCodingParameters { -}; +dictionary RTCRtpDecodingParameters : RTCRtpCodingParameters {}; dictionary RTCRtpEncodingParameters : RTCRtpCodingParameters { - octet codecPayloadType; - RTCDtxStatus dtx; - boolean active = true; - unsigned long ptime; - unsigned long maxBitrate; - double maxFramerate; - double scaleResolutionDownBy; + octet codecPayloadType; + RTCDtxStatus dtx; + boolean active = true; + unsigned long ptime; + unsigned long maxBitrate; + double maxFramerate; + double scaleResolutionDownBy; }; enum RTCDtxStatus { - "disabled", - "enabled" - }; + "disabled", + "enabled" +}; enum RTCDegradationPreference { - "maintain-framerate", - "maintain-resolution", - "balanced" + "maintain-framerate", + "maintain-resolution", + "balanced" }; dictionary RTCRtcpParameters { - DOMString cname; - boolean reducedSize; + DOMString cname; + boolean reducedSize; }; dictionary RTCRtpHeaderExtensionParameters { - required DOMString uri; - required unsigned short id; - boolean encrypted = false; + required DOMString uri; + required unsigned short id; + boolean encrypted = false; }; dictionary RTCRtpCodecParameters { - required octet payloadType; - required DOMString mimeType; - required unsigned long clockRate; - unsigned short channels; - DOMString sdpFmtpLine; + required octet payloadType; + required DOMString mimeType; + required unsigned long clockRate; + unsigned short channels; + DOMString sdpFmtpLine; }; dictionary RTCRtpCapabilities { - required sequence<RTCRtpCodecCapability> codecs; - required sequence<RTCRtpHeaderExtensionCapability> headerExtensions; + required sequence<RTCRtpCodecCapability> codecs; + required sequence<RTCRtpHeaderExtensionCapability> headerExtensions; }; dictionary RTCRtpCodecCapability { - required DOMString mimeType; - required unsigned long clockRate; - unsigned short channels; - DOMString sdpFmtpLine; + required DOMString mimeType; + required unsigned long clockRate; + unsigned short channels; + DOMString sdpFmtpLine; }; dictionary RTCRtpHeaderExtensionCapability { - DOMString uri; + DOMString uri; }; -[Exposed=Window] interface RTCRtpReceiver { - readonly attribute MediaStreamTrack track; - readonly attribute RTCDtlsTransport? transport; - readonly attribute RTCDtlsTransport? rtcpTransport; - static RTCRtpCapabilities? getCapabilities(DOMString kind); - RTCRtpReceiveParameters getParameters(); - sequence<RTCRtpContributingSource> getContributingSources(); - sequence<RTCRtpSynchronizationSource> getSynchronizationSources(); - Promise<RTCStatsReport> getStats(); +[Exposed=Window] +interface RTCRtpReceiver { + readonly attribute MediaStreamTrack track; + readonly attribute RTCDtlsTransport? transport; + readonly attribute RTCDtlsTransport? rtcpTransport; + static RTCRtpCapabilities? getCapabilities(DOMString kind); + RTCRtpReceiveParameters getParameters(); + sequence<RTCRtpContributingSource> getContributingSources(); + sequence<RTCRtpSynchronizationSource> getSynchronizationSources(); + Promise<RTCStatsReport> getStats(); }; dictionary RTCRtpContributingSource { - required DOMHighResTimeStamp timestamp; - required unsigned long source; - double audioLevel; - required unsigned long rtpTimestamp; + required DOMHighResTimeStamp timestamp; + required unsigned long source; + double audioLevel; + required unsigned long rtpTimestamp; }; dictionary RTCRtpSynchronizationSource : RTCRtpContributingSource { - boolean voiceActivityFlag; + boolean voiceActivityFlag; }; -[Exposed=Window] interface RTCRtpTransceiver { - readonly attribute DOMString? mid; - [SameObject] - readonly attribute RTCRtpSender sender; - [SameObject] - readonly attribute RTCRtpReceiver receiver; - readonly attribute boolean stopped; - attribute RTCRtpTransceiverDirection direction; - readonly attribute RTCRtpTransceiverDirection? currentDirection; - void stop(); - void setCodecPreferences(sequence<RTCRtpCodecCapability> codecs); +[Exposed=Window] +interface RTCRtpTransceiver { + readonly attribute DOMString? mid; + [SameObject] readonly attribute RTCRtpSender sender; + [SameObject] readonly attribute RTCRtpReceiver receiver; + attribute RTCRtpTransceiverDirection direction; + readonly attribute RTCRtpTransceiverDirection? currentDirection; + void stop(); + void setCodecPreferences(sequence<RTCRtpCodecCapability> codecs); }; -[Exposed=Window] interface RTCDtlsTransport : EventTarget { - [SameObject] - readonly attribute RTCIceTransport iceTransport; - readonly attribute RTCDtlsTransportState state; - sequence<ArrayBuffer> getRemoteCertificates(); - attribute EventHandler onstatechange; - attribute EventHandler onerror; +[Exposed=Window] +interface RTCDtlsTransport : EventTarget { + [SameObject] readonly attribute RTCIceTransport iceTransport; + readonly attribute RTCDtlsTransportState state; + sequence<ArrayBuffer> getRemoteCertificates(); + attribute EventHandler onstatechange; + attribute EventHandler onerror; }; enum RTCDtlsTransportState { - "new", - "connecting", - "connected", - "closed", - "failed" + "new", + "connecting", + "connected", + "closed", + "failed" }; dictionary RTCDtlsFingerprint { - DOMString algorithm; - DOMString value; -}; - -[Exposed=Window] interface RTCIceTransport : EventTarget { - readonly attribute RTCIceRole role; - readonly attribute RTCIceComponent component; - readonly attribute RTCIceTransportState state; - readonly attribute RTCIceGathererState gatheringState; - sequence<RTCIceCandidate> getLocalCandidates(); - sequence<RTCIceCandidate> getRemoteCandidates(); - RTCIceCandidatePair? getSelectedCandidatePair(); - RTCIceParameters? getLocalParameters(); - RTCIceParameters? getRemoteParameters(); - attribute EventHandler onstatechange; - attribute EventHandler ongatheringstatechange; - attribute EventHandler onselectedcandidatepairchange; + DOMString algorithm; + DOMString value; +}; + +[Exposed=Window] +interface RTCIceTransport : EventTarget { + readonly attribute RTCIceRole role; + readonly attribute RTCIceComponent component; + readonly attribute RTCIceTransportState state; + readonly attribute RTCIceGathererState gatheringState; + sequence<RTCIceCandidate> getLocalCandidates(); + sequence<RTCIceCandidate> getRemoteCandidates(); + RTCIceCandidatePair? getSelectedCandidatePair(); + RTCIceParameters? getLocalParameters(); + RTCIceParameters? getRemoteParameters(); + attribute EventHandler onstatechange; + attribute EventHandler ongatheringstatechange; + attribute EventHandler onselectedcandidatepairchange; }; dictionary RTCIceParameters { - DOMString usernameFragment; - DOMString password; + DOMString usernameFragment; + DOMString password; }; dictionary RTCIceCandidatePair { - RTCIceCandidate local; - RTCIceCandidate remote; + RTCIceCandidate local; + RTCIceCandidate remote; }; enum RTCIceGathererState { - "new", - "gathering", - "complete" + "new", + "gathering", + "complete" }; enum RTCIceTransportState { - "new", - "checking", - "connected", - "completed", - "disconnected", - "failed", - "closed" + "new", + "checking", + "connected", + "completed", + "disconnected", + "failed", + "closed" }; enum RTCIceRole { - "unknown", - "controlling", - "controlled" + "unknown", + "controlling", + "controlled" }; enum RTCIceComponent { - "rtp", - "rtcp" + "rtp", + "rtcp" }; -[ Constructor(DOMString type, RTCTrackEventInit eventInitDict), Exposed=Window] +[Exposed=Window, Constructor(DOMString type, RTCTrackEventInit eventInitDict)] interface RTCTrackEvent : Event { - readonly attribute RTCRtpReceiver receiver; - readonly attribute MediaStreamTrack track; - [SameObject] - readonly attribute FrozenArray<MediaStream> streams; - readonly attribute RTCRtpTransceiver transceiver; + readonly attribute RTCRtpReceiver receiver; + readonly attribute MediaStreamTrack track; + [SameObject] readonly attribute FrozenArray<MediaStream> streams; + readonly attribute RTCRtpTransceiver transceiver; }; dictionary RTCTrackEventInit : EventInit { - required RTCRtpReceiver receiver; - required MediaStreamTrack track; - sequence<MediaStream> streams = []; - required RTCRtpTransceiver transceiver; + required RTCRtpReceiver receiver; + required MediaStreamTrack track; + sequence<MediaStream> streams = []; + required RTCRtpTransceiver transceiver; }; partial interface RTCPeerConnection { - readonly attribute RTCSctpTransport? sctp; - RTCDataChannel createDataChannel(USVString label, optional RTCDataChannelInit dataChannelDict); - attribute EventHandler ondatachannel; + readonly attribute RTCSctpTransport? sctp; + RTCDataChannel createDataChannel(USVString label, + optional RTCDataChannelInit dataChannelDict); + attribute EventHandler ondatachannel; }; -[Exposed=Window] interface RTCSctpTransport : EventTarget { - readonly attribute RTCDtlsTransport transport; - readonly attribute RTCSctpTransportState state; - readonly attribute unrestricted double maxMessageSize; - readonly attribute unsigned short? maxChannels; - attribute EventHandler onstatechange; +[Exposed=Window] +interface RTCSctpTransport : EventTarget { + readonly attribute RTCDtlsTransport transport; + readonly attribute RTCSctpTransportState state; + readonly attribute unrestricted double maxMessageSize; + readonly attribute unsigned short? maxChannels; + attribute EventHandler onstatechange; }; enum RTCSctpTransportState { - "connecting", - "connected", - "closed" -}; - -[Exposed=Window] interface RTCDataChannel : EventTarget { - readonly attribute USVString label; - readonly attribute boolean ordered; - readonly attribute unsigned short? maxPacketLifeTime; - readonly attribute unsigned short? maxRetransmits; - readonly attribute USVString protocol; - readonly attribute boolean negotiated; - readonly attribute unsigned short? id; - readonly attribute RTCPriorityType priority; - readonly attribute RTCDataChannelState readyState; - readonly attribute unsigned long bufferedAmount; - [EnforceRange] - attribute unsigned long bufferedAmountLowThreshold; - attribute EventHandler onopen; - attribute EventHandler onbufferedamountlow; - attribute EventHandler onerror; - attribute EventHandler onclose; - void close(); - attribute EventHandler onmessage; - attribute DOMString binaryType; - void send(USVString data); - void send(Blob data); - void send(ArrayBuffer data); - void send(ArrayBufferView data); + "connecting", + "connected", + "closed" +}; + +[Exposed=Window] +interface RTCDataChannel : EventTarget { + readonly attribute USVString label; + readonly attribute boolean ordered; + readonly attribute unsigned short? maxPacketLifeTime; + readonly attribute unsigned short? maxRetransmits; + readonly attribute USVString protocol; + readonly attribute boolean negotiated; + readonly attribute unsigned short? id; + readonly attribute RTCPriorityType priority; + readonly attribute RTCDataChannelState readyState; + readonly attribute unsigned long bufferedAmount; + [EnforceRange] attribute unsigned long bufferedAmountLowThreshold; + attribute EventHandler onopen; + attribute EventHandler onbufferedamountlow; + attribute EventHandler onerror; + attribute EventHandler onclosing; + attribute EventHandler onclose; + void close(); + attribute EventHandler onmessage; + attribute DOMString binaryType; + void send(USVString data); + void send(Blob data); + void send(ArrayBuffer data); + void send(ArrayBufferView data); }; dictionary RTCDataChannelInit { - boolean ordered = true; - [EnforceRange] - unsigned short maxPacketLifeTime; - [EnforceRange] - unsigned short maxRetransmits; - USVString protocol = ""; - boolean negotiated = false; - [EnforceRange] - unsigned short id; - RTCPriorityType priority = "low"; + boolean ordered = true; + [EnforceRange] unsigned short maxPacketLifeTime; + [EnforceRange] unsigned short maxRetransmits; + USVString protocol = ""; + boolean negotiated = false; + [EnforceRange] unsigned short id; + RTCPriorityType priority = "low"; }; enum RTCDataChannelState { - "connecting", - "open", - "closing", - "closed" + "connecting", + "open", + "closing", + "closed" }; -[ Constructor(DOMString type, RTCDataChannelEventInit eventInitDict), Exposed=Window] +[Exposed=Window, Constructor(DOMString type, RTCDataChannelEventInit eventInitDict)] interface RTCDataChannelEvent : Event { - readonly attribute RTCDataChannel channel; + readonly attribute RTCDataChannel channel; }; dictionary RTCDataChannelEventInit : EventInit { - required RTCDataChannel channel; + required RTCDataChannel channel; }; partial interface RTCRtpSender { - readonly attribute RTCDTMFSender? dtmf; + readonly attribute RTCDTMFSender? dtmf; }; -[Exposed=Window] interface RTCDTMFSender : EventTarget { - void insertDTMF(DOMString tones, optional unsigned long duration = 100, optional unsigned long interToneGap = 70); - attribute EventHandler ontonechange; - readonly attribute boolean canInsertDTMF; - readonly attribute DOMString toneBuffer; +[Exposed=Window] +interface RTCDTMFSender : EventTarget { + void insertDTMF(DOMString tones, optional unsigned long duration = 100, optional unsigned long interToneGap = 70); + attribute EventHandler ontonechange; + readonly attribute boolean canInsertDTMF; + readonly attribute DOMString toneBuffer; }; -[ Constructor(DOMString type, RTCDTMFToneChangeEventInit eventInitDict), Exposed=Window] +[Exposed=Window, + Constructor(DOMString type, RTCDTMFToneChangeEventInit eventInitDict)] interface RTCDTMFToneChangeEvent : Event { - readonly attribute DOMString tone; + readonly attribute DOMString tone; }; dictionary RTCDTMFToneChangeEventInit : EventInit { - required DOMString tone; + required DOMString tone; }; partial interface RTCPeerConnection { - Promise<RTCStatsReport> getStats(optional MediaStreamTrack? selector = null); - attribute EventHandler onstatsended; - }; + Promise<RTCStatsReport> getStats(optional MediaStreamTrack? selector = null); + attribute EventHandler onstatsended; +}; -[Exposed=Window] interface RTCStatsReport { - readonly maplike<DOMString, object>; +[Exposed=Window] +interface RTCStatsReport { + readonly maplike<DOMString, object>; }; dictionary RTCStats { - required DOMHighResTimeStamp timestamp; - required RTCStatsType type; - required DOMString id; + required DOMHighResTimeStamp timestamp; + required RTCStatsType type; + required DOMString id; }; -[ Constructor(DOMString type, RTCStatsEventInit eventInitDict), Exposed=Window] - interface RTCStatsEvent : Event { - readonly attribute RTCStatsReport report; - }; +[Exposed=Window, + Constructor(DOMString type, RTCStatsEventInit eventInitDict)] +interface RTCStatsEvent : Event { + readonly attribute RTCStatsReport report; +}; dictionary RTCStatsEventInit : EventInit { - required RTCStatsReport report; - }; + required RTCStatsReport report; +}; -[ - Exposed=Window, - Constructor(RTCErrorInit init, optional DOMString message = "")] interface RTCError : DOMException { - readonly attribute RTCErrorDetailType errorDetail; - readonly attribute long? sdpLineNumber; - readonly attribute long? httpRequestStatusCode; - readonly attribute long? sctpCauseCode; - readonly attribute unsigned long? receivedAlert; - readonly attribute unsigned long? sentAlert; +[Exposed=Window, Constructor(RTCErrorInit init, optional DOMString message = "")] +interface RTCError : DOMException { + readonly attribute RTCErrorDetailType errorDetail; + readonly attribute long? sdpLineNumber; + readonly attribute long? httpRequestStatusCode; + readonly attribute long? sctpCauseCode; + readonly attribute unsigned long? receivedAlert; + readonly attribute unsigned long? sentAlert; }; dictionary RTCErrorInit { - required RTCErrorDetailType errorDetail; - long sdpLineNumber; - long httpRequestStatusCode; - long sctpCauseCode; - unsigned long receivedAlert; - unsigned long sentAlert; + required RTCErrorDetailType errorDetail; + long sdpLineNumber; + long httpRequestStatusCode; + long sctpCauseCode; + unsigned long receivedAlert; + unsigned long sentAlert; }; enum RTCErrorDetailType { - "data-channel-failure", - "dtls-failure", - "fingerprint-failure", - "idp-bad-script-failure", - "idp-execution-failure", - "idp-load-failure", - "idp-need-login", - "idp-timeout", - "idp-tls-failure", - "idp-token-expired", - "idp-token-invalid", - "sctp-failure", - "sdp-syntax-error", - "hardware-encoder-not-available", - "hardware-encoder-error" - }; - -[ - Exposed=Window, - Constructor(DOMString type, RTCErrorEventInit eventInitDict)] interface RTCErrorEvent : Event { - [SameObject] readonly attribute RTCError error; + "data-channel-failure", + "dtls-failure", + "fingerprint-failure", + "idp-bad-script-failure", + "idp-execution-failure", + "idp-load-failure", + "idp-need-login", + "idp-timeout", + "idp-tls-failure", + "idp-token-expired", + "idp-token-invalid", + "sctp-failure", + "sdp-syntax-error", + "hardware-encoder-not-available", + "hardware-encoder-error" +}; + +[Exposed=Window, + Constructor(DOMString type, RTCErrorEventInit eventInitDict)] +interface RTCErrorEvent : Event { + [SameObject] readonly attribute RTCError error; }; dictionary RTCErrorEventInit : EventInit { - required RTCError error; + required RTCError error; }; diff --git a/tests/wpt/web-platform-tests/interfaces/xslt.idl b/tests/wpt/web-platform-tests/interfaces/xslt.tentative.idl index e97d8b00044..e97d8b00044 100644 --- a/tests/wpt/web-platform-tests/interfaces/xslt.idl +++ b/tests/wpt/web-platform-tests/interfaces/xslt.tentative.idl diff --git a/tests/wpt/web-platform-tests/layout-instability/buffer-layout-shift.html b/tests/wpt/web-platform-tests/layout-instability/buffer-layout-shift.html index 216cafd45de..0cfce2f7124 100644 --- a/tests/wpt/web-platform-tests/layout-instability/buffer-layout-shift.html +++ b/tests/wpt/web-platform-tests/layout-instability/buffer-layout-shift.html @@ -12,6 +12,8 @@ <img src="resources/slow-image.py"> <script> async_test(function (t) { + if (!window.LayoutShift) + assert_unreached('LayoutShift entries are not supported'); const startTime = performance.now(); new PerformanceObserver(list => { const endTime = performance.now(); diff --git a/tests/wpt/web-platform-tests/layout-instability/buffered-flag.html b/tests/wpt/web-platform-tests/layout-instability/buffered-flag.html index 6a8c937e5ff..dabc8068931 100644 --- a/tests/wpt/web-platform-tests/layout-instability/buffered-flag.html +++ b/tests/wpt/web-platform-tests/layout-instability/buffered-flag.html @@ -10,6 +10,8 @@ <script src="/resources/testharnessreport.js"></script> <script> async_test(t => { + if (!window.LayoutShift) + assert_unreached('LayoutShift entries are not supported'); const startTime = performance.now(); // First observer creates second in callback to ensure the entry has been dispatched by the time // the second observer begins observing. diff --git a/tests/wpt/web-platform-tests/layout-instability/observe-layout-shift.html b/tests/wpt/web-platform-tests/layout-instability/observe-layout-shift.html index a522b49034e..8e5624e09a3 100644 --- a/tests/wpt/web-platform-tests/layout-instability/observe-layout-shift.html +++ b/tests/wpt/web-platform-tests/layout-instability/observe-layout-shift.html @@ -40,6 +40,8 @@ } async_test(function (t) { + if (!window.LayoutShift) + assert_unreached('LayoutShift entries are not supported'); const startTime = performance.now(); const observer = new PerformanceObserver( t.step_func_done(function(entryList) { diff --git a/tests/wpt/web-platform-tests/longtask-timing/buffered-flag-unsupported.window.js b/tests/wpt/web-platform-tests/longtask-timing/buffered-flag-unsupported.window.js new file mode 100644 index 00000000000..ea17b824c35 --- /dev/null +++ b/tests/wpt/web-platform-tests/longtask-timing/buffered-flag-unsupported.window.js @@ -0,0 +1,19 @@ +async_test(t => { + if (!window.PerformanceLongTaskTiming) { + assert_unreached("Longtasks are not supported."); + } + new PerformanceObserver(t.step_func(entryList => { + const observer = new PerformanceObserver(t.step_func_done(list => { + list.getEntries().forEach(entry => { + assert_not_equals(entry.entryType, 'longtask'); + }); + })); + observer.observe({type: 'longtask', buffered: true}); + observer.observe({type: 'mark'}); + // Create a mark to ensure the |observer|'s callback is dispatched. + performance.mark('a'); + })).observe({entryTypes: ['longtask']}); + // Create a long task. + const begin = window.performance.now(); + while (window.performance.now() < begin + 60); +}, 'PerformanceObserver with buffered flag cannot see previous longtask entries.'); diff --git a/tests/wpt/web-platform-tests/mediasession/setactionhandler.html b/tests/wpt/web-platform-tests/mediasession/setactionhandler.html index 06d145b37d1..6e1bb26c67a 100644 --- a/tests/wpt/web-platform-tests/mediasession/setactionhandler.html +++ b/tests/wpt/web-platform-tests/mediasession/setactionhandler.html @@ -12,6 +12,7 @@ test(function(t) { window.navigator.mediaSession.setActionHandler("seekbackward", null); window.navigator.mediaSession.setActionHandler("seekforward", null); window.navigator.mediaSession.setActionHandler("stop", null); + window.navigator.mediaSession.setActionHandler("seekto", null); }, "Test that setActionHandler() can be executed for supported actions"); test(function(t) { diff --git a/tests/wpt/web-platform-tests/navigation-timing/buffered-flag.window.js b/tests/wpt/web-platform-tests/navigation-timing/buffered-flag.window.js new file mode 100644 index 00000000000..c6b1e0bc855 --- /dev/null +++ b/tests/wpt/web-platform-tests/navigation-timing/buffered-flag.window.js @@ -0,0 +1,16 @@ +async_test(t => { + function checkEntryList(entries) { + assert_equals(entries.length, 1, "Only one navigation timing entry"); + assert_equals(entries[0].entryType, "navigation", "entryType is \"navigation\""); + assert_equals(entries[0].name, window.location.toString(), "name is the address of the document"); + } + // First observer creates second in callback to ensure the entry has been dispatched by the time + // the second observer begins observing. + new PerformanceObserver(t.step_func(entryList => { + checkEntryList(entryList.getEntries()); + // Second observer requires 'buffered: true' to see the navigation entry. + new PerformanceObserver(t.step_func_done(list => { + checkEntryList(list.getEntries()); + })).observe({type: 'navigation', buffered: true}); + })).observe({entryTypes: ["navigation"]}); +}, "PerformanceObserver with buffered flag sees previous navigation entry."); diff --git a/tests/wpt/web-platform-tests/payment-request/rejects_if_not_active.https.html b/tests/wpt/web-platform-tests/payment-request/rejects_if_not_active.https.html index 4ba760ac987..1c666aea435 100644 --- a/tests/wpt/web-platform-tests/payment-request/rejects_if_not_active.https.html +++ b/tests/wpt/web-platform-tests/payment-request/rejects_if_not_active.https.html @@ -65,14 +65,33 @@ promise_test(async t => { await new Promise(resolve => { iframe.addEventListener("load", resolve); iframe.src = "/payment-request/resources/page2.html"; + // An implementation may optionally reject |showPromise|. + showPromise.catch(e => {}); }); - await promise_rejects( - t, - "AbortError", - showPromise, - "The iframe was navigated away, so showPromise must reject with AbortError" - ); - // We are done, so clean up. - iframe.remove(); -}, "If a payment request is showing, but its document is navigated away (so no longer fully active), the payment request aborts."); + + // The navigaton should have dismissed the previous payment request so it + // should be possible to show another one now. + const request2 = new iframe.contentWindow.PaymentRequest( + validMethods, validDetails); + const [showPromise2] = await test_driver.bless( + "show 2nd payment request", () => { + return [request2.show()]; + }); + + // Stop the test in 1 second if it has not rejected, which means that a + // payment sheet is successfully shown. + t.step_timeout(async () => { + // We are done, so clean up. + iframe.remove(); + t.done(); + }, 1000); + + // This should never settle because the payment sheet should be pending. + await showPromise2.then(() => { + assert_true(false, "Second payment should be pending but is resolved."); + }) + .catch(e => { + assert_true(false, "Second payment should be pending but is rejected."); + }); +}, "If a payment request is showing, but its document is navigated away (so no longer fully active), the payment sheet is dismissed."); </script> diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/import-scripts-redirect.https.html b/tests/wpt/web-platform-tests/service-workers/service-worker/import-scripts-redirect.https.html index e52adfa3780..07ea49439eb 100644 --- a/tests/wpt/web-platform-tests/service-workers/service-worker/import-scripts-redirect.https.html +++ b/tests/wpt/web-platform-tests/service-workers/service-worker/import-scripts-redirect.https.html @@ -1,6 +1,7 @@ <!DOCTYPE html> <meta charset="utf-8"> <title>Tests for importScripts: redirect</title> +<script src="/common/utils.js"></script> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="resources/test-helpers.sub.js"></script> @@ -20,14 +21,35 @@ promise_test(async t => { await service_worker_unregister(t, scope); let reg = await navigator.serviceWorker.register( 'resources/import-scripts-redirect-worker.js', { scope: scope }); - assert_not_equals(reg.installing, null, 'worker is installing'); + assert_not_equals(reg.installing, null, 'before update'); await wait_for_state(t, reg.installing, 'activated'); await Promise.all([ wait_for_update(t, reg), reg.update() ]); - assert_not_equals(reg.installing, null, 'worker is installing'); + assert_not_equals(reg.installing, null, 'after update'); await reg.unregister(); - }, 'importScripts() supports redirects and can be updated'); + }, + "an imported script redirects, and the body changes during the update check"); + +promise_test(async t => { + const key = token(); + const scope = 'resources/import-scripts-redirect'; + await service_worker_unregister(t, scope); + let reg = await navigator.serviceWorker.register( + `resources/import-scripts-redirect-on-second-time-worker.js?Key=${key}`, + { scope }); + t.add_cleanup(() => reg.unregister()); + + assert_not_equals(reg.installing, null, 'before update'); + await wait_for_state(t, reg.installing, 'activated'); + await Promise.all([ + wait_for_update(t, reg), + reg.update() + ]); + assert_not_equals(reg.installing, null, 'after update'); + }, + "an imported script doesn't redirect initially, then redirects during " + + "the update check and the body changes"); </script> </body> diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/resources/import-scripts-redirect-on-second-time-worker.js b/tests/wpt/web-platform-tests/service-workers/service-worker/resources/import-scripts-redirect-on-second-time-worker.js new file mode 100644 index 00000000000..f612ab8e6aa --- /dev/null +++ b/tests/wpt/web-platform-tests/service-workers/service-worker/resources/import-scripts-redirect-on-second-time-worker.js @@ -0,0 +1,7 @@ +// This worker imports a script that returns 200 on the first request and a +// redirect on the second request. The resulting body also changes each time it +// is requested. +const params = new URLSearchParams(location.search); +const key = params.get('Key'); +importScripts(`update-worker.py?Key=${key}&Mode=redirect&` + + `Redirect=update-worker.py?Key=${key}%26Mode=normal`); diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/resources/update-worker.py b/tests/wpt/web-platform-tests/service-workers/service-worker/resources/update-worker.py index 2bc99a3d044..446d547ca78 100644 --- a/tests/wpt/web-platform-tests/service-workers/service-worker/resources/update-worker.py +++ b/tests/wpt/web-platform-tests/service-workers/service-worker/resources/update-worker.py @@ -1,3 +1,20 @@ +import urllib + +def redirect_response(request, response, visited_count): + # |visited_count| is used as a unique id to differentiate responses + # every time. + location = 'empty.js' + if 'Redirect' in request.GET: + location = urllib.unquote(request.GET['Redirect']) + return (301, + [ + ('Cache-Control', 'no-cache, must-revalidate'), + ('Pragma', 'no-cache'), + ('Content-Type', 'application/javascript'), + ('Location', location), + ], + '/* %s */' % str(visited_count)) + def ok_response(request, response, visited_count, extra_body='', mime_type='application/javascript'): # |visited_count| is used as a unique id to differentiate responses @@ -28,6 +45,8 @@ def main(request, response): return ok_response(request, response, visited_count) if mode == 'bad_mime_type': return ok_response(request, response, visited_count, mime_type='text/html') + if mode == 'redirect': + return redirect_response(request, response, visited_count) if mode == 'syntax_error': return ok_response(request, response, visited_count, extra_body='badsyntax(isbad;') if mode == 'throw_install': diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/update.https.html b/tests/wpt/web-platform-tests/service-workers/service-worker/update.https.html index 6f7db0542b7..7232419cd0a 100644 --- a/tests/wpt/web-platform-tests/service-workers/service-worker/update.https.html +++ b/tests/wpt/web-platform-tests/service-workers/service-worker/update.https.html @@ -81,6 +81,15 @@ promise_test(async t => { promise_test(async t => { const [registration, expected_url] = + await prepare_ready_registration(t, 'redirect'); + t.add_cleanup(() => registration.unregister()); + + promise_rejects(t, new TypeError(), registration.update()) + assert_active_only(registration, expected_url); +}, 'update() should fail when a response for the main script is redirect.'); + +promise_test(async t => { + const [registration, expected_url] = await prepare_ready_registration(t, 'syntax_error'); t.add_cleanup(() => registration.unregister()); diff --git a/tests/wpt/web-platform-tests/web-animations/timing-model/timelines/document-timelines.html b/tests/wpt/web-platform-tests/web-animations/timing-model/timelines/document-timelines.html index be8e3cca1c7..4023bba5561 100644 --- a/tests/wpt/web-platform-tests/web-animations/timing-model/timelines/document-timelines.html +++ b/tests/wpt/web-platform-tests/web-animations/timing-model/timelines/document-timelines.html @@ -12,6 +12,7 @@ async_test(t => { assert_greater_than_equal(document.timeline.currentTime, 0, 'The current time is initially is positive or zero'); + // document.timeline.currentTime should be set even before document // load fires. We expect this code to be run before document load and hence // the above assertion is sufficient. @@ -34,4 +35,16 @@ async_test(t => { }); }, 'Document timelines report current time relative to navigationStart'); +async_test(t => { + window.requestAnimationFrame(rafTime => { + t.step(() => { + const iframe = document.createElement('iframe'); + document.body.appendChild(iframe); + assert_greater_than_equal(iframe.contentDocument.timeline.currentTime, 0, + 'The current time of a new iframe is initially is positive or zero'); + }); + t.done(); + }); +}, 'Child frames do not report negative initial times'); + </script> diff --git a/tests/wpt/web-platform-tests/webxr/resources/webxr_util.js b/tests/wpt/web-platform-tests/webxr/resources/webxr_util.js index 3a6a6c96fe0..baf1d66b00d 100644 --- a/tests/wpt/web-platform-tests/webxr/resources/webxr_util.js +++ b/tests/wpt/web-platform-tests/webxr/resources/webxr_util.js @@ -25,7 +25,7 @@ function xr_promise_test(name, func, properties) { // device, and the test object. // Requires a webglCanvas on the page. function xr_session_promise_test( - name, func, fakeDeviceInit, sessionMode, properties) { + name, func, fakeDeviceInit, sessionMode, sessionInit, properties) { let testDeviceController; let testSession; @@ -39,7 +39,22 @@ function xr_session_promise_test( xr_promise_test( name, - (t) =>{ + (t) => { + // Ensure that any pending sessions are ended and devices are + // disconnected when done. This needs to use a cleanup function to + // ensure proper sequencing. If this were done in a .then() for the + // success case, a test that expected failure would already be marked + // done at the time that runs, and the shutdown would interfere with + // the next test which may have started already. + t.add_cleanup(async () => { + // If a session was created, end it. + if (testSession) { + await testSession.end().catch(() => {}); + } + // Cleanup system state. + await navigator.xr.test.disconnectAllDevices(); + }); + return navigator.xr.test.simulateDeviceConnection(fakeDeviceInit) .then((controller) => { testDeviceController = controller; @@ -48,7 +63,7 @@ function xr_session_promise_test( .then(() => new Promise((resolve, reject) => { // Perform the session request in a user gesture. navigator.xr.test.simulateUserActivation(() => { - navigator.xr.requestSession(sessionMode) + navigator.xr.requestSession(sessionMode, sessionInit || {}) .then((session) => { testSession = session; session.mode = sessionMode; @@ -71,13 +86,8 @@ function xr_session_promise_test( ' with error: ' + err); }); }); - })) - .then(() => { - // Cleanup system state. - testSession.end().catch(() => {}); - return navigator.xr.test.disconnectAllDevices(); - }) - }, + })); + }, properties); } diff --git a/tests/wpt/web-platform-tests/webxr/xrDevice_requestSession_immersive.https.html b/tests/wpt/web-platform-tests/webxr/xrDevice_requestSession_immersive.https.html index a397d1a89f6..be0bb32995b 100644 --- a/tests/wpt/web-platform-tests/webxr/xrDevice_requestSession_immersive.https.html +++ b/tests/wpt/web-platform-tests/webxr/xrDevice_requestSession_immersive.https.html @@ -11,5 +11,17 @@ (session) => { assert_not_equals(session, null); }, TRACKED_IMMERSIVE_DEVICE, 'immersive-vr'); + + xr_session_promise_test( + "Tests requestSession accepts XRSessionInit dictionary", + (session) => { + assert_not_equals(session, null); + }, TRACKED_IMMERSIVE_DEVICE, 'immersive-vr', {}); + + xr_session_promise_test( + "Tests requestSession ignores unknown optionalFeatures", + (session) => { + assert_not_equals(session, null); + }, TRACKED_IMMERSIVE_DEVICE, 'immersive-vr', {optionalFeatures: ['unicorns']}); </script> </body> diff --git a/tests/wpt/web-platform-tests/webxr/xrDevice_requestSession_optionalFeatures.https.html b/tests/wpt/web-platform-tests/webxr/xrDevice_requestSession_optionalFeatures.https.html new file mode 100644 index 00000000000..c274f4ff713 --- /dev/null +++ b/tests/wpt/web-platform-tests/webxr/xrDevice_requestSession_optionalFeatures.https.html @@ -0,0 +1,27 @@ +<!DOCTYPE html> +<body> + <script src=/resources/testharness.js></script> + <script src=/resources/testharnessreport.js></script> + <script src="resources/webxr_util.js"></script> + <script src="resources/webxr_test_constants.js"></script> + <canvas></canvas> + <script> + xr_session_promise_test( + "Tests requestSession accepts XRSessionInit dictionary", + (session) => { + assert_not_equals(session, null); + }, TRACKED_IMMERSIVE_DEVICE, 'immersive-vr', {}); + + xr_session_promise_test( + "Tests requestSession accepts XRSessionInit dictionary with empty feature lists", + (session) => { + assert_not_equals(session, null); + }, TRACKED_IMMERSIVE_DEVICE, 'immersive-vr', {requiredFeatures: [], optionalFeatures: []}); + + xr_session_promise_test( + "Tests requestSession ignores unknown optionalFeatures", + (session) => { + assert_not_equals(session, null); + }, TRACKED_IMMERSIVE_DEVICE, 'immersive-vr', {optionalFeatures: ['unicorns']}); + </script> +</body> diff --git a/tests/wpt/web-platform-tests/webxr/xrDevice_requestSession_requiredFeatures_unknown.https.html b/tests/wpt/web-platform-tests/webxr/xrDevice_requestSession_requiredFeatures_unknown.https.html new file mode 100644 index 00000000000..02b26c05cb5 --- /dev/null +++ b/tests/wpt/web-platform-tests/webxr/xrDevice_requestSession_requiredFeatures_unknown.https.html @@ -0,0 +1,27 @@ +<!DOCTYPE html> +<body> + <script src=/resources/testharness.js></script> + <script src=/resources/testharnessreport.js></script> + <script src="resources/webxr_util.js"></script> + <script src="resources/webxr_test_constants.js"></script> + <canvas></canvas> + <script> + xr_promise_test( + "Tests requestSession rejects for unknown requiredFeatures", + (t) => { + return navigator.xr.test.simulateDeviceConnection(TRACKED_IMMERSIVE_DEVICE) + .then( (controller) => new Promise((resolve) => { + navigator.xr.test.simulateUserActivation( () => { + resolve(promise_rejects( + t, + "NotSupportedError", + navigator.xr.requestSession('immersive-vr', + {requiredFeatures: ['undefined-unicorns']}), + "unexpected requestSession success" + )) + }); + })); + }); + + </script> +</body> diff --git a/tests/wpt/web-platform-tests/webxr/xrSession_requestReferenceSpace.https.html b/tests/wpt/web-platform-tests/webxr/xrSession_requestReferenceSpace.https.html index c90d6ce5a54..51aa8885f5e 100644 --- a/tests/wpt/web-platform-tests/webxr/xrSession_requestReferenceSpace.https.html +++ b/tests/wpt/web-platform-tests/webxr/xrSession_requestReferenceSpace.https.html @@ -56,10 +56,16 @@ }) }; + // Reference spaces that aren't included in the default feature list must + // be specified as a required or optional features on session creation. xr_session_promise_test( - immersiveTestName, testFunction, fakeDeviceInitParams, 'immersive-vr'); + immersiveTestName, testFunction, fakeDeviceInitParams, 'immersive-vr', + {requiredFeatures: ['local-floor'], + optionalFeatures: ['bounded-floor', 'unbounded']}); xr_session_promise_test( - nonImmersiveTestName, testFunction, fakeDeviceInitParams, 'inline'); + nonImmersiveTestName, testFunction, fakeDeviceInitParams, 'inline', + {requiredFeatures: ['local'], + optionalFeatures: ['local-floor']}); </script> </body> diff --git a/tests/wpt/web-platform-tests/webxr/xrSession_requestReferenceSpace_features.https.html b/tests/wpt/web-platform-tests/webxr/xrSession_requestReferenceSpace_features.https.html new file mode 100644 index 00000000000..1bd516ee12e --- /dev/null +++ b/tests/wpt/web-platform-tests/webxr/xrSession_requestReferenceSpace_features.https.html @@ -0,0 +1,83 @@ +<!DOCTYPE html> +<body> + <script src=/resources/testharness.js></script> + <script src=/resources/testharnessreport.js></script> + <script src="resources/webxr_util.js"></script> + <script src="resources/webxr_test_constants.js"></script> + <canvas></canvas> + <script> + + let makeSpaceTest = (space_type) => { + return (session, fakeDeviceController, t) => { + return session.requestReferenceSpace(space_type).then( (referenceSpace) => { + t.step(() => { + assert_true(referenceSpace instanceof XRReferenceSpace, + "reference space is not correct type."); + }); + }); + }; + }; + + let makeInvalidSpaceTest = (space_type) => { + return (session, fakeDeviceController, t) => { + return promise_rejects(t, "NotSupportedError", + session.requestReferenceSpace(space_type), + "requestReferenceSpace('" + space_type + "')"); + }; + }; + + let fakeDeviceInitParams = TRACKED_IMMERSIVE_DEVICE; + + // Test that reference spaces matching default features work. + xr_session_promise_test( + "Non-immersive session supports viewer space by default", + makeSpaceTest('viewer'), fakeDeviceInitParams, 'inline', {}); + xr_session_promise_test( + "Immersive session supports viewer space by default", + makeSpaceTest('viewer'), fakeDeviceInitParams, 'immersive-vr', {}); + xr_session_promise_test( + "Immersive session supports local space by default", + makeSpaceTest('local'), fakeDeviceInitParams, 'immersive-vr', {}); + + // Test that session-appropriate non-default reference spaces work when requested + xr_session_promise_test( + "Non-immersive session supports local space when required", + makeSpaceTest('local'), fakeDeviceInitParams, 'inline', + {requiredFeatures: ['local']}); + xr_session_promise_test( + "Non-immersive session supports local space when optional", + makeSpaceTest('local'), fakeDeviceInitParams, 'inline', + {optionalFeatures: ['local']}); + xr_session_promise_test( + "Non-immersive session supports local-floor space when required", + makeSpaceTest('local-floor'), fakeDeviceInitParams, 'inline', + {requiredFeatures: ['local-floor']}); + xr_session_promise_test( + "Immersive session supports local-floor space when required", + makeSpaceTest('local-floor'), fakeDeviceInitParams, 'immersive-vr', + {requiredFeatures: ['local-floor']}); + xr_session_promise_test( + "Immersive session supports local-floor space when optional", + makeSpaceTest('local-floor'), fakeDeviceInitParams, 'immersive-vr', + {optionalFeatures: ['local-floor']}); + + // Test that inline space can't request 'bounded-floor' or 'unbounded' + xr_session_promise_test( + "Non-immersive session rejects bounded-floor space even when requested", + makeInvalidSpaceTest('bounded-floor'), fakeDeviceInitParams, 'inline', + {optionalFeatures: ['bounded-floor']}); + xr_session_promise_test( + "Non-immersive session rejects unbounded space even when requested", + makeInvalidSpaceTest('unbounded'), fakeDeviceInitParams, 'inline', + {optionalFeatures: ['unbounded']}); + + // Test that reference spaces that aren't default features are rejected + // when not requested as a feature. + xr_session_promise_test( + "Non-immersive session rejects local space if not requested", + makeInvalidSpaceTest('local'), fakeDeviceInitParams, 'inline', {}); + xr_session_promise_test( + "Immersive session rejects local-floor space if not requested", + makeInvalidSpaceTest('local-floor'), fakeDeviceInitParams, 'immersive-vr', {}); + </script> +</body> diff --git a/tests/wpt/web-platform-tests/xslt/idlharness.window.js b/tests/wpt/web-platform-tests/xslt/idlharness.tentative.window.js index 51b0cd3dbac..1da8db8cb20 100644 --- a/tests/wpt/web-platform-tests/xslt/idlharness.window.js +++ b/tests/wpt/web-platform-tests/xslt/idlharness.tentative.window.js @@ -4,7 +4,7 @@ 'use strict'; idl_test( - ['xslt'], + ['xslt.tentative'], ['html'], async idlArray => { idlArray.add_objects({ |