Re: [mediacapture-output] Switch to transient activation. (#118)

> @domenic This is a promise resolved by user interaction. Is that not covered?

No; as you can see from the relevant sections of the HTML Standard, there is no special treatment for promises.

> I wonder if there's a general problem here with (permission) prompts interfering with transient activation, since it takes time for users to answer prompts. Was this considered when we switched to a time-based activation model?

Yes. Existing APIs usually handle this in a few ways:

- The permissions prompt requires user activation. After permission is granted, no user activation is necessary, often because the API bundles the permission-granting with the action itself. (Examples: `IdleDetector.requestPermission()` + use the `IdleDetector`; ``; `navigator.share()`; `element.requestPointerLock()`)

- The permission grant does not require user activation. Examples: `Notification.requestPermission()`; `navigator.geolocation.getCurrentPosition()`; `navigator.wakeLock.request()`; `screen.orientation.lock()`

- The permission grant does not require user activation (and sometimes doesn't show a prompt), but  using the relevant permission afterward requires user activation. Example: `navigator.clipboard`.

You seem to have a special case new situation where you want user activation required *both* for showing the permission request, and then using the resulted granted permission afterward. If you want to share the user activation across both things, then a special-case mechanism like I described above makes the most sense.

> Sure, but that sounds like recreating a transient activation mechanism for media. We'd probably want a broader name, and reuse this for getDisplayMedia, as well as getUserMedia pending w3c/mediacapture-extensions#11.

Maybe, if those things also require a second user activation to start playing the media. I'd be surprised if they did; I suspect that if the user has granted you screen sharing or video call permissions or whatever, that the browser isn't going to need a further user activation restriction on actually using those. But this is outside my domain and you would know better.

GitHub Notification of comment by domenic
Please view or discuss this issue at using your GitHub account

Sent via github-notify-ml as configured in

Received on Monday, 29 March 2021 20:34:12 UTC