Branch: refs/heads/webkitglib/2.54
Home: https://github.com/WebKit/WebKit
Commit: 6002a6fffa6aebfc4b1e7eee135536325e280ba8
https://github.com/WebKit/WebKit/commit/6002a6fffa6aebfc4b1e7eee135536325e280ba8
Author: Nikolas Zimmermann <[email protected]>
Date: 2026-08-08 (Sat, 08 Aug 2026)
Changed paths:
M Source/WebCore/page/scrolling/coordinated/ScrollerCoordinated.cpp
M Source/WebCore/platform/adwaita/AdwaitaScrollbarPainter.cpp
M Source/WebCore/platform/adwaita/AdwaitaScrollbarPainter.h
M Source/WebCore/platform/adwaita/ScrollerImpAdwaita.h
M Source/WebCore/platform/graphics/Damage.h
Log Message:
-----------
Cherry-pick 318769@main (3ef900755534).
https://bugs.webkit.org/show_bug.cgi?id=321211
Unreviewed backport.
REGRESSION(314540@main): When damage propagation is turned on, scrollbars
are flickering
https://bugs.webkit.org/show_bug.cgi?id=321211
Reviewed by Carlos Garcia Campos and Fujii Hironori.
The scrollbar buffer is cleared and painted from scratch on every update,
so the
region that changes is the union of what the previous buffer painted and
what
this one paints. 314540@main reported only the latter, so the frame that
erases
the faded out overlay thumb propagated no damage and left the thumb on
screen.
It flickers rather than just leaving a stale thumb because an empty frame
damage
makes ThreadedCompositor::recordFrameDamage() skip setFrameDamage()
altogether,
and that is also what accumulates the frame into every swap chain target.
The
target being composited still repaints the thumb region, since its own
accumulated damage covers it, but the other targets never learn that region
changed and keep the old thumb. The thumb then comes and goes with the
target
that happens to be current...
This is only visible on WPE since 318729@main turned damage propagation
on by default there -- GTK was already affected.
This gives up 314540@main's optimization. Restoring it needs the previous
buffer's painted area tracked across updates, which is not worth it.
* Source/WebCore/page/scrolling/coordinated/ScrollerCoordinated.cpp:
(WebCore::ScrollerCoordinated::updateValues):
* Source/WebCore/platform/adwaita/AdwaitaScrollbarPainter.cpp:
(WebCore::AdwaitaScrollbarPainter::paint):
* Source/WebCore/platform/adwaita/AdwaitaScrollbarPainter.h:
* Source/WebCore/platform/adwaita/ScrollerImpAdwaita.h:
(WebCore::ScrollerImpAdwaita::paint):
* Source/WebCore/platform/graphics/Damage.h:
Canonical link: https://commits.webkit.org/318769@main
Canonical link: https://commits.webkit.org/317695.72@webkitglib/2.54
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications