diff --git a/index.html b/index.html index e47d065..bcbf5f1 100644 --- a/index.html +++ b/index.html @@ -278,6 +278,74 @@
+ The user agent maintains a single permission store which is a [=/list=] of [=permission store entries=]. Each particular [=entry=] denoted by its [=permission store entry/descriptor=] and [=permission store entry/key=] can only appear at most once in this list. +
++ The user agent MAY remove [=entries=] from the [=permission store=] when their respective [=permission=]'s [=permission/lifetime=] has expired. +
++ A permission store entry is a [=tuple=] of {{PermissionDescriptor}} descriptor, [=permission key=] key, and [=permission/state=] state. +
++ To get a permission store entry given a {{PermissionDescriptor}} |descriptor| and [=permission key=] |key|: +
+ To set a permission store entry given a {{PermissionDescriptor}} |descriptor|, a [=permission key=] |key|, and a [=permission/state=] |state|, run these steps: +
+ To remove a permission store entry given a {{PermissionDescriptor}} |descriptor| and [=permission key=] |key|, run these steps: +
+ A permission key has its type defined by a feature's [=powerful feature/permission key type=]. + +
++ To determine whether a [=permission key=] |key1| is equal to a [=permission key=] |key2|, given a {{PermissionDescriptor}} |descriptor|, run the following steps: +
+ The type of [=permission key=] used by the feature. Defaults to [=origin=]. + A feature that specifies a custom [=powerful feature/permission key type=] MUST also specify a + [=powerful feature/permission key generation algorithm=]. +
++ Takes an [=environment settings object=], and returns a new [=permission key=]. + If unspecified, this defaults to the default permission key generation algorithm. + A feature that specifies a custom [=powerful feature/permission key generation algorithm=] MUST also specify a + [=powerful feature/permission key comparison algorithm=]. +
++ The default permission key generation algorithm, + given an [=environment settings object=] |settings|, runs the following steps: +
++ Takes two [=permission keys=] and returns a [=boolean=] that shows whether the two keys are equal. + If unspecified, this defaults to the default permission key comparison algorithm. +
++ The default permission key comparison algorithm, + given [=permission keys=] |key1| and |key2|, runs the following steps: +
+Takes no arguments. Updates any other parts of the implementation that need to be kept in sync with changes in the results of permission states or [=powerful - feature/extra permission data=], and then [=react to the user revoking permission=]. + feature/extra permission data=].
If unspecified, this defaults to running [=react to the user revoking permission=]. @@ -637,9 +757,11 @@
@@ -681,6 +803,16 @@
As a shorthand, requesting permission to use a {{DOMString}} |name|, is the same @@ -743,12 +875,16 @@
When the user agent learns that the user no longer intends to grant permission to use a - feature, react to the user revoking permission by running these steps: + feature described by the {{PermissionDescriptor}} |descriptor| in the context + described by the [=permission key=] |key|, react to the user revoking permission + by running these steps: