Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: def045dbb011ef2b602499998b7de710632d9ca6
https://github.com/WebKit/WebKit/commit/def045dbb011ef2b602499998b7de710632d9ca6
Author: Matt Woodrow <[email protected]>
Date: 2025-10-25 (Sat, 25 Oct 2025)
Changed paths:
M Source/WebCore/platform/graphics/GraphicsLayer.h
M Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp
Log Message:
-----------
theverge.com: Subscription banner doesn’t always appear, causing the page to
become unusable.
https://bugs.webkit.org/show_bug.cgi?id=301317
rdar://157773745
Reviewed by Simon Fraser.
This is a race condition, where the UI process sends an async scroll update, but
the page has mutated and is no longer scrollable when it arrives.
The next update from the UI process attempts to fix this, but since it's a
syncPosition update, it doesn't clear the existing (and invalid) scroll
position.
syncPosition GraphicsLayer updates should mutate the layer without marking it as
changed (to prevent it being sent back to the UI-process from where it
originated). They also had the side effect of not overriding existing
approximatePosition updates, which seems to be unexpected. This makes the
behavior match setPosition, where it clears any prior approximate position
updates.
* Source/WebCore/platform/graphics/GraphicsLayer.h:
(WebCore::GraphicsLayer::syncPosition):
* Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::syncPosition):
Canonical link: https://commits.webkit.org/302159@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications