Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: a83c1665d5a6a45ac4bdcb55eaadb38c0b6a3b75
      
https://github.com/WebKit/WebKit/commit/a83c1665d5a6a45ac4bdcb55eaadb38c0b6a3b75
  Author: Brent Fulgham <bfulg...@apple.com>
  Date:   2025-04-17 (Thu, 17 Apr 2025)

  Changed paths:
    M Source/WebCore/Modules/beacon/NavigatorBeacon.cpp
    M Source/WebCore/loader/ImageLoader.cpp
    M Source/WebCore/loader/LinkLoader.cpp
    M Source/WebCore/page/DragController.cpp
    M Source/WebCore/platform/network/ResourceRequestBase.cpp
    M Source/WebCore/platform/network/ResourceRequestBase.h
    M Source/WebCore/platform/network/ResourceResponseBase.cpp
    M Source/WebCore/platform/network/ResourceResponseBase.h
    M Source/WebCore/platform/network/cf/ResourceRequest.h
    M Source/WebCore/platform/network/cf/ResourceResponse.h
    M Source/WebCore/platform/network/cocoa/ResourceRequestCocoa.mm
    M Source/WebCore/platform/network/curl/ResourceRequest.h
    M Source/WebCore/platform/network/curl/ResourceResponse.h
    M Source/WebCore/platform/network/soup/ResourceRequest.h
    M Source/WebCore/platform/network/soup/ResourceRequestSoup.cpp
    M Source/WebCore/platform/network/soup/ResourceResponse.h
    M Source/WebKit/WebProcess/WebPage/WebPage.cpp

  Log Message:
  -----------
  WebKit serialization tends to use copying when it should be moving
https://bugs.webkit.org/show_bug.cgi?id=291589
rdar://149327994

Reviewed by Pascoe.

ResourceRequestBase, RequestData, and ResourceResponse Data are serialized 
through IPC using
move operations, but because these classes only offer copy-based constructors 
they are passing
through the copy code path instead of moving the memory. In the case of 
strings, URLs, Vectors
of Strings, Maps of Strings this is more costly than necessary.

This patch adds the relevant constructors and adopts them in more places.

* Source/WebCore/Modules/beacon/NavigatorBeacon.cpp:
(WebCore::NavigatorBeacon::sendBeacon): Use move operation.
* Source/WebCore/loader/ImageLoader.cpp:
(WebCore::ImageLoader::updateFromElement): Ditto.
* Source/WebCore/loader/LinkLoader.cpp:
(WebCore::LinkLoader::preloadIfNeeded): Ditto.
* Source/WebCore/page/DragController.cpp:
(WebCore::DragController::performDragOperation): Ditto.
* Source/WebCore/platform/network/ResourceRequestBase.cpp:
(WebCore::ResourceRequestBase::setURL): Added.
* Source/WebCore/platform/network/ResourceRequestBase.h:
(WebCore::ResourceRequestBase::RequestData::RequestData): Added.
(WebCore::ResourceRequestBase::ResourceRequestBase): Added.
* Source/WebCore/platform/network/ResourceResponseBase.cpp:
(WebCore::ResourceResponseBase::ResourceResponseBase): Added.
(WebCore::ResourceResponseBase::setURL): Added.
* Source/WebCore/platform/network/ResourceResponseBase.h:
* Source/WebCore/platform/network/cf/ResourceRequest.h:
(WebCore::ResourceRequest::ResourceRequest): Add move constructor.
* Source/WebCore/platform/network/cf/ResourceResponse.h:
(WebCore::ResourceResponse::ResourceResponse): Ditto.
* Source/WebCore/platform/network/cocoa/ResourceRequestCocoa.mm:
(WebCore::ResourceRequest::fromResourceRequestData): Implemented move 
operations.
* Source/WebCore/platform/network/curl/ResourceRequest.h:
(WebCore::ResourceRequest::ResourceRequest): Add move constructor.
* Source/WebCore/platform/network/curl/ResourceResponse.h:
(WebCore::ResourceResponse::ResourceResponse): Ditto.
* Source/WebCore/platform/network/soup/ResourceRequest.h:
(WebCore::ResourceRequest::ResourceRequest): Ditto.
* Source/WebCore/platform/network/soup/ResourceRequestSoup.cpp:
(WebCore::ResourceRequest::fromResourceRequestData): Implemented move 
operations.
* Source/WebCore/platform/network/soup/ResourceResponse.h:
(WebCore::ResourceResponse::ResourceResponse): Add move constructor.
* Source/WebKit/WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::loadData): Use Move operators.
(WebKit::WebPage::loadAlternateHTML): Ditto.

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



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to