Hi Elijah, Sorry for the late response here, just wanted to make sure you were aware of one more thing related to First-Party Sets (inline):
On Monday, April 10, 2023 at 6:07:37 PM UTC-4 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). The entities in First-Party Sets are registrable domains <https://github.com/WICG/first-party-sets#:~:text=sets%20are%20composed%20of%20valid%20registrable%20domains>, not origins, and all sets must be mutually disjoint <https://github.com/WICG/first-party-sets#:~:text=Mutual%20exclusivity%20to%20ensure%20a%20domain%20isn't%20part%20of%20multiple%20First-Party%20Sets>. So the plan to use different <customer-id>.sync.transcend.io subdomains in different sets would not work, as you'd really be trying to put the same registrable domain (transcend.io) in multiple different sets. 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 <https://github.com/WICG/first-party-sets/issues/111> and/or https://github.com/WICG/first-party-sets/issues/94 <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/b834b324-5096-4662-8bf7-206afc8d5d80n%40chromium.org.