Files
orca/tests
Kelvin AmoabaandNeil 355e35b5f2 perf(tab-bar): scrolling the tab strip no longer re-renders every tab (#24240)
* perf(tab-bar): move scroll thumb position out of TabBar state

The thumb moved every scroll and resize frame, re-rendering every tab with it.

Fixes #24012

* perf(tab-bar): reuse the strip's resize observers for the scroll thumb

The thumb had its own observer on every tab, on top of the tab bar's.

* test(e2e): run the tab strip scroll spec without waiting on frames

CI's hidden window draws about one frame a second, so real wheel input timed out. Also drops Reflect.get for the anti-slop audit.

* test(tab-bar): pin that a re-render leaves the scroll thumb's geometry alone

The thumb's width and transform live outside React, so the element must survive a
hover re-render with its geometry intact.

* test(e2e): set the tab strip scroll start after the strip stops retitling

Opening the tabs leaves the strip pinned to its end, and the scroll event that
releases that pin only lands with the next frame - about a second in CI's hidden
window. A tab retitling inside that window re-pinned the strip to the end, so the
wheel sweep would start at an edge and every step would flip the edge flags.

---------

Co-authored-by: Neil <neil@stably.ai>
2026-10-05 16:20:52 -07:00
..