Re: [w3c/permissions] Allow UAs to maintain zero or multiple permission stores. (#95)

>    </p>
>    <p>
> -    To <dfn>get a permission storage identifier</dfn> for a
> -    {{PermissionName}} <var>name</var> and an <a>environment settings
> -    object</a> <var>settings</var>, the UA MUST return a tuple consisting
> -    of:
> +    The <a>user agent</a> MAY maintain any number of <a>permission store</a>s to
> +    record what capabilities users have granted web sites permission to access.
> +    The <a>user agent</a> may create new <a>permission store</a>s, for example
> +    to serve a particular <a>origin</a>, <a>origin</a> within a <a>top-level
> +    browsing context</a>, or <a>realm</a>, and when it does so, it may
> +    initialize it using the mappings of any other <a>permission store</a>
> +    associated with the <a>same origin</a>.
>    </p>

MediaCapture and Streams [now mandates](https://github.com/w3c/mediacapture-main/commit/bbdee2433051107e597a4fbd277b6d619113ac54) that any top-level browsing context that already has at least one un-stopped MediaStreamTrack in it must be allowed to request new tracks from the same device without a prompt. If this is the sort of thing we're trying to codify, then I imagine this tab might see (for the purposes of this discussion) `'allowed temporarily'`, while other tabs from the same origin see `'prompt'`. The view here would be that the first tab has implicitly been granted some temporary privileges that the other same-origin tabs have not (not sure how we'd describe that this is limited to a certain device, though most users have just one camera/mic, so maybe that's not super important?)

This suggests to me at least two stores: a per-origin-store for persistent permissions, and a top-level-browsing-context-store for temporary ones, and some rules for when changes to the former affects the latter. Are there any examples that need more than two stores?

---
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/w3c/permissions/pull/95/files/9a98a3cc8c47bc4aba961d8bf7244bb1b57f1f72#r61796917

Received on Monday, 2 May 2016 20:20:26 UTC