diff --git a/test_util/wpt b/test_util/wpt
index 2c57e66a4b..96f98c458c 160000
--- a/test_util/wpt
+++ b/test_util/wpt
@@ -1 +1 @@
-Subproject commit 2c57e66a4b63afafc2fbba8a81284e4dc5ffe854
+Subproject commit 96f98c458cd36e1f12b6807b22a3a9ee1e1b0326
diff --git a/tools/wpt/expectation.json b/tools/wpt/expectation.json
index 56e95fb822..b2a2ec86d0 100644
--- a/tools/wpt/expectation.json
+++ b/tools/wpt/expectation.json
@@ -1017,8 +1017,16 @@
},
"dom": {
"abort": {
- "AbortSignal.any.html": true,
- "AbortSignal.any.worker.html": true,
+ "AbortSignal.any.html": [
+ "AbortSignal.timeout() returns a non-aborted signal",
+ "Signal returned by AbortSignal.timeout() times out",
+ "AbortSignal timeouts fire in order"
+ ],
+ "AbortSignal.any.worker.html": [
+ "AbortSignal.timeout() returns a non-aborted signal",
+ "Signal returned by AbortSignal.timeout() times out",
+ "AbortSignal timeouts fire in order"
+ ],
"event.any.html": true,
"event.any.worker.html": true
},
@@ -1904,6 +1912,66 @@
"xn-- (using .hostname)"
],
"url-constructor.any.html": [
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
"Parsing: against ",
"Parsing: against ",
"Parsing: against ",
@@ -1989,6 +2057,66 @@
"Parsing: against "
],
"url-constructor.any.worker.html": [
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
+ "Parsing: against ",
"Parsing: against ",
"Parsing: against ",
"Parsing: against ",
@@ -2086,6 +2214,12 @@
"Setting protocol with U+001F before inserted colon (https:)",
"Setting port with leading U+001F (https:)",
"Setting pathname with trailing U+001F (https:)",
+ "Setting host with leading U+001F (https:)",
+ "Setting hostname with leading U+001F (https:)",
+ "Setting host with middle U+001F (https:)",
+ "Setting hostname with middle U+001F (https:)",
+ "Setting host with trailing U+001F (https:)",
+ "Setting hostname with trailing U+001F (https:)",
"Setting protocol with leading U+0000 (wpt++:)",
"Setting protocol with U+0000 before inserted colon (wpt++:)",
"Setting port with leading U+0000 (wpt++:)",
@@ -2104,6 +2238,12 @@
"Setting protocol with U+001F before inserted colon (https:)",
"Setting port with leading U+001F (https:)",
"Setting pathname with trailing U+001F (https:)",
+ "Setting host with leading U+001F (https:)",
+ "Setting hostname with leading U+001F (https:)",
+ "Setting host with middle U+001F (https:)",
+ "Setting hostname with middle U+001F (https:)",
+ "Setting host with trailing U+001F (https:)",
+ "Setting hostname with trailing U+001F (https:)",
"Setting protocol with leading U+0000 (wpt++:)",
"Setting protocol with U+0000 before inserted colon (wpt++:)",
"Setting port with leading U+0000 (wpt++:)",
@@ -2575,6 +2715,8 @@
"Fetch with POST with ReadableStream containing Blob",
"Fetch with POST with text body on 421 response should be retried once on new connection."
],
+ "response-null-body.any.html": true,
+ "response-null-body.any.worker.html": true,
"response-url.sub.any.html": true,
"response-url.sub.any.worker.html": true,
"scheme-about.any.html": true,
@@ -2862,6 +3004,14 @@
"response.json() rejects if already aborted",
"response.text() rejects if already aborted",
"Call text() twice on aborted response"
+ ],
+ "request.any.html": [
+ "Calling formData() on an aborted request",
+ "Aborting a request after calling formData()"
+ ],
+ "request.any.worker.html": [
+ "Calling formData() on an aborted request",
+ "Aborting a request after calling formData()"
]
}
},
@@ -3987,7 +4137,16 @@
"Component: hash Left: {\"hash\":\"a\"} Right: {\"hash\":\"b\"}"
],
"urlpattern.any.html": [
+ "Pattern: [{\"pathname\":\"/foo/:bar?\"}] Inputs: [{\"pathname\":\"/foo\"}]",
+ "Pattern: [{\"pathname\":\"/foo/:bar*\"}] Inputs: [{\"pathname\":\"/foo\"}]",
+ "Pattern: [{\"pathname\":\"/foo/(.*)?\"}] Inputs: [{\"pathname\":\"/foo\"}]",
+ "Pattern: [{\"pathname\":\"/foo/*?\"}] Inputs: [{\"pathname\":\"/foo\"}]",
+ "Pattern: [{\"pathname\":\"/foo/(.*)*\"}] Inputs: [{\"pathname\":\"/foo\"}]",
+ "Pattern: [{\"pathname\":\"/foo/**\"}] Inputs: [{\"pathname\":\"/foo\"}]",
"Pattern: [{\"pathname\":\"/foo/bar\"}] Inputs: [\"./foo/bar\",\"https://example.com\"]",
+ "Pattern: [\"https://(sub.)?example.com/foo\"] Inputs: [\"https://example.com/foo\"]",
+ "Pattern: [\"https://(sub(?:.))?example.com/foo\"] Inputs: [\"https://example.com/foo\"]",
+ "Pattern: [\"data\\\\:text/javascript,let x = 100/:tens?5;\"] Inputs: [\"data:text/javascript,let x = 100/5;\"]",
"Pattern: [{\"hostname\":\"bad\\\\:hostname\"}] Inputs: undefined",
"Pattern: [{\"hostname\":\"bad|hostname\"}] Inputs: undefined",
"Pattern: [] Inputs: [\"https://example.com/\"]",
@@ -3995,13 +4154,27 @@
"Pattern: [] Inputs: []",
"Pattern: [{\"pathname\":\"{:foo}{(.*)bar}\"}] Inputs: [{\"pathname\":\"foobarbaz\"}]",
"Pattern: [{\"pathname\":\"{:foo}{bar(.*)}\"}] Inputs: [{\"pathname\":\"foobarbaz\"}]",
+ "Pattern: [{\"pathname\":\"*{}**?\"}] Inputs: [{\"pathname\":\"foobar\"}]",
"Pattern: [{\"pathname\":\"*/*\"}] Inputs: [{\"pathname\":\"foo/bar\"}]",
"Pattern: [{\"pathname\":\"*\\\\/*\"}] Inputs: [{\"pathname\":\"foo/bar\"}]",
"Pattern: [{\"pathname\":\"*/{*}\"}] Inputs: [{\"pathname\":\"foo/bar\"}]",
- "Pattern: [{\"pathname\":\"*//*\"}] Inputs: [{\"pathname\":\"foo/bar\"}]"
+ "Pattern: [{\"pathname\":\"*//*\"}] Inputs: [{\"pathname\":\"foo/bar\"}]",
+ "Pattern: [{\"pathname\":\"./foo\"}] Inputs: [{\"pathname\":\"./foo\"}]",
+ "Pattern: [{\"pathname\":\"../foo\"}] Inputs: [{\"pathname\":\"../foo\"}]",
+ "Pattern: [{\"pathname\":\":foo./\"}] Inputs: [{\"pathname\":\"bar./\"}]",
+ "Pattern: [{\"pathname\":\":foo../\"}] Inputs: [{\"pathname\":\"bar../\"}]"
],
"urlpattern.any.worker.html": [
+ "Pattern: [{\"pathname\":\"/foo/:bar?\"}] Inputs: [{\"pathname\":\"/foo\"}]",
+ "Pattern: [{\"pathname\":\"/foo/:bar*\"}] Inputs: [{\"pathname\":\"/foo\"}]",
+ "Pattern: [{\"pathname\":\"/foo/(.*)?\"}] Inputs: [{\"pathname\":\"/foo\"}]",
+ "Pattern: [{\"pathname\":\"/foo/*?\"}] Inputs: [{\"pathname\":\"/foo\"}]",
+ "Pattern: [{\"pathname\":\"/foo/(.*)*\"}] Inputs: [{\"pathname\":\"/foo\"}]",
+ "Pattern: [{\"pathname\":\"/foo/**\"}] Inputs: [{\"pathname\":\"/foo\"}]",
"Pattern: [{\"pathname\":\"/foo/bar\"}] Inputs: [\"./foo/bar\",\"https://example.com\"]",
+ "Pattern: [\"https://(sub.)?example.com/foo\"] Inputs: [\"https://example.com/foo\"]",
+ "Pattern: [\"https://(sub(?:.))?example.com/foo\"] Inputs: [\"https://example.com/foo\"]",
+ "Pattern: [\"data\\\\:text/javascript,let x = 100/:tens?5;\"] Inputs: [\"data:text/javascript,let x = 100/5;\"]",
"Pattern: [{\"hostname\":\"bad\\\\:hostname\"}] Inputs: undefined",
"Pattern: [{\"hostname\":\"bad|hostname\"}] Inputs: undefined",
"Pattern: [] Inputs: [\"https://example.com/\"]",
@@ -4009,13 +4182,27 @@
"Pattern: [] Inputs: []",
"Pattern: [{\"pathname\":\"{:foo}{(.*)bar}\"}] Inputs: [{\"pathname\":\"foobarbaz\"}]",
"Pattern: [{\"pathname\":\"{:foo}{bar(.*)}\"}] Inputs: [{\"pathname\":\"foobarbaz\"}]",
+ "Pattern: [{\"pathname\":\"*{}**?\"}] Inputs: [{\"pathname\":\"foobar\"}]",
"Pattern: [{\"pathname\":\"*/*\"}] Inputs: [{\"pathname\":\"foo/bar\"}]",
"Pattern: [{\"pathname\":\"*\\\\/*\"}] Inputs: [{\"pathname\":\"foo/bar\"}]",
"Pattern: [{\"pathname\":\"*/{*}\"}] Inputs: [{\"pathname\":\"foo/bar\"}]",
- "Pattern: [{\"pathname\":\"*//*\"}] Inputs: [{\"pathname\":\"foo/bar\"}]"
+ "Pattern: [{\"pathname\":\"*//*\"}] Inputs: [{\"pathname\":\"foo/bar\"}]",
+ "Pattern: [{\"pathname\":\"./foo\"}] Inputs: [{\"pathname\":\"./foo\"}]",
+ "Pattern: [{\"pathname\":\"../foo\"}] Inputs: [{\"pathname\":\"../foo\"}]",
+ "Pattern: [{\"pathname\":\":foo./\"}] Inputs: [{\"pathname\":\"bar./\"}]",
+ "Pattern: [{\"pathname\":\":foo../\"}] Inputs: [{\"pathname\":\"bar../\"}]"
],
"urlpattern.https.any.html": [
+ "Pattern: [{\"pathname\":\"/foo/:bar?\"}] Inputs: [{\"pathname\":\"/foo\"}]",
+ "Pattern: [{\"pathname\":\"/foo/:bar*\"}] Inputs: [{\"pathname\":\"/foo\"}]",
+ "Pattern: [{\"pathname\":\"/foo/(.*)?\"}] Inputs: [{\"pathname\":\"/foo\"}]",
+ "Pattern: [{\"pathname\":\"/foo/*?\"}] Inputs: [{\"pathname\":\"/foo\"}]",
+ "Pattern: [{\"pathname\":\"/foo/(.*)*\"}] Inputs: [{\"pathname\":\"/foo\"}]",
+ "Pattern: [{\"pathname\":\"/foo/**\"}] Inputs: [{\"pathname\":\"/foo\"}]",
"Pattern: [{\"pathname\":\"/foo/bar\"}] Inputs: [\"./foo/bar\",\"https://example.com\"]",
+ "Pattern: [\"https://(sub.)?example.com/foo\"] Inputs: [\"https://example.com/foo\"]",
+ "Pattern: [\"https://(sub(?:.))?example.com/foo\"] Inputs: [\"https://example.com/foo\"]",
+ "Pattern: [\"data\\\\:text/javascript,let x = 100/:tens?5;\"] Inputs: [\"data:text/javascript,let x = 100/5;\"]",
"Pattern: [{\"hostname\":\"bad\\\\:hostname\"}] Inputs: undefined",
"Pattern: [{\"hostname\":\"bad|hostname\"}] Inputs: undefined",
"Pattern: [] Inputs: [\"https://example.com/\"]",
@@ -4023,13 +4210,27 @@
"Pattern: [] Inputs: []",
"Pattern: [{\"pathname\":\"{:foo}{(.*)bar}\"}] Inputs: [{\"pathname\":\"foobarbaz\"}]",
"Pattern: [{\"pathname\":\"{:foo}{bar(.*)}\"}] Inputs: [{\"pathname\":\"foobarbaz\"}]",
+ "Pattern: [{\"pathname\":\"*{}**?\"}] Inputs: [{\"pathname\":\"foobar\"}]",
"Pattern: [{\"pathname\":\"*/*\"}] Inputs: [{\"pathname\":\"foo/bar\"}]",
"Pattern: [{\"pathname\":\"*\\\\/*\"}] Inputs: [{\"pathname\":\"foo/bar\"}]",
"Pattern: [{\"pathname\":\"*/{*}\"}] Inputs: [{\"pathname\":\"foo/bar\"}]",
- "Pattern: [{\"pathname\":\"*//*\"}] Inputs: [{\"pathname\":\"foo/bar\"}]"
+ "Pattern: [{\"pathname\":\"*//*\"}] Inputs: [{\"pathname\":\"foo/bar\"}]",
+ "Pattern: [{\"pathname\":\"./foo\"}] Inputs: [{\"pathname\":\"./foo\"}]",
+ "Pattern: [{\"pathname\":\"../foo\"}] Inputs: [{\"pathname\":\"../foo\"}]",
+ "Pattern: [{\"pathname\":\":foo./\"}] Inputs: [{\"pathname\":\"bar./\"}]",
+ "Pattern: [{\"pathname\":\":foo../\"}] Inputs: [{\"pathname\":\"bar../\"}]"
],
"urlpattern.https.any.worker.html": [
+ "Pattern: [{\"pathname\":\"/foo/:bar?\"}] Inputs: [{\"pathname\":\"/foo\"}]",
+ "Pattern: [{\"pathname\":\"/foo/:bar*\"}] Inputs: [{\"pathname\":\"/foo\"}]",
+ "Pattern: [{\"pathname\":\"/foo/(.*)?\"}] Inputs: [{\"pathname\":\"/foo\"}]",
+ "Pattern: [{\"pathname\":\"/foo/*?\"}] Inputs: [{\"pathname\":\"/foo\"}]",
+ "Pattern: [{\"pathname\":\"/foo/(.*)*\"}] Inputs: [{\"pathname\":\"/foo\"}]",
+ "Pattern: [{\"pathname\":\"/foo/**\"}] Inputs: [{\"pathname\":\"/foo\"}]",
"Pattern: [{\"pathname\":\"/foo/bar\"}] Inputs: [\"./foo/bar\",\"https://example.com\"]",
+ "Pattern: [\"https://(sub.)?example.com/foo\"] Inputs: [\"https://example.com/foo\"]",
+ "Pattern: [\"https://(sub(?:.))?example.com/foo\"] Inputs: [\"https://example.com/foo\"]",
+ "Pattern: [\"data\\\\:text/javascript,let x = 100/:tens?5;\"] Inputs: [\"data:text/javascript,let x = 100/5;\"]",
"Pattern: [{\"hostname\":\"bad\\\\:hostname\"}] Inputs: undefined",
"Pattern: [{\"hostname\":\"bad|hostname\"}] Inputs: undefined",
"Pattern: [] Inputs: [\"https://example.com/\"]",
@@ -4037,10 +4238,15 @@
"Pattern: [] Inputs: []",
"Pattern: [{\"pathname\":\"{:foo}{(.*)bar}\"}] Inputs: [{\"pathname\":\"foobarbaz\"}]",
"Pattern: [{\"pathname\":\"{:foo}{bar(.*)}\"}] Inputs: [{\"pathname\":\"foobarbaz\"}]",
+ "Pattern: [{\"pathname\":\"*{}**?\"}] Inputs: [{\"pathname\":\"foobar\"}]",
"Pattern: [{\"pathname\":\"*/*\"}] Inputs: [{\"pathname\":\"foo/bar\"}]",
"Pattern: [{\"pathname\":\"*\\\\/*\"}] Inputs: [{\"pathname\":\"foo/bar\"}]",
"Pattern: [{\"pathname\":\"*/{*}\"}] Inputs: [{\"pathname\":\"foo/bar\"}]",
- "Pattern: [{\"pathname\":\"*//*\"}] Inputs: [{\"pathname\":\"foo/bar\"}]"
+ "Pattern: [{\"pathname\":\"*//*\"}] Inputs: [{\"pathname\":\"foo/bar\"}]",
+ "Pattern: [{\"pathname\":\"./foo\"}] Inputs: [{\"pathname\":\"./foo\"}]",
+ "Pattern: [{\"pathname\":\"../foo\"}] Inputs: [{\"pathname\":\"../foo\"}]",
+ "Pattern: [{\"pathname\":\":foo./\"}] Inputs: [{\"pathname\":\"bar./\"}]",
+ "Pattern: [{\"pathname\":\":foo../\"}] Inputs: [{\"pathname\":\"bar../\"}]"
]
},
"compression": {