Hi Brendan,
Permissions-Policy: unload=()
Now on your main question, onload is not a good metric for this as that does not include bfcache navigations.
When the bfcache is used it isn't actually a real navigation - it's actually a restore of a previous page from an in-memory saved version of the page. Therefore, the web performance metrics often don't fire (and in some cases don't make sense!) for bfcache page views.
However, CrUX takes the view that this is a technical issue and to the user it IS a navigation. This however requires us to decide on what metrics to report.
For FCP and LCP we measure the restore time.
For CLS, FID, and INP we reset these and measure any future CLS, FID, and INP.
So for the Core Web Vitals metrics we handle these in CrUX as per the piece you quoted.
For other metrics we haven't defined how these should be measured for bfcache restores. This includes the older metrics like TTFB and onload. There is an argument that they should be reported as 0 (that's what the web-vitals.js library does for TTFB btw) but this is not something CrUX currently does.
In fact with more bfcache restores, that means you are not getting actual page loads which for a back or forward navigation would likely be very fast ones as all the resources are likely in the cache. So metrics like onload may well regress because they are losing some of their faster loads to the bfcache loads (which are no included in onload measurements). Sp what you're seeing is not unexpected.
So your best bet to measure bfcache impact is to look at LCP times. Ideally using RUM so you can measure how many bfcache page restores you get and also the different LCP times for those compared to other page restores.
Thanks,
Barry