On 4/24/23 2:11 PM, Yoav Weiss wrote:

Apologies for my slowness!

On Thu, Apr 6, 2023 at 2:01 AM Mike Taylor <miketa...@chromium.org> wrote:

    On 4/4/23 11:51 PM, Yoav Weiss wrote:

    Thanks for working on this!!
    Aligning with Safari and Firefox on this means that this is
    important not just for user privacy, but also from an interop
    perspective. It also gives us some confidence that this
    deprecation can be successful.

    This is effectively a deprecation, but one where I can't think of
    a reasonable way to measure usage, so it seems to me that a
    careful rollout + deprecation trial (as you're suggesting) is the
    way to go here.
    Yeah, I'm hopeful that the web has adjusted to this as the norm
    given Firefox and Safari's behavior, but we know that Firefox had
    some site breakage to deal with when they first introduced the
    feature, so I'd rather be cautious with the rollout to avoid any
    major incidents.
    Is the deprecation trial enabled as a 3P OT? That may ease the
    deployment for platform providers that have a hard time shipping
    header changes to a large set of origins.
    We made the decision to not support 3Ps for the deprecation trial.
    Instead, when a site enables the Deprecation trial, all of its
    embedded frames will have a 1st party StorageKey. Our thinking was
    that we wanted the embedder to be in control of its users'
    storage, rather than the embeddee. But if this turns out to be
    untenable, we're open to considering making this work as a 3P
    trial as well.


The scenario I'm slightly concerned about is a large platform (ecommerce, CRM, etc) with a ~gazillion different customer origins, that is currently relying on any of these APIs to communicate common state (e.g. checkout flows). Such a platform would most probably be able to opt-in using a 3P OT (by delivering a common origin script that does the opt-in), but may not be able to opt-in each origin individually. It's probably fine to make sure that only the top-level frame can participate in the 3P OT, although I'm not 100% sure if that's how 3P OTs are currently wired.
+Panos Astithas <mailto:pastit...@google.com> may know.

Yeah, that's a fair concern. To date, we're not aware of any such use cases or site breakage - but that doesn't mean it's not out there. :) We have engaged with one large enterprise SaaS platform to encourage early testing last September, and thus far haven't heard anything concerning from them.

We're hoping that turning this on at 1% might flush out some of these possible scenarios and help us decide if we need to re-think how the Deprecation Trial works, or even the launch plan (perhaps launching behind the "Block 3P cookies" setting to start with). After thinking a bit more, it probably makes sense to hold at 1% for longer than the original 2 weeks, perhaps 4 weeks instead. Given that Gecko and WebKit have already shipped partitioned storage, I'm hopeful that things aren't so dire - but we may just discover how much of the web isn't tested or supported in those engines.


    Also, have we reached out to the usual suspects to make sure they
    test this change ahead of time?
    We have been in touch with some partners through our partnership
    team, and other top sites as well. :)

    On Wed, Apr 5, 2023 at 12:44 AM Mike Taylor
    <miketa...@chromium.org> wrote:

        **

        *Contact emails*

        *

        wanderv...@chromium.org, m...@chromium.org, mikety...@chromium.org


        Explainer

        
https://github.com/wanderview/quota-storage-partitioning/blob/main/explainer.md
        
<https://github.com/wanderview/quota-storage-partitioning/blob/main/explainer.md>


        Specification

        Partitioned Storage is roughly specified at
        https://privacycg.github.io/storage-partitioning/
        <https://privacycg.github.io/storage-partitioning/>. As part
        of this work, we have started to codify the necessary
        concepts in HTML, DOM, and Storage in the following PRs:


        https://github.com/whatwg/storage/pull/144
        <https://github.com/whatwg/storage/pull/144>

        https://github.com/whatwg/dom/pull/1142
        <https://github.com/whatwg/dom/pull/1142/files>

        https://github.com/whatwg/html/pull/8447
        <https://github.com/whatwg/html/pull/8447>


        We have also updated other APIs to use StorageKey
        (ServiceWorker [1
        
<https://github.com/w3c/ServiceWorker/pulls?q=is%3Apr+is%3Aclosed+partition>],
        BroadcastChannel [1
        <https://github.com/whatwg/html/pull/7567>], SharedWorker[1
        <https://github.com/whatwg/html/pull/7995>]), and landed
        necessary additions to Storage itself ([1
        
<https://github.com/whatwg/storage/commit/bea19b70f497d7059c920b9f0a81ac8f49bd36ed>][2
        
<https://github.com/whatwg/storage/commit/c68c38413c02496114d51af28caa83d11689d300>]).


        What we thought to be a straightforward set of changes has
        evolved to be a more complex refactoring, per the request of
        HTML editors. We propose to ship with a WIP spec spread out
        across the PRs above (noting that Firefox and Safari have
        already shipped partitioned storage). That said, we intend to
        finish this work.


        Summary

        We intend to partition a number of APIs in third-party
        contexts. This effort is focused on partitioning APIs above
        the network stack. This includes quota-managed storage,
        service workers, and communication APIs (like
        BroadcastChannel). See the explainer for more details:


        
https://github.com/wanderview/quota-storage-partitioning/blob/main/explainer.md
        
<https://github.com/wanderview/quota-storage-partitioning/blob/main/explainer.md>



        Blink component

        Blink>Storage


        TAG review

        https://github.com/w3ctag/design-reviews/issues/629
        <https://github.com/w3ctag/design-reviews/issues/629>


        TAG review status

        Resolution: Satisfied


        Risks


        Interoperability and Compatibility


        Given that Firefox and Safari have already shipped this
        feature, we expect our implementation to be interoperable. We
        are aware of breakage
        
<https://github.com/privacycg/storage-partitioning/issues/34#issuecomment-1194358637>for
        sites that use Firebase for authentication (because it relies
        on being able to access unpartitioned sessionStorage).
        Firebase has blogged on how sites can mitigate this issue
        <https://firebase.google.com/docs/auth/web/redirect-best-practices>.
        We built a deprecation trial specifically for the
        sessionStorage redirect use case, which should work for
        Firebase users. In addition, we have a general deprecation
        trial available and enterprise policies in place. See below
        for more info on the deprecation trials.


        We’ve made storage partitioning available for local testing
        in Chrome for the past 6 months
        <https://developer.chrome.com/en/blog/storage-partitioning-dev-trial/>.
        Apart from Firebase, we’re not aware of any existing
        compatibility issues that can’t be solved by the deprecation
        trials
        
<https://developer.chrome.com/blog/storage-partitioning-deprecation-trial/>.
        There may be unforeseen contexts and use cases that rely on
        unpartitioned storage and as such, we propose to roll this
        feature out carefully via Finch, according to the following
        proposed schedule:


        May 9th: 1% of Stable population (approximately 1 week after
        M113 is released)

        May 23rd: 10%

        June 6th: 50%

        June 20th: 100%


        As usual, if we identify concerning metrics, regressions, or
        site breakage reports, we may pause or roll back to
        investigate or address issues.


        Deprecation trial instructions:
        
https://developer.chrome.com/blog/storage-partitioning-deprecation-trial/
        
<https://developer.chrome.com/blog/storage-partitioning-deprecation-trial/>


        Gecko: Shipped/Shipping


        WebKit: Shipped/Shipping


        Web developers: Mixed signals. Some developers have expressed
        compatibility concerns, others have been supportive.


        Other signals:


        WebView application risks

        Does this intent deprecate or change behavior of existing
        APIs, such that it has potentially high risk for Android
        WebView-based applications?


        No, we don’t intend to turn this on for WebView yet.


        Debuggability

        DevTools has support for partitioned storage.


        Will this feature be supported on all six Blink platforms
        (Windows, Mac, Linux, Chrome OS, Android, and Android WebView)?

        No (not WebView)


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

        Yes. We’ve written WPTs to verify our 3rd party storage
        partitioning.


        Flag name

        ThirdPartyStoragePartitioning


        Requires code in //chrome?

        Nope


        Tracking bug

        https://bugs.chromium.org/p/chromium/issues/detail?id=1191114
        <https://bugs.chromium.org/p/chromium/issues/detail?id=1191114>


        Launch bug

        https://launch.corp.google.com/launch/4214498
        <https://launch.corp.google.com/launch/4214498>



        Anticipated spec changes

        Open questions about a feature may be a source of future web
        compat or interop issues. Please list open issues (in other
        words, links to known GitHub issues in the project, for the
        feature specification) whose resolution may introduce web
        compat/interop risk (such as changes to naming or structure
        of the API in a non-backward-compatible way).


        None


        Link to entry on the Chrome Platform Status

        https://chromestatus.com/feature/5723617717387264
        <https://chromestatus.com/feature/5723617717387264>


        Links to previous Intent discussions

        Intent to Prototype:
        
https://groups.google.com/a/chromium.org/g/blink-dev/c/WXNzM0WiQ-s/m/l10NGhaoAQAJ
        
<https://groups.google.com/a/chromium.org/g/blink-dev/c/WXNzM0WiQ-s/m/l10NGhaoAQAJ>


        Intent to Experiment:
        
https://groups.google.com/a/chromium.org/g/blink-dev/c/FNi-nNC8fiw/m/gNftPAzUBgAJ
        
<https://groups.google.com/a/chromium.org/g/blink-dev/c/FNi-nNC8fiw/m/gNftPAzUBgAJ>

        *
-- 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/e8540107-85b2-a113-6347-1290c23f6379%40chromium.org
        
<https://groups.google.com/a/chromium.org/d/msgid/blink-dev/e8540107-85b2-a113-6347-1290c23f6379%40chromium.org?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/482f0215-8ded-fe8b-9765-423567625f41%40chromium.org.

Reply via email to