diff options
author | bors-servo <infra@servo.org> | 2023-02-16 04:58:38 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-02-16 04:58:38 +0100 |
commit | 658cb986b44d331fd784496770b3188e39ea7699 (patch) | |
tree | 528e25f950df958bf6556347723cf7ff8c094b29 | |
parent | 9bcc55fc9a3ae5102d034caaad369851f787f271 (diff) | |
parent | 2a743bedbd8e8597583726daaf8ec2551742795f (diff) | |
download | servo-658cb986b44d331fd784496770b3188e39ea7699.tar.gz servo-658cb986b44d331fd784496770b3188e39ea7699.zip |
Auto merge of #29367 - servo:wpt_update_16-02-2023, r=servo-wpt-sync
Sync WPT with upstream (16-02-2023)
Automated downstream sync of changes from upstream as of 16-02-2023
[no-wpt-sync]
r? @servo-wpt-sync
91 files changed, 1338 insertions, 486 deletions
diff --git a/tests/wpt/metadata/FileAPI/url/url-charset.window.js.ini b/tests/wpt/metadata/FileAPI/url/url-charset.window.js.ini deleted file mode 100644 index 08ab7bd35cd..00000000000 --- a/tests/wpt/metadata/FileAPI/url/url-charset.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[url-charset.window.html] - expected: TIMEOUT - [Blob charset should override any auto-detected charset.] - expected: TIMEOUT diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json index ce5366eb2e5..fd1cc1cbfbf 100644 --- a/tests/wpt/metadata/MANIFEST.json +++ b/tests/wpt/metadata/MANIFEST.json @@ -3783,6 +3783,20 @@ null, {} ] + ], + "root-element-display-none-crash.html": [ + "fc55719c7e87bccb9d2862464b19e19112e02711", + [ + null, + {} + ] + ], + "root-element-display-none-during-transition-crash.html": [ + "19f4143aa6a4c6c8ec63206d1e94fab56f6181c6", + [ + null, + {} + ] ] }, "css-writing-modes": { @@ -199144,6 +199158,35 @@ } ] ], + "clip-path-svg-text-css.html": [ + "8a0d7111b0c3d86cf632e1d1c98c3fcf40d5b980", + [ + null, + [ + [ + "/css/css-masking/clip-path/reference/clip-path-svg-text-css-ref.html", + "==" + ] + ], + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 1 + ], + [ + 0, + 200 + ] + ] + ] + ] + } + ] + ], "clip-path-svg-text-font-loading.html": [ "230c36ce6e731b8303b78471454e5c78408f81d5", [ @@ -276622,6 +276665,19 @@ {} ] ], + "new-content-from-root-display-none.html": [ + "4d2ad28b17844f0b878a408cb8c04ff895aea06c", + [ + null, + [ + [ + "/css/css-view-transitions/new-content-from-root-display-none-ref.html", + "==" + ] + ], + {} + ] + ], "new-content-has-scrollbars.html": [ "4024952b13ac1953d9874ad08dfcd6bf08edeadd", [ @@ -320336,7 +320392,7 @@ ] }, "CODEOWNERS": [ - "c1da5c0706ea4feb99127bf775b4e92a0f85c2f0", + "2372633782e226189279edc24e5c19e0fd313494", [] ], "CODE_OF_CONDUCT.md": [ @@ -323397,12 +323453,12 @@ [] ], "feature-policy.https.html.headers": [ - "8e976388eccff54a054dbd681be6a293f2b584b5", + "11bbceff0acba6f14a04c10f2da30a2122c7b311", [] ] }, "feature-policy.sub.https.html.headers": [ - "78bbb8c8729dcd7940f2e8b1a582b4d78e82f929", + "d968517a3ad9d279164dd6d9ca366ffbb6285c75", [] ] }, @@ -323416,7 +323472,7 @@ [] ], "cross-origin-iframe-redirect-with-fp-delegation.https.html.headers": [ - "f3f85f9ebaaf7083dce29cd520d3ac3d10221895", + "28580b0a6fcbc5e88e55c528eee2039f569d09ee", [] ], "cross-origin-navigation-redirect.https.html.headers": [ @@ -323424,7 +323480,7 @@ [] ], "cross-origin-subresource-redirect-with-fp-delegation.https.html.headers": [ - "ed4100978494d56419dc01e4cc2ccec3407bf452", + "28580b0a6fcbc5e88e55c528eee2039f569d09ee", [] ], "cross-origin-subresource-redirect.https.html.headers": [ @@ -323497,7 +323553,7 @@ [] ], "feature-policy-with-cross-origin-subresource.html.headers": [ - "cb6b0cfd13c291312d53b1105aed3f44c4c8cac8", + "4738714fb493374d67789c87bbaa0d8cd99286e8", [] ], "http-equiv-accept-ch.html": [ @@ -343683,11 +343739,11 @@ ], "support": { "connect-src-allow.sub.js": [ - "5812faf5fa6a03b27a1f430e04fd5cc53f8aa9b7", + "7f0ee1f837a0b99e5e75630c9c6b10e287ae4ffa", [] ], "connect-src-self-report-only.sub.js": [ - "0287f110d4c51b0aa39d90fa2f7b6676b194d81d", + "c62467147602801d6172cd37073e58b4422cd8b4", [] ], "connect-src-self-report-only.sub.js.sub.headers": [ @@ -343695,7 +343751,7 @@ [] ], "connect-src-self.sub.js": [ - "fd639c29cf8912e895c8df832f5e1dce5e183655", + "3c3ecc01c2d75188b6b778eeb4794a6cdf2837b9", [] ], "script-src-allow.sub.js": [ @@ -382701,6 +382757,10 @@ "e31282c02fdbfd08bbe80acb245bb7b85c28bee9", [] ], + "clip-path-svg-text-css-ref.html": [ + "8cf2cd253a4ba7485ad1a578f0c647972b264eae", + [] + ], "clip-path-transform-mutated-001-ref.html": [ "f718ea6abfbab54333ba674ff0dcd320d8672bcd", [] @@ -396635,6 +396695,10 @@ "94280ae3affc4350e4100d6bd390fb860ffe1a5a", [] ], + "new-content-from-root-display-none-ref.html": [ + "e936a779c743ae8e0b5542ee064846ddb0749553", + [] + ], "new-content-has-scrollbars-ref.html": [ "eddd7330144b538455e5fa4a3609299dcb3c63c8", [] @@ -422253,6 +422317,10 @@ ] }, "user-activation": { + "META.yml": [ + "e50fcfc84ff1f564f6fafb4dfe267df4ffbfb971", + [] + ], "resources": { "child-message-event-api.html": [ "a0001633c22d19e44c1f48ddeffa07dde1fbc436", @@ -447098,6 +447166,10 @@ ], "tentative": { "resources": { + "permissions-iframe.https.html": [ + "c9907203322112ffb01a50b09541e891250c4f5e", + [] + ], "requestStorageAccessForOrigin-iframe.html": [ "43d16705c8515b48685420c8d14925af90afb62a", [] @@ -449601,7 +449673,7 @@ [] ], "videoFrame-serialization.crossAgentCluster.serviceworker.js": [ - "218157c5e9a130a648495e5998a74d34bd996ade", + "9b963610befab36124cfb2e61239253ad343a219", [] ], "videoFrame-utils.js": [ @@ -453552,8 +453624,8 @@ [] ] }, - "webxr_feature_policy.https.html.headers": [ - "2c758962332e723453f31a6cb8d3dfc3ac292d44", + "webxr_permissions_policy.https.html.headers": [ + "56b8c11a5bd4013b4e9133328155dbe0e8726ec9", [] ] }, @@ -496912,7 +496984,7 @@ ] ], "font-feature-settings-computed.html": [ - "89704ac5f477f32be76ad073b9814172e7f9bdf3", + "44b9d1c535a0add5530c34508c785b4a5ccad4b6", [ null, {} @@ -497360,7 +497432,7 @@ ] ], "font-variation-settings-computed.html": [ - "521461657e8d4b4749042c102685c1491e67f3dd", + "8e72161193a27e4c342af96895bc0cc1f80922aa", [ null, {} @@ -557052,49 +557124,28 @@ ] }, "private-network-access": { - "fetch.https.window.js": [ - "7a3cc20c4c573c9cda1f7f703c08d5902aa78bd0", + "fetch-from-treat-as-public.https.window.js": [ + "90f7feb63419d7e3c03811679644f6ccc4abd2a7", [ - "fetch/private-network-access/fetch.https.window.html?include=baseline", + "fetch/private-network-access/fetch-from-treat-as-public.https.window.html", { "script_metadata": [ [ "script", - "/common/subset-tests-by-key.js" - ], - [ - "script", "/common/utils.js" ], [ "script", "resources/support.sub.js" - ], - [ - "variant", - "?include=baseline" - ], - [ - "variant", - "?include=from-local" - ], - [ - "variant", - "?include=from-private" - ], - [ - "variant", - "?include=from-public" - ], - [ - "variant", - "?include=from-treat-as-public" ] ] } - ], + ] + ], + "fetch.https.window.js": [ + "dbc4f23f677c716ba439c508c42ee33f4b1b3233", [ - "fetch/private-network-access/fetch.https.window.html?include=from-local", + "fetch/private-network-access/fetch.https.window.html?include=baseline", { "script_metadata": [ [ @@ -557124,16 +557175,12 @@ [ "variant", "?include=from-public" - ], - [ - "variant", - "?include=from-treat-as-public" ] ] } ], [ - "fetch/private-network-access/fetch.https.window.html?include=from-private", + "fetch/private-network-access/fetch.https.window.html?include=from-local", { "script_metadata": [ [ @@ -557163,16 +557210,12 @@ [ "variant", "?include=from-public" - ], - [ - "variant", - "?include=from-treat-as-public" ] ] } ], [ - "fetch/private-network-access/fetch.https.window.html?include=from-public", + "fetch/private-network-access/fetch.https.window.html?include=from-private", { "script_metadata": [ [ @@ -557202,16 +557245,12 @@ [ "variant", "?include=from-public" - ], - [ - "variant", - "?include=from-treat-as-public" ] ] } ], [ - "fetch/private-network-access/fetch.https.window.html?include=from-treat-as-public", + "fetch/private-network-access/fetch.https.window.html?include=from-public", { "script_metadata": [ [ @@ -557241,10 +557280,6 @@ [ "variant", "?include=from-public" - ], - [ - "variant", - "?include=from-treat-as-public" ] ] } @@ -557269,7 +557304,7 @@ ] ], "iframe.tentative.https.window.js": [ - "5636270ea63e02fbdc1cf72c8b0d3e9f79e08317", + "48bd6420fd9c46a758f8f1f01bf9e2263c8760e1", [ "fetch/private-network-access/iframe.tentative.https.window.html", { @@ -557313,7 +557348,7 @@ ] ], "mixed-content-fetch.tentative.https.window.js": [ - "fb9f6a7709af5a1ffa145d220dc3f3aa7500bb15", + "54485dc70474023683f2a9f4f4fba1f0df0032af", [ "fetch/private-network-access/mixed-content-fetch.tentative.https.window.html", { @@ -557475,7 +557510,7 @@ ] ], "shared-worker-fetch.https.window.js": [ - "29e9f32c7e0b8102ba63435913bec49d29e1bce0", + "7066b359caa2ddb173a02a359d012456dd7a43a2", [ "fetch/private-network-access/shared-worker-fetch.https.window.html", { @@ -557511,7 +557546,7 @@ ] ], "shared-worker.https.window.js": [ - "91d9186860e9966a44880fc35b92e95b440af1fd", + "ecb70c41245e82ab89f652d0de01c1d3b1f80890", [ "fetch/private-network-access/shared-worker.https.window.html", { @@ -557575,7 +557610,7 @@ ] ], "worker-fetch.https.window.js": [ - "7ca0b4359c3708d284ef94a7068f3c2c0b7756f9", + "89e0c3cf1f35f0cf741957c3eb0bff38a4705d93", [ "fetch/private-network-access/worker-fetch.https.window.html", { @@ -557611,7 +557646,7 @@ ] ], "worker.https.window.js": [ - "fd38f7cf70eb3909fe95fe68a43e74283be163e4", + "2d0dddd685cccf4d1ed4064db61ffcc1a3514f09", [ "fetch/private-network-access/worker.https.window.html", { @@ -557646,45 +557681,28 @@ } ] ], - "xhr.https.window.js": [ - "ac811ee19aa4476626afafc2f3a2cd95d7b9e51a", + "xhr-from-treat-as-public.https.window.js": [ + "04fe5449d19e5baecbb1904140b315dc18206070", [ - "fetch/private-network-access/xhr.https.window.html?include=from-local", + "fetch/private-network-access/xhr-from-treat-as-public.https.window.html", { "script_metadata": [ [ "script", - "/common/subset-tests-by-key.js" - ], - [ - "script", "/common/utils.js" ], [ "script", "resources/support.sub.js" - ], - [ - "variant", - "?include=from-local" - ], - [ - "variant", - "?include=from-private" - ], - [ - "variant", - "?include=from-public" - ], - [ - "variant", - "?include=from-treat-as-public" ] ] } - ], + ] + ], + "xhr.https.window.js": [ + "4dc5da9912f1012bf72a9e689acfbc125d7c2923", [ - "fetch/private-network-access/xhr.https.window.html?include=from-private", + "fetch/private-network-access/xhr.https.window.html?include=from-local", { "script_metadata": [ [ @@ -557710,16 +557728,12 @@ [ "variant", "?include=from-public" - ], - [ - "variant", - "?include=from-treat-as-public" ] ] } ], [ - "fetch/private-network-access/xhr.https.window.html?include=from-public", + "fetch/private-network-access/xhr.https.window.html?include=from-private", { "script_metadata": [ [ @@ -557745,16 +557759,12 @@ [ "variant", "?include=from-public" - ], - [ - "variant", - "?include=from-treat-as-public" ] ] } ], [ - "fetch/private-network-access/xhr.https.window.html?include=from-treat-as-public", + "fetch/private-network-access/xhr.https.window.html?include=from-public", { "script_metadata": [ [ @@ -557780,10 +557790,6 @@ [ "variant", "?include=from-public" - ], - [ - "variant", - "?include=from-treat-as-public" ] ] } @@ -567919,6 +567925,13 @@ } ] ], + "opener-string.window.js": [ + "a39c584d20b27b6c3a33fe0bd6ed93827afb07f6", + [ + "html/browsers/windows/opener-string.window.html", + {} + ] + ], "post-message": { "first-party-to-first-party-cross-partition.sub.html": [ "f91d9403ea0ce424f92960ded05254c32e995430", @@ -603832,7 +603845,7 @@ ] ], "popover-attribute-basic.html": [ - "9b03c7bc1c65a14b2ad396713cf9203054231357", + "bc32c357d3a5503564282a4e3a7260fcd0ae6458", [ null, { @@ -648240,6 +648253,179 @@ } ] ], + "task-signal-any-abort.tentative.any.js": [ + "4afcde901d10cb6402a11b2b738d7a911b944b0f", + [ + "scheduler/task-signal-any-abort.tentative.any.html", + { + "script_metadata": [ + [ + "global", + "window,worker" + ], + [ + "script", + "../dom/abort/resources/abort-signal-any-tests.js" + ] + ] + } + ], + [ + "scheduler/task-signal-any-abort.tentative.any.serviceworker.html", + { + "script_metadata": [ + [ + "global", + "window,worker" + ], + [ + "script", + "../dom/abort/resources/abort-signal-any-tests.js" + ] + ] + } + ], + [ + "scheduler/task-signal-any-abort.tentative.any.sharedworker.html", + { + "script_metadata": [ + [ + "global", + "window,worker" + ], + [ + "script", + "../dom/abort/resources/abort-signal-any-tests.js" + ] + ] + } + ], + [ + "scheduler/task-signal-any-abort.tentative.any.worker.html", + { + "script_metadata": [ + [ + "global", + "window,worker" + ], + [ + "script", + "../dom/abort/resources/abort-signal-any-tests.js" + ] + ] + } + ] + ], + "task-signal-any-post-task-run-order.tentative.any.js": [ + "889217b08109080bd319d4c290fff7c0cf701521", + [ + "scheduler/task-signal-any-post-task-run-order.tentative.any.html", + { + "script_metadata": [ + [ + "title", + "Scheduler: Tasks Run in Priority Order" + ], + [ + "global", + "window,worker" + ] + ] + } + ], + [ + "scheduler/task-signal-any-post-task-run-order.tentative.any.serviceworker.html", + { + "script_metadata": [ + [ + "title", + "Scheduler: Tasks Run in Priority Order" + ], + [ + "global", + "window,worker" + ] + ] + } + ], + [ + "scheduler/task-signal-any-post-task-run-order.tentative.any.sharedworker.html", + { + "script_metadata": [ + [ + "title", + "Scheduler: Tasks Run in Priority Order" + ], + [ + "global", + "window,worker" + ] + ] + } + ], + [ + "scheduler/task-signal-any-post-task-run-order.tentative.any.worker.html", + { + "script_metadata": [ + [ + "title", + "Scheduler: Tasks Run in Priority Order" + ], + [ + "global", + "window,worker" + ] + ] + } + ] + ], + "task-signal-any-priority.tentative.any.js": [ + "99a7dd67b0d4a355aa5397907b55466f72e98efd", + [ + "scheduler/task-signal-any-priority.tentative.any.html", + { + "script_metadata": [ + [ + "global", + "window,worker" + ] + ] + } + ], + [ + "scheduler/task-signal-any-priority.tentative.any.serviceworker.html", + { + "script_metadata": [ + [ + "global", + "window,worker" + ] + ] + } + ], + [ + "scheduler/task-signal-any-priority.tentative.any.sharedworker.html", + { + "script_metadata": [ + [ + "global", + "window,worker" + ] + ] + } + ], + [ + "scheduler/task-signal-any-priority.tentative.any.worker.html", + { + "script_metadata": [ + [ + "global", + "window,worker" + ] + ] + } + ] + ], "task-signal-onprioritychange.any.js": [ "7f59e1f1f84ca2761195f6426ec0a0a3a2bd38b1", [ @@ -659067,7 +659253,7 @@ ] ], "requestStorageAccess.sub.https.window.js": [ - "a74866e56bccb7c317be56be4b9c60ce02fae187", + "d673ed306993334e6f2807f3a0ecf8758e8d87ea", [ "storage-access-api/requestStorageAccess.sub.https.window.html", { @@ -666578,6 +666764,28 @@ ] } ] + ], + "top-level-storage-access-permission.sub.https.window.js": [ + "466b6f3bbed03642248ce40367b0794d3b2e4eb3", + [ + "top-level-storage-access-api/tentative/top-level-storage-access-permission.sub.https.window.html", + { + "script_metadata": [ + [ + "script", + "/storage-access-api/helpers.js" + ], + [ + "script", + "/resources/testdriver.js" + ], + [ + "script", + "/resources/testdriver-vendor.js" + ] + ] + } + ] ] } }, @@ -677097,7 +677305,7 @@ ] ], "partitioned-web-locks.tentative.https.html": [ - "d2f22f196445ee944e3784b5c9c795f338ce9d1f", + "a426737f608e85ff4b1062a090d74648e5ad0933", [ null, {} @@ -683039,7 +683247,7 @@ ] ], "videoFrame-serialization.crossAgentCluster.https.html": [ - "1266869783ded7ed6a96afb74416848081006b89", + "cb02ad4bcc3a23c33e091b887bc069fcfe6ed170", [ null, {} @@ -702608,8 +702816,8 @@ {} ] ], - "webxr_feature_policy.https.html": [ - "b493ec73cce687832cfc0784a1a798d665eb10af", + "webxr_permissions_policy.https.html": [ + "9146dd88f05aebd6ed991a95ede3652a669f1a35", [ null, {} diff --git a/tests/wpt/metadata/css/CSS2/normal-flow/block-in-inline-hittest-001.html.ini b/tests/wpt/metadata/css/CSS2/normal-flow/block-in-inline-hittest-001.html.ini new file mode 100644 index 00000000000..b4eea326212 --- /dev/null +++ b/tests/wpt/metadata/css/CSS2/normal-flow/block-in-inline-hittest-001.html.ini @@ -0,0 +1,3 @@ +[block-in-inline-hittest-001.html] + [block-in-inline-hittest-001] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-fonts/parsing/font-variation-settings-computed.html.ini b/tests/wpt/metadata/css/css-fonts/parsing/font-variation-settings-computed.html.ini index 629775a78af..0a57929a1d8 100644 --- a/tests/wpt/metadata/css/css-fonts/parsing/font-variation-settings-computed.html.ini +++ b/tests/wpt/metadata/css/css-fonts/parsing/font-variation-settings-computed.html.ini @@ -29,3 +29,8 @@ [Property font-variation-settings value '"AB@D" 0.5'] expected: FAIL + [Property font-variation-settings value '"wght" 100, "wdth" 200' values should be sorted alphabetically by tag.] + expected: FAIL + + [Property font-variation-settings value '"wght" 100, "wdth" 200, "wght" 300, "wdth" 400' duplicate values should be removed, keeping the rightmost occurrence, and sorted alphabetically by tag.] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-fonts/variations/at-font-face-font-matching.html.ini b/tests/wpt/metadata/css/css-fonts/variations/at-font-face-font-matching.html.ini index c40df33181a..4a5712723f3 100644 --- a/tests/wpt/metadata/css/css-fonts/variations/at-font-face-font-matching.html.ini +++ b/tests/wpt/metadata/css/css-fonts/variations/at-font-face-font-matching.html.ini @@ -68,21 +68,12 @@ [Matching font-style: 'italic' should prefer 'oblique 20deg' over 'oblique 30deg 60deg'] expected: FAIL - [Matching font-style: 'oblique 10deg' should prefer 'oblique -50deg -20deg' over 'oblique -40deg -30deg'] - expected: FAIL - [Matching font-stretch: '100%' should prefer '100%' over '110% 120%'] expected: FAIL - [Matching font-style: 'oblique 0deg' should prefer 'oblique 5deg' over 'oblique 15deg 20deg'] - expected: FAIL - [Matching font-style: 'normal' should prefer 'oblique 10deg 40deg' over 'oblique 20deg 30deg'] expected: FAIL - [Matching font-weight: '501' should prefer '450 460' over '390 410'] - expected: FAIL - [Matching font-weight: '399' should prefer '450 460' over '500 501'] expected: FAIL @@ -158,9 +149,6 @@ [Matching font-stretch: '90%' should prefer '110% 140%' over '120% 130%'] expected: FAIL - [Matching font-style: 'oblique -21deg' should prefer 'oblique -10deg' over 'italic'] - expected: FAIL - [Matching font-style: 'oblique 21deg' should prefer 'oblique -50deg -20deg' over 'oblique -40deg -30deg'] expected: FAIL @@ -206,9 +194,6 @@ [Matching font-stretch: '110%' should prefer '105%' over '100%'] expected: FAIL - [Matching font-style: 'italic' should prefer 'oblique 40deg 50deg' over 'oblique 5deg 10deg'] - expected: FAIL - [Matching font-style: 'italic' should prefer 'oblique 0deg' over 'oblique -60deg -30deg'] expected: FAIL @@ -319,3 +304,18 @@ [Matching font-style: 'italic' should prefer 'oblique 5deg' over 'normal'] expected: FAIL + + [Matching font-weight: '400' should prefer '400' over '450 460'] + expected: FAIL + + [Matching font-weight: '399' should prefer '200 300' over '400'] + expected: FAIL + + [Matching font-stretch: '110%' should prefer '110% 120%' over '115% 116%'] + expected: FAIL + + [Matching font-style: 'oblique 21deg' should prefer 'oblique 10deg' over 'italic'] + expected: FAIL + + [Matching font-style: 'oblique 0deg' should prefer 'oblique 40deg 50deg' over 'italic'] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-transforms/transform-scale-hittest.html.ini b/tests/wpt/metadata/css/css-transforms/transform-scale-hittest.html.ini index 4a1232b3c22..3f9c5003739 100644 --- a/tests/wpt/metadata/css/css-transforms/transform-scale-hittest.html.ini +++ b/tests/wpt/metadata/css/css-transforms/transform-scale-hittest.html.ini @@ -1,6 +1,3 @@ [transform-scale-hittest.html] [Hit test intersecting scaled box] expected: FAIL - - [Hit test within unscaled box] - 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 c83b87a483a..73c4b4ace57 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 @@ -53,275 +53,302 @@ [background-position length(px) / events] expected: FAIL - [background-color color(rgba) / values] + [padding-bottom length(ex) / values] expected: FAIL - [border-top-width length(pt) / values] + [padding-bottom length(mm) / values] expected: FAIL - [border-top-width length(pc) / values] + [padding-bottom length(cm) / values] expected: FAIL - [border-top-width length(px) / values] + [padding-bottom length(in) / values] expected: FAIL - [border-top-width length(em) / values] + [padding-left length(pt) / values] expected: FAIL - [border-top-width length(ex) / values] + [padding-left length(pc) / values] expected: FAIL - [border-top-width length(mm) / values] + [padding-left length(px) / values] expected: FAIL - [border-top-width length(cm) / values] + [padding-left length(em) / values] expected: FAIL - [border-top-width length(in) / values] + [padding-left length(ex) / values] expected: FAIL - [border-right-width length(pt) / values] + [padding-left length(mm) / values] expected: FAIL - [border-right-width length(pc) / values] + [padding-left length(cm) / values] expected: FAIL - [border-right-width length(px) / values] + [padding-left length(in) / values] expected: FAIL - [border-right-width length(em) / values] + [padding-right length(pt) / values] expected: FAIL - [border-right-width length(ex) / values] + [padding-right length(pc) / values] expected: FAIL - [border-right-width length(mm) / values] + [padding-right length(px) / values] expected: FAIL - [border-right-width length(cm) / values] + [padding-right length(em) / values] expected: FAIL - [border-right-width length(in) / values] + [padding-right length(ex) / values] expected: FAIL - [border-bottom-width length(pt) / values] + [padding-right length(mm) / values] expected: FAIL - [border-bottom-width length(pc) / values] + [padding-right length(cm) / values] expected: FAIL - [border-bottom-width length(px) / values] + [padding-right length(in) / values] expected: FAIL - [border-bottom-width length(em) / values] + [padding-top length(pt) / values] expected: FAIL - [border-bottom-width length(ex) / values] + [padding-top length(pc) / values] expected: FAIL - [border-bottom-width length(mm) / values] + [padding-top length(px) / values] expected: FAIL - [border-bottom-width length(cm) / values] + [padding-top length(em) / values] expected: FAIL - [border-bottom-width length(in) / values] + [padding-top length(ex) / values] expected: FAIL - [border-left-width length(pt) / values] + [padding-top length(mm) / values] expected: FAIL - [border-left-width length(pc) / values] + [padding-top length(cm) / values] expected: FAIL - [border-left-width length(px) / values] + [padding-top length(in) / values] expected: FAIL - [border-left-width length(em) / values] + [margin-bottom length(pt) / values] expected: FAIL - [border-left-width length(ex) / values] + [margin-bottom length(pc) / values] expected: FAIL - [border-left-width length(mm) / values] + [margin-bottom length(px) / values] expected: FAIL - [border-left-width length(cm) / values] + [margin-bottom length(em) / values] expected: FAIL - [border-left-width length(in) / values] + [margin-bottom length(ex) / values] expected: FAIL - [border-top-color color(rgba) / values] + [margin-bottom length(mm) / values] expected: FAIL - [border-right-color color(rgba) / values] + [margin-bottom length(cm) / values] expected: FAIL - [border-bottom-color color(rgba) / values] + [margin-bottom length(in) / values] expected: FAIL - [border-left-color color(rgba) / values] + [margin-left length(pt) / values] expected: FAIL - [padding-bottom length(pt) / values] + [margin-left length(pc) / values] expected: FAIL - [padding-bottom length(pc) / values] + [margin-left length(px) / values] expected: FAIL - [padding-bottom length(px) / values] + [margin-left length(em) / values] expected: FAIL - [padding-bottom length(em) / values] + [margin-left length(ex) / values] expected: FAIL - [padding-bottom length(ex) / values] + [margin-left length(mm) / values] expected: FAIL - [padding-bottom length(mm) / values] + [margin-left length(cm) / values] expected: FAIL - [padding-bottom length(cm) / values] + [margin-left length(in) / values] expected: FAIL - [padding-bottom length(in) / values] + [margin-right length(pt) / values] expected: FAIL - [padding-left length(pt) / values] + [margin-right length(pc) / values] expected: FAIL - [padding-left length(pc) / values] + [margin-right length(px) / values] expected: FAIL - [padding-left length(px) / values] + [margin-right length(em) / values] expected: FAIL - [padding-left length(em) / values] + [margin-right length(ex) / values] expected: FAIL - [padding-left length(ex) / values] + [margin-right length(mm) / values] expected: FAIL - [padding-left length(mm) / values] + [color color(rgba) / values] expected: FAIL - [padding-left length(cm) / values] + [font-size length(pt) / values] expected: FAIL - [padding-left length(in) / values] + [font-size length(pc) / values] expected: FAIL - [padding-right length(pt) / values] + [font-size length(px) / values] expected: FAIL - [padding-right length(pc) / values] + [font-size length(em) / values] expected: FAIL - [padding-right length(px) / values] + [font-size length(ex) / values] expected: FAIL - [padding-right length(em) / values] + [font-size length(mm) / values] expected: FAIL - [padding-right length(ex) / values] + [font-size length(cm) / values] expected: FAIL - [padding-right length(mm) / values] + [font-size length(in) / values] expected: FAIL - [padding-right length(cm) / values] + [font-size percentage(%) / values] expected: FAIL - [padding-right length(in) / values] + [font-weight font-weight(keyword) / values] expected: FAIL - [padding-top length(pt) / values] + [font-weight font-weight(numeric) / values] expected: FAIL - [padding-top length(pc) / values] + [line-height number(integer) / values] expected: FAIL - [padding-top length(px) / values] + [line-height number(decimal) / values] expected: FAIL - [padding-top length(em) / values] + [line-height length(pt) / values] expected: FAIL - [padding-top length(ex) / values] + [line-height length(pc) / values] expected: FAIL - [padding-top length(mm) / values] + [line-height length(px) / values] expected: FAIL - [padding-top length(cm) / values] + [line-height length(em) / values] expected: FAIL - [padding-top length(in) / values] + [line-height length(ex) / values] expected: FAIL - [margin-bottom length(pt) / values] + [line-height length(mm) / values] expected: FAIL - [margin-bottom length(pc) / values] + [line-height length(cm) / values] expected: FAIL - [margin-bottom length(px) / values] + [line-height length(in) / values] expected: FAIL - [margin-bottom length(em) / values] + [line-height percentage(%) / values] expected: FAIL - [margin-bottom length(ex) / values] + [letter-spacing length(pt) / values] expected: FAIL - [margin-bottom length(mm) / values] + [letter-spacing length(pc) / values] expected: FAIL - [margin-bottom length(cm) / values] + [letter-spacing length(px) / values] expected: FAIL - [margin-bottom length(in) / values] + [letter-spacing length(em) / values] expected: FAIL - [margin-left length(pt) / values] + [letter-spacing length(ex) / values] expected: FAIL - [margin-left length(pc) / values] + [letter-spacing length(mm) / values] expected: FAIL - [margin-left length(px) / values] + [letter-spacing length(cm) / values] expected: FAIL - [margin-left length(em) / values] + [letter-spacing length(in) / values] expected: FAIL - [margin-left length(ex) / values] + [word-spacing length(pt) / values] expected: FAIL - [margin-left length(mm) / values] + [word-spacing length(pc) / values] expected: FAIL - [margin-left length(cm) / values] + [word-spacing length(px) / values] expected: FAIL - [margin-left length(in) / values] + [word-spacing length(em) / values] expected: FAIL - [margin-right length(pt) / values] + [word-spacing length(ex) / values] expected: FAIL - [margin-right length(pc) / values] + [word-spacing length(mm) / values] expected: FAIL - [margin-right length(px) / values] + [word-spacing length(cm) / values] expected: FAIL - [margin-right length(em) / values] + [word-spacing length(in) / values] expected: FAIL - [margin-right length(ex) / values] + [word-spacing percentage(%) / values] expected: FAIL - [margin-right length(mm) / values] + [text-indent length(pt) / values] + expected: FAIL + + [text-indent length(pc) / values] + expected: FAIL + + [text-indent length(px) / values] + expected: FAIL + + [text-indent length(em) / values] + expected: FAIL + + [text-indent length(ex) / values] + expected: FAIL + + [text-indent length(mm) / values] + expected: FAIL + + [text-indent length(cm) / values] + expected: FAIL + + [text-indent length(in) / values] + expected: FAIL + + [text-indent percentage(%) / values] + expected: FAIL + + [text-shadow shadow(shadow) / values] expected: FAIL diff --git a/tests/wpt/metadata/css/cssom-view/elementFromPoint-float-in-relative.html.ini b/tests/wpt/metadata/css/cssom-view/elementFromPoint-float-in-relative.html.ini deleted file mode 100644 index 7e9331b6bc2..00000000000 --- a/tests/wpt/metadata/css/cssom-view/elementFromPoint-float-in-relative.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[elementFromPoint-float-in-relative.html] - [elementFromPoint-float-in-relative] - expected: FAIL diff --git a/tests/wpt/metadata/css/cssom-view/elementFromPoint-list-001.html.ini b/tests/wpt/metadata/css/cssom-view/elementFromPoint-list-001.html.ini index 7050090c3dd..df64baf81ee 100644 --- a/tests/wpt/metadata/css/cssom-view/elementFromPoint-list-001.html.ini +++ b/tests/wpt/metadata/css/cssom-view/elementFromPoint-list-001.html.ini @@ -14,17 +14,5 @@ [<li>Outside 3</li>] expected: FAIL - [<li>Inside 1</li>] - expected: FAIL - - [<li>Inside 2</li>] - expected: FAIL - - [<li>Inside 3</li>] - expected: FAIL - - [<li>Image Inside 1</li>] - expected: FAIL - [<li>Image Inside 2</li>] expected: FAIL diff --git a/tests/wpt/metadata/css/cssom-view/elementFromPoint-subpixel.html.ini b/tests/wpt/metadata/css/cssom-view/elementFromPoint-subpixel.html.ini deleted file mode 100644 index 8f6f663ba61..00000000000 --- a/tests/wpt/metadata/css/cssom-view/elementFromPoint-subpixel.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[elementFromPoint-subpixel.html] - [Hit test top left corner of box] - expected: FAIL diff --git a/tests/wpt/metadata/css/cssom-view/elementFromPosition.html.ini b/tests/wpt/metadata/css/cssom-view/elementFromPosition.html.ini index 9f2a3229231..57cbb5a4948 100644 --- a/tests/wpt/metadata/css/cssom-view/elementFromPosition.html.ini +++ b/tests/wpt/metadata/css/cssom-view/elementFromPosition.html.ini @@ -18,8 +18,5 @@ [test some point of the element: bottom right corner] expected: FAIL - [test the top of layer] - expected: FAIL - [test some point of the element: top left corner] expected: FAIL diff --git a/tests/wpt/metadata/css/cssom-view/elementsFromPoint-invalid-cases.html.ini b/tests/wpt/metadata/css/cssom-view/elementsFromPoint-invalid-cases.html.ini deleted file mode 100644 index a3496a40d07..00000000000 --- a/tests/wpt/metadata/css/cssom-view/elementsFromPoint-invalid-cases.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[elementsFromPoint-invalid-cases.html] - [The root element is the last element returned for otherwise empty queries within the viewport] - expected: FAIL diff --git a/tests/wpt/metadata/fetch/metadata/generated/css-images.sub.tentative.html.ini b/tests/wpt/metadata/fetch/metadata/generated/css-images.sub.tentative.html.ini index f9de5391ad6..067368ac95d 100644 --- a/tests/wpt/metadata/fetch/metadata/generated/css-images.sub.tentative.html.ini +++ b/tests/wpt/metadata/fetch/metadata/generated/css-images.sub.tentative.html.ini @@ -146,3 +146,6 @@ [list-style-image sec-fetch-site - HTTPS downgrade-upgrade] expected: FAIL + + [background-image sec-fetch-site - Not sent to non-trustworthy cross-site destination] + expected: TIMEOUT diff --git a/tests/wpt/metadata/fetch/private-network-access/fetch-from-treat-as-public.https.window.js.ini b/tests/wpt/metadata/fetch/private-network-access/fetch-from-treat-as-public.https.window.js.ini new file mode 100644 index 00000000000..6a6b5a69797 --- /dev/null +++ b/tests/wpt/metadata/fetch/private-network-access/fetch-from-treat-as-public.https.window.js.ini @@ -0,0 +1,6 @@ +[fetch-from-treat-as-public.https.window.html] + [treat-as-public-address to local: failed preflight.] + expected: FAIL + + [treat-as-public-address to private: failed preflight.] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/private-network-access/mixed-content-fetch.tentative.https.window.js.ini b/tests/wpt/metadata/fetch/private-network-access/mixed-content-fetch.tentative.https.window.js.ini index a5ff286b7fa..061d0a797f4 100644 --- a/tests/wpt/metadata/fetch/private-network-access/mixed-content-fetch.tentative.https.window.js.ini +++ b/tests/wpt/metadata/fetch/private-network-access/mixed-content-fetch.tentative.https.window.js.ini @@ -128,9 +128,6 @@ [https-treat-as-public to http-local: wrong targetAddressSpace "private".] expected: FAIL - [https-treat-as-public to http-local: success.] - expected: FAIL - [https-treat-as-public to http-private: wrong targetAddressSpace "local".] expected: FAIL diff --git a/tests/wpt/metadata/fetch/private-network-access/worker-fetch.https.window.js.ini b/tests/wpt/metadata/fetch/private-network-access/worker-fetch.https.window.js.ini index 367df1b3834..6cd5a624687 100644 --- a/tests/wpt/metadata/fetch/private-network-access/worker-fetch.https.window.js.ini +++ b/tests/wpt/metadata/fetch/private-network-access/worker-fetch.https.window.js.ini @@ -23,9 +23,6 @@ [treat-as-public to local: failed preflight.] expected: FAIL - [treat-as-public to local: success.] - expected: FAIL - [treat-as-public to private: failed preflight.] expected: FAIL diff --git a/tests/wpt/metadata/fetch/private-network-access/worker.https.window.js.ini b/tests/wpt/metadata/fetch/private-network-access/worker.https.window.js.ini index e0363c7ba65..b5f3516a4d3 100644 --- a/tests/wpt/metadata/fetch/private-network-access/worker.https.window.js.ini +++ b/tests/wpt/metadata/fetch/private-network-access/worker.https.window.js.ini @@ -2,11 +2,5 @@ [treat-as-public to local: failed preflight.] expected: FAIL - [treat-as-public to local: success.] - expected: FAIL - [treat-as-public to private: failed preflight.] expected: FAIL - - [treat-as-public to private: success.] - expected: FAIL diff --git a/tests/wpt/metadata/fetch/private-network-access/xhr-from-treat-as-public.https.window.js.ini b/tests/wpt/metadata/fetch/private-network-access/xhr-from-treat-as-public.https.window.js.ini new file mode 100644 index 00000000000..ed26f02f650 --- /dev/null +++ b/tests/wpt/metadata/fetch/private-network-access/xhr-from-treat-as-public.https.window.js.ini @@ -0,0 +1,6 @@ +[xhr-from-treat-as-public.https.window.html] + [treat-as-public to local: failed preflight.] + expected: FAIL + + [treat-as-public to private: failed preflight.] + expected: FAIL diff --git a/tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/failure-check-sequence.https.html.ini b/tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/failure-check-sequence.https.html.ini index 1d68034a37d..a46c9650e78 100644 --- a/tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/failure-check-sequence.https.html.ini +++ b/tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/failure-check-sequence.https.html.ini @@ -1,12 +1,13 @@ [failure-check-sequence.https.html] + expected: TIMEOUT [CSP check precedes COEP check - CSP header first] - expected: FAIL + expected: TIMEOUT [COEP check precedes X-Frame-Options check] - expected: FAIL + expected: NOTRUN [CSP check precedes COEP check - COEP header first] - expected: FAIL + expected: NOTRUN [CSP check precedes X-Frame-Options check] expected: FAIL diff --git a/tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-src-aboutblank-navigate-immediately.html.ini b/tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-src-aboutblank-navigate-immediately.html.ini index dc1144214ef..dd7320bb46e 100644 --- a/tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-src-aboutblank-navigate-immediately.html.ini +++ b/tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-src-aboutblank-navigate-immediately.html.ini @@ -1,9 +1,10 @@ [iframe-src-aboutblank-navigate-immediately.html] + expected: TIMEOUT [Navigating to a different document with window.open] expected: FAIL [Navigating to a different document with form submission] - expected: FAIL + expected: NOTRUN [Navigating to a different document with link click] - expected: FAIL + expected: TIMEOUT diff --git a/tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/navigation-unload-same-origin-fragment.html.ini b/tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/navigation-unload-same-origin-fragment.html.ini deleted file mode 100644 index 49cc2e16746..00000000000 --- a/tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/navigation-unload-same-origin-fragment.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[navigation-unload-same-origin-fragment.html] - [Tests that a fragment navigation in the unload handler will not block the initial navigation] - expected: FAIL diff --git a/tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/navigation-unload-same-origin.window.js.ini b/tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/navigation-unload-same-origin.window.js.ini new file mode 100644 index 00000000000..7dc346632a4 --- /dev/null +++ b/tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/navigation-unload-same-origin.window.js.ini @@ -0,0 +1,3 @@ +[navigation-unload-same-origin.window.html] + [Same-origin navigation started from unload handler must be ignored] + expected: FAIL diff --git a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse-during-unload.html.ini b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse-during-unload.html.ini deleted file mode 100644 index f5b7b25324f..00000000000 --- a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse-during-unload.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[traverse-during-unload.html] - expected: TIMEOUT - [Traversing the history during unload] - expected: TIMEOUT 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..ba0aed26689 --- /dev/null +++ b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini @@ -0,0 +1,3 @@ +[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_4.html.ini b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_4.html.ini deleted file mode 100644 index d6188c03424..00000000000 --- a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_4.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[traverse_the_history_4.html] - [Multiple history traversals, last would be aborted] - expected: FAIL diff --git a/tests/wpt/metadata/html/browsers/the-window-object/open-close/creating_browsing_context_test_01.html.ini b/tests/wpt/metadata/html/browsers/the-window-object/open-close/creating_browsing_context_test_01.html.ini new file mode 100644 index 00000000000..4b4820d1729 --- /dev/null +++ b/tests/wpt/metadata/html/browsers/the-window-object/open-close/creating_browsing_context_test_01.html.ini @@ -0,0 +1,3 @@ +[creating_browsing_context_test_01.html] + [first argument: absolute url] + expected: FAIL diff --git a/tests/wpt/metadata/html/browsers/windows/embedded-opener-remove-frame.html.ini b/tests/wpt/metadata/html/browsers/windows/embedded-opener-remove-frame.html.ini index 3a5c1fd357c..b01684d4e92 100644 --- a/tests/wpt/metadata/html/browsers/windows/embedded-opener-remove-frame.html.ini +++ b/tests/wpt/metadata/html/browsers/windows/embedded-opener-remove-frame.html.ini @@ -1,5 +1,5 @@ [embedded-opener-remove-frame.html] - expected: TIMEOUT + expected: CRASH [opener and "removed" embedded documents] expected: FAIL diff --git a/tests/wpt/metadata/html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.disconnected.html.ini b/tests/wpt/metadata/html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.disconnected.html.ini index 5cdcce07c65..2a54f2f8814 100644 --- a/tests/wpt/metadata/html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.disconnected.html.ini +++ b/tests/wpt/metadata/html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.disconnected.html.ini @@ -1,2 +1,2 @@ [canvas.2d.disconnected.html] - expected: FAIL + expected: TIMEOUT diff --git a/tests/wpt/metadata/html/canvas/element/manual/image-smoothing/imagesmoothing.html.ini b/tests/wpt/metadata/html/canvas/element/manual/image-smoothing/imagesmoothing.html.ini new file mode 100644 index 00000000000..52663ea3f55 --- /dev/null +++ b/tests/wpt/metadata/html/canvas/element/manual/image-smoothing/imagesmoothing.html.ini @@ -0,0 +1,3 @@ +[imagesmoothing.html] + [Test that imageSmoothingEnabled = false (nearest-neighbor interpolation) works with stroke() and createPattern().] + expected: FAIL diff --git a/tests/wpt/metadata/html/interaction/focus/the-autofocus-attribute/supported-elements.html.ini b/tests/wpt/metadata/html/interaction/focus/the-autofocus-attribute/supported-elements.html.ini index 58a99633547..8acae84e1e4 100644 --- a/tests/wpt/metadata/html/interaction/focus/the-autofocus-attribute/supported-elements.html.ini +++ b/tests/wpt/metadata/html/interaction/focus/the-autofocus-attribute/supported-elements.html.ini @@ -4,16 +4,13 @@ expected: FAIL [Element with tabindex should support autofocus] - expected: TIMEOUT + expected: FAIL [Host element with delegatesFocus including no focusable descendants should be skipped] - expected: NOTRUN + expected: FAIL [Area element should support autofocus] - expected: NOTRUN + expected: TIMEOUT [Host element with delegatesFocus should support autofocus] - expected: NOTRUN - - [Non-HTMLElement should not support autofocus] - expected: NOTRUN + expected: FAIL diff --git a/tests/wpt/metadata/html/interaction/focus/the-autofocus-attribute/update-the-rendering.html.ini b/tests/wpt/metadata/html/interaction/focus/the-autofocus-attribute/update-the-rendering.html.ini index add66c12f92..9b27c5c1957 100644 --- a/tests/wpt/metadata/html/interaction/focus/the-autofocus-attribute/update-the-rendering.html.ini +++ b/tests/wpt/metadata/html/interaction/focus/the-autofocus-attribute/update-the-rendering.html.ini @@ -1,6 +1,7 @@ [update-the-rendering.html] + expected: TIMEOUT ["Flush autofocus candidates" should be happen after the first animation frame callbacks, and before a resize event in the next iteration of window event loop.] expected: TIMEOUT ["Flush autofocus candidates" should be happen before a scroll event and animation frame callbacks] - expected: FAIL + expected: TIMEOUT diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini index 25d9964f057..e5994e21efc 100644 --- a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini +++ b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini @@ -1,4 +1,5 @@ [iframe_sandbox_popups_escaping-1.html] type: testharness + expected: CRASH [Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used] expected: FAIL diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini index 76e34322dca..6bec7a732b8 100644 --- a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini +++ b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini @@ -1,5 +1,4 @@ [iframe_sandbox_popups_nonescaping-2.html] type: testharness - expected: TIMEOUT [Check that popups from a sandboxed iframe do not escape the sandbox] - expected: NOTRUN + expected: FAIL diff --git a/tests/wpt/metadata/html/semantics/forms/form-submission-0/urlencoded2.window.js.ini b/tests/wpt/metadata/html/semantics/forms/form-submission-0/urlencoded2.window.js.ini index fcb728e0f9b..176a036eb36 100644 --- a/tests/wpt/metadata/html/semantics/forms/form-submission-0/urlencoded2.window.js.ini +++ b/tests/wpt/metadata/html/semantics/forms/form-submission-0/urlencoded2.window.js.ini @@ -17,9 +17,6 @@ [application/x-www-form-urlencoded: 0x00 in filename (normal form)] expected: FAIL - [application/x-www-form-urlencoded: 0x00 in filename (formdata event)] - expected: FAIL - [application/x-www-form-urlencoded: \\n in name (normal form)] expected: FAIL diff --git a/tests/wpt/metadata/html/semantics/forms/historical.html.ini b/tests/wpt/metadata/html/semantics/forms/historical.html.ini deleted file mode 100644 index 5d8289307cc..00000000000 --- a/tests/wpt/metadata/html/semantics/forms/historical.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[historical.html] - [<input name=isindex> should not be supported] - expected: FAIL diff --git a/tests/wpt/metadata/html/semantics/forms/textfieldselection/select-event.html.ini b/tests/wpt/metadata/html/semantics/forms/textfieldselection/select-event.html.ini new file mode 100644 index 00000000000..0016a73a842 --- /dev/null +++ b/tests/wpt/metadata/html/semantics/forms/textfieldselection/select-event.html.ini @@ -0,0 +1,12 @@ +[select-event.html] + [textarea: selectionEnd disconnected node] + expected: FAIL + + [input type text: selectionStart disconnected node] + expected: FAIL + + [input type text: selectionStart event queue] + expected: FAIL + + [input type text: setSelectionRange() event queue] + expected: FAIL diff --git a/tests/wpt/metadata/html/semantics/links/links-created-by-a-and-area-elements/htmlanchorelement_noopener.html.ini b/tests/wpt/metadata/html/semantics/links/links-created-by-a-and-area-elements/htmlanchorelement_noopener.html.ini index 2d44172f4dc..73807cb3cc1 100644 --- a/tests/wpt/metadata/html/semantics/links/links-created-by-a-and-area-elements/htmlanchorelement_noopener.html.ini +++ b/tests/wpt/metadata/html/semantics/links/links-created-by-a-and-area-elements/htmlanchorelement_noopener.html.ini @@ -8,10 +8,10 @@ expected: FAIL [Check that rel=noopener with target=_top does a normal load] - expected: NOTRUN + expected: FAIL [Check that rel=noopener with target=_parent does a normal load] - expected: NOTRUN + expected: FAIL [Check that rel=noopener with target=_self does a normal load] expected: NOTRUN diff --git a/tests/wpt/metadata/html/semantics/scripting-1/the-script-element/module/import-meta/import-meta-url.html.ini b/tests/wpt/metadata/html/semantics/scripting-1/the-script-element/module/import-meta/import-meta-url.html.ini index 514c8b576ad..aefc66df468 100644 --- a/tests/wpt/metadata/html/semantics/scripting-1/the-script-element/module/import-meta/import-meta-url.html.ini +++ b/tests/wpt/metadata/html/semantics/scripting-1/the-script-element/module/import-meta/import-meta-url.html.ini @@ -1,4 +1,5 @@ [import-meta-url.html] + expected: ERROR [import.meta.url at top-level module DedicatedWorker] 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 new file mode 100644 index 00000000000..b8bdf33cb65 --- /dev/null +++ b/tests/wpt/metadata/html/syntax/parsing/DOMContentLoaded-defer.html.ini @@ -0,0 +1,3 @@ +[DOMContentLoaded-defer.html] + [The end: DOMContentLoaded and defer scripts] + expected: FAIL diff --git a/tests/wpt/metadata/html/webappapis/dynamic-markup-insertion/document-write/module-tla-delayed.html.ini b/tests/wpt/metadata/html/webappapis/dynamic-markup-insertion/document-write/module-tla-delayed.html.ini new file mode 100644 index 00000000000..f9a4f08cd70 --- /dev/null +++ b/tests/wpt/metadata/html/webappapis/dynamic-markup-insertion/document-write/module-tla-delayed.html.ini @@ -0,0 +1,3 @@ +[module-tla-delayed.html] + [document.write in an imported module] + expected: FAIL diff --git a/tests/wpt/metadata/html/webappapis/scripting/events/compile-event-handler-settings-objects.html.ini b/tests/wpt/metadata/html/webappapis/scripting/events/compile-event-handler-settings-objects.html.ini index e55f8f2ce3c..8845054116d 100644 --- a/tests/wpt/metadata/html/webappapis/scripting/events/compile-event-handler-settings-objects.html.ini +++ b/tests/wpt/metadata/html/webappapis/scripting/events/compile-event-handler-settings-objects.html.ini @@ -3,6 +3,3 @@ expected: TIMEOUT [The incumbent settings object while executing the compiled callback via Web IDL's invoke must be that of the node document] expected: TIMEOUT - - [The entry settings object while executing the compiled callback via Web IDL's invoke must be that of the node document] - expected: FAIL diff --git a/tests/wpt/metadata/html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-events.html.ini b/tests/wpt/metadata/html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-events.html.ini index 1d71471b73c..4a48dd15a9d 100644 --- a/tests/wpt/metadata/html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-events.html.ini +++ b/tests/wpt/metadata/html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-events.html.ini @@ -1,7 +1,6 @@ [promise-rejection-events.html] - expected: TIMEOUT [delayed handling: delaying handling rejected promise created from createImageBitmap will cause both events to fire] - expected: TIMEOUT + expected: FAIL [unhandledrejection: from createImageBitmap which is UA triggered] expected: FAIL diff --git a/tests/wpt/metadata/resource-timing/content-type-parsing.html.ini b/tests/wpt/metadata/resource-timing/content-type-parsing.html.ini index 71ca4ed5411..49b17a921b5 100644 --- a/tests/wpt/metadata/resource-timing/content-type-parsing.html.ini +++ b/tests/wpt/metadata/resource-timing/content-type-parsing.html.ini @@ -94,10 +94,10 @@ expected: FAIL [mime-type 16 : text/html;charset=\x0bgbk] - expected: FAIL + expected: TIMEOUT [mime-type 17 : text/html;charset=\x0cgbk] - expected: TIMEOUT + expected: NOTRUN [mime-type 18 : text/html;\x0bcharset=gbk] expected: NOTRUN diff --git a/tests/wpt/metadata/resource-timing/response-status-code.html.ini b/tests/wpt/metadata/resource-timing/response-status-code.html.ini index b84e3cf7b11..38df5f01300 100644 --- a/tests/wpt/metadata/resource-timing/response-status-code.html.ini +++ b/tests/wpt/metadata/resource-timing/response-status-code.html.ini @@ -265,10 +265,10 @@ expected: FAIL [This test validates the response status of resources. 88] - expected: TIMEOUT + expected: FAIL [This test validates the response status of resources. 89] - expected: NOTRUN + expected: TIMEOUT [This test validates the response status of resources. 90] expected: NOTRUN diff --git a/tests/wpt/metadata/webmessaging/with-ports/017.html.ini b/tests/wpt/metadata/webmessaging/with-ports/017.html.ini new file mode 100644 index 00000000000..c7946fc91b4 --- /dev/null +++ b/tests/wpt/metadata/webmessaging/with-ports/017.html.ini @@ -0,0 +1,4 @@ +[017.html] + expected: TIMEOUT + [origin of the script that invoked the method, about:blank] + expected: TIMEOUT diff --git a/tests/wpt/metadata/webmessaging/with-ports/018.html.ini b/tests/wpt/metadata/webmessaging/with-ports/018.html.ini new file mode 100644 index 00000000000..b7b36c1d3a4 --- /dev/null +++ b/tests/wpt/metadata/webmessaging/with-ports/018.html.ini @@ -0,0 +1,4 @@ +[018.html] + expected: TIMEOUT + [origin of the script that invoked the method, javascript:] + expected: TIMEOUT diff --git a/tests/wpt/metadata/webstorage/localstorage-about-blank-3P-iframe-opens-3P-window.partitioned.tentative.html.ini b/tests/wpt/metadata/webstorage/localstorage-about-blank-3P-iframe-opens-3P-window.partitioned.tentative.html.ini new file mode 100644 index 00000000000..aa6c9e5b826 --- /dev/null +++ b/tests/wpt/metadata/webstorage/localstorage-about-blank-3P-iframe-opens-3P-window.partitioned.tentative.html.ini @@ -0,0 +1,4 @@ +[localstorage-about-blank-3P-iframe-opens-3P-window.partitioned.tentative.html] + expected: TIMEOUT + [StorageKey: test 3P about:blank window opened from a 3P iframe] + expected: TIMEOUT diff --git a/tests/wpt/metadata/webxr/webxr_feature_policy.https.html.ini b/tests/wpt/metadata/webxr/webxr_permissions_policy.https.html.ini index c2d1111d66c..c40254dbea1 100644 --- a/tests/wpt/metadata/webxr/webxr_feature_policy.https.html.ini +++ b/tests/wpt/metadata/webxr/webxr_permissions_policy.https.html.ini @@ -1,4 +1,4 @@ -[webxr_feature_policy.https.html] +[webxr_permissions_policy.https.html] expected: ERROR [Validate isSessionSupported behavior without xr-spatial-tracking policy] expected: FAIL @@ -8,4 +8,3 @@ [Validate xr compatibility requests without xr-spatial-tracking policy] expected: NOTRUN - 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/CODEOWNERS b/tests/wpt/web-platform-tests/CODEOWNERS index c1da5c0706e..2372633782e 100644 --- a/tests/wpt/web-platform-tests/CODEOWNERS +++ b/tests/wpt/web-platform-tests/CODEOWNERS @@ -1,5 +1,9 @@ # Prevent accidentially touching CSS subtree -/css/tools/apiclient/ @plinss @jgraham +/css/tools/apiclient/ @plinss @web-platform-tests/wpt-core-team + +# Require review for changes that often need an RFC +/resources/testdriver* @web-platform-tests/wpt-core-team +/resources/testharness* @web-platform-tests/wpt-core-team # Prevent accidentally touching tools/third_party -/tools/third_party/ @jgraham +/tools/third_party/ @web-platform-tests/wpt-core-team diff --git a/tests/wpt/web-platform-tests/client-hints/accept-ch-stickiness/cross-origin-iframe-redirect-with-fp-delegation.https.html.headers b/tests/wpt/web-platform-tests/client-hints/accept-ch-stickiness/cross-origin-iframe-redirect-with-fp-delegation.https.html.headers index f3f85f9ebaa..28580b0a6fc 100644 --- a/tests/wpt/web-platform-tests/client-hints/accept-ch-stickiness/cross-origin-iframe-redirect-with-fp-delegation.https.html.headers +++ b/tests/wpt/web-platform-tests/client-hints/accept-ch-stickiness/cross-origin-iframe-redirect-with-fp-delegation.https.html.headers @@ -1,2 +1,2 @@ Accept-CH: Sec-CH-DPR, DPR, Sec-CH-Device-Memory, Device-Memory -Feature-Policy: ch-dpr *; ch-device-memory * +Permissions-Policy: ch-dpr=*, ch-device-memory=* diff --git a/tests/wpt/web-platform-tests/client-hints/accept-ch-stickiness/cross-origin-subresource-redirect-with-fp-delegation.https.html.headers b/tests/wpt/web-platform-tests/client-hints/accept-ch-stickiness/cross-origin-subresource-redirect-with-fp-delegation.https.html.headers index ed410097849..28580b0a6fc 100644 --- a/tests/wpt/web-platform-tests/client-hints/accept-ch-stickiness/cross-origin-subresource-redirect-with-fp-delegation.https.html.headers +++ b/tests/wpt/web-platform-tests/client-hints/accept-ch-stickiness/cross-origin-subresource-redirect-with-fp-delegation.https.html.headers @@ -1,2 +1,2 @@ Accept-CH: Sec-CH-DPR, DPR, Sec-CH-Device-Memory, Device-Memory -Feature-Policy: ch-dpr *;ch-device-memory * +Permissions-Policy: ch-dpr=*, ch-device-memory=* diff --git a/tests/wpt/web-platform-tests/client-hints/accept-ch-stickiness/resources/feature-policy-with-cross-origin-subresource.html.headers b/tests/wpt/web-platform-tests/client-hints/accept-ch-stickiness/resources/feature-policy-with-cross-origin-subresource.html.headers index cb6b0cfd13c..4738714fb49 100644 --- a/tests/wpt/web-platform-tests/client-hints/accept-ch-stickiness/resources/feature-policy-with-cross-origin-subresource.html.headers +++ b/tests/wpt/web-platform-tests/client-hints/accept-ch-stickiness/resources/feature-policy-with-cross-origin-subresource.html.headers @@ -1 +1 @@ -Feature-Policy: ch-device-memory *; +Permissions-Policy: ch-device-memory=* diff --git a/tests/wpt/web-platform-tests/client-hints/accept-ch/feature-policy-navigation/feature-policy.https.html.headers b/tests/wpt/web-platform-tests/client-hints/accept-ch/feature-policy-navigation/feature-policy.https.html.headers index 8e976388ecc..11bbceff0ac 100644 --- a/tests/wpt/web-platform-tests/client-hints/accept-ch/feature-policy-navigation/feature-policy.https.html.headers +++ b/tests/wpt/web-platform-tests/client-hints/accept-ch/feature-policy-navigation/feature-policy.https.html.headers @@ -1 +1 @@ -Feature-Policy: ch-device-memory *; ch-dpr 'none'; ch-viewport-width 'self'; ch-ua 'self'; ch-ua-mobile 'none' +Permissions-Policy: ch-device-memory=*, ch-dpr=(), ch-viewport-width=(self), ch-ua=(self), ch-ua-mobile=() diff --git a/tests/wpt/web-platform-tests/client-hints/accept-ch/feature-policy.sub.https.html.headers b/tests/wpt/web-platform-tests/client-hints/accept-ch/feature-policy.sub.https.html.headers index 78bbb8c8729..d968517a3ad 100644 --- a/tests/wpt/web-platform-tests/client-hints/accept-ch/feature-policy.sub.https.html.headers +++ b/tests/wpt/web-platform-tests/client-hints/accept-ch/feature-policy.sub.https.html.headers @@ -1 +1 @@ -Feature-Policy: ch-device-memory *; ch-dpr 'none'; ch-viewport-width 'self'; ch-mobile; ch-prefers-color-scheme 'none'; ch-prefers-reduced-motion 'none'; ch-viewport-height 'none' +Permissions-Policy: ch-device-memory=*, ch-dpr=(), ch-viewport-width=(self), ch-mobile, ch-prefers-color-scheme=(), ch-prefers-reduced-motion=(), ch-viewport-height=() diff --git a/tests/wpt/web-platform-tests/content-security-policy/inside-worker/support/connect-src-allow.sub.js b/tests/wpt/web-platform-tests/content-security-policy/inside-worker/support/connect-src-allow.sub.js index 5812faf5fa6..7f0ee1f837a 100644 --- a/tests/wpt/web-platform-tests/content-security-policy/inside-worker/support/connect-src-allow.sub.js +++ b/tests/wpt/web-platform-tests/content-security-policy/inside-worker/support/connect-src-allow.sub.js @@ -68,4 +68,15 @@ promise_test(t => { }, "Same-origin => cross-origin 'fetch()' in " + self.location.protocol + " without CSP"); +// WebSocket +promise_test(async function(t) { + let url = "wss://{{host}}:{{ports[wss][0]}}/echo"; + assert_no_csp_event_for_url(t, url); + + return new Promise(resolve => { + let ws = new WebSocket(url); + ws.onopen = resolve; + }); +}, "WebSocket without CSP"); + done(); diff --git a/tests/wpt/web-platform-tests/content-security-policy/inside-worker/support/connect-src-self-report-only.sub.js b/tests/wpt/web-platform-tests/content-security-policy/inside-worker/support/connect-src-self-report-only.sub.js index 0287f110d4c..c6246714760 100644 --- a/tests/wpt/web-platform-tests/content-security-policy/inside-worker/support/connect-src-self-report-only.sub.js +++ b/tests/wpt/web-platform-tests/content-security-policy/inside-worker/support/connect-src-self-report-only.sub.js @@ -77,9 +77,22 @@ promise_test(t => { ]); }, "Same-origin => cross-origin 'fetch()'."); +let websocket_url = "wss://{{host}}:{{ports[wss][0]}}/echo"; + +// The WebSocket URL is not the same as 'self' +promise_test(t => { + return Promise.all([ + waitUntilCSPEventForURL(t, websocket_url), + new Promise(resolve => { + let ws = new WebSocket(websocket_url); + ws.onopen = resolve; + }) + ]); +}, "WebSocket."); + let expected_blocked_urls = self.XMLHttpRequest - ? [ fetch_cross_origin_url, xhr_cross_origin_url, redirect_url ] - : [ fetch_cross_origin_url, redirect_url ]; + ? [ fetch_cross_origin_url, xhr_cross_origin_url, redirect_url, websocket_url ] + : [ fetch_cross_origin_url, redirect_url, websocket_url ]; promise_test(async t => { let report_url = `{{location[server]}}/reporting/resources/report.py?` + diff --git a/tests/wpt/web-platform-tests/content-security-policy/inside-worker/support/connect-src-self.sub.js b/tests/wpt/web-platform-tests/content-security-policy/inside-worker/support/connect-src-self.sub.js index fd639c29cf8..3c3ecc01c2d 100644 --- a/tests/wpt/web-platform-tests/content-security-policy/inside-worker/support/connect-src-self.sub.js +++ b/tests/wpt/web-platform-tests/content-security-policy/inside-worker/support/connect-src-self.sub.js @@ -88,9 +88,29 @@ promise_test(t => { }, "Same-origin => cross-origin 'fetch()' in " + self.location.protocol + " with {{GET[test-name]}}"); + +let websocket_url = "wss://{{host}}:{{ports[wss][0]}}/echo"; + +// The WebSocket URL is not the same as 'self' +promise_test(t => { + return Promise.all([ + waitUntilCSPEventForURL(t, websocket_url), + new Promise((resolve, reject) => { + // Firefox throws in the constructor, Chrome triggers the error event. + try { + let ws = new WebSocket(websocket_url); + ws.onerror = resolve; + ws.onopen = reject; // unexpected + } catch (e) { + resolve(); + } + }) + ]); +}, "WebSocket in " + self.location.protocol + " with {{GET[test-name]}}"); + let expected_blocked_urls = self.XMLHttpRequest - ? [ fetch_cross_origin_url, xhr_cross_origin_url, redirect_url ] - : [ fetch_cross_origin_url, redirect_url ]; + ? [ fetch_cross_origin_url, xhr_cross_origin_url, redirect_url, websocket_url ] + : [ fetch_cross_origin_url, redirect_url, websocket_url ]; promise_test(async t => { let report_url = `{{location[server]}}/reporting/resources/report.py` + diff --git a/tests/wpt/web-platform-tests/css/css-fonts/parsing/font-feature-settings-computed.html b/tests/wpt/web-platform-tests/css/css-fonts/parsing/font-feature-settings-computed.html index 89704ac5f47..44b9d1c535a 100644 --- a/tests/wpt/web-platform-tests/css/css-fonts/parsing/font-feature-settings-computed.html +++ b/tests/wpt/web-platform-tests/css/css-fonts/parsing/font-feature-settings-computed.html @@ -20,13 +20,11 @@ test_computed_value('font-feature-settings', '"dlig"'); test_computed_value('font-feature-settings', '"smcp"'); test_computed_value('font-feature-settings', '"c2sc"'); test_computed_value('font-feature-settings', '"liga" 0'); -test_computed_value('font-feature-settings', '"tnum", "hist"', - ['"tnum", "hist"', '"hist", "tnum"']); +test_computed_value('font-feature-settings', '"tnum", "hist"', '"hist", "tnum"'); test_computed_value('font-feature-settings', '"PKRN"'); -test_computed_value('font-feature-settings', '"dlig", "smcp", "dlig" 0', - ['"smcp", "dlig" 0', '"dlig" 0, "smcp"']); +test_computed_value('font-feature-settings', '"dlig", "smcp", "dlig" 0', '"dlig" 0, "smcp"'); </script> </body> </html> diff --git a/tests/wpt/web-platform-tests/css/css-fonts/parsing/font-variation-settings-computed.html b/tests/wpt/web-platform-tests/css/css-fonts/parsing/font-variation-settings-computed.html index 521461657e8..8e72161193a 100644 --- a/tests/wpt/web-platform-tests/css/css-fonts/parsing/font-variation-settings-computed.html +++ b/tests/wpt/web-platform-tests/css/css-fonts/parsing/font-variation-settings-computed.html @@ -23,6 +23,12 @@ test_computed_value('font-variation-settings', '"wght" 700, "wght" 500', '"wght" test_computed_value('font-variation-settings', '"wght" 700, "XHGT" 0.7', ['"wght" 700, "XHGT" 0.7', '"XHGT" 0.7, "wght" 700']); +test_computed_value('font-variation-settings', '"wght" 100, "wdth" 200', '"wdth" 200, "wght" 100', + "values should be sorted alphabetically by tag."); + +test_computed_value('font-variation-settings', '"wght" 100, "wdth" 200, "wght" 300, "wdth" 400', '"wdth" 400, "wght" 300', + "duplicate values should be removed, keeping the rightmost occurrence, and sorted alphabetically by tag."); + test_computed_value('font-variation-settings', '"XHGT" calc(0.4 + 0.3)', '"XHGT" 0.7'); </script> </body> diff --git a/tests/wpt/web-platform-tests/css/css-masking/clip-path/clip-path-svg-text-css.html b/tests/wpt/web-platform-tests/css/css-masking/clip-path/clip-path-svg-text-css.html new file mode 100644 index 00000000000..8a0d7111b0c --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-masking/clip-path/clip-path-svg-text-css.html @@ -0,0 +1,24 @@ +<!doctype html> +<link rel="help" href="https://drafts.fxtf.org/css-masking-1/#ClipPathElement"> +<link rel="match" href="reference/clip-path-svg-text-css-ref.html"> +<meta name="fuzzy" content="0-1;0-200"> +<meta name="flags" content="ahem"> +<link rel="stylesheet" href="/fonts/ahem.css" /> +<style> +text { + font: 50px/1 Ahem; + text-shadow: grey 10px 10px; + fill: none; + stroke: red; + stroke-width: 10px; +} +</style> +<svg> + <defs> + <!-- clipPath works on raw geometry regardless of fill/stroke/shadow etc --> + <clipPath id="c"> + <text x="30" y="50">Hello</text> + </clipPath> + </defs> + <rect width="200" height="100" fill="green" clip-path="url(#c)"/> +</svg> diff --git a/tests/wpt/web-platform-tests/css/css-masking/clip-path/reference/clip-path-svg-text-css-ref.html b/tests/wpt/web-platform-tests/css/css-masking/clip-path/reference/clip-path-svg-text-css-ref.html new file mode 100644 index 00000000000..8cf2cd253a4 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-masking/clip-path/reference/clip-path-svg-text-css-ref.html @@ -0,0 +1,16 @@ +<!doctype html> +<meta name="flags" content="ahem"> +<link rel="stylesheet" href="/fonts/ahem.css" /> +<style> +text { + font: 50px/1 Ahem; +} +</style> +<svg> + <defs> + <clipPath id="c"> + <text x="30" y="50">Hello</text> + </clipPath> + </defs> + <rect width="200" height="100" fill="green" clip-path="url(#c)"/> +</svg> diff --git a/tests/wpt/web-platform-tests/css/css-view-transitions/new-content-from-root-display-none-ref.html b/tests/wpt/web-platform-tests/css/css-view-transitions/new-content-from-root-display-none-ref.html new file mode 100644 index 00000000000..e936a779c74 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-view-transitions/new-content-from-root-display-none-ref.html @@ -0,0 +1,22 @@ +<!DOCTYPE html> +<html> +<title>View transitions: capture starts with root being display none (ref)</title> +<link rel="help" href="https://github.com/WICG/view-transitions"> +<link rel="author" href="mailto:vmpstr@chromium.org"> +<style> +.tb { writing-mode: horizontal-tb; } +.lr { writing-mode: vertical-lr; } +.rl { writing-mode: vertical-rl; } +.shared { + margin: 2px; + width: 100px; + height: 50px; + background: green; + contain: paint; + border: 1px solid black; +} +</style> + +<div class=tb><div id=one class=shared>T</div></div> +<div class=lr><div id=two class=shared>T</div></div> +<div class=rl><div id=three class=shared>T</div></div> diff --git a/tests/wpt/web-platform-tests/css/css-view-transitions/new-content-from-root-display-none.html b/tests/wpt/web-platform-tests/css/css-view-transitions/new-content-from-root-display-none.html new file mode 100644 index 00000000000..4d2ad28b178 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-view-transitions/new-content-from-root-display-none.html @@ -0,0 +1,49 @@ +<!DOCTYPE html> +<html class=reftest-wait style="display: none"> +<title>View transitions: capture starts with root being display none</title> +<link rel="help" href="https://github.com/WICG/view-transitions"> +<link rel="author" href="mailto:vmpstr@chromium.org"> +<link rel="match" href="new-content-from-root-display-none-ref.html"> +<script src="/common/reftest-wait.js"></script> +<style> +.tb { writing-mode: horizontal-tb; } +.lr { writing-mode: vertical-lr; } +.rl { writing-mode: vertical-rl; } +.shared { + margin: 2px; + width: 100px; + height: 50px; + background: green; + contain: paint; + border: 1px solid black; +} + +html::view-transition-group(root) { animation-duration: 500s; } +html::view-transition-new(root) { + animation: unset; + opacity: 1; +} +html::view-transition-old(root) { + animation: unset; + opacity: 0; +} + +</style> + +<div class=tb><div id=one class=shared>T</div></div> +<div class=lr><div id=two class=shared>T</div></div> +<div class=rl><div id=three class=shared>T</div></div> + +<script> +failIfNot(document.startViewTransition, "Missing document.startViewTransition"); + +async function runTest() { + let transition = document.startViewTransition(() => { + document.documentElement.style = ""; + }); + transition.ready.then(() => requestAnimationFrame(takeScreenshot)); +} +onload = () => requestAnimationFrame(() => requestAnimationFrame(runTest)); +</script> + + diff --git a/tests/wpt/web-platform-tests/css/css-view-transitions/root-element-display-none-crash.html b/tests/wpt/web-platform-tests/css/css-view-transitions/root-element-display-none-crash.html new file mode 100644 index 00000000000..fc55719c7e8 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-view-transitions/root-element-display-none-crash.html @@ -0,0 +1,23 @@ +<!DOCTYPE html> +<html class=reftest-wait> +<title>View transitions: html display none</title> +<link rel="help" href="https://github.com/WICG/view-transitions"> +<link rel="author" href="mailto:vmpstr@chromium.org"> + +<script src="/common/reftest-wait.js"></script> +<style> +html { + display: none; +} +</style> + +<script> +failIfNot(document.startViewTransition, "Missing document.startViewTransition"); + +async function runTest() { + document.startViewTransition().finished.then(takeScreenshot, takeScreenshot); + +} +onload = () => requestAnimationFrame(() => requestAnimationFrame(runTest)); +</script> + diff --git a/tests/wpt/web-platform-tests/css/css-view-transitions/root-element-display-none-during-transition-crash.html b/tests/wpt/web-platform-tests/css/css-view-transitions/root-element-display-none-during-transition-crash.html new file mode 100644 index 00000000000..19f4143aa6a --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-view-transitions/root-element-display-none-during-transition-crash.html @@ -0,0 +1,30 @@ +<!DOCTYPE html> +<html class=reftest-wait> +<title>View transitions: entry animation from root display none</title> +<link rel="help" href="https://github.com/WICG/view-transitions"> +<link rel="author" href="mailto:vmpstr@chromium.org"> + +<script src="/common/reftest-wait.js"></script> +<style> +.hidden { + display: none; +} +::view-transition-group(*) { + animation-duration: 500s +} +</style> + +<script> +failIfNot(document.startViewTransition, "Missing document.startViewTransition"); + +async function runTest() { + transition = document.startViewTransition(); + transition.ready.then( + requestAnimationFrame(() => { + document.documentElement.classList.toggle("hidden"); + })); + transition.finished.then(takeScreenshot); +} +onload = () => requestAnimationFrame(() => requestAnimationFrame(runTest)); +</script> + diff --git a/tests/wpt/web-platform-tests/fetch/private-network-access/fetch-from-treat-as-public.https.window.js b/tests/wpt/web-platform-tests/fetch/private-network-access/fetch-from-treat-as-public.https.window.js new file mode 100644 index 00000000000..90f7feb6341 --- /dev/null +++ b/tests/wpt/web-platform-tests/fetch/private-network-access/fetch-from-treat-as-public.https.window.js @@ -0,0 +1,68 @@ +// META: script=/common/utils.js +// META: script=resources/support.sub.js +// +// Spec: https://wicg.github.io/private-network-access/#integration-fetch +// +// These tests verify that documents fetched from the `local` or `private` +// address space yet carrying the `treat-as-public-address` CSP directive are +// treated as if they had been fetched from the `public` address space. + +promise_test(t => fetchTest(t, { + source: { + server: Server.HTTPS_LOCAL, + treatAsPublic: true, + }, + target: { server: Server.HTTPS_LOCAL }, + expected: FetchTestResult.FAILURE, +}), "treat-as-public-address to local: failed preflight."); + +promise_test(t => fetchTest(t, { + source: { + server: Server.HTTPS_LOCAL, + treatAsPublic: true, + }, + target: { + server: Server.HTTPS_LOCAL, + behavior: { + preflight: PreflightBehavior.optionalSuccess(token()), + // Interesting: no need for CORS headers on same-origin final response. + }, + }, + expected: FetchTestResult.SUCCESS, +}), "treat-as-public-address to local: success."); + +promise_test(t => fetchTest(t, { + source: { + server: Server.HTTPS_LOCAL, + treatAsPublic: true, + }, + target: { server: Server.HTTPS_PRIVATE }, + expected: FetchTestResult.FAILURE, +}), "treat-as-public-address to private: failed preflight."); + +promise_test(t => fetchTest(t, { + source: { + server: Server.HTTPS_LOCAL, + treatAsPublic: true, + }, + target: { + server: Server.HTTPS_PRIVATE, + behavior: { + preflight: PreflightBehavior.optionalSuccess(token()), + response: ResponseBehavior.allowCrossOrigin(), + }, + }, + expected: FetchTestResult.SUCCESS, +}), "treat-as-public-address to private: success."); + +promise_test(t => fetchTest(t, { + source: { + server: Server.HTTPS_LOCAL, + treatAsPublic: true, + }, + target: { + server: Server.HTTPS_PUBLIC, + behavior: { response: ResponseBehavior.allowCrossOrigin() }, + }, + expected: FetchTestResult.SUCCESS, +}), "treat-as-public-address to public: no preflight required."); diff --git a/tests/wpt/web-platform-tests/fetch/private-network-access/fetch.https.window.js b/tests/wpt/web-platform-tests/fetch/private-network-access/fetch.https.window.js index 7a3cc20c4c5..dbc4f23f677 100644 --- a/tests/wpt/web-platform-tests/fetch/private-network-access/fetch.https.window.js +++ b/tests/wpt/web-platform-tests/fetch/private-network-access/fetch.https.window.js @@ -5,7 +5,6 @@ // META: variant=?include=from-local // META: variant=?include=from-private // META: variant=?include=from-public -// META: variant=?include=from-treat-as-public // // Spec: https://wicg.github.io/private-network-access/#integration-fetch // @@ -270,66 +269,3 @@ subsetTestByKey("from-public", promise_test, t => fetchTest(t, { expected: FetchTestResult.SUCCESS, }), "public to public: no preflight required."); -// These tests verify that documents fetched from the `local` address space yet -// carrying the `treat-as-public-address` CSP directive are treated as if they -// had been fetched from the `public` address space. - -subsetTestByKey("from-treat-as-public", promise_test, t => fetchTest(t, { - source: { - server: Server.HTTPS_LOCAL, - treatAsPublic: true, - }, - target: { server: Server.HTTPS_LOCAL }, - expected: FetchTestResult.FAILURE, -}), "treat-as-public-address to local: failed preflight."); - -subsetTestByKey("from-treat-as-public", promise_test, t => fetchTest(t, { - source: { - server: Server.HTTPS_LOCAL, - treatAsPublic: true, - }, - target: { - server: Server.HTTPS_LOCAL, - behavior: { - preflight: PreflightBehavior.success(token()), - // Interesting: no need for CORS headers on same-origin final response. - }, - }, - expected: FetchTestResult.SUCCESS, -}), "treat-as-public-address to local: success."); - -subsetTestByKey("from-treat-as-public", promise_test, t => fetchTest(t, { - source: { - server: Server.HTTPS_LOCAL, - treatAsPublic: true, - }, - target: { server: Server.HTTPS_PRIVATE }, - expected: FetchTestResult.FAILURE, -}), "treat-as-public-address to private: failed preflight."); - -subsetTestByKey("from-treat-as-public", promise_test, t => fetchTest(t, { - source: { - server: Server.HTTPS_LOCAL, - treatAsPublic: true, - }, - target: { - server: Server.HTTPS_PRIVATE, - behavior: { - preflight: PreflightBehavior.success(token()), - response: ResponseBehavior.allowCrossOrigin(), - }, - }, - expected: FetchTestResult.SUCCESS, -}), "treat-as-public-address to private: success."); - -subsetTestByKey("from-treat-as-public", promise_test, t => fetchTest(t, { - source: { - server: Server.HTTPS_LOCAL, - treatAsPublic: true, - }, - target: { - server: Server.HTTPS_PUBLIC, - behavior: { response: ResponseBehavior.allowCrossOrigin() }, - }, - expected: FetchTestResult.SUCCESS, -}), "treat-as-public-address to public: no preflight required."); diff --git a/tests/wpt/web-platform-tests/fetch/private-network-access/iframe.tentative.https.window.js b/tests/wpt/web-platform-tests/fetch/private-network-access/iframe.tentative.https.window.js index 5636270ea63..48bd6420fd9 100644 --- a/tests/wpt/web-platform-tests/fetch/private-network-access/iframe.tentative.https.window.js +++ b/tests/wpt/web-platform-tests/fetch/private-network-access/iframe.tentative.https.window.js @@ -175,6 +175,18 @@ promise_test_parallel(t => iframeTest(t, { expected: IframeTestResult.SUCCESS, }), "treat-as-public-address to public: no preflight required."); +promise_test_parallel(t => iframeTest(t, { + source: { + server: Server.HTTPS_LOCAL, + treatAsPublic: true, + }, + target: { + server: Server.HTTPS_PUBLIC, + behavior: { preflight: PreflightBehavior.optionalSuccess(token()) } + }, + expected: IframeTestResult.SUCCESS, +}), "treat-as-public-address to local: optional preflight"); + // The following tests verify that when a grandparent frame navigates its // grandchild, the IP address space of the grandparent is compared against the // IP address space of the response. Indeed, the navigation initiator in this diff --git a/tests/wpt/web-platform-tests/fetch/private-network-access/mixed-content-fetch.tentative.https.window.js b/tests/wpt/web-platform-tests/fetch/private-network-access/mixed-content-fetch.tentative.https.window.js index fb9f6a7709a..54485dc7047 100644 --- a/tests/wpt/web-platform-tests/fetch/private-network-access/mixed-content-fetch.tentative.https.window.js +++ b/tests/wpt/web-platform-tests/fetch/private-network-access/mixed-content-fetch.tentative.https.window.js @@ -220,7 +220,7 @@ promise_test_parallel(t => fetchTest(t, { target: { server: Server.HTTP_LOCAL, behavior: { - preflight: PreflightBehavior.success(token()), + preflight: PreflightBehavior.optionalSuccess(token()), response: ResponseBehavior.allowCrossOrigin(), }, }, @@ -236,7 +236,7 @@ promise_test_parallel(t => fetchTest(t, { target: { server: Server.HTTP_LOCAL, behavior: { - preflight: PreflightBehavior.success(token()), + preflight: PreflightBehavior.optionalSuccess(token()), response: ResponseBehavior.allowCrossOrigin(), }, }, diff --git a/tests/wpt/web-platform-tests/fetch/private-network-access/shared-worker-fetch.https.window.js b/tests/wpt/web-platform-tests/fetch/private-network-access/shared-worker-fetch.https.window.js index 29e9f32c7e0..7066b359caa 100644 --- a/tests/wpt/web-platform-tests/fetch/private-network-access/shared-worker-fetch.https.window.js +++ b/tests/wpt/web-platform-tests/fetch/private-network-access/shared-worker-fetch.https.window.js @@ -106,7 +106,7 @@ promise_test(t => sharedWorkerFetchTest(t, { }, target: { server: Server.HTTPS_LOCAL, - behavior: { preflight: PreflightBehavior.success(token()) }, + behavior: { preflight: PreflightBehavior.optionalSuccess(token()) }, }, expected: WorkerFetchTestResult.SUCCESS, }), "treat-as-public to local: success."); diff --git a/tests/wpt/web-platform-tests/fetch/private-network-access/shared-worker.https.window.js b/tests/wpt/web-platform-tests/fetch/private-network-access/shared-worker.https.window.js index 91d9186860e..ecb70c41245 100644 --- a/tests/wpt/web-platform-tests/fetch/private-network-access/shared-worker.https.window.js +++ b/tests/wpt/web-platform-tests/fetch/private-network-access/shared-worker.https.window.js @@ -25,7 +25,7 @@ promise_test(t => sharedWorkerScriptTest(t, { }, target: { server: Server.HTTPS_LOCAL, - behavior: { preflight: PreflightBehavior.success(token()) }, + behavior: { preflight: PreflightBehavior.optionalSuccess(token()) }, }, expected: WorkerScriptTestResult.SUCCESS, }), "treat-as-public to local: success."); @@ -46,7 +46,7 @@ promise_test(t => sharedWorkerScriptTest(t, { }, target: { server: Server.HTTPS_PRIVATE, - behavior: { preflight: PreflightBehavior.success(token()) }, + behavior: { preflight: PreflightBehavior.optionalSuccess(token()) }, }, expected: WorkerScriptTestResult.SUCCESS, }), "treat-as-public to private: success."); diff --git a/tests/wpt/web-platform-tests/fetch/private-network-access/worker-fetch.https.window.js b/tests/wpt/web-platform-tests/fetch/private-network-access/worker-fetch.https.window.js index 7ca0b4359c3..89e0c3cf1f3 100644 --- a/tests/wpt/web-platform-tests/fetch/private-network-access/worker-fetch.https.window.js +++ b/tests/wpt/web-platform-tests/fetch/private-network-access/worker-fetch.https.window.js @@ -106,7 +106,7 @@ promise_test(t => workerFetchTest(t, { }, target: { server: Server.HTTPS_LOCAL, - behavior: { preflight: PreflightBehavior.success(token()) }, + behavior: { preflight: PreflightBehavior.optionalSuccess(token()) }, }, expected: WorkerFetchTestResult.SUCCESS, }), "treat-as-public to local: success."); diff --git a/tests/wpt/web-platform-tests/fetch/private-network-access/worker.https.window.js b/tests/wpt/web-platform-tests/fetch/private-network-access/worker.https.window.js index fd38f7cf70e..2d0dddd685c 100644 --- a/tests/wpt/web-platform-tests/fetch/private-network-access/worker.https.window.js +++ b/tests/wpt/web-platform-tests/fetch/private-network-access/worker.https.window.js @@ -28,7 +28,7 @@ promise_test(t => workerScriptTest(t, { }, target: { server: Server.HTTPS_LOCAL, - behavior: { preflight: PreflightBehavior.success(token()) }, + behavior: { preflight: PreflightBehavior.optionalSuccess(token()) }, }, expected: WorkerScriptTestResult.SUCCESS, }), "treat-as-public to local: success."); @@ -49,7 +49,7 @@ promise_test(t => workerScriptTest(t, { }, target: { server: Server.HTTPS_PRIVATE, - behavior: { preflight: PreflightBehavior.success(token()) }, + behavior: { preflight: PreflightBehavior.optionalSuccess(token()) }, }, expected: WorkerScriptTestResult.SUCCESS, }), "treat-as-public to private: success."); diff --git a/tests/wpt/web-platform-tests/fetch/private-network-access/xhr-from-treat-as-public.https.window.js b/tests/wpt/web-platform-tests/fetch/private-network-access/xhr-from-treat-as-public.https.window.js new file mode 100644 index 00000000000..04fe5449d19 --- /dev/null +++ b/tests/wpt/web-platform-tests/fetch/private-network-access/xhr-from-treat-as-public.https.window.js @@ -0,0 +1,74 @@ +// META: script=/common/utils.js +// META: script=resources/support.sub.js +// +// Spec: https://wicg.github.io/private-network-access/#integration-fetch +// +// These tests verify that documents fetched from the `local` address space yet +// carrying the `treat-as-public-address` CSP directive are treated as if they +// had been fetched from the `public` address space. + +promise_test(t => xhrTest(t, { + source: { + server: Server.HTTPS_LOCAL, + treatAsPublic: true, + }, + target: { + server: Server.HTTPS_LOCAL, + behavior: { response: ResponseBehavior.allowCrossOrigin() }, + }, + expected: XhrTestResult.FAILURE, +}), "treat-as-public to local: failed preflight."); + +promise_test(t => xhrTest(t, { + source: { + server: Server.HTTPS_LOCAL, + treatAsPublic: true, + }, + target: { + server: Server.HTTPS_LOCAL, + behavior: { + preflight: PreflightBehavior.optionalSuccess(token()), + response: ResponseBehavior.allowCrossOrigin(), + }, + }, + expected: XhrTestResult.SUCCESS, +}), "treat-as-public to local: success."); + +promise_test(t => xhrTest(t, { + source: { + server: Server.HTTPS_LOCAL, + treatAsPublic: true, + }, + target: { + server: Server.HTTPS_PRIVATE, + behavior: { response: ResponseBehavior.allowCrossOrigin() }, + }, + expected: XhrTestResult.FAILURE, +}), "treat-as-public to private: failed preflight."); + +promise_test(t => xhrTest(t, { + source: { + server: Server.HTTPS_LOCAL, + treatAsPublic: true, + }, + target: { + server: Server.HTTPS_PRIVATE, + behavior: { + preflight: PreflightBehavior.optionalSuccess(token()), + response: ResponseBehavior.allowCrossOrigin(), + }, + }, + expected: XhrTestResult.SUCCESS, +}), "treat-as-public to private: success."); + +promise_test(t => xhrTest(t, { + source: { + server: Server.HTTPS_LOCAL, + treatAsPublic: true, + }, + target: { + server: Server.HTTPS_PUBLIC, + behavior: { response: ResponseBehavior.allowCrossOrigin() }, + }, + expected: XhrTestResult.SUCCESS, +}), "treat-as-public to public: no preflight required."); diff --git a/tests/wpt/web-platform-tests/fetch/private-network-access/xhr.https.window.js b/tests/wpt/web-platform-tests/fetch/private-network-access/xhr.https.window.js index ac811ee19aa..4dc5da9912f 100644 --- a/tests/wpt/web-platform-tests/fetch/private-network-access/xhr.https.window.js +++ b/tests/wpt/web-platform-tests/fetch/private-network-access/xhr.https.window.js @@ -4,7 +4,6 @@ // META: variant=?include=from-local // META: variant=?include=from-private // META: variant=?include=from-public -// META: variant=?include=from-treat-as-public // // Spec: https://wicg.github.io/private-network-access/#integration-fetch // @@ -141,73 +140,3 @@ subsetTestByKey("from-public", promise_test, t => xhrTest(t, { target: { server: Server.HTTPS_PUBLIC }, expected: XhrTestResult.SUCCESS, }), "public to public: no preflight required."); - -// These tests verify that documents fetched from the `local` address space yet -// carrying the `treat-as-public-address` CSP directive are treated as if they -// had been fetched from the `public` address space. - -subsetTestByKey("from-treat-as-public", promise_test, t => xhrTest(t, { - source: { - server: Server.HTTPS_LOCAL, - treatAsPublic: true, - }, - target: { - server: Server.HTTPS_LOCAL, - behavior: { response: ResponseBehavior.allowCrossOrigin() }, - }, - expected: XhrTestResult.FAILURE, -}), "treat-as-public to local: failed preflight."); - -subsetTestByKey("from-treat-as-public", promise_test, t => xhrTest(t, { - source: { - server: Server.HTTPS_LOCAL, - treatAsPublic: true, - }, - target: { - server: Server.HTTPS_LOCAL, - behavior: { - preflight: PreflightBehavior.success(token()), - response: ResponseBehavior.allowCrossOrigin(), - }, - }, - expected: XhrTestResult.SUCCESS, -}), "treat-as-public to local: success."); - -subsetTestByKey("from-treat-as-public", promise_test, t => xhrTest(t, { - source: { - server: Server.HTTPS_LOCAL, - treatAsPublic: true, - }, - target: { - server: Server.HTTPS_PRIVATE, - behavior: { response: ResponseBehavior.allowCrossOrigin() }, - }, - expected: XhrTestResult.FAILURE, -}), "treat-as-public to private: failed preflight."); - -subsetTestByKey("from-treat-as-public", promise_test, t => xhrTest(t, { - source: { - server: Server.HTTPS_LOCAL, - treatAsPublic: true, - }, - target: { - server: Server.HTTPS_PRIVATE, - behavior: { - preflight: PreflightBehavior.success(token()), - response: ResponseBehavior.allowCrossOrigin(), - }, - }, - expected: XhrTestResult.SUCCESS, -}), "treat-as-public to private: success."); - -subsetTestByKey("from-treat-as-public", promise_test, t => xhrTest(t, { - source: { - server: Server.HTTPS_LOCAL, - treatAsPublic: true, - }, - target: { - server: Server.HTTPS_PUBLIC, - behavior: { response: ResponseBehavior.allowCrossOrigin() }, - }, - expected: XhrTestResult.SUCCESS, -}), "treat-as-public to public: no preflight required."); diff --git a/tests/wpt/web-platform-tests/html/browsers/windows/opener-string.window.js b/tests/wpt/web-platform-tests/html/browsers/windows/opener-string.window.js new file mode 100644 index 00000000000..a39c584d20b --- /dev/null +++ b/tests/wpt/web-platform-tests/html/browsers/windows/opener-string.window.js @@ -0,0 +1,14 @@ +test(t => { + const popup = window.open(); + t.add_cleanup(() => popup.close()); + assert_equals(popup.opener, self, "The opener of the popup is me"); + assert_equals(Object.getOwnPropertyDescriptor(popup, "opener").writable, undefined); + + popup.opener = "blah"; + assert_equals(popup.opener, "blah", "The popup's opener is now a string"); + assert_equals(Object.getOwnPropertyDescriptor(popup, "opener").writable, true); + + const openerGetter = Object.getOwnPropertyDescriptor(self, "opener").get; + const popupOpener = openerGetter.call(popup); + assert_equals(popupOpener, self, "The underlying opener of the popup is still me"); +}, "Setting popup.opener to a string"); diff --git a/tests/wpt/web-platform-tests/html/semantics/popovers/popover-attribute-basic.html b/tests/wpt/web-platform-tests/html/semantics/popovers/popover-attribute-basic.html index 9b03c7bc1c6..bc32c357d3a 100644 --- a/tests/wpt/web-platform-tests/html/semantics/popovers/popover-attribute-basic.html +++ b/tests/wpt/web-platform-tests/html/semantics/popovers/popover-attribute-basic.html @@ -106,11 +106,11 @@ window.onload = () => { // be invisible. Otherwise, it should be visible. const expectVisible = !nonPopover.hasAttribute('popover'); assertPopoverVisibility(nonPopover, /*isPopover*/false, expectVisible, 'A non-popover should start out visible'); - assert_throws_dom("NotSupportedError",() => nonPopover.showPopover(),'Calling showPopover on a non-popover should throw NotSupportedError'); + assert_throws_dom("InvalidStateError",() => nonPopover.showPopover(),'Calling showPopover on a non-popover should throw InvalidStateError'); assertPopoverVisibility(nonPopover, /*isPopover*/false, expectVisible, 'Calling showPopover on a non-popover should leave it visible'); - assert_throws_dom("NotSupportedError",() => nonPopover.hidePopover(),'Calling hidePopover on a non-popover should throw NotSupportedError'); + assert_throws_dom("InvalidStateError",() => nonPopover.hidePopover(),'Calling hidePopover on a non-popover should throw InvalidStateError'); assertPopoverVisibility(nonPopover, /*isPopover*/false, expectVisible, 'Calling hidePopover on a non-popover should leave it visible'); - assert_throws_dom("NotSupportedError",() => nonPopover.togglePopover(),'Calling togglePopover on a non-popover should throw NotSupportedError'); + assert_throws_dom("InvalidStateError",() => nonPopover.togglePopover(),'Calling togglePopover on a non-popover should throw InvalidStateError'); assertPopoverVisibility(nonPopover, /*isPopover*/false, expectVisible, 'Calling togglePopover on a non-popover should leave it visible'); } diff --git a/tests/wpt/web-platform-tests/html/user-activation/META.yml b/tests/wpt/web-platform-tests/html/user-activation/META.yml new file mode 100644 index 00000000000..e50fcfc84ff --- /dev/null +++ b/tests/wpt/web-platform-tests/html/user-activation/META.yml @@ -0,0 +1,3 @@ +spec: https://html.spec.whatwg.org/multipage/interaction.html#tracking-user-activation +suggested_reviewers: + - marcoscaceres diff --git a/tests/wpt/web-platform-tests/scheduler/task-signal-any-abort.tentative.any.js b/tests/wpt/web-platform-tests/scheduler/task-signal-any-abort.tentative.any.js new file mode 100644 index 00000000000..4afcde901d1 --- /dev/null +++ b/tests/wpt/web-platform-tests/scheduler/task-signal-any-abort.tentative.any.js @@ -0,0 +1,6 @@ +// META: global=window,worker +// META: script=../dom/abort/resources/abort-signal-any-tests.js + +abortSignalAnySignalOnlyTests(TaskSignal); +abortSignalAnyTests(TaskSignal, AbortController); +abortSignalAnyTests(TaskSignal, TaskController); diff --git a/tests/wpt/web-platform-tests/scheduler/task-signal-any-post-task-run-order.tentative.any.js b/tests/wpt/web-platform-tests/scheduler/task-signal-any-post-task-run-order.tentative.any.js new file mode 100644 index 00000000000..889217b0810 --- /dev/null +++ b/tests/wpt/web-platform-tests/scheduler/task-signal-any-post-task-run-order.tentative.any.js @@ -0,0 +1,73 @@ +// META: title=Scheduler: Tasks Run in Priority Order +// META: global=window,worker + +promise_test(async t => { + const runOrder = []; + const schedule = (id, signal) => scheduler.postTask(() => { runOrder.push(id); }, {signal}); + + const tasks = []; + tasks.push(schedule('B1', TaskSignal.any([], {priority: 'background'}))); + tasks.push(schedule('B2', TaskSignal.any([], {priority: 'background'}))); + tasks.push(schedule('UV1', TaskSignal.any([], {priority: 'user-visible'}))); + tasks.push(schedule('UV2', TaskSignal.any([], {priority: 'user-visible'}))); + tasks.push(schedule('UB1', TaskSignal.any([], {priority: 'user-blocking'}))); + tasks.push(schedule('UB2', TaskSignal.any([], {priority: 'user-blocking'}))); + + await Promise.all(tasks); + + assert_equals(runOrder.toString(),'UB1,UB2,UV1,UV2,B1,B2'); +}, 'scheduler.postTask() tasks run in priority order with a fixed priority composite signal'); + +promise_test(async t => { + const runOrder = []; + const schedule = (id, priorityOrSignal) => { + if (priorityOrSignal instanceof TaskSignal) { + return scheduler.postTask(() => { runOrder.push(id); }, {signal: priorityOrSignal}); + } else { + return scheduler.postTask(() => { runOrder.push(id); }, {priority: priorityOrSignal}); + } + }; + + const controller = new TaskController({priority: 'user-blocking'}); + const signal = TaskSignal.any([], {priority: controller.signal}); + + const tasks = []; + tasks.push(schedule('B1', signal)); + tasks.push(schedule('B2', signal)); + tasks.push(schedule('UV1', 'user-visible')); + tasks.push(schedule('UV2', 'user-visible')); + tasks.push(schedule('UB1', 'user-blocking')); + tasks.push(schedule('UB2', 'user-blocking')); + + controller.setPriority('background'); + + await Promise.all(tasks); + + assert_equals(runOrder.toString(),'UB1,UB2,UV1,UV2,B1,B2'); +}, 'scheduler.postTask() tasks run in priority order with a dynamic priority composite signal'); + +promise_test(async t => { + const runOrder = []; + const schedule = (id, priorityOrSignal) => { + if (priorityOrSignal instanceof TaskSignal) { + return scheduler.postTask(() => { runOrder.push(id); }, {signal: priorityOrSignal}); + } else { + return scheduler.postTask(() => { runOrder.push(id); }, {priority: priorityOrSignal}); + } + }; + + const parentSignal = TaskSignal.any([], {priority: 'background'}); + const signal = TaskSignal.any([], {priority: parentSignal}); + + const tasks = []; + tasks.push(schedule('B1', signal)); + tasks.push(schedule('B2', signal)); + tasks.push(schedule('UV1', 'user-visible')); + tasks.push(schedule('UV2', 'user-visible')); + tasks.push(schedule('UB1', 'user-blocking')); + tasks.push(schedule('UB2', 'user-blocking')); + + await Promise.all(tasks); + + assert_equals(runOrder.toString(),'UB1,UB2,UV1,UV2,B1,B2'); +}, 'scheduler.postTask() tasks run in priority order with a composite signal whose source has fixed priority'); diff --git a/tests/wpt/web-platform-tests/scheduler/task-signal-any-priority.tentative.any.js b/tests/wpt/web-platform-tests/scheduler/task-signal-any-priority.tentative.any.js new file mode 100644 index 00000000000..99a7dd67b0d --- /dev/null +++ b/tests/wpt/web-platform-tests/scheduler/task-signal-any-priority.tentative.any.js @@ -0,0 +1,186 @@ +// META: global=window,worker + +test((t) => { + const signal = TaskSignal.any([]); + assert_true(signal instanceof TaskSignal); + assert_equals(signal.priority, 'user-visible'); +}, "TaskSignal.any() returns a user-visible TaskSignal when no priority is specified"); + +test((t) => { + let signal = TaskSignal.any([], {priority: 'user-blocking'}); + assert_equals(signal.priority, 'user-blocking'); + + signal = TaskSignal.any([], {priority: 'user-visible'}); + assert_equals(signal.priority, 'user-visible'); + + signal = TaskSignal.any([], {priority: 'background'}); + assert_equals(signal.priority, 'background'); +}, "TaskSignal.any() returns a signal with the correct priority when intialized with a string"); + +test((t) => { + let controller = new TaskController({priority: 'user-blocking'}); + let signal = TaskSignal.any([], {priority: controller.signal}); + assert_equals(signal.priority, 'user-blocking'); + + controller = new TaskController({priority: 'user-visible'}); + signal = TaskSignal.any([], {priority: controller.signal}); + assert_equals(signal.priority, 'user-visible'); + + controller = new TaskController({priority: 'background'}); + signal = TaskSignal.any([], {priority: controller.signal}); + assert_equals(signal.priority, 'background'); +}, "TaskSignal.any() returns a signal with the correct priority when intialized with a TaskSignal"); + +test((t) => { + let controller = new TaskController({priority: 'user-blocking'}); + let signal = TaskSignal.any([], {priority: controller.signal}); + assert_equals(signal.priority, 'user-blocking'); + + controller.setPriority('user-visible'); + assert_equals(signal.priority, 'user-visible'); + + controller.setPriority('background'); + assert_equals(signal.priority, 'background'); + + controller.setPriority('user-blocking'); + assert_equals(signal.priority, 'user-blocking'); +}, "TaskSignal.any() returns a signal with dynamic priority"); + +test((t) => { + const controller = new TaskController(); + const signal = TaskSignal.any([], {priority: controller.signal}); + + let eventFiredCount = 0; + signal.onprioritychange = t.step_func((e) => { + assert_equals(e.target, signal, + `The event target is the signal returned by TaskSignal.any()`); + ++eventFiredCount; + }); + + controller.setPriority('background'); + assert_equals(eventFiredCount, 1); + + controller.setPriority('user-visible'); + assert_equals(eventFiredCount, 2); + + controller.setPriority('user-blocking'); + assert_equals(eventFiredCount, 3); +}, "Priority change events fire for composite signals"); + + +test((t) => { + const controller = new TaskController(); + let signal = TaskSignal.any([], {priority: controller.signal}); + signal = TaskSignal.any([], {priority: signal}); + signal = TaskSignal.any([], {priority: signal}); + signal = TaskSignal.any([], {priority: signal}); + signal = TaskSignal.any([], {priority: signal}); + + assert_equals(signal.priority, 'user-visible'); + + let eventFiredCount = 0; + signal.onprioritychange = t.step_func((e) => { + assert_equals(e.target, signal, + "The event target is the signal returned by TaskSignal.any()"); + ++eventFiredCount; + }); + + controller.setPriority('background'); + assert_equals(eventFiredCount, 1); + assert_equals(signal.priority, 'background'); + + controller.setPriority('user-visible'); + assert_equals(eventFiredCount, 2); + assert_equals(signal.priority, 'user-visible'); + + controller.setPriority('user-blocking'); + assert_equals(eventFiredCount, 3); + assert_equals(signal.priority, 'user-blocking'); +}, "Priority change events fire for composite signals with intermediate sources"); + +test((t) => { + const controller = new TaskController(); + const signals = []; + const results = []; + + let id = 0; + for (let i = 0; i < 3; i++) { + const signal = TaskSignal.any([], {priority: controller.signal}); + const eventId = id++; + signal.addEventListener('prioritychange', () => { + results.push(eventId); + }); + signals.push(signal); + } + for (let i = 0; i < 3; i++) { + const signal = TaskSignal.any([], {priority: signals[i]}); + const eventId = id++; + signal.addEventListener('prioritychange', () => { + results.push(eventId); + }); + } + + controller.setPriority('background'); + assert_equals(results.toString(), '0,1,2,3,4,5') + + controller.setPriority('user-blocking'); + assert_equals(results.toString(), '0,1,2,3,4,5,0,1,2,3,4,5') +}, "Priority change propagates to multiple dependent signals in the right order"); + +test((t) => { + const controller = new TaskController(); + const signal = TaskSignal.any([], {priority: controller.signal}); + + let fired = false; + signal.onabort = t.step_func(() => { + assert_unreached("The signal should not abort"); + fired = true; + }); + + controller.abort(); + assert_false(fired); +}, "TaskSignal.any() does not propagate abort when not given dependent abort signals"); + +test((t) => { + const taskController = new TaskController(); + const abortController = new AbortController(); + const signal = TaskSignal.any([abortController.signal], {priority: taskController.signal}); + + let priorityFireCount = 0; + signal.onprioritychange = t.step_func(() => { + ++priorityFireCount; + }); + + let abortFired = false; + signal.onabort = t.step_func(() => { + abortFired = true; + }); + + taskController.setPriority('background'); + assert_equals(signal.priority, 'background'); + assert_equals(priorityFireCount, 1); + + taskController.abort(); + assert_false(abortFired, "The signal should use abortController for abort"); + + abortController.abort(); + assert_true(abortFired); + + taskController.setPriority('user-visible'); + assert_equals(signal.priority, 'user-visible'); + assert_equals(priorityFireCount, 2); +}, "TaskSignal.any() propagates abort and priority"); + + +test((t) => { + const controller = new TaskController(); + const signal = TaskSignal.any([AbortSignal.abort()], {priority: controller.signal}); + + let fired = false; + signal.onprioritychange = t.step_func(() => { + fired = true; + }); + + controller.setPriority('background'); + assert_true(fired); +}, "TaskSignal.any() propagates priority after returning an aborted signal"); diff --git a/tests/wpt/web-platform-tests/storage-access-api/requestStorageAccess.sub.https.window.js b/tests/wpt/web-platform-tests/storage-access-api/requestStorageAccess.sub.https.window.js index a74866e56bc..d673ed30699 100644 --- a/tests/wpt/web-platform-tests/storage-access-api/requestStorageAccess.sub.https.window.js +++ b/tests/wpt/web-platform-tests/storage-access-api/requestStorageAccess.sub.https.window.js @@ -7,7 +7,10 @@ // // testPrefix: Prefix each test case with an indicator so we know what context // they are run in if they are used in multiple iframes. -const {testPrefix} = processQueryParams(); +// +// topLevelDocument: Keep track of if we run these tests in a nested context, we +// don't want to recurse forever. +const {testPrefix, topLevelDocument} = processQueryParams(); if (window !== window.top) { // WPT synthesizes a top-level HTML test for this JS file, and in that case we @@ -26,10 +29,15 @@ promise_setup(async () => { { name: 'storage-access' }, 'prompt'); }); -promise_test(t => { - return promise_rejects_dom(t, "NotAllowedError", document.requestStorageAccess(), +promise_test(async t => { + if (topLevelDocument) { + await document.requestStorageAccess() + .catch(t.unreached_func("document.requestStorageAccess() call should resolve in top-level frame")); + } else { + return promise_rejects_dom(t, "NotAllowedError", document.requestStorageAccess(), "document.requestStorageAccess() call without user gesture"); -}, "[" + testPrefix + "] document.requestStorageAccess() should be rejected with a NotAllowedError by default with no user gesture"); + } +}, "[" + testPrefix + "] document.requestStorageAccess() should resolve in top-level frame or otherwise reject with a NotAllowedError with no user gesture"); promise_test( async () => { diff --git a/tests/wpt/web-platform-tests/top-level-storage-access-api/tentative/resources/permissions-iframe.https.html b/tests/wpt/web-platform-tests/top-level-storage-access-api/tentative/resources/permissions-iframe.https.html new file mode 100644 index 00000000000..c9907203322 --- /dev/null +++ b/tests/wpt/web-platform-tests/top-level-storage-access-api/tentative/resources/permissions-iframe.https.html @@ -0,0 +1,10 @@ +<!doctype html> +<meta charset=utf-8> + +<script src="/resources/testharness.js"></script> +<script src="/resources/testdriver.js"></script> +<script src="/resources/testdriver-vendor.js"></script> +<!-- no testharnessreport.js --> +<script src="/storage-access-api/helpers.js"></script> +<div id=log></div> +<script src="/top-level-storage-access-api/top-level-storage-access-permission.sub.https.window.js"></script> diff --git a/tests/wpt/web-platform-tests/top-level-storage-access-api/tentative/top-level-storage-access-permission.sub.https.window.js b/tests/wpt/web-platform-tests/top-level-storage-access-api/tentative/top-level-storage-access-permission.sub.https.window.js new file mode 100644 index 00000000000..466b6f3bbed --- /dev/null +++ b/tests/wpt/web-platform-tests/top-level-storage-access-api/tentative/top-level-storage-access-permission.sub.https.window.js @@ -0,0 +1,22 @@ +// META: script=/storage-access-api/helpers.js +// META: script=/resources/testdriver.js +// META: script=/resources/testdriver-vendor.js +'use strict'; + +(async function() { + promise_test(async t => { + return promise_rejects_js( + t, TypeError, + navigator.permissions.query({name: 'top-level-storage-access'}), + 'top-level-storage-access query without origin'); + }, 'Permission queries without an origin are rejected'); + + promise_test(async t => { + const permission = await navigator.permissions.query({ + name: 'top-level-storage-access', + requestedOrigin: 'https://test.com' + }); + assert_equals(permission.name, 'top-level-storage-access'); + assert_equals(permission.state, 'prompt'); + }, 'Permission default state can be queried'); +})(); diff --git a/tests/wpt/web-platform-tests/web-locks/partitioned-web-locks.tentative.https.html b/tests/wpt/web-platform-tests/web-locks/partitioned-web-locks.tentative.https.html index d2f22f19644..a426737f608 100644 --- a/tests/wpt/web-platform-tests/web-locks/partitioned-web-locks.tentative.https.html +++ b/tests/wpt/web-platform-tests/web-locks/partitioned-web-locks.tentative.https.html @@ -21,7 +21,7 @@ let next_lock_id = 1; async function third_party_test(t) { let target_url = HTTPS_ORIGIN + '/web-locks/resources/iframe.html'; target_url = new URL( - `./resources/partitioned-parent.html?target=${encodeURIComponent(target_url)}`, + `/web-locks/resources/partitioned-parent.html?target=${encodeURIComponent(target_url)}`, HTTPS_NOTSAMESITE_ORIGIN + self.location.pathname); navigator.locks.request('testLock', {mode: 'exclusive', ifAvailable: true}, @@ -71,11 +71,11 @@ async function nested_iframe_test(t) { let leaf_url = HTTPS_ORIGIN + '/web-locks/resources/iframe.html'; // Wrap the child iframe in its cross-origin parent (middle). let middle_url = new URL( - `./resources/iframe-parent.html?target=${encodeURIComponent(leaf_url)}`, + `/web-locks/resources/iframe-parent.html?target=${encodeURIComponent(leaf_url)}`, HTTPS_NOTSAMESITE_ORIGIN + self.location.pathname); // Embed the parent iframe in the top-level site (top). let top_url = new URL( - `./resources/partitioned-parent.html?target=${encodeURIComponent(middle_url)}`, + `/web-locks/resources/partitioned-parent.html?target=${encodeURIComponent(middle_url)}`, HTTPS_ORIGIN + self.location.pathname); // Request the weblock for the top-level site. diff --git a/tests/wpt/web-platform-tests/webcodecs/videoFrame-serialization.crossAgentCluster.https.html b/tests/wpt/web-platform-tests/webcodecs/videoFrame-serialization.crossAgentCluster.https.html index 1266869783d..cb02ad4bcc3 100644 --- a/tests/wpt/web-platform-tests/webcodecs/videoFrame-serialization.crossAgentCluster.https.html +++ b/tests/wpt/web-platform-tests/webcodecs/videoFrame-serialization.crossAgentCluster.https.html @@ -16,10 +16,29 @@ }; </script> <script id='sharedWorkerCode' type='javascript/worker'> + const data = new Uint8Array([ + 1, 2, 3, 4, 5, 6, 7, 8, + 9, 10, 11, 12, 13, 14, 15, 16, + ]); let received = new Map(); self.onconnect = function (event) { const port = event.ports[0]; port.onmessage = function (e) { + if (e.data == 'create-frame') { + let frameOrError = null; + try { + frameOrError = new VideoFrame(data, { + timestamp: 0, + codedWidth: 2, + codedHeight: 2, + format: 'RGBA', + }); + } catch (error) { + frameOrError = error + } + port.postMessage(frameOrError); + return; + } if (e.data.hasOwnProperty('id')) { port.postMessage( received.get(e.data.id) ? 'RECEIVED' : 'NOT_RECEIVED'); @@ -72,7 +91,7 @@ promise_test(async () => { }); const worker = new SharedWorker(window.URL.createObjectURL(blob)); let frame = createVideoFrame(40); - worker.port.postMessage({frame: frame, transfer: false}); + worker.port.postMessage(frame); worker.port.postMessage({'id': 40}); const received = await new Promise(resolve => worker.port.onmessage = e => { resolve(e.data); @@ -126,7 +145,7 @@ promise_test(async () => { }); const worker = new SharedWorker(window.URL.createObjectURL(blob)); let frame = createVideoFrame(90); - worker.port.postMessage({frame: frame, transfer: true}); + worker.port.postMessage(frame, [frame]); worker.port.postMessage({'id': 90}); const received = await new Promise(resolve => worker.port.onmessage = e => { resolve(e.data); @@ -147,6 +166,28 @@ promise_test(async () => { assert_equals(received, 'NOT_RECEIVED'); }, 'Verify frames cannot be transferred to serviceworker'); +promise_test(async () => { + const blob = new Blob([document.querySelector('#sharedWorkerCode').textContent], { + type: 'text/javascript', + }); + const worker = new SharedWorker(window.URL.createObjectURL(blob)); + worker.port.postMessage('create-frame'); + const received = await new Promise(resolve => worker.port.onmessage = e => { + resolve(e.data); + }); + assert_true(received instanceof ReferenceError); +}, 'Verify frames is unavailable in sharedworker'); + +promise_test(async () => { + navigator.serviceWorker.register('videoFrame-serialization.crossAgentCluster.serviceworker.js'); + let registration = await navigator.serviceWorker.ready; + registration.active.postMessage('create-frame'); + const received = await new Promise(resolve => navigator.serviceWorker.onmessage = (e) => { + resolve(e.data); + }); + assert_true(received instanceof ReferenceError); +}, 'Verify frames is unavailable in serviceworker'); + function appendIframe(src) { const frame = document.createElement('iframe'); document.body.appendChild(frame); diff --git a/tests/wpt/web-platform-tests/webcodecs/videoFrame-serialization.crossAgentCluster.serviceworker.js b/tests/wpt/web-platform-tests/webcodecs/videoFrame-serialization.crossAgentCluster.serviceworker.js index 218157c5e9a..9b963610bef 100644 --- a/tests/wpt/web-platform-tests/webcodecs/videoFrame-serialization.crossAgentCluster.serviceworker.js +++ b/tests/wpt/web-platform-tests/webcodecs/videoFrame-serialization.crossAgentCluster.serviceworker.js @@ -1,5 +1,24 @@ +const data = new Uint8Array([ + 1, 2, 3, 4, 5, 6, 7, 8, + 9, 10, 11, 12, 13, 14, 15, 16, +]); let received = new Map(); self.onmessage = (e) => { + if (e.data == 'create-frame') { + let frameOrError = null; + try { + frameOrError = new VideoFrame(data, { + timestamp: 0, + codedWidth: 2, + codedHeight: 2, + format: 'RGBA', + }); + } catch (error) { + frameOrError = error + } + e.source.postMessage(frameOrError); + return; + } if (e.data.hasOwnProperty('id')) { e.source.postMessage( received.get(e.data.id) ? 'RECEIVED' : 'NOT_RECEIVED'); diff --git a/tests/wpt/web-platform-tests/webxr/webxr_feature_policy.https.html.headers b/tests/wpt/web-platform-tests/webxr/webxr_feature_policy.https.html.headers deleted file mode 100644 index 2c758962332..00000000000 --- a/tests/wpt/web-platform-tests/webxr/webxr_feature_policy.https.html.headers +++ /dev/null @@ -1 +0,0 @@ -Feature-Policy: xr-spatial-tracking 'none' diff --git a/tests/wpt/web-platform-tests/webxr/webxr_feature_policy.https.html b/tests/wpt/web-platform-tests/webxr/webxr_permissions_policy.https.html index b493ec73cce..9146dd88f05 100644 --- a/tests/wpt/web-platform-tests/webxr/webxr_feature_policy.https.html +++ b/tests/wpt/web-platform-tests/webxr/webxr_permissions_policy.https.html @@ -13,7 +13,7 @@ xr_promise_test( return navigator.xr.isSessionSupported("inline").then((supported) => { t.step(() => { assert_true(supported, - "inline should always be supported, even without feature policy"); + "inline should always be supported, even without permissions policy"); }); // It shouldn't matter that there's no device connected, the SecurityError @@ -42,11 +42,11 @@ xr_promise_test( promise_rejects_dom(t, "NotSupportedError", navigator.xr.requestSession("inline", { requiredFeatures: ["local"] }), - "Inline with features should reject without feature policy"), + "Inline with features should reject without permissions policy"), promise_rejects_dom(t, "NotSupportedError", navigator.xr.requestSession("immersive-vr"), - "Immersive-vr should reject without feature policy") + "Immersive-vr should reject without permissions policy") ])); }); }); @@ -87,11 +87,11 @@ xr_promise_test( t.step(() => { assert_false(gl.getContextAttributes().xrCompatible, - "xrCompatibility shouldn't be set when requested without feature policy"); + "xrCompatibility shouldn't be set when requested without permissions policy"); }); return promise_rejects_dom(t, "SecurityError", gl.makeXRCompatible(), - "makeXRCompatible should reject without feature policy"); + "makeXRCompatible should reject without permissions policy"); }); </script> diff --git a/tests/wpt/web-platform-tests/webxr/webxr_permissions_policy.https.html.headers b/tests/wpt/web-platform-tests/webxr/webxr_permissions_policy.https.html.headers new file mode 100644 index 00000000000..56b8c11a5bd --- /dev/null +++ b/tests/wpt/web-platform-tests/webxr/webxr_permissions_policy.https.html.headers @@ -0,0 +1 @@ +Permissions-Policy: xr-spatial-tracking=() |