diff --git a/components/script/dom/xmlhttprequest.rs b/components/script/dom/xmlhttprequest.rs index 86131fa502f..22f0ba46a1a 100644 --- a/components/script/dom/xmlhttprequest.rs +++ b/components/script/dom/xmlhttprequest.rs @@ -739,7 +739,7 @@ impl XMLHttpRequestMethods for XMLHttpRequest { .collect(); let new_mime = format!( - "{}/{}; charset={}{}{}", + "{}/{};charset={}{}{}", mime.type_, mime.subtype, encoding, @@ -750,9 +750,11 @@ impl XMLHttpRequestMethods for XMLHttpRequest { .collect::>() .join("; ") ); - request - .headers - .typed_insert(ContentType::from_str(&new_mime).unwrap()) + + request.headers.insert( + header::CONTENT_TYPE, + HeaderValue::from_str(&new_mime).unwrap(), + ); } } } diff --git a/tests/wpt/meta/MANIFEST.json b/tests/wpt/meta/MANIFEST.json index 94665de8238..ab585890587 100644 --- a/tests/wpt/meta/MANIFEST.json +++ b/tests/wpt/meta/MANIFEST.json @@ -922538,7 +922538,7 @@ ] ], "setrequestheader-content-type.htm": [ - "07238391eb5cc8639edbe996208a18b6d9d26b04", + "c78482142469cf966c3f64287c81c78bcd4f3e63", [ null, { diff --git a/tests/wpt/meta/xhr/send-content-type-charset.htm.ini b/tests/wpt/meta/xhr/send-content-type-charset.htm.ini index b30fab0e927..3e3e615dc1c 100644 --- a/tests/wpt/meta/xhr/send-content-type-charset.htm.ini +++ b/tests/wpt/meta/xhr/send-content-type-charset.htm.ini @@ -2,17 +2,11 @@ [charset given but wrong, fix it (unknown MIME, bogus charset)] expected: FAIL - [charset given but wrong, fix it (known MIME, actual charset)] - expected: FAIL - [Multiple non-UTF-8 charset parameters deduplicate, bogus parameter dropped] expected: FAIL [charset with leading space that is UTF-8 does change] expected: FAIL - [charset in double quotes with space] - expected: FAIL - [unknown parameters need to be preserved] expected: FAIL diff --git a/tests/wpt/meta/xhr/setrequestheader-content-type.htm.ini b/tests/wpt/meta/xhr/setrequestheader-content-type.htm.ini deleted file mode 100644 index 35bb7bb2a51..00000000000 --- a/tests/wpt/meta/xhr/setrequestheader-content-type.htm.ini +++ /dev/null @@ -1,12 +0,0 @@ -[setrequestheader-content-type.htm] - [String request keeps setRequestHeader() Content-Type, with charset adjusted to UTF-8] - expected: FAIL - - [XML Document request keeps setRequestHeader() Content-Type, with charset adjusted to UTF-8] - expected: FAIL - - [HTML Document request keeps setRequestHeader() Content-Type, with charset adjusted to UTF-8] - expected: FAIL - - [URLSearchParams request keeps setRequestHeader() Content-Type, with charset adjusted to UTF-8] - expected: FAIL diff --git a/tests/wpt/tests/xhr/setrequestheader-content-type.htm b/tests/wpt/tests/xhr/setrequestheader-content-type.htm index 07238391eb5..c7848214246 100644 --- a/tests/wpt/tests/xhr/setrequestheader-content-type.htm +++ b/tests/wpt/tests/xhr/setrequestheader-content-type.htm @@ -206,15 +206,6 @@ "application/x-www-form-urlencoded;charset=UTF-8", 'URLSearchParams request has correct default Content-Type of "application/x-www-form-urlencoded;charset=UTF-8"' ) - request( - function _URLSearchParams() { return new URLSearchParams("q=testQ&topic=testTopic") }, - {"Content-Type": "application/xml;charset=ASCII"}, - "application/xml;charset=UTF-8", - "URLSearchParams request keeps setRequestHeader() Content-Type, with charset adjusted to UTF-8" - // the default Content-Type for URLSearchParams has a charset specified (utf-8) in - // https://fetch.spec.whatwg.org/#bodyinit, so the user's must be changed to match it - // as per https://xhr.spec.whatwg.org/#the-send%28%29-method step 4. - )