-
Notifications
You must be signed in to change notification settings - Fork 20
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
[Privacy] Adds notes clarifying behavior to address privacy review. #83
Changes from 10 commits
c216df3
9784000
e481983
78ab1fb
a315df9
3d75dcf
5712cad
dadfa16
988f2c8
bfe390b
09ae067
a17a7c4
89be354
b4afe7d
ccca18a
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 |
---|---|---|
|
@@ -620,10 +620,11 @@ <h5> | |
"https://github.com/w3c/remote-playback/blob/gh-pages/use-cases.md#power-saving-friendly"> | ||
power saving non-functional requirement</a>. For example, the | ||
<a>user agent</a> MAY not run the monitoring algorithm when the | ||
<a>global set of availability callbacks</a> is empty or each page | ||
that has <a data-lt="media element">media elements</a> with | ||
non-empty <a>set of availability callbacks</a> is not in the | ||
foreground. | ||
<a>global set of availability callbacks</a> is empty, when every | ||
page that has <a data-lt="media element">media elements</a> with | ||
non-empty <a>set of availability callbacks</a> is in the | ||
background, or when the user has <a data-lt="disable remote | ||
playback">disabled remote playback</a> on all media elements. | ||
</p> | ||
<p> | ||
Some <a>remote playback devices</a> may only be able to play a | ||
|
@@ -759,6 +760,14 @@ <h5> | |
</ol> | ||
</li> | ||
</ol> | ||
<div class="note"> | ||
To avoid leaking information that could fingerprint the user, the | ||
user agent SHOULD assign the <var>callbackId</var> based on the | ||
identity of the <a>media element</a> alone, and not the identity | ||
of the browser profile or any <a>remote playback device</a>. For | ||
example, the user agent could base the <var>callbackId</var> on | ||
the timestamp the <a>media element</a> was created. | ||
</div> | ||
</section> | ||
<section> | ||
<h5> | ||
|
@@ -1341,7 +1350,8 @@ <h4> | |
<p> | ||
When the <a data-link-for= | ||
'HTMLMediaElement'>disableRemotePlayback</a> attribute is added to | ||
the <a>media element</a>, the user agent MUST run these steps: | ||
the <a>media element</a>, the user agent MUST run the steps | ||
to <dfn>disable remote playback</dfn>: | ||
</p> | ||
<ol> | ||
<li>Reject any pending promises returned by the | ||
|
@@ -1377,7 +1387,8 @@ <h3> | |
area network. This could be used in conjunction with other | ||
information for fingerprinting the user. However, this information is | ||
also dependent on the user's local network context, so the risk is | ||
minimized. | ||
minimized. Also, by design, the human readable name of a <a>remote | ||
playback device</a> is not revealed to the page. | ||
</p> | ||
<p> | ||
The API enables <a href= | ||
|
@@ -1391,6 +1402,14 @@ <h3> | |
used to probe information about which <a>remote playback device</a> | ||
the user has without user consent. | ||
</p> | ||
<p> | ||
The user agent MAY stop <a data-lt="monitor the list of available | ||
remote playback devices"> monitoring the list of available remote | ||
playback devices</a> at any time if the user disables remote playback | ||
(for example, through a browser setting). In this state, pages will | ||
receive no further information about the availability of <a>remote | ||
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. In such a scary (to web authors) scenario I think firing the callbacks with availability set to false if needed would be nice. 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. I think the normative part of the spec should then describe the behavior of stop monitoring the list of remote playback devices. I'll drop the last sentence and file this as an enhancement. |
||
playback devices</a>. | ||
</p> | ||
</section> | ||
<section> | ||
<h3> | ||
|
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.
nit: I think this example implies the callback ids must be unique across all the media elements within a browser session which is not true. They only must be unique for each media element alone. An example is a counter in the media element's scope, that's set to 0 when the media element is created and is incremented each time its value is returned by
watchAvailability()
for this particular element as the callback id.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.
That seems inconvenient if a page is watching availability on multiple elements and wants to keep the callbacks in a Map or otherwise track the set of callbacks by id.
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.
Fair point. It might be more likely having one callback per many elements compared to many callbacks for a single element. The spec doesn't guarantee any cross-element uniqueness of the ids at the moment though.
@jernoble @mounirlamouri WDYT?
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.
It seems like this requires discussion in a separate issue. I'll remove the example from this PR and suggest it separately.