I don't think there's much that's hard to reason about here. Storage is being partitioned, uniformly. It's the same for BroadcastChannel as it is for localStorage or IndexedDB. IdP-subframe-in-RP will uniformly be treated as different from IdP-as-top-level, with regard to storage access.
I sympathize with the situation being tricky for the short time between storage partitioning rollout and third-party cookie deprecation rollout, since then "uniformly" actually means "uniformly (except cookies for the next N months)". But that's a temporary state of affairs. On Fri, Apr 14, 2023 at 7:06 AM Eric Lawrence <bay...@gmail.com> wrote: > My read of this: > https://github.com/wanderview/quota-storage-partitioning/blob/main/explainer.md#communication-apis > is that BroadcastChannel will not allow a IdP loaded in a top-level frame > to communicate authentication tokens to IdP subframes within RP websites > (Approach #4 in > https://textslashplain.com/2023/04/12/auth-flows-in-a-partitioned-world/#:~:text=authToken%27%3A%20sToken%7D%2C%20sRPOrigin)%3B%0A%7D-,Approach%204 > ) > > I understand the drive to do this (neutering 3P cookies without neutering > all of their replacements is of questionable value), but it does feel like > a huge loss for the power of Web Platform. BroadcastChannel will turn into > BroadcastChannelExceptInSomeCasesThatAreHardToReasonAbout. > > > On Monday, April 10, 2023 at 5:07:37 PM UTC-5 Elijah Grey wrote: > >> Hi Chris, >> >> I appreciate your response. Here are my responses to your points: >> >> 1. Yes, we plan to use FPS to put our consent management tool in the same >> FPS (using <customer-id>.sync.transcend.io as a service domain per >> customer, alternatively CNAME-backed by the customer). We will still be >> forced to reduce customers' users' privacy by sharing user consent data >> through cookies (and completely lose our ability to sync quarantine data >> cross-site as it cannot safely be included in network requests through >> cookies). >> 2. Thanks, I'll make sure to leave a comment about our use case. >> 3. Same as above. I'll expound on my use case in that issue too. >> >> Again, I posit that the non-ideal alignment of these unpartitioned >> storage deprecation timelines will push site owners to use cookies to share >> state where they previously did not have to use cookies. A non-cookie >> solution should be available prior to the deprecation point to prevent >> adverse incentives from affecting the web as a whole. >> >> I understand that the actual harms are likely minor, but they are >> measurable. We attempt to limit total entropy of consent data propagated by >> our sync system, but even with our best efforts it is not unreasonable to >> assume that bad actors would use the uniqueness of consent cookies (e.g. by >> looking at timestamps etc.) to uniquely track users. Our current system >> does not attempt to uniquely track users and serves as an enforcement point >> to prevent other tools from uniquely tracking users for certain purposes >> without consent (depending on user-applicable legal regimes). >> >> Regards, >> Eli >> On Monday, April 10, 2023 at 10:45:09 AM UTC-7 Chris Fredrickson wrote: >> >>> Hi Eli, >>> >>> If I can chime in on a few points from the First-Party Sets perspective: >>> >>> 1. Do you plan to use First-Party Sets to put your consent >>> management site in the same FPS as your customers' sites? (Note that you >>> would have to work around the FPS disjointness requirement >>> <https://github.com/WICG/first-party-sets#abuse-mitigation-measures>, >>> e.g. using CNAMEs.) That would allow your product to continue to do >>> limited >>> cross-site data sharing, although it would have to use cookies to do so. >>> 2. FYI, both the Storage Access API and Chromium's proposed >>> extension (requestStorageAccessFor) only unblock access to unpartitioned >>> cookies; they do not unblock access to unpartitioned storage. (You may >>> already know this, since you linked to the relevant Storage Access >>> API issue <https://github.com/privacycg/storage-access/issues/102>.) >>> Please feel free to comment on that issue if it would address a critical >>> use case for your product. >>> 3. If you're expecting to use First-Party Sets to enable limited >>> cross-site data sharing, you may be interested in >>> https://github.com/WICG/first-party-sets/issues/111 and/or >>> https://github.com/WICG/first-party-sets/issues/94 (which admittedly >>> is related to cookies). Please feel free to comment on those issues if >>> either of them would address your use case; we're actively looking for >>> feedback to help us shape and motivate/prioritize those proposals. >>> >>> Thanks, >>> Chris >>> >>> On Wednesday, April 5, 2023 at 10:31:01 PM UTC-4 Eli Grey wrote: >>> >>>> Hi Mike, >>>> >>>> By not coordinating Privacy Sandbox timeline with the unpartitioned >>>> storage deprecation timeline, Chrome is pushing us to use cookies due >>>> having to balance user privacy with customer demands to use all available >>>> browser capabilities. We currently support cross-site sync in Chrome/Edge >>>> only using unpartitioned storage, and by killing this feature without >>>> aligning deprecation timelines, Chrome is going to make us leak user >>>> consent data over the network with cookies. This results in an effective >>>> net privacy decrease for the users of Transcend Consent. >>>> >>>> I vote that either unpartitioned storage timeline is pushed back or the >>>> 3P cookie deprecation timeline is moved up (the latter seems more difficult >>>> given the existing public commitments I've seen from Google). Anything less >>>> than the full deprecation of *all* unpartitioned storage (including >>>> cookies) is harmful to users' interests, as a partial deprecation just >>>> pushes sites to use other still-unpartitioned storage mechanisms with >>>> potentially worse privacy characteristics. >>>> >>>> > which safer APIs you're referring to - some more info would be useful >>>> >>>> APIs like requestStorageAccessFor >>>> <https://github.com/privacycg/requestStorageAccessFor> (FPS-scoped) or >>>> something >>>> else extending the storage API >>>> <https://github.com/privacycg/storage-access/issues/102> could serve >>>> this purpose. >>>> >>>> > Can I ask how you handle users on Firefox and Safari? This change >>>> moves us to align with their storage model. >>>> >>>> We don't attempt to do cross-site sync in Firefox and Safari. For >>>> browsers with partitioned storage our sync endpoints are only used to >>>> propagate consent & quarantine data cross-(sub)domain on one site (eTLD+1) >>>> as we don't currently rely on cookies. >>>> >>>> As an aside: Google is has been severely dropping the ball lately when >>>> it comes to coordination of Privacy Sandbox initiatives with other browser >>>> privacy features. For example, Chrome ignores its own Do Not Track >>>> feature when auto-enabling Privacy Sandbox trials >>>> <https://bugs.chromium.org/p/chromium/issues/detail?id=1431031>. >>>> Please work on improving cross-team coordination to prevent these sort of >>>> issues from happening. >>>> >>>> Regards, >>>> Eli >>>> >>>> On Wednesday, April 5, 2023 at 5:17:40 PM UTC-7 mike...@chromium.org >>>> wrote: >>>> >>>>> Hi Eli, >>>>> >>>>> Correct, we're not deprecating third-party cookies with this change - >>>>> you can learn more about the timeline for that here >>>>> <https://privacysandbox.com/open-web/#the-privacy-sandbox-timeline>. >>>>> I don't understand the setup of your use case, or which safer APIs you're >>>>> referring to - some more info would be useful (also feel free to email me >>>>> and the folks in cc directly, if you prefer). >>>>> >>>>> Can I ask how you handle users on Firefox and Safari? This change >>>>> moves us to align with their storage model. >>>>> >>>>> thanks, >>>>> Mike >>>>> On 4/5/23 2:28 PM, Eli Grey wrote: >>>>> >>>>> I'm not sure if I'm reading this right. Is partitioned storage being >>>>> shipped without deprecating legacy third-party cookies at the same time? >>>>> If >>>>> this change doesn't also deprecate third party cookies, it effectively >>>>> pushes some websites to use third-party cookies instead of safer APIs >>>>> scoped by FPS (which aren't ready yet). I maintain a consent manager that >>>>> uses localStorage and postMessage/MessageChannel to locally synchronize >>>>> cross domain consent and quarantine data. It is not a best practice to use >>>>> third party cookies for this as I would rather not leak data over the >>>>> network unnecessarily. I am now forced to leak consent data over the >>>>> network unnecessarily because the actual effective privacy boundaries have >>>>> not changed due to the lack of third-party cookie deprecation. >>>>> >>>>> As far as I can tell, this will only result in a degradation of >>>>> privacy for my users if I need to switch to third party cookies. Currently >>>>> quarantine data never touches the network but with this change we can no >>>>> longer privately and securely synchronize quarantined events, so we will >>>>> have to reduce our functionality in Chrome. >>>>> On Tuesday, April 4, 2023 at 3:44:52 PM UTC-7 mike...@chromium.org >>>>> wrote: >>>>> >>>>>> *Contact emails* >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> * wande...@chromium.org, m...@chromium.org, mike...@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> >>>>>> * >>>>>> >>>>> >> This email may be confidential or privileged. If you received this >> communication by mistake, please don't forward it to anyone else, please >> erase all copies and attachments, and please let me know that it went to >> the wrong person. Thanks. >> > -- > 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/42a5bada-46cb-4508-8e63-fa88ea0570a1n%40chromium.org > <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/42a5bada-46cb-4508-8e63-fa88ea0570a1n%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/CAM0wra9SnUy3iPaqspOQyWZ1eoE5cA88JHJ5p6GjZ_RaFv25CQ%40mail.gmail.com.