aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbors-servo <infra@servo.org>2023-02-16 04:58:38 +0100
committerGitHub <noreply@github.com>2023-02-16 04:58:38 +0100
commit658cb986b44d331fd784496770b3188e39ea7699 (patch)
tree528e25f950df958bf6556347723cf7ff8c094b29
parent9bcc55fc9a3ae5102d034caaad369851f787f271 (diff)
parent2a743bedbd8e8597583726daaf8ec2551742795f (diff)
downloadservo-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
-rw-r--r--tests/wpt/metadata/FileAPI/url/url-charset.window.js.ini4
-rw-r--r--tests/wpt/metadata/MANIFEST.json434
-rw-r--r--tests/wpt/metadata/css/CSS2/normal-flow/block-in-inline-hittest-001.html.ini3
-rw-r--r--tests/wpt/metadata/css/css-fonts/parsing/font-variation-settings-computed.html.ini5
-rw-r--r--tests/wpt/metadata/css/css-fonts/variations/at-font-face-font-matching.html.ini30
-rw-r--r--tests/wpt/metadata/css/css-transforms/transform-scale-hittest.html.ini3
-rw-r--r--tests/wpt/metadata/css/css-transitions/properties-value-001.html.ini209
-rw-r--r--tests/wpt/metadata/css/cssom-view/elementFromPoint-float-in-relative.html.ini3
-rw-r--r--tests/wpt/metadata/css/cssom-view/elementFromPoint-list-001.html.ini12
-rw-r--r--tests/wpt/metadata/css/cssom-view/elementFromPoint-subpixel.html.ini3
-rw-r--r--tests/wpt/metadata/css/cssom-view/elementFromPosition.html.ini3
-rw-r--r--tests/wpt/metadata/css/cssom-view/elementsFromPoint-invalid-cases.html.ini3
-rw-r--r--tests/wpt/metadata/fetch/metadata/generated/css-images.sub.tentative.html.ini3
-rw-r--r--tests/wpt/metadata/fetch/private-network-access/fetch-from-treat-as-public.https.window.js.ini6
-rw-r--r--tests/wpt/metadata/fetch/private-network-access/mixed-content-fetch.tentative.https.window.js.ini3
-rw-r--r--tests/wpt/metadata/fetch/private-network-access/worker-fetch.https.window.js.ini3
-rw-r--r--tests/wpt/metadata/fetch/private-network-access/worker.https.window.js.ini6
-rw-r--r--tests/wpt/metadata/fetch/private-network-access/xhr-from-treat-as-public.https.window.js.ini6
-rw-r--r--tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/failure-check-sequence.https.html.ini7
-rw-r--r--tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-src-aboutblank-navigate-immediately.html.ini5
-rw-r--r--tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/navigation-unload-same-origin-fragment.html.ini3
-rw-r--r--tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/navigation-unload-same-origin.window.js.ini3
-rw-r--r--tests/wpt/metadata/html/browsers/history/the-history-interface/traverse-during-unload.html.ini4
-rw-r--r--tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini3
-rw-r--r--tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_4.html.ini3
-rw-r--r--tests/wpt/metadata/html/browsers/the-window-object/open-close/creating_browsing_context_test_01.html.ini3
-rw-r--r--tests/wpt/metadata/html/browsers/windows/embedded-opener-remove-frame.html.ini2
-rw-r--r--tests/wpt/metadata/html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.disconnected.html.ini2
-rw-r--r--tests/wpt/metadata/html/canvas/element/manual/image-smoothing/imagesmoothing.html.ini3
-rw-r--r--tests/wpt/metadata/html/interaction/focus/the-autofocus-attribute/supported-elements.html.ini11
-rw-r--r--tests/wpt/metadata/html/interaction/focus/the-autofocus-attribute/update-the-rendering.html.ini3
-rw-r--r--tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini1
-rw-r--r--tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini3
-rw-r--r--tests/wpt/metadata/html/semantics/forms/form-submission-0/urlencoded2.window.js.ini3
-rw-r--r--tests/wpt/metadata/html/semantics/forms/historical.html.ini3
-rw-r--r--tests/wpt/metadata/html/semantics/forms/textfieldselection/select-event.html.ini12
-rw-r--r--tests/wpt/metadata/html/semantics/links/links-created-by-a-and-area-elements/htmlanchorelement_noopener.html.ini4
-rw-r--r--tests/wpt/metadata/html/semantics/scripting-1/the-script-element/module/import-meta/import-meta-url.html.ini1
-rw-r--r--tests/wpt/metadata/html/syntax/parsing/DOMContentLoaded-defer.html.ini3
-rw-r--r--tests/wpt/metadata/html/webappapis/dynamic-markup-insertion/document-write/module-tla-delayed.html.ini3
-rw-r--r--tests/wpt/metadata/html/webappapis/scripting/events/compile-event-handler-settings-objects.html.ini3
-rw-r--r--tests/wpt/metadata/html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-events.html.ini3
-rw-r--r--tests/wpt/metadata/resource-timing/content-type-parsing.html.ini4
-rw-r--r--tests/wpt/metadata/resource-timing/response-status-code.html.ini4
-rw-r--r--tests/wpt/metadata/webmessaging/with-ports/017.html.ini4
-rw-r--r--tests/wpt/metadata/webmessaging/with-ports/018.html.ini4
-rw-r--r--tests/wpt/metadata/webstorage/localstorage-about-blank-3P-iframe-opens-3P-window.partitioned.tentative.html.ini4
-rw-r--r--tests/wpt/metadata/webxr/webxr_permissions_policy.https.html.ini (renamed from tests/wpt/metadata/webxr/webxr_feature_policy.https.html.ini)3
-rw-r--r--tests/wpt/metadata/workers/constructors/Worker/Worker-constructor.html.ini2
-rw-r--r--tests/wpt/web-platform-tests/CODEOWNERS8
-rw-r--r--tests/wpt/web-platform-tests/client-hints/accept-ch-stickiness/cross-origin-iframe-redirect-with-fp-delegation.https.html.headers2
-rw-r--r--tests/wpt/web-platform-tests/client-hints/accept-ch-stickiness/cross-origin-subresource-redirect-with-fp-delegation.https.html.headers2
-rw-r--r--tests/wpt/web-platform-tests/client-hints/accept-ch-stickiness/resources/feature-policy-with-cross-origin-subresource.html.headers2
-rw-r--r--tests/wpt/web-platform-tests/client-hints/accept-ch/feature-policy-navigation/feature-policy.https.html.headers2
-rw-r--r--tests/wpt/web-platform-tests/client-hints/accept-ch/feature-policy.sub.https.html.headers2
-rw-r--r--tests/wpt/web-platform-tests/content-security-policy/inside-worker/support/connect-src-allow.sub.js11
-rw-r--r--tests/wpt/web-platform-tests/content-security-policy/inside-worker/support/connect-src-self-report-only.sub.js17
-rw-r--r--tests/wpt/web-platform-tests/content-security-policy/inside-worker/support/connect-src-self.sub.js24
-rw-r--r--tests/wpt/web-platform-tests/css/css-fonts/parsing/font-feature-settings-computed.html6
-rw-r--r--tests/wpt/web-platform-tests/css/css-fonts/parsing/font-variation-settings-computed.html6
-rw-r--r--tests/wpt/web-platform-tests/css/css-masking/clip-path/clip-path-svg-text-css.html24
-rw-r--r--tests/wpt/web-platform-tests/css/css-masking/clip-path/reference/clip-path-svg-text-css-ref.html16
-rw-r--r--tests/wpt/web-platform-tests/css/css-view-transitions/new-content-from-root-display-none-ref.html22
-rw-r--r--tests/wpt/web-platform-tests/css/css-view-transitions/new-content-from-root-display-none.html49
-rw-r--r--tests/wpt/web-platform-tests/css/css-view-transitions/root-element-display-none-crash.html23
-rw-r--r--tests/wpt/web-platform-tests/css/css-view-transitions/root-element-display-none-during-transition-crash.html30
-rw-r--r--tests/wpt/web-platform-tests/fetch/private-network-access/fetch-from-treat-as-public.https.window.js68
-rw-r--r--tests/wpt/web-platform-tests/fetch/private-network-access/fetch.https.window.js64
-rw-r--r--tests/wpt/web-platform-tests/fetch/private-network-access/iframe.tentative.https.window.js12
-rw-r--r--tests/wpt/web-platform-tests/fetch/private-network-access/mixed-content-fetch.tentative.https.window.js4
-rw-r--r--tests/wpt/web-platform-tests/fetch/private-network-access/shared-worker-fetch.https.window.js2
-rw-r--r--tests/wpt/web-platform-tests/fetch/private-network-access/shared-worker.https.window.js4
-rw-r--r--tests/wpt/web-platform-tests/fetch/private-network-access/worker-fetch.https.window.js2
-rw-r--r--tests/wpt/web-platform-tests/fetch/private-network-access/worker.https.window.js4
-rw-r--r--tests/wpt/web-platform-tests/fetch/private-network-access/xhr-from-treat-as-public.https.window.js74
-rw-r--r--tests/wpt/web-platform-tests/fetch/private-network-access/xhr.https.window.js71
-rw-r--r--tests/wpt/web-platform-tests/html/browsers/windows/opener-string.window.js14
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/popovers/popover-attribute-basic.html6
-rw-r--r--tests/wpt/web-platform-tests/html/user-activation/META.yml3
-rw-r--r--tests/wpt/web-platform-tests/scheduler/task-signal-any-abort.tentative.any.js6
-rw-r--r--tests/wpt/web-platform-tests/scheduler/task-signal-any-post-task-run-order.tentative.any.js73
-rw-r--r--tests/wpt/web-platform-tests/scheduler/task-signal-any-priority.tentative.any.js186
-rw-r--r--tests/wpt/web-platform-tests/storage-access-api/requestStorageAccess.sub.https.window.js16
-rw-r--r--tests/wpt/web-platform-tests/top-level-storage-access-api/tentative/resources/permissions-iframe.https.html10
-rw-r--r--tests/wpt/web-platform-tests/top-level-storage-access-api/tentative/top-level-storage-access-permission.sub.https.window.js22
-rw-r--r--tests/wpt/web-platform-tests/web-locks/partitioned-web-locks.tentative.https.html6
-rw-r--r--tests/wpt/web-platform-tests/webcodecs/videoFrame-serialization.crossAgentCluster.https.html45
-rw-r--r--tests/wpt/web-platform-tests/webcodecs/videoFrame-serialization.crossAgentCluster.serviceworker.js19
-rw-r--r--tests/wpt/web-platform-tests/webxr/webxr_feature_policy.https.html.headers1
-rw-r--r--tests/wpt/web-platform-tests/webxr/webxr_permissions_policy.https.html (renamed from tests/wpt/web-platform-tests/webxr/webxr_feature_policy.https.html)10
-rw-r--r--tests/wpt/web-platform-tests/webxr/webxr_permissions_policy.https.html.headers1
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=()