Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 65542b8e3e3178619c500ea71b5322052ce9e41f
https://github.com/WebKit/WebKit/commit/65542b8e3e3178619c500ea71b5322052ce9e41f
Author: Sammy Gill <[email protected]>
Date: 2026-07-20 (Mon, 20 Jul 2026)
Changed paths:
A LayoutTests/fast/repaint/css-zoom-iframe-partial-repaint-expected.txt
A LayoutTests/fast/repaint/css-zoom-iframe-partial-repaint.html
M LayoutTests/platform/win/TestExpectations
M Source/WebCore/rendering/RenderView.cpp
Log Message:
-----------
[EvaluationTimeZoom] Fix css/css-viewport/zoom/iframe-zoom-nested.html
https://bugs.webkit.org/show_bug.cgi?id=314669
rdar://problem/176918714
Reviewed by Simon Fraser.
In 302097@main we started to make CSS Zoom affect iframes by making
frameScaleFactor() return the used zoom value from style for iframes.
This allowed us to progress various testcases but certain subtests in
iframe-zoom-nested.html were still failing.
One problem that the WPT showcases is that we were not correctly
considering this when computing the damaged rect in
RenderView::repaintViewRectangle
and we would only end up painting a portion of the iframes contents. To
fix this, we need to apply the frame scale factor to the damage rect
after we have translated it into the coordinate space of the view so
that it properly covers the contents that were changed.
One thing to note is that I could not get this failure to reproduce
locally with WKTR but was able to successfully repro it with the WPT
runner. Loading up the testcase in Safari/MiniBrowser also showcased
some flakiness so it seems like there are some scenarios in which we
already recover from this presumably because we end up repainting the
entire iframe anyway.
I attempted to create a less flaky version of the WPT but was unable to
do so successfully. I did manage to create some varaint however by
tracking the repaint rects.
* LayoutTests/fast/repaint/css-zoom-iframe-partial-repaint.html: Added.
Aftorementioned testcase that always fails without our change. Note that
this covers the branch where we do not have an accumulated repaint
region.
Canonical link: https://commits.webkit.org/317541@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications