Skip to content

Soft Navigations and Interaction Contentful Paint #687

Description

@shaseley

WebKittens

No response

Title of the proposal

Soft Navigations and Interaction Contentful Paint

URL to the spec

https://wicg.github.io/soft-navigations/

URL to the spec's repository

https://github.com/WICG/soft-navigations

Issue Tracker URL

No response

Explainer URL

No response

TAG Design Review URL

w3ctag/design-reviews#1235

Mozilla standards-positions issue URL

mozilla/standards-positions#1423

WebKit Bugzilla URL

No response

Radar URL

No response

Description

This proposal is for two new PerformanceEntry types, InteractionContentfulPaint and PerformanceSoftNavigation, which together enable developers to measure the performance of "soft" navigations (JS-driven navigations in Single Page Apps (SPAs)). LargestContentfulPaint (LCP) enables developers to measure performance of follow-up/same-document navigations on MPAs, but a long-standing gap in the performance timeline has been measuring follow-up navigations on SPAs.

InteractionContenfulPaint is a performance entry that measures the largest contentful paint caused by an interaction, which on its own is useful as a responsiveness metric. This proposal tracks the effects of interactions across tasks, enabling attribution of JavaScript-initiated DOM modifications and subsequent paints to interactions. New interaction-attributed largest contentful paints are emitted as InteractionContentfulPaint entries (analogous to LCP).

Some interactions also cause a same-document navigation (via JavaScript or back/forward buttons), and those with interaction-attributable paints are classified as soft navigations, causing a PerformanceSoftNavigation entry to be emitted. The entry has a method to get most recent largest InteractionContentPaint to get the equivalent of LCP for the soft navigation.

Note: discussions around this proposal have been taking place at WebPerfWG. Chrome has also run several origin trials, with positive feedback. Feedback from the discussions and origin trials have helped inform the current shape of this.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions