Request for deprecation trial (I2E): Sending the full User-Agent string after User-Agent reduction

552 views
Skip to first unread message

Ali Beyad

unread,
Jan 25, 2022, 9:40:15 AM1/25/22
to blink-dev, vict...@chromium.org, Mike Taylor, jadek...@chromium.org

Contact emails

abe...@chromium.org, vict...@chromium.org, jadek...@chromium.org, mike...@chromium.org


Explainer

None


Specification

None


Summary

Before we proceed with User-Agent (UA) reduction, we want to allow sites that are not yet ready for the reduced UA string to get the full UA string, exposed in HTTP requests and in navigator.userAgent, navigator.appVersion, and navigator.platform, through a deprecation origin trial.  


Design Doc

https://docs.google.com/document/d/1d-K43rzfDGxNM4H6Yzh5lV08KJwLsae06i4Q0A8snME


Blink component

Privacy>Fingerprinting


TAG review

https://github.com/w3ctag/design-reviews/issues/640


TAG review status

TBD, but we have positive signals thus far.


Risks


Interoperability and Compatibility

The compatibility risk is low, as we’re planning to send the full UA string in the deprecation origin trial, which is an existing behavior before UA reduction that sites already know how to parse. The deprecation origin trial is there simply to allow sites that aren’t yet prepared for the new behavior (the reduced UA string) to continue to receive the old behavior (the full UA string) for some time period.


As for interoperability, the concern is again low because the deprecation origin trial is simply enabling previously-existing behavior to continue to operate for the sites that are enrolled.


Experiment Summary

The prerequisite of this trial is that developers know the deprecation origin trial is a temporary measure to allow more time to migrate off of the full UA string, and move to using User-Agent Client Hints (UA-CH) instead.  By the end of the deprecation origin trial date, the Chrome browser will exclusively send the reduced UA string.  


The goal is to enable developers to ensure stability with our proposed changes.


As for engaging with the trial itself, there will be two components controlled by the same origin trial: 

  1. Provide the full UA string in the associated Javascript APIs, if the deprecation origin trial is enabled.

  2. A client hint that gets set when the deprecation origin trial is enabled, where the client hint indicates to the origin that the User-Agent request header contains the full user agent value. Because of the experimental nature of this client hint, a valid origin trial token must be sent in the response header by the origin for the client hint to take effect or be stored (in order to prevent platform burn-in for this temporary client hint).


During the process of conducting the origin trial, we may find that we need to request an exception to the per-site (and possibly global) limits imposed by origin trials. In practice, origin trials rarely exceed their quota limits, but if necessary, there is time between when the limits have been exceeded and the origin trial is turned off, where we can work with the users on reducing their usage and/or lifting the limits.


Please see the design document describing the experiment for more information.


Experiment Goals

The goal of this trial is to enable developers more time to migrate away from the full UA string and move towards adoption of UA-CH. Beginning in M101, we plan to send the reduced UA string in a phased rollout approach.  For those sites that haven’t been able to migrate their dependencies on the full UA string, the deprecation trial affords them more time to do so.


We will be relying heavily on user and developer feedback to identify where breakage occurs. We request feedback to be provided in our GitHub repository https://github.com/abeyad/user-agent-reduction.  When the deprecation origin trial is ready, we plan to publish developer guidance on how to enroll and provide feedback in the form of a blog post.


Experiment Risks

As the proposed changes are existing behavior, the experiment risks are low.  Site breakage can take many forms, both obvious and non-obvious. However, since sites are in control of the Origin-Trial and Accept-CH headers, a site can quickly opt out of the experiment when breakage is encountered.


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

No.


Flag name

#full-user-agent


Launch bug

https://bugs.chromium.org/p/chromium/issues/detail?id=1232573 (for UA reduction)


Tracking bug

https://bugs.chromium.org/p/chromium/issues/detail?id=1282230


Link to entry on the Chrome Platform Status

https://chromestatus.com/feature/5704553745874944


Links to previous Intent discussions

I2E for UserAgentReduction: https://groups.google.com/a/chromium.org/g/blink-dev/c/R0xKm1B7qoQ/


Yoav Weiss

unread,
Jan 26, 2022, 10:26:23 AM1/26/22
to blink-dev, Ali Beyad, Victor Tan, Mike Taylor, jadek...@chromium.org
This seems like a good thing to do, thanks!
What are the requested timelines for the deprecation trial?

Ali Beyad

unread,
Jan 26, 2022, 10:37:48 AM1/26/22
to Yoav Weiss, Victor Tan, Mike Taylor, jadek...@chromium.org
The timelines post contains more details, but in summary:

We will start offering the deprecation OT in M100, to give at least one release of integration time with the deprecation OT before the initial phase of UA reduction commences in M101 (reducing the minor version part of the UA string).  And it would last until M113 (see Phase 7 in the timelines post).

Mike Taylor

unread,
Jan 26, 2022, 10:42:09 AM1/26/22
to Ali Beyad, Yoav Weiss, Victor Tan, Mike Taylor
Admittedly it's a very long timeline, but we're trying provide plenty of time for sites to migrate to reduce the burden on the ecosystem.

Mike Taylor

unread,
Jan 26, 2022, 12:36:24 PM1/26/22
to Ali Beyad, Yoav Weiss, Victor Tan, Mike Taylor
Thanks Ali. It's also useful to have a look at https://groups.google.com/a/chromium.org/g/blink-dev/c/e3pZJu96g6c/m/X9HcrSkVAgAJ for the high-level plan, in addition to the timelines post which has timelines attached to it.

A 13 milestone timeline is pretty long, but our intention is to give the ecosystem sufficient time for migration work. The breakdown looks like so (summarizing the above links):

M100: launch deprecation trial 1 milestone ahead of first "reduction" phase, in case a site needs minor version and hasn't migrated to UA-CH yet.
M101: reduce MINOR.BUILD.PATCH to "0.0.0"
M107: reduce rest of Desktop UA
M110: reduce rest of Mobile UA
M113: end deprecation trial, giving an extra buffer of 3 months in case it's needed.

I believe most sites won't need 13 milestones to be ready, but we know some large sites have very long release cycles and it seems worthwhile to offer the extra time given the scope of the proposed changes.

On 1/26/22 10:37 AM, Ali Beyad wrote:

Chris Harrelson

unread,
Jan 26, 2022, 12:41:43 PM1/26/22
to Mike Taylor, Ali Beyad, Yoav Weiss, Victor Tan, Mike Taylor
I think a long timeline like this makes sense, since the process of reducing the user agent string will have several steps along the way and it doesn't make sense to have a bunch of different origin trials for each such period. I also appreciate the care you're taking to give sites time to migrate.

Regarding the risk of exceeding the default limit on percent of web traffic: if and when that might happen, please come back with another intent to request that exception.

The API owners met today and agreed that the long timeline for this origin trial requires an exception to the usual rules, and therefore 3 LGTMs.

LGTM1 to experiment for 13 releases under otherwise-regular origin trial rules.



--
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/3b1a356d-4a2e-6c48-8333-0a25e9d228cc%40chromium.org.

Daniel Bratell

unread,
Jan 26, 2022, 12:51:47 PM1/26/22
to Chris Harrelson, Mike Taylor, Ali Beyad, Yoav Weiss, Victor Tan, Mike Taylor

LGTM2 for the extra long deprecation trial.

/Daniel

Mike West

unread,
Feb 1, 2022, 4:23:42 AM2/1/22
to blink-dev, Daniel Bratell, Ali Beyad, Yoav Weiss, Victor Tan, Victor Tan, Chris Harrelson, Mike Taylor
LGTM3 for the extended deprecation trial.

-mike

To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+unsubscribe@chromium.org.
--
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+unsubscribe@chromium.org.
Reply all
Reply to author
Forward
0 new messages