Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: f0fdd66b69572b69950fe883e8e00069199e4132
https://github.com/WebKit/WebKit/commit/f0fdd66b69572b69950fe883e8e00069199e4132
Author: Sam Weinig <[email protected]>
Date: 2026-10-11 (Sun, 11 Oct 2026)
Changed paths:
M Source/WebCore/Headers.cmake
M Source/WebCore/Sources.txt
M Source/WebCore/WebCore.xcodeproj/project.pbxproj
M Source/WebCore/page/DragController.cpp
M Source/WebCore/rendering/RenderImage.cpp
M Source/WebCore/rendering/RenderImage.h
M Source/WebCore/rendering/RenderReplaced.cpp
A Source/WebCore/rendering/ReplacedElementSizing.cpp
A Source/WebCore/rendering/ReplacedElementSizing.h
M Tools/TestWebKitAPI/Tests/WebKit/WKWebView/DragAndDropTests.mm
Log Message:
-----------
[Image Redux] Drag images should match the rendered image
https://bugs.webkit.org/show_bug.cgi?id=326297
Reviewed by Simon Fraser.
Refactors `RenderImage` sizing and placement so it can be used for drag images.
Adds `ReplacedElementSizing` which takes over the sizing which used to be
inline in `RenderReplaced::replacedContentRect`.
While in the neighborhood, also factors the `object-position` placement into
its own function, `placeConcreteObject`,
and removes some unnecessary checks of style().objectViewBox().isNone()
(`resolvedObjectViewBox` already returns std::nullopt
when there is no `object-view-box`).
In RenderImage, RenderImage::createNativeImageAsPainted() does the heavy
lifting, ensuring a faithful painting of
itself (modulo a maximum size constraint) into a NativeImage.
Tests: DragAndDropTests.DragImageForObjectFitFill
DragAndDropTests.DragImageForObjectFitContain
DragAndDropTests.DragImageForObjectFitCover
DragAndDropTests.DragImageForObjectFitNone
DragAndDropTests.DragImageForObjectPosition
DragAndDropTests.DragImageForSVGImageWithNaturalSize
DragAndDropTests.DragImageForSVGImageWithOnlyViewBox
DragAndDropTests.DragImageForSVGImageWithoutNaturalSize
DragAndDropTests.DragImageForObjectViewBox
DragAndDropTests.DragImageForImageOrientation
* Source/WebCore/Headers.cmake:
* Source/WebCore/Sources.txt:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/page/DragController.cpp:
* Source/WebCore/rendering/RenderImage.cpp:
* Source/WebCore/rendering/RenderImage.h:
* Source/WebCore/rendering/RenderReplaced.cpp:
* Source/WebCore/rendering/ReplacedElementSizing.cpp: Added.
* Source/WebCore/rendering/ReplacedElementSizing.h: Added.
* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/DragAndDropTests.mm:
Canonical link: https://commits.webkit.org/323399@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications