My apologies for the delay in following up on this.

When I finished my initial implementation and got to the point where I
could begin testing, I found that my metrics were being flooded with a
cookie named, "receive-cookie-deprication". After doing some research and
testing I learned that this cookie is used by sites for testing the
potential impact of third party cookie depreciation but doesn't have any
impact on website functionality. To get a better sense of potential
breakage, I landed updated metrics that filtered out that cookie. I then
conducted a manual audit on 10 (of the 104) sites that indicated a possible
impact with a build of chromium that had the finch flag turned on.

I've summarized my findings in this slide deck
<https://docs.google.com/presentation/d/1S2N2vyGDaKAwP-5W5pVYqRNQ1RQndjlq4yVTny6hEIY/edit?usp=sharing>
but I was unable to find a breakage that caused a site to not perform as
expected from the user's perspective. To be clear, this doesn't mean that
there won't be breakage that occurs if/when this feature goes live, only
that I was unable to find an example where the website was unable to
perform as expected.

Additionally, with the filtering out of the "receive-cookie-deprication"
cookie from the metrics, the occurrences of an A1->B-A2 cookie which this
change would impact drops from 0.032% of overall page loads to 0.0012% of
overall page loads.

On Tue, Mar 19, 2024 at 12:05 PM Aaron Selya <se...@google.com> wrote:

> Yoav, your understanding is correct.
>
> I'm still in the process of finalizing the implementation. Once that is
> done, I'll audit some sites that metrics have indicated will
> experience breakage and report back my findings.
>
> On Tue, Mar 19, 2024 at 8:52 AM Mike Taylor <miketa...@chromium.org>
> wrote:
>
>> It would also be helpful to discuss what breakage looks like in this
>> case. Would it be a one-time loss of state (i.e., have to log in again), or
>> something different?
>> On 3/19/24 5:08 AM, Yoav Weiss (@Shopify) wrote:
>>
>> OK, so just to summarize my understanding:
>>
>>    - We expect this to have some impact on 0.032% of page views
>>    - We have a Finch flag that can be used as a kill switch in case we
>>    see lots of breakage in the wild
>>    - Developers can get around this deprecation by changing their
>>    cookies to be "same-site: none" *and* requesting SAA from users
>>
>> Is the above correct?
>>
>> If so, 0.032% sounds like a lot. Would it be possible for y'all to same
>> pages that trigger that use counter and see how many of them break and what
>> does breakage look like?
>>
>> On Wed, Mar 13, 2024 at 8:23 PM Aaron Selya <se...@google.com> wrote:
>>
>>> The flag is a base::features flag named
>>> kAncestorChainBitEnabledInPartitionedCookies.
>>>
>>> Updated the review gates on chromestatus.com
>>>
>>> On Wed, Mar 13, 2024 at 11:25 AM Yoav Weiss (@Shopify) <
>>> yoavwe...@chromium.org> wrote:
>>>
>>>> Also, can you flip on the relevant review gates in chromestatus.com?
>>>>
>>>> On Wed, Mar 13, 2024 at 11:24 AM Yoav Weiss (@Shopify) <
>>>> yoavwe...@chromium.org> wrote:
>>>>
>>>>>
>>>>>
>>>>> On Tue, Mar 12, 2024 at 4:46 PM 'Aaron Selya' via blink-dev <
>>>>> blink-dev@chromium.org> wrote:
>>>>>
>>>>>> The first mitigation listed here is to migrate existing
>>>>>>> partitioned cookies to include the new bit, and the second mitigation 
>>>>>>> is to
>>>>>>> have a flag that can disable this feature. Would disabling the feature 
>>>>>>> also
>>>>>>> include migrating the existing cookies back to exclude the new bit?
>>>>>>>
>>>>>>
>>>>>> Disabling the flag would not migrate the existing cookies back to
>>>>>> exclude the new bit. It would make it so that the new bit value is not
>>>>>> considered when checking equivalence. Not considering the value of the 
>>>>>> bit
>>>>>> when is the current behavior so we anticipate no issues ignoring the bit 
>>>>>> if
>>>>>> the flag needs to disable the feature.
>>>>>>
>>>>>
>>>>> Can you clarify what kind of flag are we talking about? Is this a
>>>>> Finch flag we expect to turn off if we encounter lots of breakage? An
>>>>> enterprise policy flag? A flag we expect users to use? (I doubt it's the
>>>>> latter, but clarifications would help :D)
>>>>>
>>>>>
>>>>>>
>>>>>>
>>>>>>> And somewhat related, but does the format of the cookie request
>>>>>>> developers make have to change too, or is this bit determination purely
>>>>>>> done within the browser?
>>>>>>>
>>>>>>
>>>>>> In almost all cases this is set within the browser. The only
>>>>>> circumstance I've run into where the value could be set by a developer is
>>>>>> with the chrome.cookies.set api for extensions.  This API allows the
>>>>>> developer to set the site associated with the cookie partition key and 
>>>>>> with
>>>>>> this change would allow for the bit value to be set as well.
>>>>>>
>>>>>> On Tue, Mar 12, 2024 at 2:53 PM Vladimir Levin <vmp...@chromium.org>
>>>>>> wrote:
>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Mon, Mar 11, 2024 at 1:42 PM Aaron Selya <se...@chromium.org>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> Contact emails
>>>>>>>>
>>>>>>>> se...@chromium.org, dylancut...@chromium.org,
>>>>>>>> kaustub...@chromium.org
>>>>>>>>
>>>>>>>>
>>>>>>>> Explainer
>>>>>>>>
>>>>>>>> Keying of "CHIPS" cookies should align with other state:
>>>>>>>> <https://github.com/privacycg/CHIPS/issues/40#issuecomment-1883726735>
>>>>>>>>
>>>>>>>>
>>>>>>>> Specification
>>>>>>>>
>>>>>>>> Add cross-site ancestor chain bit to spec:
>>>>>>>> https://github.com/explainers-by-googlers/CHIPS-spec/pull/13
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> Summary
>>>>>>>>
>>>>>>>> We are looking to align the partition key
>>>>>>>> <https://developers.google.com/privacy-sandbox/3pcd/chips#:~:text=A%20cookie%27s%20partition%20key%20is%20the%20site%20(scheme%20and%20registrable%20domain)%20of%20the%20top%2Dlevel%20URL%20the%20browser%20was%20visiting%20at%20the%20start%20of%20the%20request%20to%20the%20endpoint%20that%20set%20the%20cookie.>
>>>>>>>> in CHIPS (Cookies Having Independent Partitioned State, aka partitioned
>>>>>>>> cookies) with the existing implementation of StorageKey.
>>>>>>>>
>>>>>>>>
>>>>>>>> The only sites that would experience different behavior, would be
>>>>>>>> when a top-level site “A” embeds an iframe to a cross-site document on 
>>>>>>>> site
>>>>>>>> “B”, and then the iframe B embeds an iframe that loads a document from 
>>>>>>>> site
>>>>>>>> “A” (shorthand: A1->B->A2). Previously, partitioned cookies sent or
>>>>>>>> received in the inner iframe A2 would be the same partitioned cookies 
>>>>>>>> sent
>>>>>>>> or received in the outer frame A1. This is no longer true.
>>>>>>>>
>>>>>>>>
>>>>>>>> This change is privacy neutral, but will have improved security
>>>>>>>> characteristics, because it prevents cross-site iframes from embedding
>>>>>>>> arbitrary endpoints of the top-level site with credentials, without 
>>>>>>>> first
>>>>>>>> being granted permission to do so through the Storage Access API (SAA) 
>>>>>>>> or
>>>>>>>> Cross-Origin Resource Sharing (CORS).
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> The impact of this change is expected to be small as our metrics
>>>>>>>> indicate that only 0.2% of CHIPS (partitioned cookies) set by the first
>>>>>>>> party are currently being used in A1->B->A2 contexts. This constitutes
>>>>>>>> 0.032% of all page loads (calculated using the usage of
>>>>>>>> PartitionedCookie
>>>>>>>> <https://chromestatus.com/metrics/feature/timeline/popularity/4177>).
>>>>>>>> For websites that do need access to the same cookies across A1 and A2 
>>>>>>>> (in
>>>>>>>> the A1->B->A2 configuration), we recommend using SameSite=None cookies
>>>>>>>> *without* the Partitioned attribute, and invoking the Storage Access 
>>>>>>>> API
>>>>>>>> (SAA) or using the Cross-Origin Resource Sharing (CORS).
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> Blink component
>>>>>>>>
>>>>>>>> Internals>Network>Cookies>PartitionedCookies
>>>>>>>> <https://issues.chromium.org/issues?q=customfield1222907:%22Internals%3ENetwork%3ECookies%3EPartitionedCookies%22>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> TAG review
>>>>>>>>
>>>>>>>> Not requested, as this does not differ in any significant way from
>>>>>>>> the original CHIPS design that was already reviewed by TAG
>>>>>>>> <https://github.com/w3ctag/design-reviews/issues/779>.
>>>>>>>>
>>>>>>>>
>>>>>>>> TAG review status
>>>>>>>>
>>>>>>>> N/A
>>>>>>>>
>>>>>>>>
>>>>>>>> Risks
>>>>>>>>
>>>>>>>>
>>>>>>>> Interoperability and Compatibility
>>>>>>>>
>>>>>>>> The inclusion of a new element in the partition key will mean that
>>>>>>>> partitioned cookies (CHIPS) created after the launch of this change 
>>>>>>>> will
>>>>>>>> not be compatible with the partitioned cookies that already exist in 
>>>>>>>> users
>>>>>>>> cookie jars. To address this, existing partitioned cookies will be 
>>>>>>>> migrated
>>>>>>>> (without any need for developer action) to include the new cross-site
>>>>>>>> ancestor chain bit value, which will be set with a value of true if the
>>>>>>>> existing partition key does not match the host key (indicating a cross 
>>>>>>>> site
>>>>>>>> ancestor is present) and false if the partition key does match the host
>>>>>>>> key. This will ensure that most existing CHIPS have the same scope as 
>>>>>>>> they
>>>>>>>> did prior to the change.
>>>>>>>>
>>>>>>>>
>>>>>>>> Only 0.2% of partitioned cookies are utilized from within A1->B->A2
>>>>>>>> scenarios, but developers who need to be able to access cookies in
>>>>>>>> A1->B->A2 scenarios will be able to use SAA, and CORS to gain access to
>>>>>>>> those cookies, after transitioning to SameSite=None cookies without the
>>>>>>>> Partitioned attribute.
>>>>>>>>
>>>>>>>>
>>>>>>>> To limit the impact of any significant breakages that may occur
>>>>>>>> when this is deployed, the new feature will be gated by a flag 
>>>>>>>> allowing for
>>>>>>>> it to be turned off easily. Additionally metrics are being gathered to
>>>>>>>> proactively identify the sites that are going to be impacted by this
>>>>>>>> change, so that we can do outreach to potentially impacted sites. As 
>>>>>>>> this
>>>>>>>> feature gets deployed, we will monitor the bug and breakage reports to 
>>>>>>>> help
>>>>>>>> identify issues and assist developers in transitioning to one of the 
>>>>>>>> other
>>>>>>>> mechanisms that will allow their sites to work in an A1->B->A2 context.
>>>>>>>>
>>>>>>>
>>>>>>> The first mitigation listed here is to migrate existing
>>>>>>> partitioned cookies to include the new bit, and the second mitigation 
>>>>>>> is to
>>>>>>> have a flag that can disable this feature. Would disabling the feature 
>>>>>>> also
>>>>>>> include migrating the existing cookies back to exclude the new bit?
>>>>>>>
>>>>>>> And somewhat related, but does the format of the cookie request
>>>>>>> developers make have to change too, or is this bit determination purely
>>>>>>> done within the browser?
>>>>>>>
>>>>>>>
>>>>>>>>
>>>>>>>> As this does not differ in any significant way from the original 
>>>>>>>> partitioned
>>>>>>>> cookies design that has been reviewed in the past, we are not
>>>>>>>> seeking the various browsers to take official positions in their 
>>>>>>>> standards
>>>>>>>> position repos.
>>>>>>>>
>>>>>>>>
>>>>>>>> There is support for the adoption of CHIPS
>>>>>>>> <https://github.com/mozilla/standards-positions/issues/678#issuecomment-1241916316>
>>>>>>>> from Firefox as well as support from them for adding the cross-site
>>>>>>>> ancestor chain bit
>>>>>>>> <https://github.com/privacycg/meetings/blob/main/2023/telcons/10-12-minutes.md#keying-of-chips-cookies-should-align-with-other-state>
>>>>>>>> .
>>>>>>>>
>>>>>>>>
>>>>>>>> Webkit is still considering adopting CHIPS
>>>>>>>> <https://github.com/WebKit/standards-positions/issues/50#issuecomment-1768040057>
>>>>>>>> as we work through their concerns
>>>>>>>> <https://github.com/privacycg/CHIPS/issues/74> regarding partition
>>>>>>>> size limitations. This will not be impacted by the addition of a 
>>>>>>>> cross-site
>>>>>>>> ancestor chain bit. We updated the WebKit standards positions issue 
>>>>>>>> with a
>>>>>>>> note regarding this change to the proposal.
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> Debuggability
>>>>>>>>
>>>>>>>> DevTools will need to be updated
>>>>>>>> <https://bugs.chromium.org/p/chromium/issues/detail?id=1516984> to
>>>>>>>> show the cross-site ancestor chain bit but otherwise it should be able 
>>>>>>>> to
>>>>>>>> be debugged like other API calls.
>>>>>>>>
>>>>>>>>
>>>>>>>> Will this feature be supported on all six Blink platforms (Windows,
>>>>>>>> Mac, Linux, Chrome OS, Android, and Android WebView)?
>>>>>>>>
>>>>>>>> All platforms listed.
>>>>>>>>
>>>>>>>>
>>>>>>>> Is this feature fully tested by web-platform-tests
>>>>>>>> <https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>
>>>>>>>> ?
>>>>>>>>
>>>>>>>> We plan to land web-platform-tests shortly
>>>>>>>> <https://bugs.chromium.org/p/chromium/issues/detail?id=1521791>.
>>>>>>>>
>>>>>>>>
>>>>>>>> Flag name on chrome://flags
>>>>>>>>
>>>>>>>> CookiePartitionKeyIncludesCrossSiteAncestorChainBit
>>>>>>>> <https://bugs.chromium.org/p/chromium/issues/detail?id=1521841>
>>>>>>>>
>>>>>>>>
>>>>>>>> Finch feature name
>>>>>>>>
>>>>>>>> None
>>>>>>>>
>>>>>>>
>>>>>>> Could you please clarify if the flag you mentioned is a Finch flag
>>>>>>> or something else?
>>>>>>>
>>>>>>>
>>>>>>>> Requires code in //chrome?
>>>>>>>>
>>>>>>>> False
>>>>>>>>
>>>>>>>>
>>>>>>>> Estimated milestones
>>>>>>>>
>>>>>>>> Targeted shipping on desktop and Android in M125.
>>>>>>>>
>>>>>>>>
>>>>>>>> Anticipated spec changes
>>>>>>>>
>>>>>>>> None
>>>>>>>>
>>>>>>>>
>>>>>>>> Link to entry on the Chrome Platform Status
>>>>>>>>
>>>>>>>> https://chromestatus.com/feature/5144832583663616
>>>>>>>>
>>>>>>>> --
>>>>>>>> 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+unsubscr...@chromium.org.
>>>>>>>> To view this discussion on the web visit
>>>>>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAPSgjYROtVMp%3DmfBLFdW5KiRYkcFx0NG3U%3DT_vtbm2b7UEzm0w%40mail.gmail.com
>>>>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAPSgjYROtVMp%3DmfBLFdW5KiRYkcFx0NG3U%3DT_vtbm2b7UEzm0w%40mail.gmail.com?utm_medium=email&utm_source=footer>
>>>>>>>> .
>>>>>>>>
>>>>>>> --
>>>>>> 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+unsubscr...@chromium.org.
>>>>>> To view this discussion on the web visit
>>>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CALXbKU7so-698-KYua_iQ6PPyHQ_NnBcnJr-XetP%2BDCG_gQeWA%40mail.gmail.com
>>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CALXbKU7so-698-KYua_iQ6PPyHQ_NnBcnJr-XetP%2BDCG_gQeWA%40mail.gmail.com?utm_medium=email&utm_source=footer>
>>>>>> .
>>>>>>
>>>>> --
>> 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+unsubscr...@chromium.org.
>> To view this discussion on the web visit
>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAOmohSL78hpV-iy6Ce%3Dn4a-aU21-2vj%2Bce4D9rLE_R0oUWKpqQ%40mail.gmail.com
>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAOmohSL78hpV-iy6Ce%3Dn4a-aU21-2vj%2Bce4D9rLE_R0oUWKpqQ%40mail.gmail.com?utm_medium=email&utm_source=footer>
>> .
>>
>>

-- 
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+unsubscr...@chromium.org.
To view this discussion on the web visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CALXbKU6qL3ycnNursXRQh3BQ5WKG792fGFTn5VDfcL94NvdpBg%40mail.gmail.com.

Reply via email to