Intent to Prototype: User Agent Launch Type in PerformanceNavigationTiming

366 views
Skip to first unread message

Ben Mathwig

unread,
May 19, 2022, 4:36:42 PM5/19/22
to blin...@chromium.org

Contact emails

bema...@microsoft.com


Explainer

https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/main/PerformanceNavigationTiming%20for%20User%20Agent%20Launch/explainer.md


Specification

https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/main/PerformanceNavigationTiming%20for%20User%20Agent%20Launch/explainer.md


Summary

Adds a new value for PerformanceNavigationTiming.type, 'useragent_launch', to help measure the cold start scenario during page load. This allows a web developer to measure the performance of their application code compared to the cost of browser initialization tasks. This is a pain point for pinned PWAs or WebView apps that will often require a cold start of the user agent.

 

 

Blink component

Blink>PerformanceAPIs>NavigationTiming


Motivation

Despite the variety of performance measurements available through the current API, it's difficult to discern from the NavigationType whether the measurements reflect those of a regular navigation under normal browsing or of one where the browser is in a non-optimal performance state, such as a cold start. A browser launch is one of the most expensive performance scenarios commonly encountered in typical PWA and WebView patterns. Our proposal seeks to create a new value for the NavigationType enum to differentiate this condition from others in measurements of web application performance. Modifying the NavigationType to include state for a user agent launch (i.e. useragent_launch) will enable engineers to determine whether a given measurement is taken from a launch scenario, enabling greater differentiation of application performance from browser performance in scenarios where the browser engine is launched and terminated frequently. Examples include: Electron apps, system WebViews, or other application scenarios where the browser is relatively short-lived or commonly launched from a terminated state.

 

 

Initial public proposal

https://discourse.wicg.io/t/proposal-user-agent-launch-type-in-performancenavigationtiming/5875


TAG review




TAG review status

Pending


Risks




Interoperability and Compatibility



Gecko: No signal

WebKit: No signal

Web developers: No signals

Other signals:


WebView application risks

Does this intent deprecate or change behavior of existing APIs, such that it has potentially high risk for Android WebView-based applications?




Debuggability




Is this feature fully tested by web-platform-tests?

No


Flag name

MsUserAgentLaunchNavType


Requires code in //chrome?

False


Estimated milestones

M105




Link to entry on the Chrome Platform Status

https://chromestatus.com/feature/5186950448283648

Yoav Weiss

unread,
May 20, 2022, 1:22:20 AM5/20/22
to Ben Mathwig, blin...@chromium.org
Hey Ben! Thanks for working on this! This seems like an important dimension to potentially split metrics on.

On Thu, May 19, 2022 at 10:36 PM 'Ben Mathwig' via blink-dev <blin...@chromium.org> wrote:

Contact emails

bema...@microsoft.com


Explainer

https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/main/PerformanceNavigationTiming%20for%20User%20Agent%20Launch/explainer.md


Specification

https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/main/PerformanceNavigationTiming%20for%20User%20Agent%20Launch/explainer.md


Summary

Adds a new value for PerformanceNavigationTiming.type, 'useragent_launch', to help measure the cold start scenario during page load. This allows a web developer to measure the performance of their application code compared to the cost of browser initialization tasks. This is a pain point for pinned PWAs or WebView apps that will often require a cold start of the user agent.

 

 

Blink component

Blink>PerformanceAPIs>NavigationTiming


Motivation

Despite the variety of performance measurements available through the current API, it's difficult to discern from the NavigationType whether the measurements reflect those of a regular navigation under normal browsing or of one where the browser is in a non-optimal performance state, such as a cold start. A browser launch is one of the most expensive performance scenarios commonly encountered in typical PWA and WebView patterns. Our proposal seeks to create a new value for the NavigationType enum to differentiate this condition from others in measurements of web application performance. Modifying the NavigationType to include state for a user agent launch (i.e. useragent_launch) will enable engineers to determine whether a given measurement is taken from a launch scenario, enabling greater differentiation of application performance from browser performance in scenarios where the browser engine is launched and terminated frequently. Examples include: Electron apps, system WebViews, or other application scenarios where the browser is relatively short-lived or commonly launched from a terminated state.

 

 

Initial public proposal

https://discourse.wicg.io/t/proposal-user-agent-launch-type-in-performancenavigationtiming/5875


Might be worthwhile to also file an issue on https://github.com/w3c/navigation-timing/issues
With my WebPerfWG chair hat on, I'd love to have you over to discuss this :)




TAG review




TAG review status

Pending


Risks




Interoperability and Compatibility



Gecko: No signal

WebKit: No signal

Web developers: No signals

Other signals:


WebView application risks

Does this intent deprecate or change behavior of existing APIs, such that it has potentially high risk for Android WebView-based applications?




Debuggability




Is this feature fully tested by web-platform-tests?

No


Flag name

MsUserAgentLaunchNavType


Requires code in //chrome?

False


Estimated milestones

M105




Link to entry on the Chrome Platform Status

https://chromestatus.com/feature/5186950448283648

--
You received this message because you are subscribed to the Google Groups "blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/DM6PR00MB0751A324F65AAAAD9544C2028ED09%40DM6PR00MB0751.namprd00.prod.outlook.com.

Dan Murphy

unread,
Oct 27, 2022, 6:48:08 PM10/27/22
to blink-dev, yoav...@chromium.org, blin...@chromium.org, Ben Mathwig
Hello! I wanted to mention that we have an partner that is also really interested in this API, as long as providing a 'launch time' timestamp so they can measure the full e2e time it takes to launch the app, either through desktop shortcut or things like file handlers.
Reply all
Reply to author
Forward
0 new messages