perf(web): wheel a node already under aim without hovering it

Merged
OK
9d ago
+72-8

What and why

  • An element swipe used to hover() before every wheel: an actionability wait and a pointer move, every scrollUntilVisible stride.
  • Now one page-side read (wheelAim in packages/web/src/support.ts) picks the path:
    • pointer: the node is already :hover, so it wheels where the pointer is.
    • centre: the hit target at the node's centre is inside it, so it moves there and wheels.
    • blocked (covered, off screen, in an iframe): hover() as before, so actionability errors are unchanged.

Verified

Ran it locally: yes

  • apps/web-benchmark, e2e run --workers 1, 2 runs each. All 91 tests pass.
mainthis branch
serial117.0s / 117.9s99.8s / 100.4s