Changeset 225358 in webkit


Ignore:
Timestamp:
Nov 30, 2017 3:16:19 PM (6 years ago)
Author:
achristensen@apple.com
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:]):

Location:
trunk
Files:
2 added
14 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit/CMakeLists.txt

    r224191 r225358  
    185185    Shared/SharedStringHashTable.cpp
    186186    Shared/StatisticsData.cpp
     187    Shared/URLSchemeTaskParameters.cpp
    187188    Shared/UpdateInfo.cpp
    188189    Shared/UserData.cpp
  • trunk/Source/WebKit/ChangeLog

    r225331 r225358  
     12017-11-30  Alex Christensen  <achristensen@webkit.org>
     2
     3        WKURLSchemeHandler.request should include HTTPBody
     4        https://bugs.webkit.org/show_bug.cgi?id=180220
     5
     6        Reviewed by Brady Eidson.
     7
     8        * Shared/URLSchemeTaskParameters.cpp: Added.
     9        (WebKit::URLSchemeTaskParameters::encode const):
     10        (WebKit::URLSchemeTaskParameters::decode):
     11        * Shared/URLSchemeTaskParameters.h: Added.
     12        * UIProcess/API/Cocoa/WKURLSchemeTask.mm:
     13        (-[WKURLSchemeTaskImpl request]):
     14        * UIProcess/WebPageProxy.cpp:
     15        (WebKit::WebPageProxy::startURLSchemeTask):
     16        * UIProcess/WebPageProxy.h:
     17        * UIProcess/WebPageProxy.messages.in:
     18        * UIProcess/WebURLSchemeHandler.cpp:
     19        (WebKit::WebURLSchemeHandler::startTask):
     20        * UIProcess/WebURLSchemeHandler.h:
     21        * UIProcess/WebURLSchemeTask.cpp:
     22        (WebKit::WebURLSchemeTask::create):
     23        (WebKit::WebURLSchemeTask::WebURLSchemeTask):
     24        * UIProcess/WebURLSchemeTask.h:
     25        * WebKit.xcodeproj/project.pbxproj:
     26        * WebProcess/WebPage/WebURLSchemeTaskProxy.cpp:
     27        (WebKit::WebURLSchemeTaskProxy::startLoading):
     28
    1292017-11-30  Darin Adler  <darin@apple.com>
    230
  • trunk/Source/WebKit/UIProcess/API/Cocoa/WKURLSchemeTask.mm

    r220011 r225358  
    7272- (NSURLRequest *)request
    7373{
    74     return _urlSchemeTask->task().request().nsURLRequest(DoNotUpdateHTTPBody);
     74    return _urlSchemeTask->task().request().nsURLRequest(UpdateHTTPBody);
    7575}
    7676
  • trunk/Source/WebKit/UIProcess/WebPageProxy.cpp

    r225311 r225358  
    7777#include "TextChecker.h"
    7878#include "TextCheckerState.h"
     79#include "URLSchemeTaskParameters.h"
    7980#include "UserMediaPermissionRequestProxy.h"
    8081#include "UserMediaProcessManager.h"
     
    71257126}
    71267127
    7127 void WebPageProxy::startURLSchemeTask(uint64_t handlerIdentifier, uint64_t taskIdentifier, const WebCore::ResourceRequest& request)
    7128 {
    7129     auto iterator = m_urlSchemeHandlersByIdentifier.find(handlerIdentifier);
     7128void WebPageProxy::startURLSchemeTask(URLSchemeTaskParameters&& parameters)
     7129{
     7130    auto iterator = m_urlSchemeHandlersByIdentifier.find(parameters.handlerIdentifier);
    71307131    MESSAGE_CHECK(iterator != m_urlSchemeHandlersByIdentifier.end());
    71317132
    7132     iterator->value->startTask(*this, taskIdentifier, request);
     7133    iterator->value->startTask(*this, parameters.taskIdentifier, WTFMove(parameters.request));
    71337134}
    71347135
  • trunk/Source/WebKit/UIProcess/WebPageProxy.h

    r225311 r225358  
    234234struct PrintInfo;
    235235struct WebPopupItem;
     236struct URLSchemeTaskParameters;
    236237
    237238#if USE(QUICK_LOOK)
     
    16371638#endif
    16381639
    1639     void startURLSchemeTask(uint64_t handlerIdentifier, uint64_t taskIdentifier, const WebCore::ResourceRequest&);
     1640    void startURLSchemeTask(URLSchemeTaskParameters&&);
    16401641    void stopURLSchemeTask(uint64_t handlerIdentifier, uint64_t taskIdentifier);
    16411642
  • trunk/Source/WebKit/UIProcess/WebPageProxy.messages.in

    r225223 r225358  
    499499    SetIsUsingHighPerformanceWebGL(bool isUsingHighPerformanceWebGL)
    500500
    501     StartURLSchemeTask(uint64_t handlerIdentifier, uint64_t taskIdentifier, WebCore::ResourceRequest request)
     501    StartURLSchemeTask(struct WebKit::URLSchemeTaskParameters parameters)
    502502    StopURLSchemeTask(uint64_t handlerIdentifier, uint64_t taskIdentifier)
    503503
  • trunk/Source/WebKit/UIProcess/WebURLSchemeHandler.cpp

    r220033 r225358  
    5050}
    5151
    52 void WebURLSchemeHandler::startTask(WebPageProxy& page, uint64_t taskIdentifier, const ResourceRequest& request)
     52void WebURLSchemeHandler::startTask(WebPageProxy& page, uint64_t taskIdentifier, ResourceRequest&& request)
    5353{
    54     auto result = m_tasks.add(taskIdentifier, WebURLSchemeTask::create(*this, page, taskIdentifier, request));
     54    auto result = m_tasks.add(taskIdentifier, WebURLSchemeTask::create(*this, page, taskIdentifier, WTFMove(request)));
    5555    ASSERT(result.isNewEntry);
    5656
  • trunk/Source/WebKit/UIProcess/WebURLSchemeHandler.h

    r220033 r225358  
    4747    uint64_t identifier() const { return m_identifier; }
    4848
    49     void startTask(WebPageProxy&, uint64_t taskIdentifier, const WebCore::ResourceRequest&);
     49    void startTask(WebPageProxy&, uint64_t taskIdentifier, WebCore::ResourceRequest&&);
    5050    void stopTask(WebPageProxy&, uint64_t taskIdentifier);
    5151    void stopAllTasksForPage(WebPageProxy&);
  • trunk/Source/WebKit/UIProcess/WebURLSchemeTask.cpp

    r220011 r225358  
    3636namespace WebKit {
    3737
    38 Ref<WebURLSchemeTask> WebURLSchemeTask::create(WebURLSchemeHandler& handler, WebPageProxy& page, uint64_t resourceIdentifier, const ResourceRequest& request)
     38Ref<WebURLSchemeTask> WebURLSchemeTask::create(WebURLSchemeHandler& handler, WebPageProxy& page, uint64_t resourceIdentifier, ResourceRequest&& request)
    3939{
    40     return adoptRef(*new WebURLSchemeTask(handler, page, resourceIdentifier, request));
     40    return adoptRef(*new WebURLSchemeTask(handler, page, resourceIdentifier, WTFMove(request)));
    4141}
    4242
    43 WebURLSchemeTask::WebURLSchemeTask(WebURLSchemeHandler& handler, WebPageProxy& page, uint64_t resourceIdentifier, const ResourceRequest& request)
     43WebURLSchemeTask::WebURLSchemeTask(WebURLSchemeHandler& handler, WebPageProxy& page, uint64_t resourceIdentifier, ResourceRequest&& request)
    4444    : m_urlSchemeHandler(handler)
    4545    , m_page(&page)
    4646    , m_identifier(resourceIdentifier)
    4747    , m_pageIdentifier(page.pageID())
    48     , m_request(request)
     48    , m_request(WTFMove(request))
    4949{
    5050}
  • trunk/Source/WebKit/UIProcess/WebURLSchemeTask.h

    r220049 r225358  
    4545    WTF_MAKE_NONCOPYABLE(WebURLSchemeTask);
    4646public:
    47     static Ref<WebURLSchemeTask> create(WebURLSchemeHandler&, WebPageProxy&, uint64_t identifier, const WebCore::ResourceRequest&);
     47    static Ref<WebURLSchemeTask> create(WebURLSchemeHandler&, WebPageProxy&, uint64_t identifier, WebCore::ResourceRequest&&);
    4848
    4949    uint64_t identifier() const { return m_identifier; }
     
    6969
    7070private:
    71     WebURLSchemeTask(WebURLSchemeHandler&, WebPageProxy&, uint64_t identifier, const WebCore::ResourceRequest&);
     71    WebURLSchemeTask(WebURLSchemeHandler&, WebPageProxy&, uint64_t identifier, WebCore::ResourceRequest&&);
    7272
    7373    Ref<WebURLSchemeHandler> m_urlSchemeHandler;
  • trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj

    r225278 r225358  
    11971197                5C1427181C23F8B700D41183 /* LegacyCustomProtocolManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C1427141C23F8B000D41183 /* LegacyCustomProtocolManager.h */; };
    11981198                5C14271D1C23F8CF00D41183 /* LegacyCustomProtocolManagerCocoa.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5C14271B1C23F8CC00D41183 /* LegacyCustomProtocolManagerCocoa.mm */; };
     1199                5C19A5201FD0B29500EEA323 /* URLSchemeTaskParameters.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C19A51F1FD0B14700EEA323 /* URLSchemeTaskParameters.h */; };
     1200                5C19A5211FD0B29A00EEA323 /* URLSchemeTaskParameters.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5C19A51E1FD0B14600EEA323 /* URLSchemeTaskParameters.cpp */; };
    11991201                5C20CB9D1BB0DCFA00895BB1 /* NetworkSessionCocoa.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5C20CB9B1BB0DCD200895BB1 /* NetworkSessionCocoa.mm */; };
    12001202                5C20CBA01BB1ECD800895BB1 /* NetworkSession.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C20CB9E1BB0DD1800895BB1 /* NetworkSession.h */; };
     
    35753577                5C1427151C23F8B000D41183 /* LegacyCustomProtocolManager.messages.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = LegacyCustomProtocolManager.messages.in; path = NetworkProcess/CustomProtocols/LegacyCustomProtocolManager.messages.in; sourceTree = "<group>"; };
    35763578                5C14271B1C23F8CC00D41183 /* LegacyCustomProtocolManagerCocoa.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = LegacyCustomProtocolManagerCocoa.mm; path = NetworkProcess/CustomProtocols/Cocoa/LegacyCustomProtocolManagerCocoa.mm; sourceTree = "<group>"; };
     3579                5C19A51E1FD0B14600EEA323 /* URLSchemeTaskParameters.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = URLSchemeTaskParameters.cpp; sourceTree = "<group>"; };
     3580                5C19A51F1FD0B14700EEA323 /* URLSchemeTaskParameters.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = URLSchemeTaskParameters.h; sourceTree = "<group>"; };
    35773581                5C20CB9B1BB0DCD200895BB1 /* NetworkSessionCocoa.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = NetworkSessionCocoa.mm; path = NetworkProcess/cocoa/NetworkSessionCocoa.mm; sourceTree = "<group>"; };
    35783582                5C20CB9E1BB0DD1800895BB1 /* NetworkSession.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NetworkSession.h; path = NetworkProcess/NetworkSession.h; sourceTree = "<group>"; };
     
    51255129                                1A64245D12DE29A100CAAE2C /* UpdateInfo.cpp */,
    51265130                                1A64245C12DE29A100CAAE2C /* UpdateInfo.h */,
     5131                                5C19A51E1FD0B14600EEA323 /* URLSchemeTaskParameters.cpp */,
     5132                                5C19A51F1FD0B14700EEA323 /* URLSchemeTaskParameters.h */,
    51275133                                1AC1336518565B5700F3EC05 /* UserData.cpp */,
    51285134                                1AC1336618565B5700F3EC05 /* UserData.h */,
     
    89358941                                CEE4AE2B1A5DCF430002F49B /* UIKitSPI.h in Headers */,
    89368942                                1A64245E12DE29A100CAAE2C /* UpdateInfo.h in Headers */,
     8943                                5C19A5201FD0B29500EEA323 /* URLSchemeTaskParameters.h in Headers */,
    89378944                                1AC1336818565B5700F3EC05 /* UserData.h in Headers */,
    89388945                                CD491B081E70D05F00009066 /* UserMediaCaptureManager.h in Headers */,
     
    1054410551                                515BE1B71D5A94FD00DD7C68 /* UIGamepadProviderMac.mm in Sources */,
    1054510552                                1A64245F12DE29A100CAAE2C /* UpdateInfo.cpp in Sources */,
     10553                                5C19A5211FD0B29A00EEA323 /* URLSchemeTaskParameters.cpp in Sources */,
    1054610554                                1AC1336718565B5700F3EC05 /* UserData.cpp in Sources */,
    1054710555                                CD491B071E70D05F00009066 /* UserMediaCaptureManager.cpp in Sources */,
  • trunk/Source/WebKit/WebProcess/WebPage/WebURLSchemeTaskProxy.cpp

    r224373 r225358  
    2727#include "WebURLSchemeTaskProxy.h"
    2828
     29#include "URLSchemeTaskParameters.h"
    2930#include "WebCoreArgumentCoders.h"
    3031#include "WebPage.h"
     
    5253{
    5354    ASSERT(m_coreLoader);
    54     m_urlSchemeHandler.page().send(Messages::WebPageProxy::StartURLSchemeTask(m_urlSchemeHandler.identifier(), m_coreLoader->identifier(), m_request));
     55    m_urlSchemeHandler.page().send(Messages::WebPageProxy::StartURLSchemeTask({m_urlSchemeHandler.identifier(), m_coreLoader->identifier(), m_request}));
    5556}
    5657
  • trunk/Tools/ChangeLog

    r225336 r225358  
     12017-11-30  Alex Christensen  <achristensen@webkit.org>
     2
     3        WKURLSchemeHandler.request should include HTTPBody
     4        https://bugs.webkit.org/show_bug.cgi?id=180220
     5
     6        Reviewed by Brady Eidson.
     7
     8        * TestWebKitAPI/Tests/WebKitCocoa/_WKInputDelegate.mm:
     9        (-[FormSubmissionDelegate webView:startURLSchemeTask:]):
     10
    1112017-11-30  Carlos Alberto Lopez Perez  <clopez@igalia.com>
    212
  • trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/_WKInputDelegate.mm

    r224281 r225358  
    4646    EXPECT_TRUE(willSubmitFormValuesCalled);
    4747    EXPECT_STREQ(task.request.URL.absoluteString.UTF8String, "test:///formtarget");
    48     EXPECT_NULL(task.request.HTTPBody);
     48    EXPECT_NOT_NULL(task.request.HTTPBody);
     49    EXPECT_EQ(task.request.HTTPBody.length, 62u);
     50    EXPECT_STREQ(static_cast<const char*>(task.request.HTTPBody.bytes), "testname1=testvalue1&testname2=testvalue2&testname3=testvalue3");
    4951    done = true;
    5052}
Note: See TracChangeset for help on using the changeset viewer.