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 <http://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 <http://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
                        
<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 cookiesdesign
                        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
                        <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/1db53a2f-cf82-4715-8aeb-b6153a507321%40chromium.org.

Reply via email to