-
Notifications
You must be signed in to change notification settings - Fork 28
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update presentation-timestamps.md to include security & privacy #107
Changes from 1 commit
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -46,3 +46,83 @@ This would keep compatibility with what's out there today, allowing progressive | |
|
||
When exposing paint timings, we look for the right trade-off between "UX-precise" and "interoperable". | ||
By exposing those as two timestamps, and making one of them optional, we give web developers the information that can help them optimize, without compromising on interoperability. | ||
|
||
## Security & privacy self review | ||
|
||
See [Self-Review Questionnaire: Security and Privacy](https://w3ctag.github.io/security-questionnaire/) | ||
|
||
### 01. What information might this feature expose to Web sites or other parties, and for what purposes is that exposure necessary? | ||
|
||
It exposes timing information of a platform/OS operation, namely "VSync". | ||
|
||
#### 02. Do features in your specification expose the minimum amount of information necessary to enable their intended uses? | ||
|
||
Yes. | ||
|
||
#### 03. How do the features in your specification deal with personal information, personally-identifiable information (PII), or information derived from them? | ||
|
||
This feature does not deal with personal information. | ||
|
||
#### 04. How do the features in your specification deal with sensitive information? | ||
|
||
This feature does not deal with sensitive information. | ||
|
||
#### 05. Do the features in your specification introduce new state for an origin that persists across browsing sessions? | ||
|
||
No. This feature only applies to the current document. | ||
|
||
#### 06. Do the features in your specification expose information about the underlying platform to origins? | ||
|
||
To some extent, the timing of committing a frame is information about the underlying platform. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This is true -- you might be able to determine the refresh rate of the user's display, which is potentially a fingerprinting bit. (mostly only if it's not 60hz, I would guess) There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Done |
||
However, this information is already exposed in other ways (the `requestAnimationFrame` callback timestamp), | ||
and in this specification it is over-coarsen to avoid exposing meaningful information in terms of security. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Did you mean "over-coarsened"? (And if so, does that imply that it's even more coarsened that necessary? Could this sentence just say "...it is coarsened to avoid exposing..."?) |
||
|
||
#### 07. Does this specification allow an origin to send data to the underlying platform? | ||
|
||
No. | ||
|
||
#### 08. Do features in this specification allow an origin access to sensors on a user’s device? | ||
|
||
No. | ||
|
||
#### 09. What data do the features in this specification expose to an origin? Please also document what data is identical to data exposed by other features, in the same or different contexts. | ||
|
||
Timing information only. | ||
|
||
#### 10. Do feautres in this specification enable new script execution/loading mechanisms? | ||
|
||
No. | ||
|
||
#### 11. Do features in this specification allow an origin to access other devices? | ||
|
||
No. | ||
|
||
#### 12. Do features in this specification allow an origin some measure of control over a user agent's native UI? | ||
|
||
None. | ||
|
||
#### 13. What temporary identifiers do the features in this specification create or expose to the web? | ||
|
||
None. | ||
|
||
#### 14. How does this specification distinguish between behavior in first-party and third-party contexts? | ||
|
||
Timing information receives extra coarsening in documents that are not cross-origin isolated. | ||
Cross-origin isolation is more appropriate here than per-resource protections, as the same presentation timing is shared | ||
across all the resources presented in the same frame, be it cross-origin or same-origin resources. | ||
|
||
#### 15. How do the features in this specification work in the context of a browser’s Private Browsing or Incognito mode? | ||
|
||
The feature is unaffected by these modes. | ||
|
||
#### 16. Does this specification have both "Security Considerations" and "Privacy Considerations" sections? | ||
|
||
Yes. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. "Yes. Combined. Right here, you're reading it right now" 😁 |
||
|
||
#### 17. Do features in your specification enable origins to downgrade default security protections? | ||
|
||
Yes, using cross-origin isolation. | ||
|
||
#### 18. What should this questionnaire have asked? | ||
|
||
The questionnaire asked for sufficient information. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should cover "and for what purposes is that exposure necessary" - even in just a sentence (and then refer to the remainder of the explainer, since that's what it's about)
You can also mention that it's not the precise vsync time, but a coarsened approximation to it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done