Diff
Modified: trunk/LayoutTests/ChangeLog (279379 => 279380)
--- trunk/LayoutTests/ChangeLog 2021-06-29 18:55:06 UTC (rev 279379)
+++ trunk/LayoutTests/ChangeLog 2021-06-29 19:07:43 UTC (rev 279380)
@@ -1,3 +1,15 @@
+2021-06-29 Alex Christensen <[email protected]>
+
+ xhr.send(URLSearchParams) should align default Content-Type header field with Chrome and Firefox
+ https://bugs.webkit.org/show_bug.cgi?id=227477
+
+ Reviewed by Chris Dumez.
+
+ * platform/ios-wk2/TestExpectations:
+ * platform/ios/imported/w3c/web-platform-tests/xhr/setrequestheader-content-type-expected.txt: Removed.
+ * platform/mac-wk1/imported/w3c/web-platform-tests/xhr/setrequestheader-content-type-expected.txt: Added.
+ * platform/mac/TestExpectations:
+
2021-06-24 Jer Noble <[email protected]>
Loading WebM hangs if server sends only small amount of data
Modified: trunk/LayoutTests/imported/w3c/ChangeLog (279379 => 279380)
--- trunk/LayoutTests/imported/w3c/ChangeLog 2021-06-29 18:55:06 UTC (rev 279379)
+++ trunk/LayoutTests/imported/w3c/ChangeLog 2021-06-29 19:07:43 UTC (rev 279380)
@@ -1,3 +1,12 @@
+2021-06-29 Alex Christensen <[email protected]>
+
+ xhr.send(URLSearchParams) should align default Content-Type header field with Chrome and Firefox
+ https://bugs.webkit.org/show_bug.cgi?id=227477
+
+ Reviewed by Chris Dumez.
+
+ * web-platform-tests/xhr/setrequestheader-content-type-expected.txt:
+
2021-06-29 Martin Robinson <[email protected]>
CSS scroll snap should allow scrolling to the middle of snap areas that overflow the snapport
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/xhr/setrequestheader-content-type-expected.txt (279379 => 279380)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/xhr/setrequestheader-content-type-expected.txt 2021-06-29 18:55:06 UTC (rev 279379)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/xhr/setrequestheader-content-type-expected.txt 2021-06-29 19:07:43 UTC (rev 279380)
@@ -12,24 +12,21 @@
PASS HTML Document request has correct default Content-Type of "text/html;charset=UTF-8"
PASS HTML Document request keeps setRequestHeader() Content-Type, with charset adjusted to UTF-8
PASS Blob request respects setRequestHeader("") to be specified
-FAIL Blob request with unset type sends no Content-Type without setRequestHeader() call assert_equals: expected "" but got "Content-Type: \n"
+PASS Blob request with unset type sends no Content-Type without setRequestHeader() call
PASS Blob request with unset type keeps setRequestHeader() Content-Type and charset
PASS Blob request with set type respects setRequestHeader("") to be specified
PASS Blob request with set type uses that it for Content-Type unless setRequestHeader()
PASS Blob request with set type keeps setRequestHeader() Content-Type and charset
PASS ArrayBuffer request respects setRequestHeader("")
-FAIL ArrayBuffer request sends no Content-Type without setRequestHeader() call assert_equals: expected "" but got "Content-Type: application/x-www-form-urlencoded\n"
+PASS ArrayBuffer request sends no Content-Type without setRequestHeader() call
PASS ArrayBuffer request keeps setRequestHeader() Content-Type and charset
PASS ArrayBufferView request respects setRequestHeader("")
-FAIL ArrayBufferView request sends no Content-Type without setRequestHeader() call assert_equals: expected "" but got "Content-Type: application/x-www-form-urlencoded\n"
+PASS ArrayBufferView request sends no Content-Type without setRequestHeader() call
PASS ArrayBufferView request keeps setRequestHeader() Content-Type and charset
PASS FormData request respects setRequestHeader("")
PASS FormData request has correct default Content-Type of "multipart/form-data; boundary=_"
PASS FormData request keeps setRequestHeader() Content-Type and charset
PASS URLSearchParams respects setRequestHeader("")
-FAIL URLSearchParams request has correct default Content-Type of "application/x-www-form-urlencoded;charset=UTF-8" assert_equals: expected "Content-Type: application/x-www-form-urlencoded;charset=UTF-8\n" but got "Content-Type: text/plain;charset=UTF-8\n"
+PASS URLSearchParams request has correct default Content-Type of "application/x-www-form-urlencoded;charset=UTF-8"
PASS URLSearchParams request keeps setRequestHeader() Content-Type, with charset adjusted to UTF-8
-PASS ReadableStream request respects setRequestHeader("")
-FAIL ReadableStream request with under type sends no Content-Type without setRequestHeader() call assert_equals: expected "" but got "Content-Type: text/plain;charset=UTF-8\n"
-FAIL ReadableStream request keeps setRequestHeader() Content-Type and charset assert_equals: expected "Content-Type: application/xml;charset=ASCII\n" but got "Content-Type: application/xml;charset=UTF-8\n"
Deleted: trunk/LayoutTests/platform/ios/imported/w3c/web-platform-tests/xhr/setrequestheader-content-type-expected.txt (279379 => 279380)
--- trunk/LayoutTests/platform/ios/imported/w3c/web-platform-tests/xhr/setrequestheader-content-type-expected.txt 2021-06-29 18:55:06 UTC (rev 279379)
+++ trunk/LayoutTests/platform/ios/imported/w3c/web-platform-tests/xhr/setrequestheader-content-type-expected.txt 2021-06-29 19:07:43 UTC (rev 279380)
@@ -1,37 +0,0 @@
-CONSOLE MESSAGE: ArrayBuffer is deprecated in XMLHttpRequest.send(). Use ArrayBufferView instead.
-CONSOLE MESSAGE: ArrayBuffer is deprecated in XMLHttpRequest.send(). Use ArrayBufferView instead.
-CONSOLE MESSAGE: ArrayBuffer is deprecated in XMLHttpRequest.send(). Use ArrayBufferView instead.
-
-PASS setRequestHeader("") sends a blank string
-PASS setRequestHeader(" ") sends the string " "
-PASS setRequestHeader(null) sends the string "null"
-PASS setRequestHeader(undefined) sends the string "undefined"
-PASS String request has correct default Content-Type of "text/plain;charset=UTF-8"
-PASS String request keeps setRequestHeader() Content-Type, with charset adjusted to UTF-8
-PASS XML Document request respects setRequestHeader("")
-PASS XML Document request has correct default Content-Type of "application/xml;charset=UTF-8"
-PASS XML Document request keeps setRequestHeader() Content-Type, with charset adjusted to UTF-8
-PASS HTML Document request respects setRequestHeader("")
-PASS HTML Document request has correct default Content-Type of "text/html;charset=UTF-8"
-PASS HTML Document request keeps setRequestHeader() Content-Type, with charset adjusted to UTF-8
-PASS Blob request respects setRequestHeader("") to be specified
-FAIL Blob request with unset type sends no Content-Type without setRequestHeader() call assert_equals: expected "" but got "content-type: "
-PASS Blob request with unset type keeps setRequestHeader() Content-Type and charset
-PASS Blob request with set type uses that it for Content-Type unless setRequestHeader()
-PASS Blob request with set type keeps setRequestHeader() Content-Type and charset
-PASS ArrayBuffer request respects setRequestHeader("")
-FAIL ArrayBuffer request sends no Content-Type without setRequestHeader() call assert_equals: expected "" but got "content-type: application/x-www-form-urlencoded"
-PASS ArrayBuffer request keeps setRequestHeader() Content-Type and charset
-PASS ArrayBufferView request respects setRequestHeader("")
-FAIL ArrayBufferView request sends no Content-Type without setRequestHeader() call assert_equals: expected "" but got "content-type: application/x-www-form-urlencoded"
-PASS ArrayBufferView request keeps setRequestHeader() Content-Type and charset
-PASS FormData request respects setRequestHeader("")
-PASS FormData request has correct default Content-Type of "multipart/form-data;boundary=_"
-PASS FormData request keeps setRequestHeader() Content-Type and charset
-PASS URLSearchParams respects setRequestHeader("")
-FAIL URLSearchParams request has correct default Content-Type of "application/x-www-form-urlencoded;charset=UTF-8" assert_equals: expected "content-type: application/x-www-form-urlencoded;charset=utf-8" but got "content-type: text/plain;charset=utf-8"
-PASS URLSearchParams request keeps setRequestHeader() Content-Type, with charset adjusted to UTF-8
-PASS ReadableStream request respects setRequestHeader("")
-FAIL ReadableStream request with under type sends no Content-Type without setRequestHeader() call assert_equals: expected "" but got "content-type: text/plain;charset=utf-8"
-FAIL ReadableStream request keeps setRequestHeader() Content-Type and charset assert_equals: expected "content-type: application/xml;charset=ascii" but got "content-type: application/xml;charset=utf-8"
-
Modified: trunk/LayoutTests/platform/ios-wk2/TestExpectations (279379 => 279380)
--- trunk/LayoutTests/platform/ios-wk2/TestExpectations 2021-06-29 18:55:06 UTC (rev 279379)
+++ trunk/LayoutTests/platform/ios-wk2/TestExpectations 2021-06-29 19:07:43 UTC (rev 279380)
@@ -1217,9 +1217,6 @@
webkit.org/b/175939 [ Debug ] editing/execCommand/forward-delete-read-write-canvas.html [ Skip ]
-# <rdar://problem/32826391>
-imported/w3c/web-platform-tests/xhr/setrequestheader-content-type.htm [ Failure ]
-
webkit.org/b/173608 webrtc/video-replace-muted-track.html [ Skip ]
webkit.org/b/187388 animations/needs-layout.html [ Pass ImageOnlyFailure ]
Modified: trunk/LayoutTests/platform/mac/TestExpectations (279379 => 279380)
--- trunk/LayoutTests/platform/mac/TestExpectations 2021-06-29 18:55:06 UTC (rev 279379)
+++ trunk/LayoutTests/platform/mac/TestExpectations 2021-06-29 19:07:43 UTC (rev 279380)
@@ -1316,9 +1316,6 @@
fast/dom/HTMLMeterElement/meter-appearances-capacity.html [ Failure ]
fast/dom/HTMLMeterElement/meter-appearances-rating-relevancy.html [ Failure ]
-# <rdar://problem/32826391> LayoutTest imported/w3c/web-platform-tests/xhr/setrequestheader-content-type.htm is failing on High Sierra
-imported/w3c/web-platform-tests/xhr/setrequestheader-content-type.htm [ Failure ]
-
# <rdar://problem/32864306> Unskip after bots have CTFontCopyPhysicalFont()
fast/text/system-font-japanese-synthetic-italic.html [ Pass ImageOnlyFailure ]
Copied: trunk/LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/xhr/setrequestheader-content-type-expected.txt (from rev 279379, trunk/LayoutTests/platform/ios/imported/w3c/web-platform-tests/xhr/setrequestheader-content-type-expected.txt) (0 => 279380)
--- trunk/LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/xhr/setrequestheader-content-type-expected.txt (rev 0)
+++ trunk/LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/xhr/setrequestheader-content-type-expected.txt 2021-06-29 19:07:43 UTC (rev 279380)
@@ -0,0 +1,32 @@
+
+PASS setRequestHeader("") sends a blank string
+PASS setRequestHeader(" ") sends the string " "
+PASS setRequestHeader(null) sends the string "null"
+PASS setRequestHeader(undefined) sends the string "undefined"
+PASS String request has correct default Content-Type of "text/plain;charset=UTF-8"
+PASS String request keeps setRequestHeader() Content-Type, with charset adjusted to UTF-8
+PASS XML Document request respects setRequestHeader("")
+PASS XML Document request has correct default Content-Type of "application/xml;charset=UTF-8"
+PASS XML Document request keeps setRequestHeader() Content-Type, with charset adjusted to UTF-8
+PASS HTML Document request respects setRequestHeader("")
+PASS HTML Document request has correct default Content-Type of "text/html;charset=UTF-8"
+PASS HTML Document request keeps setRequestHeader() Content-Type, with charset adjusted to UTF-8
+PASS Blob request respects setRequestHeader("") to be specified
+FAIL Blob request with unset type sends no Content-Type without setRequestHeader() call assert_equals: expected "" but got "Content-Type: application/x-www-form-urlencoded\n"
+PASS Blob request with unset type keeps setRequestHeader() Content-Type and charset
+PASS Blob request with set type respects setRequestHeader("") to be specified
+PASS Blob request with set type uses that it for Content-Type unless setRequestHeader()
+PASS Blob request with set type keeps setRequestHeader() Content-Type and charset
+PASS ArrayBuffer request respects setRequestHeader("")
+FAIL ArrayBuffer request sends no Content-Type without setRequestHeader() call assert_equals: expected "" but got "Content-Type: application/x-www-form-urlencoded\n"
+PASS ArrayBuffer request keeps setRequestHeader() Content-Type and charset
+PASS ArrayBufferView request respects setRequestHeader("")
+FAIL ArrayBufferView request sends no Content-Type without setRequestHeader() call assert_equals: expected "" but got "Content-Type: application/x-www-form-urlencoded\n"
+PASS ArrayBufferView request keeps setRequestHeader() Content-Type and charset
+PASS FormData request respects setRequestHeader("")
+PASS FormData request has correct default Content-Type of "multipart/form-data; boundary=_"
+PASS FormData request keeps setRequestHeader() Content-Type and charset
+PASS URLSearchParams respects setRequestHeader("")
+PASS URLSearchParams request has correct default Content-Type of "application/x-www-form-urlencoded;charset=UTF-8"
+PASS URLSearchParams request keeps setRequestHeader() Content-Type, with charset adjusted to UTF-8
+
Modified: trunk/Source/WebCore/ChangeLog (279379 => 279380)
--- trunk/Source/WebCore/ChangeLog 2021-06-29 18:55:06 UTC (rev 279379)
+++ trunk/Source/WebCore/ChangeLog 2021-06-29 19:07:43 UTC (rev 279380)
@@ -1,3 +1,15 @@
+2021-06-29 Alex Christensen <[email protected]>
+
+ xhr.send(URLSearchParams) should align default Content-Type header field with Chrome and Firefox
+ https://bugs.webkit.org/show_bug.cgi?id=227477
+
+ Reviewed by Chris Dumez.
+
+ * xml/XMLHttpRequest.cpp:
+ (WebCore::XMLHttpRequest::send):
+ * xml/XMLHttpRequest.h:
+ * xml/XMLHttpRequest.idl:
+
2021-06-29 Michael Catanzaro <[email protected]>
Fix more -Wreturn-type warnings
Modified: trunk/Source/WebCore/xml/XMLHttpRequest.cpp (279379 => 279380)
--- trunk/Source/WebCore/xml/XMLHttpRequest.cpp 2021-06-29 18:55:06 UTC (rev 279379)
+++ trunk/Source/WebCore/xml/XMLHttpRequest.cpp 2021-06-29 19:07:43 UTC (rev 279380)
@@ -52,6 +52,7 @@
#include "StringAdaptors.h"
#include "TextResourceDecoder.h"
#include "ThreadableLoader.h"
+#include "URLSearchParams.h"
#include "XMLDocument.h"
#include "XMLHttpRequestProgressEvent.h"
#include "XMLHttpRequestUpload.h"
@@ -453,6 +454,7 @@
[this] (const RefPtr<JSC::ArrayBufferView>& arrayBufferView) -> ExceptionOr<void> { return send(*arrayBufferView); },
[this] (const RefPtr<JSC::ArrayBuffer>& arrayBuffer) -> ExceptionOr<void> { return send(*arrayBuffer); },
[this] (const RefPtr<DOMFormData>& formData) -> ExceptionOr<void> { return send(*formData); },
+ [this] (const RefPtr<URLSearchParams>& searchParams) -> ExceptionOr<void> { return send(*searchParams); },
[this] (const String& string) -> ExceptionOr<void> { return send(string); }
);
}
@@ -536,6 +538,13 @@
return createRequest();
}
+ExceptionOr<void> XMLHttpRequest::send(const URLSearchParams& params)
+{
+ if (!m_requestHeaders.contains(HTTPHeaderName::ContentType))
+ m_requestHeaders.set(HTTPHeaderName::ContentType, "application/x-www-form-urlencoded;charset=UTF-8"_s);
+ return send(params.toString());
+}
+
ExceptionOr<void> XMLHttpRequest::send(DOMFormData& body)
{
if (auto result = prepareToSend())
Modified: trunk/Source/WebCore/xml/XMLHttpRequest.h (279379 => 279380)
--- trunk/Source/WebCore/xml/XMLHttpRequest.h 2021-06-29 18:55:06 UTC (rev 279379)
+++ trunk/Source/WebCore/xml/XMLHttpRequest.h 2021-06-29 19:07:43 UTC (rev 279380)
@@ -47,6 +47,7 @@
class SharedBuffer;
class TextResourceDecoder;
class ThreadableLoader;
+class URLSearchParams;
class XMLHttpRequestUpload;
struct OwnedString;
@@ -70,7 +71,7 @@
EventTargetInterface eventTargetInterface() const override { return XMLHttpRequestEventTargetInterfaceType; }
ScriptExecutionContext* scriptExecutionContext() const override { return ActiveDOMObject::scriptExecutionContext(); }
- using SendTypes = Variant<RefPtr<Document>, RefPtr<Blob>, RefPtr<JSC::ArrayBufferView>, RefPtr<JSC::ArrayBuffer>, RefPtr<DOMFormData>, String>;
+ using SendTypes = Variant<RefPtr<Document>, RefPtr<Blob>, RefPtr<JSC::ArrayBufferView>, RefPtr<JSC::ArrayBuffer>, RefPtr<DOMFormData>, String, RefPtr<URLSearchParams>>;
const URL& url() const { return m_url; }
String statusText() const;
@@ -166,6 +167,7 @@
void notifyIsDone(bool) final;
std::optional<ExceptionOr<void>> prepareToSend();
+ ExceptionOr<void> send(const URLSearchParams&);
ExceptionOr<void> send(Document&);
ExceptionOr<void> send(const String& = { });
ExceptionOr<void> send(Blob&);
Modified: trunk/Source/WebCore/xml/XMLHttpRequest.idl (279379 => 279380)
--- trunk/Source/WebCore/xml/XMLHttpRequest.idl 2021-06-29 18:55:06 UTC (rev 279379)
+++ trunk/Source/WebCore/xml/XMLHttpRequest.idl 2021-06-29 19:07:43 UTC (rev 279380)
@@ -26,8 +26,8 @@
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-// FIXME: Add URLSearchParams and ReadableStream to the union when supported.
-typedef (Blob or BufferSource or DOMFormData or USVString) BodyInit;
+// FIXME: Add ReadableStream to the union when supported.
+typedef (Blob or BufferSource or DOMFormData or USVString or URLSearchParams) BodyInit;
enum XMLHttpRequestResponseType {
"",