Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Extend 'NavigationType' to include User Agent Launch #180

Open
bmathwig opened this issue May 20, 2022 · 13 comments
Open

Extend 'NavigationType' to include User Agent Launch #180

bmathwig opened this issue May 20, 2022 · 13 comments

Comments

@bmathwig
Copy link

One of the challenges we've had at Microsoft is measuring the performance impact of a cold start launch for a particular site. This particularly apparent in PWA scenarios where the browser engine is launched and terminated frequently, such as in the case of Electron or WebView applications. Under this scenario, the browser is in a non-optimal state and measurements in the structure wouldn't necessarily reflect that of a normal navigation and could produce a false positive in telemetry aggregates.

We propose extending the NavigationType enumeration with a new item, useragent_launch, in order to signal to a developer that this particular event is taken from a launch scenario rather than a traditional navigation scenario.

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

Chromium Status:
https://chromestatus.com/feature/5186950448283648

@amiyagupta
Copy link

I plan to discuss this at the next WebPerfWG call on June 9th.

@amiyagupta
Copy link

Discussion minutes

@yoavweiss you mentioned a follow-up to figure out how to map browser launch to HTML concepts, what would be the appropriate next step here?

@yoavweiss
Copy link
Contributor

@domenic - do you know if there's an HTML concept that we can map to that can distinguish between a navigation that was initiated alongside a browser startup vs. navigations that weren't?

@domenic
Copy link
Contributor

domenic commented Jun 10, 2022

There is no such concept.

@yoavweiss
Copy link
Contributor

@domenic - Any advice on how such a concept may be added?

@domenic
Copy link
Contributor

domenic commented Jun 13, 2022

I don't think I have any special guidance in this area, beyond the usual of trying to write specs in enough detail that they are interoperably implementable.

@marcelduran
Copy link

What are the expected effects on PerformanceNavigationTiming metrics for this new useragent_launch NavigationType? Will the start up time incurred from cold starting the user agent be included as a new metric? Or does TimeOrigin already account for this? In other words, will developers be able to measure the app start up duration, i.e. the time before startTime, redirectStart, etc?

@amiyagupta
Copy link

@marcelduran this proposal does not intend to change the definitions of the timings, however we are working on a separate follow-up proposal that does.

@bmathwig
Copy link
Author

Based on the conversation in whatwg/html#8150 about the change to "push" and "replace", it doesn't appear that we need to have a 1:1 mapping to an HTML historyHandling types for this change. We should be OK to add useragent_launch to the NavigationType enumeration.

@yoavweiss
Copy link
Contributor

@bmathwig - what did you have in mind in terms of spec language?

@dmurph
Copy link

dmurph commented Oct 26, 2022

We have been hearing from partners that they really want a 'launch time' as well - so they can measure the full e2e time between the user launching a shortcut or a file (for file handling w/ installed app) to, say, getting that file in the launchQueue or the page loading.

I'm guessing we would need to add more information to the navigation to add this in there?

@marcelduran
Copy link

@marcelduran this proposal does not intend to change the definitions of the timings, however we are working on a separate follow-up proposal that does.

Great @amiyagupta! Would you mind linking the proposal here once available?

@dmurph
Copy link

dmurph commented Dec 13, 2022

closing the loop a little bit - I made a request here to modify this proposal a tad: MicrosoftEdge/MSEdgeExplainers#614

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

7 participants