perf(runner): scrollUntilVisible strides back to back
Merged
OK
10d ago+48+48+01234567890123456789-8-8-0123456789
What and why
scrollUntilVisiblesleptPOLL_INTERVAL_MS(100ms) after every swipe. A long scroll spent most of its time there (~435 strides invirtualized-table).- The sleep was hiding a race: Playwright's
mouse.wheelresolves before the scroll reaches script, so an immediate read can see the pre-scroll DOM. - Fix at the source: the web engine's swipe now resolves after a rendered frame (
wheelRendered, rAF then a task), and the runner reads again right away. - The fixture's raw
mouse.wheelis unchanged.
Verified
Ran it locally: yes
apps/web-benchmark,e2e run --workers 1, 2 runs each. All 91 tests pass.
| main | this branch | |
|---|---|---|
| serial | 117.0s / 117.9s | 89.0s / 89.3s |
- Mobile shares the loop:
apps/mobile-benchmarktests/flows-lists.e2e.tson an iOS 26.5 sim passes 7/7 on both, 244s on main vs 232s here (row 512 list: 155s vs 146s).