bi-15 step 02 — Traces 4, 5, 8: click, scroll, rAF
Goal
Three traces that cross process and thread boundaries. Tracing is the primary instrument here; source reading alone cannot show you the hops.
Tasks
Trace 4 — click (after bi-10, bi-11)
- OS event → browser → compositor: can the compositor handle it alone?
- Hit testing: compositor-side vs main-thread. What decides?
- Dispatch, queued at input priority; capture/target/bubble; shadow retargeting.
- With a 300 ms task running, measure input delay and attribute it with LoAF.
- Dispatch a synthetic click and diff the trace against a real one (
fw-12).
Trace 5 — scroll (after bi-10)
- Compositor-driven path end to end; where is the scroll offset stored?
- Add a non-passive
wheellistener; re-trace; name exactly what changed. scrollevent delivery timing, and why it is structurally one frame late.
Trace 8 — requestAnimationFrame (after bi-11)
- Who runs the callback, and where does it sit relative to style/layout/paint?
- Relationship to
BeginFrameand vsync. - Observe a frame that produced no rendering. Explain why not.
Done when
- One frame followed across three processes using flow arrows
- Passive vs non-passive difference measured, not asserted
- Synthetic vs real click difference documented