-
Notifications
You must be signed in to change notification settings - Fork 27
Description
see : https://datatracker.ietf.org/doc/html/draft-west-ua-client-hints-00#section-2
Examples :
In polyfill.io the User Agent string is used to determine the required polyfills to make a website work in specific browsers. (https://polyfill.io/v3/polyfill.js?features=fetch)
At Mr. Henry we use the User Agent string to determine which Javascript and CSS bundles will work correctly. We also split error reporting so that errors from old or obscure browsers do not cause signal overload for product teams. (change your UA to something older like IE 11 : https://www.mrhenry.be/supportdetails/)
The shared principle is that the underlying engine capabilities are important.
We do not care about the device, browser brand,...
Getting this right means that we can support more users while also saving bandwidth, cpu cycles, ...
One major challenge here are the non Safari browsers and webviews on iOS and Chromium based browsers like Edge, Samsung Internet, Opera, ...
A CriOS UA string (Chrome on iOS) does not contain this information today :
Mozilla/5.0 (iPhone; CPU iPhone OS 14_8 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) CriOS/92.0.4515.90 Mobile/15E148 Safari/604.1
CriOS/92.0.4515.90is meaningless for this use case as it has no correlation to the underlying WebKit version that is actually used.Safari/604.1has been frozen since Safari 11.
CriOS/92.0.4515.90 would fit the current definition of brand + full version but it wouldn't be useful (or at least not for me :) )
We could infer it from other parts and/or keep track of CriOS versions in a table. But this process is error prone and doesn't scale well because there are a lot of WebViews embedded in Apps.
My concern is that brand and full version are too vague in the current specification.
Maybe these values are not fit for my purpose?
But should it then be clarified that these values do not need to have any correlation with the browser engine?
Is there another header more appropriate for reliable engine capability detection?