Title: [210825] trunk/Source/WebKit2
Revision
210825
Author
ander...@apple.com
Date
2017-01-17 12:57:53 -0800 (Tue, 17 Jan 2017)

Log Message

It's not possible to perform a POST request with HTTPBody content in a WKWebView
https://bugs.webkit.org/show_bug.cgi?id=167131
rdar://problem/20464240

Reviewed by Beth Dakin.

Encode/decode the form data if necessary.

* Shared/LoadParameters.cpp:
(WebKit::LoadParameters::encode):
(WebKit::LoadParameters::decode):

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (210824 => 210825)


--- trunk/Source/WebKit2/ChangeLog	2017-01-17 20:25:36 UTC (rev 210824)
+++ trunk/Source/WebKit2/ChangeLog	2017-01-17 20:57:53 UTC (rev 210825)
@@ -1,3 +1,17 @@
+2017-01-17  Anders Carlsson  <ander...@apple.com>
+
+        It's not possible to perform a POST request with HTTPBody content in a WKWebView
+        https://bugs.webkit.org/show_bug.cgi?id=167131
+        rdar://problem/20464240
+
+        Reviewed by Beth Dakin.
+
+        Encode/decode the form data if necessary.
+
+        * Shared/LoadParameters.cpp:
+        (WebKit::LoadParameters::encode):
+        (WebKit::LoadParameters::decode):
+
 2017-01-17  Joseph Pecoraro  <pecor...@apple.com>
 
         Crash when closing tab with debugger paused

Modified: trunk/Source/WebKit2/Shared/LoadParameters.cpp (210824 => 210825)


--- trunk/Source/WebKit2/Shared/LoadParameters.cpp	2017-01-17 20:25:36 UTC (rev 210824)
+++ trunk/Source/WebKit2/Shared/LoadParameters.cpp	2017-01-17 20:57:53 UTC (rev 210825)
@@ -34,6 +34,11 @@
 {
     encoder << navigationID;
     encoder << request;
+
+    encoder << static_cast<bool>(request.httpBody());
+    if (request.httpBody())
+        request.httpBody()->encode(encoder);
+
     encoder << sandboxExtensionHandle;
     encoder << data;
     encoder << string;
@@ -56,6 +61,17 @@
     if (!decoder.decode(data.request))
         return false;
 
+    bool hasHTTPBody;
+    if (!decoder.decode(hasHTTPBody))
+        return false;
+
+    if (hasHTTPBody) {
+        RefPtr<WebCore::FormData> formData = WebCore::FormData::decode(decoder);
+        if (!formData)
+            return false;
+        data.request.setHTTPBody(WTFMove(formData));
+    }
+
     if (!decoder.decode(data.sandboxExtensionHandle))
         return false;
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to