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)

  1. OS event → browser → compositor: can the compositor handle it alone?
  2. Hit testing: compositor-side vs main-thread. What decides?
  3. Dispatch, queued at input priority; capture/target/bubble; shadow retargeting.
  4. With a 300 ms task running, measure input delay and attribute it with LoAF.
  5. Dispatch a synthetic click and diff the trace against a real one (fw-12).

Trace 5 — scroll (after bi-10)

  1. Compositor-driven path end to end; where is the scroll offset stored?
  2. Add a non-passive wheel listener; re-trace; name exactly what changed.
  3. scroll event delivery timing, and why it is structurally one frame late.

Trace 8 — requestAnimationFrame (after bi-11)

  1. Who runs the callback, and where does it sit relative to style/layout/paint?
  2. Relationship to BeginFrame and vsync.
  3. 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