Bug 309019
| Summary: | REGRESSION(308215@main): [iOS] imported/w3c/web-platform-tests/dom/events/scrolling/scrollend-event-fired-for-programmatic-scroll.html?include=root-scrollBy-auto is a flaky text failure | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | Diego De La Toba <d_delatoba> |
| Component: | Scrolling | Assignee: | Diego De La Toba <d_delatoba> |
| Status: | NEW | ||
| Severity: | Normal | CC: | simon.fraser, webkit-bot-watchers-bugzilla, webkit-bug-importer |
| Priority: | P2 | Keywords: | InRadar |
| Version: | WebKit Nightly Build | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| See Also: | https://bugs.webkit.org/show_bug.cgi?id=311235 | ||
Diego De La Toba
imported/w3c/web-platform-tests/dom/events/scrolling/scrollend-event-fired-for-programmatic-scroll.html?include=root-scrollBy-auto is a flaky text failure on iOS
HISTORY:
https://results.webkit.org/?suite=layout-tests&test=imported%2Fw3c%2Fweb-platform-tests%2Fdom%2Fevents%2Fscrolling%2Fscrollend-event-fired-for-programmatic-scroll.html%3Finclude%3Droot-scrollBy-auto
DIFF:
--- /Volumes/Data/worker/Apple-iOS-26-Simulator-Release-WK2-Tests/build/layout-test-results/imported/w3c/web-platform-tests/dom/events/scrolling/scrollend-event-fired-for-programmatic-scroll_include=root-scrollBy-auto-expected.txt
+++ /Volumes/Data/worker/Apple-iOS-26-Simulator-Release-WK2-Tests/build/layout-test-results/imported/w3c/web-platform-tests/dom/events/scrolling/scrollend-event-fired-for-programmatic-scroll_include=root-scrollBy-auto-actual.txt
@@ -1,3 +1,3 @@
-PASS Tests scrollend event for calling scrollBy with behavior 'auto' on root.
+FAIL Tests scrollend event for calling scrollBy with behavior 'auto' on root. assert_equals: HTML.scrollBy scrollLeft expected 200 but got 0
DIFF URL:
https://build.webkit.org/results/Apple-iOS-26-Simulator-Release-WK2-Tests/308467%40main%20(1971)/imported/w3c/web-platform-tests/dom/events/scrolling/scrollend-event-fired-for-programmatic-scroll_include=root-scrollBy-auto-pretty-diff.html
REPRODUCTION:
I was able to reproduce on iOS 26.2 with the following:
run-webkit-tests --no-build --no-retry --no-show-results --exit-after-n-failures=1 --expect-pass --iterations=1000 --force --ios-simulator --release imported/w3c/web-platform-tests/dom/events/scrolling/scrollend-event-fired-for-programmatic-scroll.html
I am going to mark expectations as pass fail while this pends investigation
| Attachments | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |
Radar WebKit Bug Importer
<rdar://problem/171569422>
Diego De La Toba
Pull request: https://github.com/WebKit/WebKit/pull/59750
EWS
Test gardening commit 308493@main (81731012a37e): <https://commits.webkit.org/308493@main>
Reviewed commits have been landed. Closing PR #59750 and removing active labels.
Simon Fraser (smfr)
This happens because we get into WebPage::updateVisibleContentRects() when ViewUpdateDispatcher::visibleContentRectUpdate() fires, which is unpredictable, and that does not go through the logic in RemoteScrollingCoordinator::scrollUpdateForNode() that suppresses user scrolls while a programmatic scroll response is pending.
The base issue here is that we lose the user/programmatic distinction for root scroller changes coming in via VisibleContentRects on iOS.
Simon Fraser (smfr)
Even if we make ViewUpdateDispatcher more deterministic (pulling update rects at the start of each rendering update), things are still non-deterministic because of how the UI process batches `-[WKWebView _updateVisibleContentRects]` on a per CoreAnimation commit basis.