diff --git a/index.bs b/index.bs
index 31cd3fc..f9e1e53 100644
--- a/index.bs
+++ b/index.bs
@@ -100,14 +100,14 @@ may be useful when doing so.
Questions to Consider
- What information might this feature expose to Web sites or other parties,
- and for what purposes is that exposure necessary?
+ What information does this feature expose,
+ and for what purposes?
-User Agents should only expose information to the web
+User agents should only expose information to the Web
when doing so is necessary to serve a clear user need.
-Does your feature expose information to origins?
-If so, how does exposing this information serve user needs?
+Does your feature expose information to websites?
+If so, how does exposing this information benefit the user?
Are the risks to the user outweighed by the benefits to the user?
If so, how?
@@ -140,13 +140,14 @@ characteristics).
Do features in your specification expose the minimum amount of information
- necessary to enable their intended uses?
+ necessary to implement the intended functionality?
Features should only expose information
-when it's absolutely necessary to satisfy use cases.
+when it's absolutely necessary.
If a feature exposes more information than is necessary,
-why does it do so?
+why does it do so, and can that the same functionality be achieved by
+exposing less information?
See also
@@ -160,9 +161,9 @@ mitigated the risk by reducing a policy's granularity after a redirect.
- How do the features in your specification deal with personal information,
+ Do the features in your specification expose personal information,
personally-identifiable information (PII), or information derived from
- them?
+ either?
Personal information is any data about a user
@@ -182,7 +183,8 @@ that could be used to identify a user.
When exposing
personal information, PII, or derivative information,
-spec authors must take steps to minimize the potential harm to users.
+specification authors must prevent or, when prevention is not possible, minimize
+potential harm to users.
A feature
@@ -311,22 +313,22 @@ See also
* [[DESIGN-PRINCIPLES#do-not-expose-use-of-assistive-tech]]
- Do the features in your specification introduce new state for an origin
+ Do the features in your specification introduce state
that persists across browsing sessions?
-There are many existing mechanisms
+The Web platform already includes many mechanisms
origins can use to
-store information about a user.
+store information.
Cookies,
`ETag`,
`Last Modified`,
{{localStorage}},
and
-{{indexedDB}}
+{{indexedDB}},
are just a few examples.
-Allowing an origin
+Allowing a website
to store data
on a user’s device
in a way that persists across browsing sessions
@@ -336,24 +338,20 @@ to track a user
without their knowledge or control,
either in [=first-party-site context|first-=] or [=third-party context|third-party=] contexts.
-One of the ways
-user agents mitigate the risk
-that client-side storage mechanisms
-will form a persistent identifier
+One way
+user agents prevent origins from
+abusing client-side storage mechanisms
is by providing users with the ability
-to clear out the data stored by origins.
-New state persistence mechanisms
-should not be introduced
-without mitigations
-to prevent them
-from being used
-to track users
-across domains
-or without control
-over clearing this state.
-That said,
-manually clearing storage
-is something users do only rarely.
+to clear data stored by origins.
+Specification authors should include similar
+protections to make sure that new
+client-side storage mechanisms
+cannot be misused to track users across domains
+without their control.
+However, just giving users the ability
+to delete origin-set state is usually
+not sufficient. since users rarely
+manually clear browser state.
Spec authors should consider ways
to make new features more privacy-preserving without full storage clearing,
such as
@@ -361,27 +359,13 @@ reducing the uniqueness of values,
rotating values,
or otherwise making features no more identifying than is needed.
-Also, keep in mind that
-user agents make use of several different caching mechanisms.
-Which, if any, caches will store this new state?
-Are additional mitigations necessary?
-
-
-Service Workers
-intercept all requests made by an origin,
-which enables sites
-to continue to function when the browser goes offline.
-Because of this,
-a maliciously-injected service worker
-could compromise the user (as documented in [[SERVICE-WORKERS#security-considerations]]).
-
-The spec mitigates the risks
-an [=active network attacker=] or [=XSS=] vulnerability present
-by limiting service worker registration to [=secure contexts=].
-[[SERVICE-WORKERS]]
-
-
+Additionally, specification authors
+should carefully consider and specify, when possible,
+how their features should interact with browser caching
+features. Additional mitigations may be necessary to
+prevent origins from abusing caches to
+identify and track users across sites or sessions without user consent.
Platform-specific DRM implementations