diff --git a/index.html b/index.html index 912720a..600f39e 100644 --- a/index.html +++ b/index.html @@ -98,6 +98,11 @@

The following concepts and interfaces are defined in [[!HTML]]:

Permission Store

- User agents MAY use a form of storage to keep - track of web site permissions. When they do, they MUST have a - permission storage identifier which is linked to a permission - storage entry. The permission storage identifier MUST - contain the website's origin and MAY contain other information like the - embedding status or the embedder's origin. The permission storage + User agents MAY use a form of storage to keep + track of web site permissions. When they do, they MUST have a + permission storage identifier which is linked to a + permission storage entry. The permission storage entry MUST be a PermissionState or undefined.

+

+ To get a permission storage identifier for a + PermissionName name and an environment settings + object settings, the UA MUST return a tuple consisting + of: +

+
    +
  1. + name +
  2. +
  3. + settings' origin +
  4. +
  5. optional UA-specific data like whether settings' + browsing context has a parent browsing context, or + settings' top-level browsing context's origin +
  6. +

The steps to retrieve a permission storage entry of a permission storage identifier are as follows: @@ -452,9 +488,15 @@

follows:

    -
  1. Let identifier be the permission storage identifier - associated with the origin, global object and permission.
  2. -
  3. Run the steps to retrieve a permission storage entry.
  4. +
  5. + Get a permission storage identifier for + permission's PermissionName and the current + environment settings object, and let identifier be + the result. +
  6. +
  7. Run the steps to retrieve a permission storage entry of + identifier. +
  8. If the result of those steps are not undefined, return it and abort these steps.
  9. Otherwise, the user agent MUST return a default value based @@ -569,8 +611,10 @@

    };

    - When the query() - method is invoked, the user agent MUST run the following steps: + When the query() + method is invoked, the user agent MUST run the following + query a permission algorithm, passing the + parameter permission:

    1. If permission.name has an associated @@ -602,15 +646,20 @@

      found in the Examples section.

      - When the request() - method is invoked, the user agent MUST run the following steps: + When the request() method is invoked, the user + agent MUST run the following request a + permission algorithm, passing the parameter + permission:

      1. TODO

      - When the revoke() - method is invoked, the user agent MUST run the following steps: + When the revoke() + method is invoked, the user agent MUST run the following + revoke a permission algorithm, passing the + parameter permission:

      1. If permission.name has an associated @@ -631,8 +680,11 @@

      2. Return promise and continue the following steps asynchronously.
      3. -
      4. Let identifier be the permission storage identifier - associated with the origin, global object and permission. +
      5. + Get a permission storage identifier for + permission.name and the current + environment settings object, and let identifier be + the result.
      6. Run the steps to delete a permission storage entry using identifier.