[webkit-changes] [WebKit/WebKit] 7ab6aa: [Curl] Reduce unnecessary SharedBuffer creation by...

Kenji Shukuwa noreply at github.com
Tue Oct 3 13:18:11 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 7ab6aab9c1b7e6f09edf3d7ceed204070132a7ce
      https://github.com/WebKit/WebKit/commit/7ab6aab9c1b7e6f09edf3d7ceed204070132a7ce
  Author: Kenji Shukuwa <kenji.shukuwa at open-tec.co.jp>
  Date:   2023-10-03 (Tue, 03 Oct 2023)

  Changed paths:
    M Source/WebCore/platform/network/curl/CurlMultipartHandle.cpp
    M Source/WebCore/platform/network/curl/CurlMultipartHandle.h
    M Source/WebCore/platform/network/curl/CurlMultipartHandleClient.h
    M Source/WebCore/platform/network/curl/CurlRequest.cpp
    M Source/WebCore/platform/network/curl/CurlRequest.h
    M Source/WebCore/platform/network/curl/CurlRequestClient.h
    M Source/WebKit/NetworkProcess/curl/NetworkDataTaskCurl.cpp
    M Source/WebKit/NetworkProcess/curl/NetworkDataTaskCurl.h
    M Tools/TestWebKitAPI/Tests/WebCore/curl/CurlMultipartHandleTests.cpp

  Log Message:
  -----------
  [Curl] Reduce unnecessary SharedBuffer creation by making CurlMultipartHandle::didReceiveMessage take std::span<uint8_t>
https://bugs.webkit.org/show_bug.cgi?id=262472

Reviewed by Fujii Hironori.

Currently, a SharedBuffer is generated in CurlRequest::didReceiveDataCallback
when receiving data from libcurl. However, if CurlRequest::didReceiveData
performs CURL_WRITEFUNC_PAUSE processing, this SharedBuffer will be
discarded without being used.

Also, CurlMultipartHandle::didReceiveMessage performs a SharedBuffer to
Vector conversion. This is a wasteful data conversion.

For this reason, avoid converting to SharedBuffer at the time of
CurlRequest::didReceiveDataCallback.

* Source/WebCore/platform/network/curl/CurlMultipartHandle.cpp:
(WebCore::CurlMultipartHandle::didReceiveMessage):
(WebCore::CurlMultipartHandle::processContent):
* Source/WebCore/platform/network/curl/CurlMultipartHandle.h:
* Source/WebCore/platform/network/curl/CurlMultipartHandleClient.h:
* Source/WebCore/platform/network/curl/CurlRequest.cpp:
(WebCore::CurlRequest::didReceiveData):
(WebCore::CurlRequest::didReceiveDataFromMultipart):
(WebCore::CurlRequest::didReceiveDataCallback):
* Source/WebCore/platform/network/curl/CurlRequest.h:
* Source/WebCore/platform/network/curl/CurlRequestClient.h:
* Source/WebKit/NetworkProcess/curl/NetworkDataTaskCurl.cpp:
(WebKit::NetworkDataTaskCurl::curlDidReceiveData):
* Source/WebKit/NetworkProcess/curl/NetworkDataTaskCurl.h:
* Tools/TestWebKitAPI/Tests/WebCore/curl/CurlMultipartHandleTests.cpp:
(TestWebKitAPI::Curl::toSpan):
(TestWebKitAPI::Curl::TEST):

Canonical link: https://commits.webkit.org/268801@main




More information about the webkit-changes mailing list