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