Hi API Owners,
The goal of this intent is to remove the `legacy mode` behavior of
four client hints (device-memory, dpr, width, and viewport-width).
This `legacy mode`, only active on Android, auto-delegates client
hints to third-party subresources if the first party requests the hint
at all. This auto-delegation bypasses permissions policies, and we
think it should be removed. Although usage of the four affected client
hints has spiked in recent months (viewport-width is sent on 3% of
chrome requests) we don’t have a good sense of how many requests
depend on this Android-only auto-delegation behavior as any dependency
lives server-side on third-party resources. I tried loading the top
five hosts which receive each of these client hints on mobile and did
not notice any issues when the `legacy mode` behavior was disabled.
To get a high-level sense of the impact removing `legacy mode` could
have on common third-party subresource providers we reached out to six
CDNs and asked for their input: Cloudinary, ScientiaMobile,
CloudFlare, Akamai, Imagix, and Fastly. Cloudinary requested a quarter
or two to mitigate any impact and communicate to their customers (M104
in Q3 was sufficient given notice in Q1); ScientiaMobile, CloudFlare,
and Akamai did not anticipate impact or had ways to mitigate; Imagix
and Fastly did not reply. The desired change planned for M104 is
reversible via finch flag if significant unforeseen issues are
encountered, and if none are the full codepath removal would be slated
for M107.
Given this, I believe this intent is ready for your consideration again.
(Note: The summary doc
<https://docs.google.com/document/d/1igtMPtVTiX24bVaUo6tBgx3B16-HmUVPG7iDP5HkzD0/edit#heading=h.9km75afvbmv>has
been updated)
On Mon, May 2, 2022 at 1:35 PM Ari Chivukula <[email protected]> wrote:
We've heard back from Cloudflare and Akamai who don't seem to
depend on this legacy Android behavior. This change is currently
targeted for M104.
~ Ari Chivukula (Their/There/They're)
On Fri, Apr 8, 2022 at 8:01 AM Ari Chivukula
<[email protected]> wrote:
That's a good question! At the moment there isn't a plan to
remove the legacy-named client hints (dpr, width,
viewport-width, and device-memory). The messaging around this
is a good opportunity to push users to the updated naming
(sec-ch-dpr, sec-ch-width, sec-ch-viewport-width, and
sec-ch-device-memory) as behavior is now identical, but until
usage drops off no action will be taken. I doubt that will
change until 2023.
~ Ari Chivukula (Their/There/They're)
On Fri, Apr 8, 2022 at 1:43 AM Jon Arne Sæterås
<[email protected]> wrote:
Thank you for the ping Eric.
For ImageEngine <https://imageengine.io/>, the impact of
removing the legacy delegation behaviour of dpr, width,
viewport-width, and device-memory will be minor as
ImageEngine has fallback mechanisms that will limit any
negative impact.
The challenge is more about how to communicate this to the
users. Specifically, a clear migration path to "reenable"
client hints. The recent support for markup based
delegation will help a lot of course. Also, as another
motivation to make the change, it would be interesting to
know when the legacy key names dpr, width, viewport-width,
and device-memory will not be supported anymore. I mean,
fully replaced by the sec-ch- prefixed variants launched
in M97.
On Thursday, April 7, 2022 at 11:33:53 PM UTC+2
[email protected] wrote:
Right now it's on track for M103, which has a branch
cut in May and a release in June. I have no issue
pushing this back to M104 (branch in June and release
in July) to get a full 3 month buffer.
Thanks for the outreach!
~ Ari Chivukula (Their/There/They're)
On Thu, Apr 7, 2022 at 2:28 PM Eric Portis
<[email protected]> wrote:
We have a non-trivial amount of usage which is
relies on the legacy delegation behavior. We are
working on outreach to will-be-affected customers,
alerting them to the change and trying to get them
to switch over to the new syntax. In at least a
couple of cases the teams/devs that implemented
Cloudinary + Client Hints originally are long
gone, which makes things difficult... I think the
most helpful thing for us would be a clear
switch-off deadline for the legacy behavior, at
least a quarter or two out, so that we can give
customers a reason to make the change (but not
panic about it).
I know a couple of Cloudflare folks have been
active in standards discussions, and Jon Arne
Sæterås at ScientaMobile has been an active
participant in a few Client Hints discussions,
specifically. I'll ping them on Twitter.
—
Eric Portis
Cloudinary
On Thursday, March 24, 2022 at 1:22:14 PM UTC-7
[email protected] wrote:
@Eric Portis I wanted to get a sense of
whether this narrow change (not delegating to
third-parties by default for dpr, width,
viewport-width, and device-memory on Android)
would pose an issue for Cloudrinary and ask if
you had contacts I could reach out to at other
CDNs. I saw potential use from Cloudflare
<https://blog.cloudflare.com/early-hints/>,
ImageKit
<https://docs.imagekit.io/features/client-hints>,
ImgIX
<https://docs.imgix.com/tutorials/responsive-images-client-hints>,
KeyCDN
<https://www.keycdn.com/blog/client-hints>,
and Peakhour
<https://www.peakhour.io/docs/responsive-design/client-hints/> but
haven't heard from them on this thread.
~ Ari Chivukula (Their/There/They're)
On Sat, Mar 12, 2022 at 2:32 PM Ari Chivukula
<[email protected]> wrote:
The modern syntax (I assume you mean
third-party delegation of client hints via
HTML) is shipping in M100 (stable release
at the end of March). There isn't a plan
to remove any existing client hint names.
The question here is whether any websites
are depending on dpr, width,
viewport-width, or device-memory being
auto-delegated to all third party sites
when requested by a first party on
Android. That's the legacy behavior that's
being proposed for removal (ideally with
M102).
~ Ari Chivukula (Their/There/They're)
On Fri, Mar 11, 2022 at 10:54 AM Eric
Portis <[email protected]> wrote:
Speaking on behalf of Cloudinary:
- We've started treating the modern
hints the same as the legacy hints,
server-side
- We've identified which customers who
are sending us legacy hints and are
working on an outreach plan
It would be nice to have:
- some certainty about the new HTML
syntax. Is it likely to change after
TAG review or other-implementer feedback?
- a clear switch-off-date at least a
quarter (or two!) out from the final
modernized syntax shipping.
Basically what we'd like to
communicate is a clear action item
with a non-panicky due date, with some
assurance of finality after customers
make (and are able to test) the change.
On Wednesday, March 9, 2022 at
11:39:40 AM UTC-8 [email protected]
wrote:
I haven't had issues loading those
sites on Firefox mobile (which
doesn't have client hints), but
haven't specifically tried loading
them on Chrome Android w/o hints
enabled. It's true that we're
betting on lower dependency given
this change only affects Chrome on
Android (where the default
delegation was enabled), but it's
worth asking a few CDNs to see if
this was a feature being depended
on that HTTP Archive isn't surfacing.
Is there a good way to reach out
to them? I can see documentation
from Cloudflare
<https://blog.cloudflare.com/early-hints/>,
Cloudinary
<https://cloudinary.com/blog/client_hints_and_responsive_images_what_changed_in_chrome_67>,
ImageKit
<https://docs.imagekit.io/features/client-hints>,
ImgIX
<https://docs.imgix.com/tutorials/responsive-images-client-hints>,
KeyCDN
<https://www.keycdn.com/blog/client-hints>,
and Peakhour
<https://www.peakhour.io/docs/responsive-design/client-hints/> in
search results. I could try
tagging some of them in a GitHub
issue but wasn't sure if there's a
better way to reach a wider audience.
~ Ari Chivukula (Their/There/They're)
On Wed, Mar 9, 2022 at 5:49 AM
Daniel Bratell <[email protected]>
wrote:
How can we get a good grip on
the web compatibility of this
change? The use counters are a
high, but as you point out,
the number of sites that
actually depend on the legacy
client hints is lower. The
question is just "how much
lower?".
You listed a number of
affected sites. Has anyone
checked what happens to those
with the hints removed?
/Daniel
On 2022-03-07 16:56, Ari
Chivukula wrote:
Fixing the subject prefix,
apologies.
On Mon, Mar 7, 2022 at 7:54
AM Ari Chivukula
<[email protected]> wrote:
Contact emails
[email protected],
[email protected],
[email protected]
Design Doc
https://docs.google.com/document/d/1igtMPtVTiX24bVaUo6tBgx3B16-HmUVPG7iDP5HkzD0/edit
<https://docs.google.com/document/d/1igtMPtVTiX24bVaUo6tBgx3B16-HmUVPG7iDP5HkzD0/edit>
Specification
https://wicg.github.io/client-hints-infrastructure/
<https://wicg.github.io/client-hints-infrastructure/>
Summary
One residue of the rapid
Client Hints
Infrastructure
<https://wicg.github.io/client-hints-infrastructure/>iteration
is the concept of a
`legacy` client hint.
It’s a set of 4 hints
(`dpr`, `width`,
`viewport-width`, and
`device-memory`) which
have a default allowlist
of `self` (meaning that
they are not sent to
third-party subresources
unless delegated via
Permissions Policy) but
behave as though they
have a default allowlist
of `*` (meaning they are
sent to third-party
subresources as long as
the first-party page
requests them) on Android.
This `legacy` client
concept on Android will
be removed and a
permissions policy will
be required to delegate
the 4 affected hints. As
of M100, Markup based
Client Hint Delegation
<https://groups.google.com/a/chromium.org/g/blink-dev/c/JQ68cvYuiQU/m/bFjAWmy3AAAJ>is
now available to allow
delegation via HTML
instead of HTTP headers.
Blink component
Blink>Network>ClientHints
<https://bugs.chromium.org/p/chromium/issues/list?q=component%3ABlink%3ENetwork%3EClientHints>
Motivation
We want to bring these 4
hints in line with the
spec; fixing this will
increase privacy on
Android by requiring
explicit delegation of
these hints.
TAG review
N/A (this change brings
Android behavior in line
with the spec and better
preserves privacy)
Compatibility
Websites visited by
android devices that
request the legacy
device-memory, dpr,
width, and viewport-width
would no longer have
these hints delegated by
default to third-party
subresources. This would
match the current
behavior on desktop.
Third-party subresources
which need these hints
would need to get the
first-party that loads
them to adopt HTTP
<https://w3c.github.io/webappsec-permissions-policy/#serialization>or
HTML
<https://docs.google.com/document/d/1U3P9yvaT1NXG_qRmY3Lp6Me7M5kTnd3QrBb1yFUVNNk/edit>delegation
of client hints. The
design doc
<https://docs.google.com/document/d/1igtMPtVTiX24bVaUo6tBgx3B16-HmUVPG7iDP5HkzD0/edit>has
usage/top-site
information, and outreach
is underway to ensure
third-parties expecting
this information are
aware of the change. The
sites which require
default third-party
delegation of these hints
are likely much lower
than the sites which
incidentally do so by
default. As we encourage
Client Hint adoption, we
want to ensure dependency
doesn’t form on legacy,
non-compliant behavior.
Interoperability
Gecko: Client Hints not
yet implemented
(considered non-harmful
<https://mozilla.github.io/standards-positions/#http-client-hints>)
WebKit: Client Hints not
yet implemented
Web developers: No
feedback yet
Debuggability
N/A
Is this feature fully
tested by web-platform-tests?
New WPT will be added to
ensure these hints are
not delegated by default.
Tracking bug
https://crbug.com/1227043
<https://crbug.com/1227043>
Link to entry on the
Chrome Platform Status
https://chromestatus.com/feature/5694492182052864
<https://chromestatus.com/feature/5694492182052864>
--
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 [email protected].
To view this discussion on
the web visit
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAGpy5DJdHT1P-Dg%3DgmbkmA3K-HuDhg%3D1a0tVfv9c9g6wBHGCVg%40mail.gmail.com
<https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAGpy5DJdHT1P-Dg%3DgmbkmA3K-HuDhg%3D1a0tVfv9c9g6wBHGCVg%40mail.gmail.com?utm_medium=email&utm_source=footer>.