Skip to content
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

Screen Capture API (2019) #440

Closed
3 of 5 tasks
jan-ivar opened this issue Nov 15, 2019 · 6 comments
Closed
3 of 5 tasks

Screen Capture API (2019) #440

jan-ivar opened this issue Nov 15, 2019 · 6 comments
Assignees
Labels
Resolution: satisfied The TAG is satisfied with this design Topic: media Venue: WebRTC WebRTC and media capture

Comments

@jan-ivar
Copy link

jan-ivar commented Nov 15, 2019

Hello TAG!

This supersedes #309 as a request for a TAG review of:

Further details:

You should also know that...

This has been implemented in all major browsers (behind a flag in Safari), on desktop platforms only (mostly). No opposition recorded.

  • Simple demo page.
  • The feature is broadly adopted by most major web conferencing services (hangouts, whereby, jitsi, meet, cisco, meetecho and many others).
  • Audio is a recent addition, limited to Chrome atm afaik.
  • The user gesture requirement is new, and only implemented by Safari atm (patch in Firefox).
  • Some concern (from yours truly) that elevated permissions are not established rigorously enough in all browsers.

We'd prefer the TAG provide feedback as (please select one):

  • open issues in our GitHub repo for each point of feedback
  • open a single issue in our GitHub repo for the entire review
  • leave review feedback as a comment in this issue and notify @jan-ivar

Thanks!

@hadleybeeman
Copy link
Member

hadleybeeman commented Mar 2, 2020

Hi, @jan-ivar, and thanks for sending this. @torgo and I have started looking at it at our TAG face-to-face in Wellington.

We've seen that the Security and Privacy section has matured a lot since we last looked at this document. But we got lost a bit in the current wording. Specifically:

  1. For sections 8.2.1. and 8.2.2., it's not clear to us what use cases you have in mind. It may be useful to spell them out explicitly.

For 8.2.1., what is active user consent (perhaps it's asking for a permission?), and how is it different to the "novelty" mentioned in 8.2.3?

And for 8.2.2., when do you foresee content crossing origins? With the sharing user, or somehow including the recipient? Also, what elevated permissions are you expecting here? Perhaps those in the OS, or on the specific origin? If it's the origin, then what permissions, and how are they different to what you're thinking of in 8.2.1?

  1. On 5.5 device identifiers: we are pleased that you're concerned about enumerated devices revealing too much information. That's great!

But we're a bit confused... how do you think that UAs will solve that problem? Is it necessary to spell that out, or is flexibility useful here?

Specifically, we were wondering if you are expecting them to create temporary device IDs? Do you see any danger of them being preserved, and therefore causing the same problem?

@torgo
Copy link
Member

torgo commented Mar 2, 2020

Also, we were happy to see how much throught went into the responses to the privacy & security questionnaire, especially since this API has some tricky privacy considerations. We'd appreciate it if that doc could be brought over into your repo instead of living as a google doc.

@torgo torgo added the Progress: pending external feedback The TAG is waiting on response to comments/questions asked by the TAG during the review label Mar 2, 2020
@jan-ivar
Copy link
Author

jan-ivar commented Mar 2, 2020

Hi, and thanks! I'm happy to elaborate since the privacy issues aren't super evident. (Part 1/2)

For 8.2.1., what is active user consent (perhaps it's asking for a permission?),

In short, yes. It's one of two forms of mandated consent interactions; the one required regardless of source. This spec tries hard to not assume what shape UX might take, hence these abstractions.

Example of Active User Consent: all current implementations implement a screen/window/tab picker, which imply giving permission much like a file upload dialog does.

and how is it different to the "novelty" mentioned in 8.2.3?

It should be less severe/novel than the elevated permission required for scary sources.

Importantly, "elevated permissions are not a substitute for active user consent." In other words: sharing a scary source requires both elevated permission and active user consent.

Example of Elevated Permission: an installation procedure akin to installing an extension, where the user understands they're making a high-trust special exception. At the time of writing years ago, Chrome still required installation of an extension to enable screen sharing, and Firefox required an about:config whitelist of websites (i.e. an extension).

Since then, implementations have lowered the bar:

  1. Firefox shows a ⚠️ warning in the preview pane (seen here) of scary sources only.
  2. Chrome makes no distinction (in violation of the spec in my opinion).

@jan-ivar
Copy link
Author

jan-ivar commented Mar 2, 2020

(Part 2/2)

And for 8.2.2., when do you foresee content crossing origins?

If a web site controls both what is being captured and the resulting stream, then it has a power tool to circumvent the same origin policy. See the blog for an explanation of this exploit.

On 5.5 device identifiers:

Device identifiers are not exposed to JS ("MUST NOT be enumerated by enumeratedevices()").

@jan-ivar
Copy link
Author

jan-ivar commented Mar 2, 2020

@hadleybeeman @torgo. I've added the questionnaire in w3c/mediacapture-screen-share#137

@torgo torgo added the Progress: propose closing we think it should be closed but are waiting on some feedback or consensus label May 28, 2020
@plinss plinss modified the milestones: 2020-05-21-f2f, 2020-06-08-week Jun 7, 2020
@hober hober removed the Progress: pending external feedback The TAG is waiting on response to comments/questions asked by the TAG during the review label Jun 10, 2020
@torgo
Copy link
Member

torgo commented Jun 10, 2020

Hi - I think we are happy to close this. Thanks for taking our feedback on board.

@torgo torgo closed this as completed Jun 10, 2020
@torgo torgo added Resolution: satisfied The TAG is satisfied with this design and removed Progress: propose closing we think it should be closed but are waiting on some feedback or consensus labels Jun 10, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Resolution: satisfied The TAG is satisfied with this design Topic: media Venue: WebRTC WebRTC and media capture
Projects
None yet
Development

No branches or pull requests

6 participants