From 5474a8f9799e349342d05babababaf6abafde4a1 Mon Sep 17 00:00:00 2001 From: Andreu Botella Date: Thu, 23 Sep 2021 02:32:11 +0200 Subject: [PATCH 1/6] chore: update wpt --- test_util/wpt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test_util/wpt b/test_util/wpt index 8a2b0f1086adf1..68c75f6da95e3d 160000 --- a/test_util/wpt +++ b/test_util/wpt @@ -1 +1 @@ -Subproject commit 8a2b0f1086adf122d91c36c222b26362ba4059f2 +Subproject commit 68c75f6da95e3da84c83eb4930ba5a5c2341637a From b132d9ee0bad496e90b9a116e38f703f0f31cc00 Mon Sep 17 00:00:00 2001 From: Andreu Botella Date: Thu, 23 Sep 2021 02:37:45 +0200 Subject: [PATCH 2/6] Add failing tests --- tools/wpt/expectation.json | 72 ++++++++++++++++++++++++++++++++------ 1 file changed, 62 insertions(+), 10 deletions(-) diff --git a/tools/wpt/expectation.json b/tools/wpt/expectation.json index 10aa98abe6379b..bbb892d12a0b31 100644 --- a/tools/wpt/expectation.json +++ b/tools/wpt/expectation.json @@ -13222,7 +13222,11 @@ "ReadableStreamBYOBRequest interface: self.readableStreamByobRequest must inherit property \"respond(unsigned long long)\" with the proper type", "ReadableStreamBYOBRequest interface: calling respond(unsigned long long) on self.readableStreamByobRequest with too few arguments must throw TypeError", "ReadableStreamBYOBRequest interface: self.readableStreamByobRequest must inherit property \"respondWithNewView(ArrayBufferView)\" with the proper type", - "ReadableStreamBYOBRequest interface: calling respondWithNewView(ArrayBufferView) on self.readableStreamByobRequest with too few arguments must throw TypeError" + "ReadableStreamBYOBRequest interface: calling respondWithNewView(ArrayBufferView) on self.readableStreamByobRequest with too few arguments must throw TypeError", + "WritableStreamDefaultController interface: attribute abortReason", + "WritableStreamDefaultController interface: attribute signal", + "WritableStreamDefaultController interface: self.writableStreamDefaultController must inherit property \"abortReason\" with the proper type", + "WritableStreamDefaultController interface: self.writableStreamDefaultController must inherit property \"signal\" with the proper type" ], "piping": { "abort.any.html": true, @@ -13486,9 +13490,20 @@ }, "prototypes.any.html": false, "table": { - "constructor.any.html": true, - "get-set.any.html": true, - "grow.any.html": true, + "constructor.any.html": [ + "initialize externref table with default value", + "initialize anyfunc table with default value", + "initialize anyfunc table with a bad default value" + ], + "get-set.any.html": [ + "Arguments for anyfunc table set", + "Arguments for externref table set" + ], + "grow.any.html": [ + "Grow with exported-function argument", + "Grow with non-function argument", + "Grow with JS-function argument" + ], "length.any.html": true, "toString.any.html": true, "constructor-reftypes.tentative.any.html": [ @@ -13525,7 +13540,17 @@ "function": { "call.tentative.any.html": false, "constructor.tentative.any.html": [ - "construct with JS function" + "name", + "length", + "Too few arguments", + "Calling", + "construct with JS function", + "fail with missing results", + "fail with missing parameters", + "fail with non-string parameters & results", + "fail with non-existent parameter and result type", + "fail with non-function object", + "fail to construct with non-callable object" ], "table.tentative.any.html": false, "type.tentative.any.html": false @@ -14081,7 +14106,14 @@ "Blob paired surrogates (invalid utf-8)", "Blob empty", "Blob NUL", - "File basic" + "File basic", + "Serializing a non-serializable platform object fails", + "An object whose interface is deleted from the global must still deserialize", + "A subclass instance will deserialize as its closest serializable superclass", + "A detached ArrayBuffer cannot be transferred", + "A detached platform object cannot be transferred", + "Transferring a non-transferable platform object fails", + "A subclass instance will be received as its closest transferable superclass" ] } } @@ -14561,16 +14593,36 @@ }, "urlpattern": { "urlpattern.any.html": [ - "Pattern: [{\"pathname\":\"/foo/bar\"}] Inputs: [\"./foo/bar\",\"https://example.com\"]" + "Pattern: [{\"pathname\":\"/foo/bar\"}] Inputs: [\"./foo/bar\",\"https://example.com\"]", + "Pattern: [{\"hostname\":\"bad\\\\:hostname\"}] Inputs: undefined", + "Pattern: [{\"hostname\":\"bad|hostname\"}] Inputs: undefined", + "Pattern: [] Inputs: [\"https://example.com/\"]", + "Pattern: [] Inputs: [{}]", + "Pattern: [] Inputs: []" ], "urlpattern.any.worker.html": [ - "Pattern: [{\"pathname\":\"/foo/bar\"}] Inputs: [\"./foo/bar\",\"https://example.com\"]" + "Pattern: [{\"pathname\":\"/foo/bar\"}] Inputs: [\"./foo/bar\",\"https://example.com\"]", + "Pattern: [{\"hostname\":\"bad\\\\:hostname\"}] Inputs: undefined", + "Pattern: [{\"hostname\":\"bad|hostname\"}] Inputs: undefined", + "Pattern: [] Inputs: [\"https://example.com/\"]", + "Pattern: [] Inputs: [{}]", + "Pattern: [] Inputs: []" ], "urlpattern.https.any.html": [ - "Pattern: [{\"pathname\":\"/foo/bar\"}] Inputs: [\"./foo/bar\",\"https://example.com\"]" + "Pattern: [{\"pathname\":\"/foo/bar\"}] Inputs: [\"./foo/bar\",\"https://example.com\"]", + "Pattern: [{\"hostname\":\"bad\\\\:hostname\"}] Inputs: undefined", + "Pattern: [{\"hostname\":\"bad|hostname\"}] Inputs: undefined", + "Pattern: [] Inputs: [\"https://example.com/\"]", + "Pattern: [] Inputs: [{}]", + "Pattern: [] Inputs: []" ], "urlpattern.https.any.worker.html": [ - "Pattern: [{\"pathname\":\"/foo/bar\"}] Inputs: [\"./foo/bar\",\"https://example.com\"]" + "Pattern: [{\"pathname\":\"/foo/bar\"}] Inputs: [\"./foo/bar\",\"https://example.com\"]", + "Pattern: [{\"hostname\":\"bad\\\\:hostname\"}] Inputs: undefined", + "Pattern: [{\"hostname\":\"bad|hostname\"}] Inputs: undefined", + "Pattern: [] Inputs: [\"https://example.com/\"]", + "Pattern: [] Inputs: [{}]", + "Pattern: [] Inputs: []" ] } } \ No newline at end of file From 33179e3254ae8c4b4908f714067f4ebb2db142f0 Mon Sep 17 00:00:00 2001 From: Andreu Botella Date: Thu, 23 Sep 2021 02:58:06 +0200 Subject: [PATCH 3/6] Remove deleted or moved tests. - The reftype tentative tests in `wasm/jsapi/table` (`constructor-reftypes.tentative.any.html`, `grow-reftypes.tentative.any.html` and `set-reftypes.tentative.any.html`) were merged with the main tests `constructor.any.html`, `grow.any.html` and `get-set.any.html` in web-platform-tests/wpt#30805. - `WebCryptoAPI/encrypt_decrypt/rsa.https.any.html` doesn't seem to have ever existed as a test, so it's hard to explain why it was listed as one. - `WebCryptoAPI/generateKey/successes_RSA-OAEP.https.any.html` was listed both without a query string parameter, and with one for each variant. - `WebCryptoAPI/randomUUID.any.html` was renamed to `WebCryptoAPI/randomUUID.https.any.js` in web-platform-tests/wpt#28967. - The `WebIDL` directory was renamed to the lowercase `webidl` in web-platform-tests/wpt#30327. --- tools/wpt/expectation.json | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/tools/wpt/expectation.json b/tools/wpt/expectation.json index bbb892d12a0b31..25b504508310ef 100644 --- a/tools/wpt/expectation.json +++ b/tools/wpt/expectation.json @@ -11942,7 +11942,6 @@ "importKey step: decryption AES-GCM 256-bit key, illegal tag length 129-bits", "importKey step: decryption AES-GCM 256-bit key, illegal tag length 256-bits" ], - "rsa.https.any.html": true, "rsa_oaep.https.any.html": [ "importVectorKeys step: RSA-OAEP with SHA-1 and no label decryption", "importVectorKeys step: RSA-OAEP with SHA-256 and no label decryption", @@ -12122,7 +12121,6 @@ "Success: generateKey({name: Ecdsa, namedCurve: P-521}, false, [sign, verify, sign, sign, verify])", "Success: generateKey({name: Ecdsa, namedCurve: P-521}, true, [sign, verify, sign, sign, verify])" ], - "successes_RSA-OAEP.https.any.html": true, "successes_RSA-OAEP.https.any.html?1-10": true, "successes_RSA-OAEP.https.any.html?101-110": true, "successes_RSA-OAEP.https.any.html?11-20": true, @@ -13034,8 +13032,7 @@ }, "wrapKey_unwrapKey": { "wrapKey_unwrapKey.https.any.html": false - }, - "randomUUID.any.html": true + } }, "console": { "console-is-a-namespace.any.html": true, @@ -13506,14 +13503,7 @@ ], "length.any.html": true, "toString.any.html": true, - "constructor-reftypes.tentative.any.html": [ - "initialize externref table with default value", - "initialize anyfunc table with default value", - "initialize anyfunc table with a bad default value" - ], "constructor-types.tentative.any.html": false, - "grow-reftypes.tentative.any.html": false, - "set-reftypes.tentative.any.html": false, "type.tentative.any.html": false }, "exception": { @@ -13587,7 +13577,7 @@ }, "create_multiple_memory.worker.html": true }, - "WebIDL": { + "webidl": { "ecmascript-binding": { "es-exceptions": { "DOMException-constants.any.html": true, From fc477a1e91ad34f5e68632381497fa9e19422782 Mon Sep 17 00:00:00 2001 From: Andreu Botella Date: Fri, 24 Sep 2021 10:28:00 +0200 Subject: [PATCH 4/6] Enable a number of WPT tests that were not listed in the expectations. Some of these tests were added to the WPT repo at some point in the past without being reflected on our expectations file. This change also enables some of the fetch non-API tests and some of the HTML scripting tests which might be relevant to Deno. This commit does not enable the myriad of worker tests outside of the `workers` directory. That will be left to a follow-up PR. --- tools/wpt/expectation.json | 593 ++++++++++++++++++++++++++++++++++++- 1 file changed, 590 insertions(+), 3 deletions(-) diff --git a/tools/wpt/expectation.json b/tools/wpt/expectation.json index 25b504508310ef..e9555f09992822 100644 --- a/tools/wpt/expectation.json +++ b/tools/wpt/expectation.json @@ -13043,11 +13043,43 @@ }, "dom": { "abort": { + "AbortSignal.any.html": true, + "AbortSignal.any.worker.html": true, "event.any.html": true }, "events": { + "AddEventListenerOptions-once.any.html": [ + "Once listener should be added / removed like normal listeners" + ], + "AddEventListenerOptions-once.any.worker.html": [ + "Once listener should be added / removed like normal listeners" + ], + "AddEventListenerOptions-passive.any.html": [ + "Supports passive option on addEventListener only", + "preventDefault should be ignored if-and-only-if the passive option is true", + "returnValue should be ignored if-and-only-if the passive option is true", + "passive behavior of one listener should be unaffected by the presence of other listeners", + "Equivalence of option values" + ], + "AddEventListenerOptions-passive.any.worker.html": [ + "Supports passive option on addEventListener only", + "preventDefault should be ignored if-and-only-if the passive option is true", + "returnValue should be ignored if-and-only-if the passive option is true", + "passive behavior of one listener should be unaffected by the presence of other listeners", + "Equivalence of option values" + ], "AddEventListenerOptions-signal.any.html": true, "Event-isTrusted.any.html": true, + "EventTarget-add-remove-listener.any.html": true, + "EventTarget-add-remove-listener.any.worker.html": true, + "EventTarget-addEventListener.any.html": true, + "EventTarget-addEventListener.any.worker.html": true, + "EventTarget-removeEventListener.any.html": [ + "removing a null event listener should succeed" + ], + "EventTarget-removeEventListener.any.worker.html": [ + "removing a null event listener should succeed" + ], "EventTarget-constructible.any.html": true, "Event-constructors.any.html": [ "Untitled 2", @@ -13591,6 +13623,10 @@ "@@toStringTag exists on the prototype with the appropriate descriptor" ], "class-string-iterator-prototype-object.any.html": true, + "class-string-named-properties-object.window.html": [ + "@@toStringTag exists with the appropriate descriptor", + "Object.prototype.toString" + ], "global-immutable-prototype.any.html": [ "Setting to a different prototype" ], @@ -13613,6 +13649,190 @@ " and .searchParams should be undefined" ], "idlharness.any.html": true, + "toascii.window.html": [ + "aa-- (using .host)", + "aa-- (using .hostname)", + "aa-- (using .host)", + "aa-- (using .hostname)", + "a†-- (using .host)", + "a†-- (using .hostname)", + "a†-- (using .host)", + "a†-- (using .hostname)", + "ab--c (using .host)", + "ab--c (using .hostname)", + "ab--c (using .host)", + "ab--c (using .hostname)", + "-x (using .host)", + "-x (using .hostname)", + "-x (using .host)", + "-x (using .hostname)", + "-† (using .host)", + "-† (using .hostname)", + "-† (using .host)", + "-† (using .hostname)", + "-x.xn--nxa (using .host)", + "-x.xn--nxa (using .hostname)", + "-x.xn--nxa (using .host)", + "-x.xn--nxa (using .hostname)", + "-x.β (using .host)", + "-x.β (using .hostname)", + "-x.β (using .host)", + "-x.β (using .hostname)", + "x-.xn--nxa (using .host)", + "x-.xn--nxa (using .hostname)", + "x-.xn--nxa (using .host)", + "x-.xn--nxa (using .hostname)", + "x-.β (using .host)", + "x-.β (using .hostname)", + "x-.β (using .host)", + "x-.β (using .hostname)", + "x..xn--nxa (using .host)", + "x..xn--nxa (using .hostname)", + "x..xn--nxa (using .host)", + "x..xn--nxa (using .hostname)", + "x..β (using .host)", + "x..β (using .hostname)", + "x..β (using .host)", + "x..β (using .hostname)", + "xn--a (using )", + "xn--a (using .host)", + "xn--a (using .hostname)", + "xn--a (using )", + "xn--a (using .host)", + "xn--a (using .hostname)", + "xn--a.xn--nxa (using )", + "xn--a.xn--nxa (using .host)", + "xn--a.xn--nxa (using .hostname)", + "xn--a.xn--nxa (using )", + "xn--a.xn--nxa (using .host)", + "xn--a.xn--nxa (using .hostname)", + "xn--a.β (using )", + "xn--a.β (using .host)", + "xn--a.β (using .hostname)", + "xn--a.β (using )", + "xn--a.β (using .host)", + "xn--a.β (using .hostname)", + "xn--nxa.xn--nxa (using .host)", + "xn--nxa.xn--nxa (using .hostname)", + "xn--nxa.xn--nxa (using .host)", + "xn--nxa.xn--nxa (using .hostname)", + "xn--nxa.β (using .host)", + "xn--nxa.β (using .hostname)", + "xn--nxa.β (using .host)", + "xn--nxa.β (using .hostname)", + "ab--c.xn--nxa (using .host)", + "ab--c.xn--nxa (using .hostname)", + "ab--c.xn--nxa (using .host)", + "ab--c.xn--nxa (using .hostname)", + "ab--c.β (using .host)", + "ab--c.β (using .hostname)", + "ab--c.β (using .host)", + "ab--c.β (using .hostname)", + "‍.example (using URL)", + "‍.example (using URL.host)", + "‍.example (using URL.hostname)", + "‍.example (using )", + "‍.example (using .host)", + "‍.example (using .hostname)", + "‍.example (using )", + "‍.example (using .host)", + "‍.example (using .hostname)", + "xn--1ug.example (using URL)", + "xn--1ug.example (using URL.host)", + "xn--1ug.example (using URL.hostname)", + "xn--1ug.example (using )", + "xn--1ug.example (using .host)", + "xn--1ug.example (using .hostname)", + "xn--1ug.example (using )", + "xn--1ug.example (using .host)", + "xn--1ug.example (using .hostname)", + "يa (using )", + "يa (using .host)", + "يa (using .hostname)", + "يa (using )", + "يa (using .host)", + "يa (using .hostname)", + "xn--a-yoc (using )", + "xn--a-yoc (using .host)", + "xn--a-yoc (using .hostname)", + "xn--a-yoc (using )", + "xn--a-yoc (using .host)", + "xn--a-yoc (using .hostname)", + "ශ්‍රී (using .host)", + "ශ්‍රී (using .hostname)", + "ශ්‍රී (using .host)", + "ශ්‍රී (using .hostname)", + "نامه‌ای (using .host)", + "نامه‌ای (using .hostname)", + "نامه‌ای (using .host)", + "نامه‌ای (using .hostname)", + "�.com (using )", + "�.com (using .host)", + "�.com (using .hostname)", + "�.com (using )", + "�.com (using .host)", + "�.com (using .hostname)", + "xn--zn7c.com (using )", + "xn--zn7c.com (using .host)", + "xn--zn7c.com (using .hostname)", + "xn--zn7c.com (using )", + "xn--zn7c.com (using .host)", + "xn--zn7c.com (using .hostname)", + "x01234567890123456789012345678901234567890123456789012345678901x (using .host)", + "x01234567890123456789012345678901234567890123456789012345678901x (using .hostname)", + "x01234567890123456789012345678901234567890123456789012345678901x (using .host)", + "x01234567890123456789012345678901234567890123456789012345678901x (using .hostname)", + "x01234567890123456789012345678901234567890123456789012345678901† (using .host)", + "x01234567890123456789012345678901234567890123456789012345678901† (using .hostname)", + "x01234567890123456789012345678901234567890123456789012345678901† (using .host)", + "x01234567890123456789012345678901234567890123456789012345678901† (using .hostname)", + "x01234567890123456789012345678901234567890123456789012345678901x.xn--nxa (using .host)", + "x01234567890123456789012345678901234567890123456789012345678901x.xn--nxa (using .hostname)", + "x01234567890123456789012345678901234567890123456789012345678901x.xn--nxa (using .host)", + "x01234567890123456789012345678901234567890123456789012345678901x.xn--nxa (using .hostname)", + "x01234567890123456789012345678901234567890123456789012345678901x.β (using .host)", + "x01234567890123456789012345678901234567890123456789012345678901x.β (using .hostname)", + "x01234567890123456789012345678901234567890123456789012345678901x.β (using .host)", + "x01234567890123456789012345678901234567890123456789012345678901x.β (using .hostname)", + "01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.0123456789012345678901234567890123456789012345678.x (using .host)", + "01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.0123456789012345678901234567890123456789012345678.x (using .hostname)", + "01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.0123456789012345678901234567890123456789012345678.x (using .host)", + "01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.0123456789012345678901234567890123456789012345678.x (using .hostname)", + "01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.0123456789012345678901234567890123456789012345678.xn--nxa (using .host)", + "01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.0123456789012345678901234567890123456789012345678.xn--nxa (using .hostname)", + "01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.0123456789012345678901234567890123456789012345678.xn--nxa (using .host)", + "01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.0123456789012345678901234567890123456789012345678.xn--nxa (using .hostname)", + "01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.0123456789012345678901234567890123456789012345678.β (using .host)", + "01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.0123456789012345678901234567890123456789012345678.β (using .hostname)", + "01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.0123456789012345678901234567890123456789012345678.β (using .host)", + "01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.01234567890123456789012345678901234567890123456789.0123456789012345678901234567890123456789012345678.β (using .hostname)", + "a­b (using .host)", + "a­b (using .hostname)", + "a­b (using .host)", + "a­b (using .hostname)", + "a%C2%ADb (using .host)", + "a%C2%ADb (using .hostname)", + "a%C2%ADb (using .host)", + "a%C2%ADb (using .hostname)", + "­ (using )", + "­ (using .host)", + "­ (using .hostname)", + "­ (using )", + "­ (using .host)", + "­ (using .hostname)", + "%C2%AD (using )", + "%C2%AD (using .host)", + "%C2%AD (using .hostname)", + "%C2%AD (using )", + "%C2%AD (using .host)", + "%C2%AD (using .hostname)", + "xn-- (using )", + "xn-- (using .host)", + "xn-- (using .hostname)", + "xn-- (using )", + "xn-- (using .host)", + "xn-- (using .hostname)" + ], "url-constructor.any.html": [ "Parsing: against ", "Parsing: against ", @@ -13825,6 +14045,10 @@ ] }, "headers": { + "header-values-normalize.any.html": false, + "header-values-normalize.any.worker.html": false, + "header-values.any.html": false, + "header-values.any.worker.html": false, "headers-basic.any.html": true, "headers-casing.any.html": true, "headers-combine.any.html": true, @@ -13949,6 +14173,14 @@ "response-init-contenttype.any.html": true }, "body": { + "formdata.any.html": [ + "Consume empty response.formData() as FormData", + "Consume empty request.formData() as FormData" + ], + "formdata.any.worker.html": [ + "Consume empty response.formData() as FormData", + "Consume empty request.formData() as FormData" + ], "mime-type.any.html": true }, "redirect": { @@ -13956,6 +14188,18 @@ "redirect-empty-location.any.html": [ "redirect response with empty Location, manual mode" ], + "redirect-location-escape.tentative.any.html": [ + "Redirect to unescaped UTF-8", + "Redirect to escaped and unescaped UTF-8", + "Escaping produces double-percent", + "Redirect to invalid UTF-8" + ], + "redirect-location-escape.tentative.any.worker.html": [ + "Redirect to unescaped UTF-8", + "Redirect to escaped and unescaped UTF-8", + "Escaping produces double-percent", + "Redirect to invalid UTF-8" + ], "redirect-location.any.html": [ "Redirect 301 in \"manual\" mode without location", "Redirect 301 in \"manual\" mode with invalid location", @@ -13975,7 +14219,21 @@ ], "redirect-method.any.html": true, "redirect-schemes.any.html": true, - "redirect-to-dataurl.any.html": true + "redirect-to-dataurl.any.html": true, + "redirect-upload.h2.any.html": [ + "Fetch upload streaming should be accepted on 303", + "Fetch upload streaming should fail on 301", + "Fetch upload streaming should fail on 302", + "Fetch upload streaming should fail on 307", + "Fetch upload streaming should fail on 308" + ], + "redirect-upload.h2.any.worker.html": [ + "Fetch upload streaming should be accepted on 303", + "Fetch upload streaming should fail on 301", + "Fetch upload streaming should fail on 302", + "Fetch upload streaming should fail on 307", + "Fetch upload streaming should fail on 308" + ] }, "idlharness.any.html": [ "Request interface: attribute destination", @@ -14018,11 +14276,142 @@ ] } }, + "content-encoding": { + "bad-gzip-body.any.html": [ + "Consuming the body of a resource with bad gzip content with arrayBuffer() should reject", + "Consuming the body of a resource with bad gzip content with blob() should reject", + "Consuming the body of a resource with bad gzip content with formData() should reject", + "Consuming the body of a resource with bad gzip content with json() should reject", + "Consuming the body of a resource with bad gzip content with text() should reject" + ], + "bad-gzip-body.any.worker.html": [ + "Consuming the body of a resource with bad gzip content with arrayBuffer() should reject", + "Consuming the body of a resource with bad gzip content with blob() should reject", + "Consuming the body of a resource with bad gzip content with formData() should reject", + "Consuming the body of a resource with bad gzip content with json() should reject", + "Consuming the body of a resource with bad gzip content with text() should reject" + ] + }, + "content-length": { + "api-and-duplicate-headers.any.html": [ + "XMLHttpRequest and duplicate Content-Length/Content-Type headers", + "fetch() and duplicate Content-Length/Content-Type headers" + ], + "api-and-duplicate-headers.any.worker.html": [ + "XMLHttpRequest and duplicate Content-Length/Content-Type headers", + "fetch() and duplicate Content-Length/Content-Type headers" + ], + "parsing.window.html": [ + "Input: \"Content-Length: aaaah\\r\\nContent-Length: aaaah\". Expected: 42.", + "Input: \"Content-Length: aaaah, aaaah\". Expected: 42.", + "Input: \"Content-Length: aaaah\". Expected: 42.", + "Input: \"Content-Length: 42s\". Expected: 42.", + "Input: \"Content-Length: 30s\". Expected: 42.", + "Input: \"Content-Length: -1\". Expected: 42.", + "Input: \"Content-Length: 0x20\". Expected: 42.", + "Input: \"Content-Length: 030\\r\\nContent-Length: 30\". Expected: network error.", + "Input: \"Content-Length: 030, 30\". Expected: network error.", + "Input: \"Content-Length: \\\"30\\\"\". Expected: 42.", + "Input: \"Content-Length: \". Expected: 42." + ], + "too-long.window.html": [ + "Content-Length header value of network response exceeds response body" + ] + }, + "content-type": { + "response.window.html": [ + "