Intent to Prototype: User Agent Launch Type in PerformanceNavigationTiming

102 views
Skip to first unread message

Ben Mathwig

unread,
May 19, 2022, 4:36:42 PMMay 19
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 AMMay 20
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.
Reply all
Reply to author
Forward
0 new messages