Skip to content

Commit 41975cf

Browse files
authored
Update spec + explainer to include usage for other purposes, such as IP Protection (#260)
1 parent dccbf88 commit 41975cf

File tree

2 files changed

+17
-7
lines changed

2 files changed

+17
-7
lines changed

README.md

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -56,14 +56,14 @@ some notion of first-party. In defining this scope, we must balance two goals: t
5656
small enough to meet the user's privacy expectations, yet large enough to provide the user's desired
5757
functionality on the site they are interacting with.
5858

59-
Related Website Sets (RWS) is a web platform mechanism, proposed within the context of browser efforts to phase out support for third-party cookies, through which site authors of multi-domain sites may declare relationships between domains such that the browser may understand the relationships and handle cookie access accordingly.
59+
Related Website Sets (RWS) is a web platform mechanism, proposed within the context of browser efforts to phase out support for third-party cookies, through which site authors of multi-domain sites may declare relationships between domains such that the browser may understand the relationships and handle cross-site data access accordingly.
6060

6161
The core principle of allowing browsers to treat collections of *known related sites* differently from otherwise *unrelated sites* is grounded in ideas that had been previously discussed in the W3C (such as [Affiliated Domains](https://www.w3.org/2017/11/06-webappsec-minutes.html#item12)), the now defunct IETF [DBOUND](https://datatracker.ietf.org/doc/html/draft-sullivan-dbound-problem-statement-02) working group, and previously deployed in some browsers (such as the [Disconnect.me entities list](https://github.com/disconnectme/disconnect-tracking-protection/blob/master/entities.json)).
6262

6363
There are two key components to the proposal:
6464

6565
- The framework governing how relationships between domains may be declared, and
66-
- The method by which the browser may manage cross-domain cookie access based on the declared relationship between domains.
66+
- The method by which the browser may manage cross-site cookie access based on the declared relationship between domains.
6767

6868

6969
# Goals
@@ -104,7 +104,7 @@ On the modern web, sites span multiple domains and many sites are owned & operat
104104

105105
**Note:** The above have been provided only to serve as real-world illustrative assumed examples of collections of domains that are owned by the same organization; and have not all been validated with the site owners.
106106

107-
This proposal anchors on the use cases described above to develop a framework for the browser to support limited cross-domain cookie access. This will allow browsers to ensure continued operation of existing functionality that would otherwise be broken by blocking cross-domain cookies ("third-party cookies"), and will support the seamless operation of functionality such as:
107+
This proposal anchors on the use cases described above to develop a framework for the browser to support limited cross-domain data access. This will allow browsers to ensure continued operation of existing functionality that would otherwise be broken by blocking cross-domain cookies ("third-party cookies"), and will support the seamless operation of functionality such as:
108108

109109

110110

@@ -223,6 +223,10 @@ In addition to the subsets proposed above, we propose a mechanism by which a set
223223

224224
For example, `exampleA.co.uk` could be considered a ccTLD variant of `exampleA.com`. If `exampleB.com` and `exampleC.com` are listed in the associated subset, the inclusion of `exampleB.co.uk` and `exampleC.co.uk` as ccTLD variants (of `exampleB.com` and `exampleC.com`, respectively) would *not* count against the limit on the number of associated domains, and would be allowed.
225225

226+
Note: Browsers may use RWS's domain relationships for other purposes. For example, Chrome's [IP Protection proposal](https://github.com/GoogleChrome/ip-protection) includes relying on RWS for the purposes of determining first-party and third-party contexts, but does not change RWS's Subset Types or Validation criteria.
227+
228+
If a submitter is defining related sites for non-browser-storage use cases like IP address, it may be to address network-level performance optimization or access management. In these scenarios, it may be appropriate to utilize the "service" subset, which does not have a domain limit but does have ownership requirements.
229+
226230
### Abuse mitigation measures
227231

228232
We consider using a public submission process (like a GitHub repository) to be a valuable approach because it facilitates our goal to keep all set submissions public and submitters accountable to users, civil society, and the broader web ecosystem. For example, a mechanism to report potentially invalid sets may be provisioned. We expect public accountability to be a significant deterrent for intentionally miscategorized subsets.
@@ -243,9 +247,9 @@ Chrome’s implementation will depend on the list of Related Website Sets gener
243247

244248
## Leveraging the Storage Access API
245249

246-
To facilitate the browser's ability to handle each subset differently, we are proposing leveraging the [Storage Access API](https://privacycg.github.io/storage-access/) (SAA) to enable cookie access within a RWS.
250+
To facilitate the browser's ability to handle each subset differently, we are proposing leveraging the [Storage Access API](https://privacycg.github.io/storage-access/) (SAA) to enable cross-site cookie and storage access within a RWS.
247251

248-
With the SAA, sites may actively request cross-site cookie access, and user-agents may [make their own decisions](https://privacycg.github.io/storage-access/#ua-policy) on whether to automatically grant or deny the request or choose to prompt the user. We propose that browsers supporting RWS incorporate set membership information into this decision. In other words, browsers may choose to automatically grant cross-site access when the requesting site is in the same RWS, or in a particular subset of the same RWS, as the top-level site.
252+
With the SAA, sites may actively request cross-site cookie and storage access, and user-agents may [make their own decisions](https://privacycg.github.io/storage-access/#ua-policy) on whether to automatically grant or deny the request or choose to prompt the user. We propose that browsers supporting RWS incorporate set membership information into this decision. In other words, browsers may choose to automatically grant cross-site access when the requesting site is in the same RWS, or in a particular subset of the same RWS, as the top-level site.
249253

250254
We'd like to collaborate with the community in evolving the Storage Access API to improve developer and user experience and help the SAA better support the use cases that RWS is intended to solve. One way to do that is through extending the API surface in a way that makes it easier for developers to use the SAA without integrating iframes:
251255

spec.bs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ urlPrefix: https://w3c.github.io/permissions/; spec: permissions
4141
"publisher": "Google Chrome"
4242
},
4343
"RWS-LIST": {
44-
"href": "https://github.com/GoogleChrome/first-party-sets/blob/main/first_party_sets.JSON",
44+
"href": "https://github.com/GoogleChrome/related-website-sets/blob/main/related_website_sets.JSON",
4545
"title": "Related Website Sets list",
4646
"publisher": "Google Chrome"
4747
},
@@ -68,7 +68,7 @@ urlPrefix: https://w3c.github.io/permissions/; spec: permissions
6868

6969
<em>This section is non-normative.</em>
7070

71-
Related Website Sets (“RWS”) provides a framework for developers to declare relationships among sites, to enable limited cross-site cookie access for specific, user-facing purposes. This is facilitated through the use of the [[STORAGE-ACCESS]].
71+
Related Website Sets (“RWS”) provides a framework for developers to declare relationships among sites, so that user agents can allow limited access to cross-site data, such as cookies, for user-facing purposes. This is facilitated through the use of the [[STORAGE-ACCESS]].
7272

7373
This document defines how user agents should integrate with the [[RWS-LIST]]. For a canonical reference of the structure of the RWS list and technical validations that are run at time of submission, please see the [[SUBMISSION-GUIDELINES]].
7474

@@ -242,6 +242,12 @@ When a [=site=] |site| leaves a [=related website set=] as the result of buildin
242242

243243
ISSUE(wicg/first-party-sets#124): This section should provide more details on how user agents can figure out when a site leaves an RWS.
244244

245+
<h2 id="other-features">Integration with other features</h2>
246+
247+
User agents may use the domain relationships declared through RWS for other implementation-defined purposes, in which case they must still follow the rest of this specification for consuming and storing the RWS list as well as checking eligibility for same-party membership.
248+
249+
Note: For example, <a href="https://github.com/GoogleChrome/ip-protection">Chrome's IP Protection proposal</a> includes relying on RWS for the purposes of determining first-party and third-party contexts.
250+
245251
<h2 id="privacy-consideration">Privacy Considerations</h2>
246252

247253
<h3 id="provide-transparency">Provide user transparency and control</h3>

0 commit comments

Comments
 (0)