In this example (trace) of an attribution object from web-vitals.js, there's one LoAF entry whose firstUIEventTimestamp value is 503383.2999999523. However, the first event entry in the frame, a pointerdown event, has a startTime of 502891.89999997616. The firstUIEventTimestamp in LoAF is actually much closer to—but not quite the same as—the pointerdown's processingStart time of 503383.59999996424.
The explainer describes firstUIEventTimestamp as:
// Time of the first UI event (mouse/keyboard etc.) to be handled during the course of this
// frame. The timestamp is the event's
// timestamp, i.e. the time it was queued
// which could be long before it was processed.
So I'd expect it to be exactly 502891.89999997616, the startTime of the first event entry.
In this example (trace) of an attribution object from web-vitals.js, there's one LoAF entry whose firstUIEventTimestamp value is
503383.2999999523. However, the first event entry in the frame, a pointerdown event, has a startTime of502891.89999997616. The firstUIEventTimestamp in LoAF is actually much closer to—but not quite the same as—the pointerdown's processingStart time of503383.59999996424.The explainer describes firstUIEventTimestamp as:
So I'd expect it to be exactly
502891.89999997616, the startTime of the first event entry.