[webkit-changes] [WebKit/WebKit] 854716: Elements with `position: sticky` jitter inside a c...
Simon Fraser
noreply at github.com
Sun Nov 13 08:51:02 PST 2022
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 854716970c0750581f75ee43bb91578d9ac52451
https://github.com/WebKit/WebKit/commit/854716970c0750581f75ee43bb91578d9ac52451
Author: Simon Fraser <simon.fraser at apple.com>
Date: 2022-11-13 (Sun, 13 Nov 2022)
Changed paths:
A LayoutTests/compositing/clipping/sticky-inside-overflow-x-clip-expected.txt
A LayoutTests/compositing/clipping/sticky-inside-overflow-x-clip.html
A LayoutTests/platform/gtk/compositing/clipping/sticky-inside-overflow-x-clip-expected.txt
A LayoutTests/platform/ios-wk2/compositing/clipping/sticky-inside-overflow-x-clip-expected.txt
A LayoutTests/platform/mac-wk1/compositing/clipping/sticky-inside-overflow-x-clip-expected.txt
M Source/WebCore/platform/graphics/LayoutRect.h
M Source/WebCore/rendering/RenderLayerCompositor.cpp
Log Message:
-----------
Elements with `position: sticky` jitter inside a container with `overflow-x: clip;`
https://bugs.webkit.org/show_bug.cgi?id=247130
rdar://101645570
Reviewed by Alan Baradlay.
`overflow:clip` on just one axis can output a clip rect which is infinite in just
x or y. In that case, we'd create a clipping layer with large floating point
geometry values which, when moved around by the scrolling tree, had low precision
resulting in visible stutters.
Fix by shrinking the infinite rect values by a factor of 16, which is sufficient
to provide enough device pixel precision for 3x displays.
* LayoutTests/compositing/clipping/sticky-inside-overflow-x-clip-expected.txt: Added.
* LayoutTests/compositing/clipping/sticky-inside-overflow-x-clip.html: Added.
* LayoutTests/platform/gtk/compositing/clipping/sticky-inside-overflow-x-clip-expected.txt: Added.
* LayoutTests/platform/ios-wk2/compositing/clipping/sticky-inside-overflow-x-clip-expected.txt: Added.
* LayoutTests/platform/mac-wk1/compositing/clipping/sticky-inside-overflow-x-clip-expected.txt: Added.
* Source/WebCore/platform/graphics/LayoutRect.h:
* Source/WebCore/rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::computeAncestorClippingStack const):
Canonical link: https://commits.webkit.org/256618@main
More information about the webkit-changes
mailing list