Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions presentation-timestamps.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,11 @@ In addition, the "long animation frame" timing exposes the hand-over time as its

The `PaintTimingMixin` attempts to clean up this confusion, by always providing two timestamps, one mandatory and interoperative, one optional and somewhat implementation-defined.

## User value
Real user monitoring (RUM) is an important part of the ecosystem of measuring performance, which is a big contributor to user experience.
This proposal makes the data fed to these solutions easier to understand and more consistent across entries,
making it easier for these solutions to explain performance regressions to the website authors, and thus improve them for users.

## `PaintTimingMixin`

`PaintTimingMixin` is a mixin that would be included in the interfaces representing all the relevant performance entries:
Expand Down Expand Up @@ -42,6 +47,10 @@ Currently paint timing's `startTime` and element timing's `renderTime` use the p
In this proposal, this would be explicit: both paint timing's `startTime` and element timing's `renderTime` would return something like `presentationTime || paintTime`.
This would keep compatibility with what's out there today, allowing progressive enhancement and returning the "best known value" from these attributes.

## Considered alternatives
An alternative to this would be keeping the status-quo, where presentation timings are included in some performance entries and not others,
Comment thread
noamr marked this conversation as resolved.
creating confusion for RUM solutions and requiring more processing of entries to find overlaps, as well as delicate interoperability issues.

## Conclusion

When exposing paint timings, we look for the right trade-off between "UX-precise" and "interoperable".
Expand Down