Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: b07ce30ae0052f005a29fb74c470e2f63f3a1144
https://github.com/WebKit/WebKit/commit/b07ce30ae0052f005a29fb74c470e2f63f3a1144
Author: Ryan Reno <[email protected]>
Date: 2026-07-17 (Fri, 17 Jul 2026)
Changed paths:
M Source/WebCore/animation/AnimationTimelinesController.cpp
M Source/WebCore/animation/AnimationTimelinesController.h
M Source/WebCore/animation/KeyframeEffect.h
M Source/WebCore/dom/Document.cpp
M Source/WebCore/dom/Document.h
M Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTree.serialization.in
M Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTreeCommitBundle.h
M Source/WebKit/UIProcess/API/Cocoa/WKWebViewInternal.h
M Source/WebKit/UIProcess/API/ios/WKWebViewIOS.mm
M Source/WebKit/WebProcess/WebPage/Cocoa/WebPageCocoa.mm
M Tools/TestWebKitAPI/Tests/WebKit/WKWebView/ios/WKScrollViewTests.mm
Log Message:
-----------
REGRESSION(308209@main): okaymay.be scroll-driven animation is jittery
https://bugs.webkit.org/show_bug.cgi?id=319523
rdar://179479959
Reviewed by Simon Fraser and Antoine Quint.
Unaccelerated scroll-driven animations must do layout on the main frame for
every frame of scrolling. When
we are upadating obscured insets interactively, we throttle visible content
rect updates and thus throttle
updates that the scroll-driven animation needs to compute the next frame of the
animation. When we finally do
send an update, the animated layer jumps ahead causing a visible jitter.
To avoid this we skip the power optimization and send unthrottled visible
content rect updates to the WebContent
process. The iOS power benchmark measures a neutral result so we still get the
power benefit on content that does
not contain unaccelerated scroll-driven animations.
Test: Tools/TestWebKitAPI/Tests/WebKit/WKWebView/ios/WKScrollViewTests.mm
* Source/WebCore/animation/AnimationTimelinesController.cpp:
(WebCore::AnimationTimelinesController::hasProgressBasedScrollDrivenAnimation
const):
* Source/WebCore/animation/AnimationTimelinesController.h:
* Source/WebCore/animation/KeyframeEffect.h:
* Source/WebCore/dom/Document.cpp:
(WebCore::Document::hasProgressBasedScrollDrivenAnimation const):
* Source/WebCore/dom/Document.h:
* Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTree.serialization.in:
* Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTreeCommitBundle.h:
* Source/WebKit/UIProcess/API/Cocoa/WKWebViewInternal.h:
* Source/WebKit/UIProcess/API/ios/WKWebViewIOS.mm:
(-[WKWebView _didCommitLayerTree:mainFrameData:pageData:transactionID:]):
(-[WKWebView _updateVisibleContentRects]):
* Source/WebKit/WebProcess/WebPage/Cocoa/WebPageCocoa.mm:
(WebKit::WebPage::willCommitMainFrameData):
* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/ios/WKScrollViewTests.mm:
(TestWebKitAPI::(WKScrollViewTests,
VisibleContentRectUpdatesDuringInteractiveObscuredInsetsChangeAreNotThrottledForMainThreadScrollDrivenAnimation)):
(TestWebKitAPI::(WKScrollViewTests,
ScrollDrivenAnimationTracksScrollDuringInteractiveObscuredInsetsChange)):
Canonical link: https://commits.webkit.org/317404@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications