[Curl] HTTP Body is missing with redirection.
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 28 Feb 2019 18:44:49 +0000 (18:44 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 28 Feb 2019 18:44:49 +0000 (18:44 +0000)
https://bugs.webkit.org/show_bug.cgi?id=191651

Patch by Takashi Komori <Takashi.Komori@sony.com> on 2019-02-28
Reviewed by Don Olmstead.

Source/WebCore:

Implement updateFromDelegatePreservingOldProperties for curl port.

Tests: http/tests/navigation/post-301-response.html
       http/tests/navigation/post-302-response.html
       http/tests/navigation/post-303-response.html
       http/tests/navigation/post-307-response.html
       http/tests/navigation/post-308-response.html

* platform/Curl.cmake:
* platform/network/curl/ResourceRequest.h:
(WebCore::ResourceRequest::updateFromDelegatePreservingOldProperties): Deleted.
* platform/network/curl/ResourceRequestCurl.cpp: Added.
(WebCore::ResourceRequest::updateFromDelegatePreservingOldProperties):

LayoutTests:

* platform/wincairo/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@242207 268f45cc-cd09-0410-ab3c-d52691b4dbfc

LayoutTests/ChangeLog
LayoutTests/platform/wincairo/TestExpectations
Source/WebCore/ChangeLog
Source/WebCore/platform/Curl.cmake
Source/WebCore/platform/network/curl/ResourceRequest.h
Source/WebCore/platform/network/curl/ResourceRequestCurl.cpp [new file with mode: 0644]

index 7c7eed3..3cb42e2 100644 (file)
@@ -1,3 +1,12 @@
+2019-02-28  Takashi Komori  <Takashi.Komori@sony.com>
+
+        [Curl] HTTP Body is missing with redirection.
+        https://bugs.webkit.org/show_bug.cgi?id=191651
+
+        Reviewed by Don Olmstead.
+
+        * platform/wincairo/TestExpectations:
+
 2019-02-28  Daniel Bates  <dabates@apple.com>
 
         Fix timing out tests following r241747
index 3b2fca8..41ae2b9 100644 (file)
@@ -923,6 +923,12 @@ http/tests/misc/willCacheResponse-delegate-callback.html [ Failure ]
 [ Debug ] http/tests/multipart [ Skip ]
 
 http/tests/navigation [ Skip ]
+http/tests/navigation/post-301-response.html [ Pass ]
+http/tests/navigation/post-302-response.html [ Pass ]
+http/tests/navigation/post-303-response.html [ Pass ]
+http/tests/navigation/post-307-response.html [ Pass ]
+http/tests/navigation/post-308-response.html [ Pass ]
+
 http/tests/notifications [ Skip ]
 http/tests/paymentrequest [ Skip ]
 http/tests/plugins [ Skip ]
index 8379417..1ae6cc9 100644 (file)
@@ -1,3 +1,24 @@
+2019-02-28  Takashi Komori  <Takashi.Komori@sony.com>
+
+        [Curl] HTTP Body is missing with redirection.
+        https://bugs.webkit.org/show_bug.cgi?id=191651
+
+        Reviewed by Don Olmstead.
+
+        Implement updateFromDelegatePreservingOldProperties for curl port.
+
+        Tests: http/tests/navigation/post-301-response.html
+               http/tests/navigation/post-302-response.html
+               http/tests/navigation/post-303-response.html
+               http/tests/navigation/post-307-response.html
+               http/tests/navigation/post-308-response.html
+
+        * platform/Curl.cmake:
+        * platform/network/curl/ResourceRequest.h:
+        (WebCore::ResourceRequest::updateFromDelegatePreservingOldProperties): Deleted.
+        * platform/network/curl/ResourceRequestCurl.cpp: Added.
+        (WebCore::ResourceRequest::updateFromDelegatePreservingOldProperties):
+
 2019-02-28  Carlos Garcia Campos  <cgarcia@igalia.com>
 
         [CoordinatedGraphics] Remove COORDINATED_GRAPHICS_THREADED option
index f564e02..e48a46c 100644 (file)
@@ -29,6 +29,7 @@ list(APPEND WebCore_SOURCES
     platform/network/curl/PublicSuffixCurl.cpp
     platform/network/curl/ResourceErrorCurl.cpp
     platform/network/curl/ResourceHandleCurl.cpp
+    platform/network/curl/ResourceRequestCurl.cpp
     platform/network/curl/ResourceResponseCurl.cpp
     platform/network/curl/SocketStreamHandleImplCurl.cpp
     platform/network/curl/SynchronousLoaderClientCurl.cpp
index 1885fd3..e59bef5 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * Copyright (C) 2003, 2006 Apple Inc.  All rights reserved.
  * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
- * Copyright (C) 2018 Sony Interactive Entertainment Inc.
+ * Copyright (C) 2019 Sony Interactive Entertainment Inc.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -61,7 +61,7 @@ public:
     {
     }
 
-    void updateFromDelegatePreservingOldProperties(const ResourceRequest& delegateProvidedRequest) { *this = delegateProvidedRequest; }
+    WEBCORE_EXPORT void updateFromDelegatePreservingOldProperties(const ResourceRequest&);
 
     // Needed for compatibility.
     CFURLRequestRef cfURLRequest(HTTPBodyUpdatePolicy) const { return 0; }
diff --git a/Source/WebCore/platform/network/curl/ResourceRequestCurl.cpp b/Source/WebCore/platform/network/curl/ResourceRequestCurl.cpp
new file mode 100644 (file)
index 0000000..3adfccb
--- /dev/null
@@ -0,0 +1,57 @@
+/*
+ * Copyright (C) 2006, 2007, 2008 Apple Inc.  All rights reserved.
+ * Copyright (C) 2019 Sony Interactive Entertainment Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
+ */
+
+#include "config.h"
+#include "ResourceRequest.h"
+
+#if USE(CURL)
+
+namespace WebCore {
+
+void ResourceRequest::updateFromDelegatePreservingOldProperties(const ResourceRequest& delegateProvidedRequest)
+{
+    // These are things we don't want willSendRequest delegate to mutate or reset.
+    ResourceLoadPriority oldPriority = priority();
+    RefPtr<FormData> oldHTTPBody = httpBody();
+    bool isHiddenFromInspector = hiddenFromInspector();
+    auto oldRequester = requester();
+    auto oldInitiatorIdentifier = initiatorIdentifier();
+    auto oldInspectorInitiatorNodeIdentifier = inspectorInitiatorNodeIdentifier();
+
+    *this = delegateProvidedRequest;
+
+    setPriority(oldPriority);
+    setHTTPBody(WTFMove(oldHTTPBody));
+    setHiddenFromInspector(isHiddenFromInspector);
+    setRequester(oldRequester);
+    setInitiatorIdentifier(oldInitiatorIdentifier);
+    if (oldInspectorInitiatorNodeIdentifier)
+        setInspectorInitiatorNodeIdentifier(*oldInspectorInitiatorNodeIdentifier);
+}
+
+}
+
+#endif