Bug 231754 - Repaint issue with animating SVG inside <img> with object-fit
Summary: Repaint issue with animating SVG inside <img> with object-fit
Status: NEW
Alias: None
Product: WebKit
Classification: Unclassified
Component: Layout and Rendering (show other bugs)
Version: Safari Technology Preview
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Nobody
URL:
Keywords: BrowserCompat, InRadar
Depends on:
Blocks:
 
Reported: 2021-10-14 12:04 PDT by Simon Fraser (smfr)
Modified: 2023-12-31 22:26 PST (History)
7 users (show)

See Also:


Attachments
rendering in safari (260.26 KB, image/png)
2022-12-22 17:45 PST, Karl Dubost
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Simon Fraser (smfr) 2021-10-14 12:04:32 PDT
https://codepen.io/benfrain/pen/PoKPbPR shows a repaint issue that is related to object-fit on the <img>
Comment 1 Simon Fraser (smfr) 2021-10-14 12:16:33 PDT
Partial fix:

diff --git a/Source/WebCore/rendering/RenderImage.cpp b/Source/WebCore/rendering/RenderImage.cpp
index 4e89c2e80b7801407d8eea0ae06c349666125012..5c8730151f09b77a03da0e02a38d1ccc5d792c73 100644
--- a/Source/WebCore/rendering/RenderImage.cpp
+++ b/Source/WebCore/rendering/RenderImage.cpp
@@ -371,7 +371,7 @@ void RenderImage::repaintOrMarkForLayout(ImageSizeChangeType imageSizeChange, co
         updateInnerContentRect();
     }
 
-    LayoutRect repaintRect = contentBoxRect();
+    LayoutRect repaintRect = replacedContentRect();
     if (rect) {
         // The image changed rect is in source image coordinates (pre-zooming),
         // so map from the bounds of the image to the contentsBox.


There's a bad initial repaint, and this needs tests.
Comment 2 Radar WebKit Bug Importer 2021-10-21 12:05:17 PDT
<rdar://problem/84517855>
Comment 3 Karl Dubost 2022-12-22 17:45:39 PST
Created attachment 464167 [details]
rendering in safari

This shows the remanent image in the background
Comment 4 Ahmad Saleem 2023-12-31 22:26:27 PST
Can we pick tests from these two blink commit, which did similar looking changes in 'RenderImage'?

https://src.chromium.org/viewvc/blink?revision=180015&view=revision & https://chromium.googlesource.com/chromium/blink/+/889169f1b0b5ef4fb9e126fea64c48d68f584456

I haven't checked whether they fail currently or not.