Title: [225358] trunk
Revision
225358
Author
achristen...@apple.com
Date
2017-11-30 15:16:19 -0800 (Thu, 30 Nov 2017)

Log Message

WKURLSchemeHandler.request should include HTTPBody
https://bugs.webkit.org/show_bug.cgi?id=180220

Reviewed by Brady Eidson.

Source/WebKit:

* Shared/URLSchemeTaskParameters.cpp: Added.
(WebKit::URLSchemeTaskParameters::encode const):
(WebKit::URLSchemeTaskParameters::decode):
* Shared/URLSchemeTaskParameters.h: Added.
* UIProcess/API/Cocoa/WKURLSchemeTask.mm:
(-[WKURLSchemeTaskImpl request]):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::startURLSchemeTask):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* UIProcess/WebURLSchemeHandler.cpp:
(WebKit::WebURLSchemeHandler::startTask):
* UIProcess/WebURLSchemeHandler.h:
* UIProcess/WebURLSchemeTask.cpp:
(WebKit::WebURLSchemeTask::create):
(WebKit::WebURLSchemeTask::WebURLSchemeTask):
* UIProcess/WebURLSchemeTask.h:
* WebKit.xcodeproj/project.pbxproj:
* WebProcess/WebPage/WebURLSchemeTaskProxy.cpp:
(WebKit::WebURLSchemeTaskProxy::startLoading):

Tools:

* TestWebKitAPI/Tests/WebKitCocoa/_WKInputDelegate.mm:
(-[FormSubmissionDelegate webView:startURLSchemeTask:]):

Modified Paths

Added Paths

Diff

Modified: trunk/Source/WebKit/CMakeLists.txt (225357 => 225358)


--- trunk/Source/WebKit/CMakeLists.txt	2017-11-30 23:10:26 UTC (rev 225357)
+++ trunk/Source/WebKit/CMakeLists.txt	2017-11-30 23:16:19 UTC (rev 225358)
@@ -184,6 +184,7 @@
     Shared/SharedStringHashTableReadOnly.cpp
     Shared/SharedStringHashTable.cpp
     Shared/StatisticsData.cpp
+    Shared/URLSchemeTaskParameters.cpp
     Shared/UpdateInfo.cpp
     Shared/UserData.cpp
     Shared/WebBackForwardListItem.cpp

Modified: trunk/Source/WebKit/ChangeLog (225357 => 225358)


--- trunk/Source/WebKit/ChangeLog	2017-11-30 23:10:26 UTC (rev 225357)
+++ trunk/Source/WebKit/ChangeLog	2017-11-30 23:16:19 UTC (rev 225358)
@@ -1,3 +1,31 @@
+2017-11-30  Alex Christensen  <achristen...@webkit.org>
+
+        WKURLSchemeHandler.request should include HTTPBody
+        https://bugs.webkit.org/show_bug.cgi?id=180220
+
+        Reviewed by Brady Eidson.
+
+        * Shared/URLSchemeTaskParameters.cpp: Added.
+        (WebKit::URLSchemeTaskParameters::encode const):
+        (WebKit::URLSchemeTaskParameters::decode):
+        * Shared/URLSchemeTaskParameters.h: Added.
+        * UIProcess/API/Cocoa/WKURLSchemeTask.mm:
+        (-[WKURLSchemeTaskImpl request]):
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit::WebPageProxy::startURLSchemeTask):
+        * UIProcess/WebPageProxy.h:
+        * UIProcess/WebPageProxy.messages.in:
+        * UIProcess/WebURLSchemeHandler.cpp:
+        (WebKit::WebURLSchemeHandler::startTask):
+        * UIProcess/WebURLSchemeHandler.h:
+        * UIProcess/WebURLSchemeTask.cpp:
+        (WebKit::WebURLSchemeTask::create):
+        (WebKit::WebURLSchemeTask::WebURLSchemeTask):
+        * UIProcess/WebURLSchemeTask.h:
+        * WebKit.xcodeproj/project.pbxproj:
+        * WebProcess/WebPage/WebURLSchemeTaskProxy.cpp:
+        (WebKit::WebURLSchemeTaskProxy::startLoading):
+
 2017-11-30  Darin Adler  <da...@apple.com>
 
         [Mac] remove unneeded RetainPtr use introduced in r225142

Added: trunk/Source/WebKit/Shared/URLSchemeTaskParameters.cpp (0 => 225358)


--- trunk/Source/WebKit/Shared/URLSchemeTaskParameters.cpp	                        (rev 0)
+++ trunk/Source/WebKit/Shared/URLSchemeTaskParameters.cpp	2017-11-30 23:16:19 UTC (rev 225358)
@@ -0,0 +1,77 @@
+/*
+ * Copyright (C) 2017 Apple Inc. All rights reserved.
+ *
+ * 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. AND ITS CONTRIBUTORS ``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 ITS 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 "URLSchemeTaskParameters.h"
+
+#include "Decoder.h"
+#include "Encoder.h"
+#include "WebCoreArgumentCoders.h"
+
+namespace WebKit {
+
+void URLSchemeTaskParameters::encode(IPC::Encoder& encoder) const
+{
+    encoder << handlerIdentifier;
+    encoder << taskIdentifier;
+    encoder << request;
+    if (request.httpBody()) {
+        encoder << true;
+        request.httpBody()->encode(encoder);
+    } else
+        encoder << false;
+}
+
+std::optional<URLSchemeTaskParameters> URLSchemeTaskParameters::decode(IPC::Decoder& decoder)
+{
+    std::optional<uint64_t> handlerIdentifier;
+    decoder >> handlerIdentifier;
+    if (!handlerIdentifier)
+        return std::nullopt;
+    
+    std::optional<uint64_t> taskIdentifier;
+    decoder >> taskIdentifier;
+    if (!taskIdentifier)
+        return std::nullopt;
+
+    WebCore::ResourceRequest request;
+    if (!decoder.decode(request))
+        return std::nullopt;
+
+    std::optional<bool> hasHTTPBody;
+    decoder >> hasHTTPBody;
+    if (!hasHTTPBody)
+        return std::nullopt;
+    if (*hasHTTPBody) {
+        RefPtr<WebCore::FormData> formData = WebCore::FormData::decode(decoder);
+        if (!formData)
+            return std::nullopt;
+        request.setHTTPBody(WTFMove(formData));
+    }
+
+    return {{ WTFMove(*handlerIdentifier), WTFMove(*taskIdentifier), WTFMove(request) }};
+}
+    
+} // namespace WebKit

Added: trunk/Source/WebKit/Shared/URLSchemeTaskParameters.h (0 => 225358)


--- trunk/Source/WebKit/Shared/URLSchemeTaskParameters.h	                        (rev 0)
+++ trunk/Source/WebKit/Shared/URLSchemeTaskParameters.h	2017-11-30 23:16:19 UTC (rev 225358)
@@ -0,0 +1,46 @@
+/*
+ * Copyright (C) 2017 Apple Inc. All rights reserved.
+ *
+ * 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. AND ITS CONTRIBUTORS ``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 ITS 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.
+ */
+
+#pragma once
+
+#include <WebCore/ResourceRequest.h>
+
+namespace IPC {
+class Encoder;
+class Decoder;
+}
+
+namespace WebKit {
+
+struct URLSchemeTaskParameters {
+    uint64_t handlerIdentifier { 0 };
+    uint64_t taskIdentifier { 0 };
+    WebCore::ResourceRequest request;
+    
+    void encode(IPC::Encoder&) const;
+    static std::optional<URLSchemeTaskParameters> decode(IPC::Decoder&);
+};
+
+} // namespace WebKit

Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/WKURLSchemeTask.mm (225357 => 225358)


--- trunk/Source/WebKit/UIProcess/API/Cocoa/WKURLSchemeTask.mm	2017-11-30 23:10:26 UTC (rev 225357)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/WKURLSchemeTask.mm	2017-11-30 23:16:19 UTC (rev 225358)
@@ -71,7 +71,7 @@
 
 - (NSURLRequest *)request
 {
-    return _urlSchemeTask->task().request().nsURLRequest(DoNotUpdateHTTPBody);
+    return _urlSchemeTask->task().request().nsURLRequest(UpdateHTTPBody);
 }
 
 - (void)didReceiveResponse:(NSURLResponse *)response

Modified: trunk/Source/WebKit/UIProcess/WebPageProxy.cpp (225357 => 225358)


--- trunk/Source/WebKit/UIProcess/WebPageProxy.cpp	2017-11-30 23:10:26 UTC (rev 225357)
+++ trunk/Source/WebKit/UIProcess/WebPageProxy.cpp	2017-11-30 23:16:19 UTC (rev 225358)
@@ -76,6 +76,7 @@
 #include "PrintInfo.h"
 #include "TextChecker.h"
 #include "TextCheckerState.h"
+#include "URLSchemeTaskParameters.h"
 #include "UserMediaPermissionRequestProxy.h"
 #include "UserMediaProcessManager.h"
 #include "WKContextPrivate.h"
@@ -7124,12 +7125,12 @@
     return m_urlSchemeHandlersByScheme.get(scheme);
 }
 
-void WebPageProxy::startURLSchemeTask(uint64_t handlerIdentifier, uint64_t taskIdentifier, const WebCore::ResourceRequest& request)
+void WebPageProxy::startURLSchemeTask(URLSchemeTaskParameters&& parameters)
 {
-    auto iterator = m_urlSchemeHandlersByIdentifier.find(handlerIdentifier);
+    auto iterator = m_urlSchemeHandlersByIdentifier.find(parameters.handlerIdentifier);
     MESSAGE_CHECK(iterator != m_urlSchemeHandlersByIdentifier.end());
 
-    iterator->value->startTask(*this, taskIdentifier, request);
+    iterator->value->startTask(*this, parameters.taskIdentifier, WTFMove(parameters.request));
 }
 
 void WebPageProxy::stopURLSchemeTask(uint64_t handlerIdentifier, uint64_t taskIdentifier)

Modified: trunk/Source/WebKit/UIProcess/WebPageProxy.h (225357 => 225358)


--- trunk/Source/WebKit/UIProcess/WebPageProxy.h	2017-11-30 23:10:26 UTC (rev 225357)
+++ trunk/Source/WebKit/UIProcess/WebPageProxy.h	2017-11-30 23:16:19 UTC (rev 225358)
@@ -233,6 +233,7 @@
 struct PlatformPopupMenuData;
 struct PrintInfo;
 struct WebPopupItem;
+struct URLSchemeTaskParameters;
 
 #if USE(QUICK_LOOK)
 class QuickLookDocumentData;
@@ -1636,7 +1637,7 @@
 #endif
 #endif
 
-    void startURLSchemeTask(uint64_t handlerIdentifier, uint64_t taskIdentifier, const WebCore::ResourceRequest&);
+    void startURLSchemeTask(URLSchemeTaskParameters&&);
     void stopURLSchemeTask(uint64_t handlerIdentifier, uint64_t taskIdentifier);
 
     void handleAutoFillButtonClick(const UserData&);

Modified: trunk/Source/WebKit/UIProcess/WebPageProxy.messages.in (225357 => 225358)


--- trunk/Source/WebKit/UIProcess/WebPageProxy.messages.in	2017-11-30 23:10:26 UTC (rev 225357)
+++ trunk/Source/WebKit/UIProcess/WebPageProxy.messages.in	2017-11-30 23:16:19 UTC (rev 225358)
@@ -498,7 +498,7 @@
 
     SetIsUsingHighPerformanceWebGL(bool isUsingHighPerformanceWebGL)
 
-    StartURLSchemeTask(uint64_t handlerIdentifier, uint64_t taskIdentifier, WebCore::ResourceRequest request)
+    StartURLSchemeTask(struct WebKit::URLSchemeTaskParameters parameters)
     StopURLSchemeTask(uint64_t handlerIdentifier, uint64_t taskIdentifier)
 
     RequestStorageAccess(String subFrameHost, String topFrameHost, uint64_t contextID)

Modified: trunk/Source/WebKit/UIProcess/WebURLSchemeHandler.cpp (225357 => 225358)


--- trunk/Source/WebKit/UIProcess/WebURLSchemeHandler.cpp	2017-11-30 23:10:26 UTC (rev 225357)
+++ trunk/Source/WebKit/UIProcess/WebURLSchemeHandler.cpp	2017-11-30 23:16:19 UTC (rev 225358)
@@ -49,9 +49,9 @@
     ASSERT(m_tasks.isEmpty());
 }
 
-void WebURLSchemeHandler::startTask(WebPageProxy& page, uint64_t taskIdentifier, const ResourceRequest& request)
+void WebURLSchemeHandler::startTask(WebPageProxy& page, uint64_t taskIdentifier, ResourceRequest&& request)
 {
-    auto result = m_tasks.add(taskIdentifier, WebURLSchemeTask::create(*this, page, taskIdentifier, request));
+    auto result = m_tasks.add(taskIdentifier, WebURLSchemeTask::create(*this, page, taskIdentifier, WTFMove(request)));
     ASSERT(result.isNewEntry);
 
     auto pageEntry = m_tasksByPageIdentifier.add(page.pageID(), HashSet<uint64_t>());

Modified: trunk/Source/WebKit/UIProcess/WebURLSchemeHandler.h (225357 => 225358)


--- trunk/Source/WebKit/UIProcess/WebURLSchemeHandler.h	2017-11-30 23:10:26 UTC (rev 225357)
+++ trunk/Source/WebKit/UIProcess/WebURLSchemeHandler.h	2017-11-30 23:16:19 UTC (rev 225358)
@@ -46,7 +46,7 @@
 
     uint64_t identifier() const { return m_identifier; }
 
-    void startTask(WebPageProxy&, uint64_t taskIdentifier, const WebCore::ResourceRequest&);
+    void startTask(WebPageProxy&, uint64_t taskIdentifier, WebCore::ResourceRequest&&);
     void stopTask(WebPageProxy&, uint64_t taskIdentifier);
     void stopAllTasksForPage(WebPageProxy&);
     void taskCompleted(WebURLSchemeTask&);

Modified: trunk/Source/WebKit/UIProcess/WebURLSchemeTask.cpp (225357 => 225358)


--- trunk/Source/WebKit/UIProcess/WebURLSchemeTask.cpp	2017-11-30 23:10:26 UTC (rev 225357)
+++ trunk/Source/WebKit/UIProcess/WebURLSchemeTask.cpp	2017-11-30 23:16:19 UTC (rev 225358)
@@ -35,17 +35,17 @@
 
 namespace WebKit {
 
-Ref<WebURLSchemeTask> WebURLSchemeTask::create(WebURLSchemeHandler& handler, WebPageProxy& page, uint64_t resourceIdentifier, const ResourceRequest& request)
+Ref<WebURLSchemeTask> WebURLSchemeTask::create(WebURLSchemeHandler& handler, WebPageProxy& page, uint64_t resourceIdentifier, ResourceRequest&& request)
 {
-    return adoptRef(*new WebURLSchemeTask(handler, page, resourceIdentifier, request));
+    return adoptRef(*new WebURLSchemeTask(handler, page, resourceIdentifier, WTFMove(request)));
 }
 
-WebURLSchemeTask::WebURLSchemeTask(WebURLSchemeHandler& handler, WebPageProxy& page, uint64_t resourceIdentifier, const ResourceRequest& request)
+WebURLSchemeTask::WebURLSchemeTask(WebURLSchemeHandler& handler, WebPageProxy& page, uint64_t resourceIdentifier, ResourceRequest&& request)
     : m_urlSchemeHandler(handler)
     , m_page(&page)
     , m_identifier(resourceIdentifier)
     , m_pageIdentifier(page.pageID())
-    , m_request(request)
+    , m_request(WTFMove(request))
 {
 }
 

Modified: trunk/Source/WebKit/UIProcess/WebURLSchemeTask.h (225357 => 225358)


--- trunk/Source/WebKit/UIProcess/WebURLSchemeTask.h	2017-11-30 23:10:26 UTC (rev 225357)
+++ trunk/Source/WebKit/UIProcess/WebURLSchemeTask.h	2017-11-30 23:16:19 UTC (rev 225358)
@@ -44,7 +44,7 @@
 class WebURLSchemeTask : public RefCounted<WebURLSchemeTask>, public InstanceCounted<WebURLSchemeTask> {
     WTF_MAKE_NONCOPYABLE(WebURLSchemeTask);
 public:
-    static Ref<WebURLSchemeTask> create(WebURLSchemeHandler&, WebPageProxy&, uint64_t identifier, const WebCore::ResourceRequest&);
+    static Ref<WebURLSchemeTask> create(WebURLSchemeHandler&, WebPageProxy&, uint64_t identifier, WebCore::ResourceRequest&&);
 
     uint64_t identifier() const { return m_identifier; }
     uint64_t pageID() const { return m_pageIdentifier; }
@@ -68,7 +68,7 @@
     void pageDestroyed();
 
 private:
-    WebURLSchemeTask(WebURLSchemeHandler&, WebPageProxy&, uint64_t identifier, const WebCore::ResourceRequest&);
+    WebURLSchemeTask(WebURLSchemeHandler&, WebPageProxy&, uint64_t identifier, WebCore::ResourceRequest&&);
 
     Ref<WebURLSchemeHandler> m_urlSchemeHandler;
     WebPageProxy* m_page;

Modified: trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj (225357 => 225358)


--- trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj	2017-11-30 23:10:26 UTC (rev 225357)
+++ trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj	2017-11-30 23:16:19 UTC (rev 225358)
@@ -1196,6 +1196,8 @@
 		5C1427131C23F89E00D41183 /* DownloadCocoa.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5C1427091C23F86900D41183 /* DownloadCocoa.mm */; };
 		5C1427181C23F8B700D41183 /* LegacyCustomProtocolManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C1427141C23F8B000D41183 /* LegacyCustomProtocolManager.h */; };
 		5C14271D1C23F8CF00D41183 /* LegacyCustomProtocolManagerCocoa.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5C14271B1C23F8CC00D41183 /* LegacyCustomProtocolManagerCocoa.mm */; };
+		5C19A5201FD0B29500EEA323 /* URLSchemeTaskParameters.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C19A51F1FD0B14700EEA323 /* URLSchemeTaskParameters.h */; };
+		5C19A5211FD0B29A00EEA323 /* URLSchemeTaskParameters.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5C19A51E1FD0B14600EEA323 /* URLSchemeTaskParameters.cpp */; };
 		5C20CB9D1BB0DCFA00895BB1 /* NetworkSessionCocoa.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5C20CB9B1BB0DCD200895BB1 /* NetworkSessionCocoa.mm */; };
 		5C20CBA01BB1ECD800895BB1 /* NetworkSession.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C20CB9E1BB0DD1800895BB1 /* NetworkSession.h */; };
 		5C298DA01C3DF02100470AFE /* PendingDownload.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C298D9E1C3DEF2900470AFE /* PendingDownload.h */; };
@@ -3574,6 +3576,8 @@
 		5C1427141C23F8B000D41183 /* LegacyCustomProtocolManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = LegacyCustomProtocolManager.h; path = NetworkProcess/CustomProtocols/LegacyCustomProtocolManager.h; sourceTree = "<group>"; };
 		5C1427151C23F8B000D41183 /* LegacyCustomProtocolManager.messages.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = LegacyCustomProtocolManager.messages.in; path = NetworkProcess/CustomProtocols/LegacyCustomProtocolManager.messages.in; sourceTree = "<group>"; };
 		5C14271B1C23F8CC00D41183 /* LegacyCustomProtocolManagerCocoa.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = LegacyCustomProtocolManagerCocoa.mm; path = NetworkProcess/CustomProtocols/Cocoa/LegacyCustomProtocolManagerCocoa.mm; sourceTree = "<group>"; };
+		5C19A51E1FD0B14600EEA323 /* URLSchemeTaskParameters.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = URLSchemeTaskParameters.cpp; sourceTree = "<group>"; };
+		5C19A51F1FD0B14700EEA323 /* URLSchemeTaskParameters.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = URLSchemeTaskParameters.h; sourceTree = "<group>"; };
 		5C20CB9B1BB0DCD200895BB1 /* NetworkSessionCocoa.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = NetworkSessionCocoa.mm; path = NetworkProcess/cocoa/NetworkSessionCocoa.mm; sourceTree = "<group>"; };
 		5C20CB9E1BB0DD1800895BB1 /* NetworkSession.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NetworkSession.h; path = NetworkProcess/NetworkSession.h; sourceTree = "<group>"; };
 		5C298D9E1C3DEF2900470AFE /* PendingDownload.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PendingDownload.h; path = NetworkProcess/Downloads/PendingDownload.h; sourceTree = "<group>"; };
@@ -5124,6 +5128,8 @@
 				1A5E4DA312D3BD3D0099A2BB /* TextCheckerState.h */,
 				1A64245D12DE29A100CAAE2C /* UpdateInfo.cpp */,
 				1A64245C12DE29A100CAAE2C /* UpdateInfo.h */,
+				5C19A51E1FD0B14600EEA323 /* URLSchemeTaskParameters.cpp */,
+				5C19A51F1FD0B14700EEA323 /* URLSchemeTaskParameters.h */,
 				1AC1336518565B5700F3EC05 /* UserData.cpp */,
 				1AC1336618565B5700F3EC05 /* UserData.h */,
 				2684054A18B866FF0022C38B /* VisibleContentRectUpdateInfo.cpp */,
@@ -8934,6 +8940,7 @@
 				515BE1A91D55293400DD7C68 /* UIGamepadProvider.h in Headers */,
 				CEE4AE2B1A5DCF430002F49B /* UIKitSPI.h in Headers */,
 				1A64245E12DE29A100CAAE2C /* UpdateInfo.h in Headers */,
+				5C19A5201FD0B29500EEA323 /* URLSchemeTaskParameters.h in Headers */,
 				1AC1336818565B5700F3EC05 /* UserData.h in Headers */,
 				CD491B081E70D05F00009066 /* UserMediaCaptureManager.h in Headers */,
 				CD491B0E1E732E4D00009066 /* UserMediaCaptureManagerMessages.h in Headers */,
@@ -10543,6 +10550,7 @@
 				51E949971D76211300EC9EB9 /* UIGamepadProviderIOS.mm in Sources */,
 				515BE1B71D5A94FD00DD7C68 /* UIGamepadProviderMac.mm in Sources */,
 				1A64245F12DE29A100CAAE2C /* UpdateInfo.cpp in Sources */,
+				5C19A5211FD0B29A00EEA323 /* URLSchemeTaskParameters.cpp in Sources */,
 				1AC1336718565B5700F3EC05 /* UserData.cpp in Sources */,
 				CD491B071E70D05F00009066 /* UserMediaCaptureManager.cpp in Sources */,
 				CD491B0D1E732E4D00009066 /* UserMediaCaptureManagerMessageReceiver.cpp in Sources */,

Modified: trunk/Source/WebKit/WebProcess/WebPage/WebURLSchemeTaskProxy.cpp (225357 => 225358)


--- trunk/Source/WebKit/WebProcess/WebPage/WebURLSchemeTaskProxy.cpp	2017-11-30 23:10:26 UTC (rev 225357)
+++ trunk/Source/WebKit/WebProcess/WebPage/WebURLSchemeTaskProxy.cpp	2017-11-30 23:16:19 UTC (rev 225358)
@@ -26,6 +26,7 @@
 #include "config.h"
 #include "WebURLSchemeTaskProxy.h"
 
+#include "URLSchemeTaskParameters.h"
 #include "WebCoreArgumentCoders.h"
 #include "WebPage.h"
 #include "WebPageProxyMessages.h"
@@ -51,7 +52,7 @@
 void WebURLSchemeTaskProxy::startLoading()
 {
     ASSERT(m_coreLoader);
-    m_urlSchemeHandler.page().send(Messages::WebPageProxy::StartURLSchemeTask(m_urlSchemeHandler.identifier(), m_coreLoader->identifier(), m_request));
+    m_urlSchemeHandler.page().send(Messages::WebPageProxy::StartURLSchemeTask({m_urlSchemeHandler.identifier(), m_coreLoader->identifier(), m_request}));
 }
 
 void WebURLSchemeTaskProxy::stopLoading()

Modified: trunk/Tools/ChangeLog (225357 => 225358)


--- trunk/Tools/ChangeLog	2017-11-30 23:10:26 UTC (rev 225357)
+++ trunk/Tools/ChangeLog	2017-11-30 23:16:19 UTC (rev 225358)
@@ -1,3 +1,13 @@
+2017-11-30  Alex Christensen  <achristen...@webkit.org>
+
+        WKURLSchemeHandler.request should include HTTPBody
+        https://bugs.webkit.org/show_bug.cgi?id=180220
+
+        Reviewed by Brady Eidson.
+
+        * TestWebKitAPI/Tests/WebKitCocoa/_WKInputDelegate.mm:
+        (-[FormSubmissionDelegate webView:startURLSchemeTask:]):
+
 2017-11-30  Carlos Alberto Lopez Perez  <clo...@igalia.com>
 
         Add a script for automatically running the buildbot configurations on a test environment.

Modified: trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/_WKInputDelegate.mm (225357 => 225358)


--- trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/_WKInputDelegate.mm	2017-11-30 23:10:26 UTC (rev 225357)
+++ trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/_WKInputDelegate.mm	2017-11-30 23:16:19 UTC (rev 225358)
@@ -45,7 +45,9 @@
 {
     EXPECT_TRUE(willSubmitFormValuesCalled);
     EXPECT_STREQ(task.request.URL.absoluteString.UTF8String, "test:///formtarget");
-    EXPECT_NULL(task.request.HTTPBody);
+    EXPECT_NOT_NULL(task.request.HTTPBody);
+    EXPECT_EQ(task.request.HTTPBody.length, 62u);
+    EXPECT_STREQ(static_cast<const char*>(task.request.HTTPBody.bytes), "testname1=testvalue1&testname2=testvalue2&testname3=testvalue3");
     done = true;
 }
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to