https://github.com/amaliev/3pcd-exemption-heuristics/blob/main/explainer.md
Pull request: https://github.com/whatwg/compat/pull/253
This proposal examines a heuristics-based pattern of allowing temporary third-party cookie access in limited scenarios, which would mitigate site breakages after third-party cookies are blocked by default in Chrome. These scenarios are tightly scoped and build on similar work from other browsers such as Firefox (docs) and Safari (docs).
These heuristics will include:
When a third party is loaded in a popup, after possible redirects, and the third party receives user interaction, the third party receives storage access on the opener site.
Use cases: identity provider login, payments processing, etc.
Example: nintendo.de (bug)
When a first party redirects to a third party, the third party receives a user interaction, and navigates back to the first party, the third party receives short-term storage access on the opener site.
Use cases: identity provider login, etc.
Example: pixnet.net (bug)
See the explainer for details on background, additional considerations and our approach to prototyping. Aligned with what other browsers have indicated, we intend to eventually retire these heuristics as alternative solutions become widely used, subject to further feasibility analysis.
https://github.com/w3ctag/design-reviews/issues/919
Pending
There is a risk of shipping overly lenient heuristics, which may introduce unintended privacy and security risks. There are also risks of bad actors abusing these heuristics to leak user history data, or to exploit credentialed access requests. The explainer explores these privacy and security considerations; here is a summary of how our implementation is designed to mitigate these risks:
The heuristics are limited to requiring a concurrent interaction in both the popup and redirect case. (As opposed to accepting a prior user interaction on the same site.) This provides a stronger signal of user intent and reduces the privacy risk of leaking user interaction history via cookie behavior.
The storage access grant durations are gated by flags, which can be changed and rolled out within 24-48 hours.
In Chrome, users will also have the ability to turn off heuristics in Settings.
We look forward to working with other browsers in the community to perform additional analysis and possibly narrow the heuristics further.
Our goal is to align closely where possible with Other browsers that have already shipped similar heuristics that give storage access grants in limited scenarios, e.g., Safari has implemented a similar popup heuristic (docs) and Firefox has implemented similar popup and redirect heuristics (docs). In this manner, developers can have consistent expectations around cross-platform compatibility.
Does this intent deprecate or change behavior of existing APIs, such that it has potentially high risk for Android WebView-based applications?
No
N/A
All except WebView. (Third-party cookie deprecation launches don’t include WebView.)
Web Platform Tests are in progress, and will be checked in by the week of 12/11.
Third-party Cookie Grants Heuristics Testing
chrome://flags/#tpcd-heuristics-grants
TpcdHeuristicsGrants
N/A
True
The code for awarding and reading grants is in //components. Some code is necessary in //chrome due to dependencies on e.g. the DIPS database.
Shipping to Stable M120 on 12/14
There are a few open questions around the details of the scenarios for which grants should be awarded. For instance:
Should grants only be created when there is a concurrent interaction on the popup/redirect domain? Or would a past interaction also allow storage access?
Does the popup heuristic behave differently depending on the source of the iframe that initiates the popup?
Does the redirect heuristic behave differently depending on the user's navigation flow?
https://chromestatus.com/feature/5181771549507584
I see this as a critical web compatibility intervention, so LGTM1.
It seems like there is some disagreement about spec venue (compat vs fetch/html), but I don't think we need to block on landing given the other browsers shipped their heuristics without specifying in any standards venue. Thanks for doing the work to unify these and push for interop.
And good luck on removing them one day (one can dream...).
--
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/CAKGZiuJmtK9N9fQs0EUbYbasG_c04TSoQ%3DmMwK9Zu-ixnKr7LA%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/cb88025d-ebe8-43e2-a8e9-0bb51ed0b3a1%40chromium.org.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+unsubscribe@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAKGZiuJmtK9N9fQs0EUbYbasG_c04TSoQ%3DmMwK9Zu-ixnKr7LA%40mail.gmail.com.
--
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.
While this is approved, I do have a followup question about:
> we intend to eventually retire these heuristics as alternative solutions become widely used, subject to further feasibility analysis.
In many other plans there have been dates or milestones
mentioned, and even though they have not always been achievable,
they have acted as a clear signal that something will happen.
In comparison this sounds open ended, and almost defeatist. Would it be good to set a target end date on this as well?
/Daniel
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/5a843f3a-30a9-41a8-b0bb-f0bebfb2a01en%40chromium.org.
LGTM3
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/CAKGZiuJmtK9N9fQs0EUbYbasG_c04TSoQ%3DmMwK9Zu-ixnKr7LA%40mail.gmail.com.
--
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/cb88025d-ebe8-43e2-a8e9-0bb51ed0b3a1%40chromium.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+...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/5a843f3a-30a9-41a8-b0bb-f0bebfb2a01en%40chromium.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+...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/3b3b5200-f03c-4a24-b60c-84770581dc5e%40gmail.com.