From f7382fab94eabb5a14c6561d2ccb2a11a9ee7951 Mon Sep 17 00:00:00 2001 From: Mike Taylor Date: Thu, 16 Nov 2023 00:48:32 +0000 Subject: [PATCH] Add missing semicolon to WebIDL example (#417) SHA: f647e6d85615057f5eccb70cfe3b0a4103e4dcc0 Reason: push, by miketaylr Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- docs/assets/images/permission-settings.png | Bin 0 -> 30970 bytes docs/assets/images/sample-prompts.png | Bin 0 -> 30582 bytes index.html | 2038 ++++++++++++-------- 3 files changed, 1201 insertions(+), 837 deletions(-) create mode 100644 docs/assets/images/permission-settings.png create mode 100644 docs/assets/images/sample-prompts.png diff --git a/docs/assets/images/permission-settings.png b/docs/assets/images/permission-settings.png new file mode 100644 index 0000000000000000000000000000000000000000..d374cf7acc40b862362ffdefeaa84d679d366ab0 GIT binary patch literal 30970 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 - + +
@@ -272,7 +272,7 @@

Permissions

Interacting with Permissions for Powerful Features

-

W3C Editor's Draft

+

W3C Editor's Draft

More details about this document
@@ -284,7 +284,7 @@

Permissions

Latest editor's draft:
https://w3c.github.io/permissions/
History:
- https://www.w3.org/standards/history/permissions + https://www.w3.org/standards/history/permissions/
Commit history
@@ -294,7 +294,7 @@

Permissions

Editors:
- Marcos Cáceres (W3C) + Marcos Cáceres (Apple Inc.)
Mike Taylor (Google LLC)
@@ -317,24 +317,26 @@

Permissions

Browser support:
- Chrome logo43 + Chrome logo43
- Edge logo79 + Edge logo79
- Firefox logo46 -
- Safari logoTP + Firefox logo46 +
+ Safari logo16.0
desktop
-
- Android Chrome logo101 -
- Android Firefox logo100 -
- iOS Safari logo3.2 +
+ Android Chrome logo119 +
+ Android Firefox logo119 +
+ Android UC logo15.5 +
+ iOS Safari logo16.0
- Samsung Internet logo4 + Samsung Internet logo4
mobile
More info @@ -343,16 +345,15 @@

Permissions

- Copyright + Copyright © - 2022 + 2023 - W3C® (MIT, - ERCIM, Keio, - Beihang). W3C - liability, - trademark and - permissive document license rules apply. + World Wide Web Consortium. + W3C® + liability, + trademark and + permissive document license rules apply.


@@ -387,7 +388,7 @@

Permissions

1 August 2017 W3C Patent + W3C Patent Policy. @@ -397,56 +398,62 @@

Permissions

Essential Claim(s) + Essential Claim(s) must disclose the information in accordance with - section 6 of the W3C Patent Policy. + section 6 of the W3C Patent Policy.

This document is governed by the - 2 November 2021 W3C Process Document. -

- A default powerful feature is a powerful feature with all + A default powerful feature is a powerful feature with all of the above types and algorithms defaulted.

-

4. +

5. Algorithms to interface with permissions -

+

-

4.1 +

5.1 Reading the current permission state -

+

To get the current - permission state, given a name name and an optional - environment settings object settings, run the following steps. This algorithm + permission state, given a name name and an optional + environment settings object settings, run the following steps. This algorithm returns a PermissionState enum value.

    -
  1. Let descriptor be a newly-created PermissionDescriptor - with name initialized to name. +
  2. Let descriptor be a newly-created PermissionDescriptor + with name initialized to name.
  3. -
  4. Return the permission state of descriptor with settings. +
  5. Return the permission state of descriptor with settings.

- A descriptor's permission state, given - an optional environment settings object settings is the result of the following - algorithm. It returns a PermissionState enum value: + A descriptor's permission state, given an optional + environment settings object settings is the result of the following algorithm. + It returns a PermissionState enum value:

    -
  1. If settings wasn't passed, set it to the current settings object. +
  2. If settings wasn't passed, set it to the current settings object.
  3. -
  4. If settings is a non-secure context, return "denied". +
  5. If settings is a non-secure context, return "denied".
  6. -
  7. Let feature be descriptor's name. +
  8. Let feature be descriptor's name.
  9. -
  10. If there exists a policy-controlled feature for feature and settings' - relevant global object has an associated Document run the following step: +
  11. If there exists a policy-controlled feature for feature and settings' + relevant global object has an associated Document run the following step:
      -
    1. Let document be settings' relevant global object's associated Document. +
    2. Let document be settings' relevant global object's associated Document.
    3. If document is not allowed to use feature, return "denied".
  12. -
  13. If there was a previous invocation of this algorithm with the same descriptor and - settings, returning previousResult, and the user agent has not received new - information about the user's intent since that invocation, return previousResult. +
  14. Let key be the result of generating a permission key for descriptor with settings.
  15. -
  16. Return the PermissionState enum value that represents the permission state of - feature, taking into account any permission state constraints for - descriptor's name. +
  17. Let entry be the result of getting a permission store entry with descriptor and key. +
  18. +
  19. If entry is not null, return a PermissionState enum value from entry's + state. +
  20. +
  21. Return the PermissionState enum value that represents the permission state of + feature, taking into account any permission state constraints for + descriptor's name.
-
Issue 278: Safari returns different results for current permission state

Safari is the only known UA that returns different results from this algorithm for different settings objects with the same origin. We should test which of the several possible settings objects it uses.

- As a shorthand, a DOMString name's permission state is the permission - state of a PermissionDescriptor with its name member set + As a shorthand, a DOMString name's permission state is the permission + state of a PermissionDescriptor with its name member set to name.

-

4.2 +

5.2 Requesting permission to use a powerful feature -

+

To request permission to use a descriptor, the user @@ -981,33 +1167,41 @@

Permissions

granted" or "denied".

    -
  1. Let current state be the descriptor's permission state. +
  2. Let current state be the descriptor's permission state.
  3. If current state is not "prompt", return current state and abort these steps.
  4. Ask the user for express permission for the calling algorithm to use the - powerful feature described by descriptor. + powerful feature described by descriptor.
  5. -
  6. If the user gives express permission to use the powerful feature, return - "granted"; otherwise return "denied". The user's - interaction may provide new information about the user's intent for this realm and other realms with the same origin. -
    Note

    +

  7. If the user gives express permission to use the powerful feature, set current + state to "granted"; otherwise to "denied". The + user's interaction may provide new information about the user's intent for the + origin. +
    Note

    This is intentionally vague about the details of the permission UI and how the user agent infers user intent. User agents should be able to explore lots of UI within this framework.

  8. +
  9. Let key be the result of generating a permission key with the current settings object. +
  10. +
  11. Queue a task on the current settings object's responsible event loop to set a permission store entry with descriptor, + key, and current state. +
  12. +
  13. Return current state. +

As a shorthand, requesting permission to use a DOMString name, is the same - as requesting permission to use a PermissionDescriptor with its - name member set to name. + as requesting permission to use a PermissionDescriptor with its + name member set to name.

-

4.3 +

5.3 Prompt the user to choose -

+

To prompt the user to choose one or more options associated with a given @@ -1016,15 +1210,15 @@

Permissions

denied" or the user's selection.

    -
  1. If descriptor's permission state is "denied", return +
  2. If descriptor's permission state is "denied", return "denied" and abort these steps.
  3. -
  4. If descriptor's permission state is "granted", the user +
  5. If descriptor's permission state is "granted", the user agent may return one (or more if allowMultiple is true) of options chosen by the user and abort these steps. If the user agent returns without prompting, then subsequent prompts for the user to choose from the same set of options with the same descriptor must return the same option(s), unless the user - agent receives new information about the user's intent. + agent receives new information about the user's intent.
  6. Ask the user to choose one or more options or deny permission, and wait for them to choose: @@ -1038,10 +1232,8 @@

    Permissions

  7. If the user chose one or more options, return them; otherwise return - "denied". If the user's interaction indicates they intend this choice - to apply to other realms, then treat this this as new information about the user's - intent for other realms with the same origin. -
    Note

    + "denied". +

    Note

    This is intentionally vague about the details of the permission UI and how the user agent infers user intent. User agents should be able to explore lots of UI within this framework. @@ -1051,243 +1243,233 @@

    Permissions

    As a shorthand, prompting the user to choose from options associated with a DOMString name, is the same as prompting the user to choose from those - options associated with a PermissionDescriptor with its name + options associated with a PermissionDescriptor with its name member set to name.

-

4.4 +

5.4 Reacting to users revoking permission -

+

- When the user agent learns that the user no longer intends to grant permission for a - realm to use a feature, react to the user revoking - permission by running these steps: + When the user agent learns that the user no longer intends to grant permission to use a + 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:

    -
  1. - Queue a task on the Realm's settings object's responsible event loop to run that feature's permission revocation algorithm. +
  2. Run descriptor's name's permission revocation algorithm. +
  3. +
  4. Remove a permission store entry with descriptor and key.
-

5. +

6. Permissions API -

+

+
WebIDL[Exposed=(Window)]
 partial interface Navigator {
-  [SameObject] readonly attribute Permissions permissions;
+  [SameObject] readonly attribute Permissions permissions;
 };
 
 [Exposed=(Worker)]
 partial interface WorkerNavigator {
-  [SameObject] readonly attribute Permissions permissions;
+  [SameObject] readonly attribute Permissions permissions;
 };

5.2 +

6.2 Permissions interface -

+

WebIDL[Exposed=(Window,Worker)]
 interface Permissions {
-  Promise<PermissionStatus> query(object permissionDesc);
+  Promise<PermissionStatus> query(object permissionDesc);
 };
 
 dictionary PermissionDescriptor {
-  required DOMString name;
+  required DOMString name;
 };

5.2.1 +

6.2.1 query() method -

+

When the query() method is invoked, the user agent MUST run the @@ -1295,19 +1477,24 @@

Permissions

permissionDesc:

    -
  1. If this's relevant global object is a Window object, then: +
  2. If this's relevant global object is a Window object, then:
      -
    1. If the current settings object's associated Document is not - fully active, return a promise rejected with an +
    2. If the current settings object's associated Document is not + fully active, return a promise rejected with an "InvalidStateError" DOMException.
  3. -
  4. If permissionDesc's name member is not supported, return - a promise rejected with a TypeError. -
    Note: Why is this not an enum?

5.3 +

6.3 PermissionStatus interface -

+

WebIDL[Exposed=(Window,Worker)]
-interface PermissionStatus : EventTarget {
-  readonly attribute PermissionState state;
-  readonly attribute DOMString name;
-  attribute EventHandler onchange;
+interface PermissionStatus : EventTarget {
+  readonly attribute PermissionState state;
+  readonly attribute DOMString name;
+  attribute EventHandler onchange;
 };
 
 enum PermissionState {
@@ -1409,29 +1588,29 @@ 

Permissions

PermissionStatus instances are created with a [[query]] internal slot, - which is an instance of a feature's permission descriptor type. + which is an instance of a feature's permission descriptor type.

The "granted", "denied", and "prompt" enum values - represent the concepts of granted, denied, and - prompt respectively. + represent the concepts of granted, denied, and + prompt respectively.

-

5.3.1 +

6.3.1 Creating instances -

+

To create a PermissionStatus for a given - PermissionDescriptor permissionDesc: + PermissionDescriptor permissionDesc:

    -
  1. Let name be permissionDesc's name. +
  2. Let name be permissionDesc's name.
  3. -
  4. Assert: The feature identified by name is supported by the user agent. +
  5. Assert: The feature identified by name is supported by the user agent.
  6. -
  7. Let status be a new instance of the permission result type identified by name: +
  8. Let status be a new instance of the permission result type identified by name:
      -
    1. Initialize status's [[query]] internal slot to +
    2. Initialize status's [[query]] internal slot to permissionDesc.
    3. Initialize status's name to name. @@ -1443,63 +1622,60 @@

      Permissions

5.3.2 +

6.3.2 name attribute -

+

The name attribute returns the value it was initialized to.

5.3.3 +

6.3.3 state attribute -

+

The state attribute returns the latest value that was set on the current @@ -1552,95 +1725,92 @@

Permissions

5.3.4 +

6.3.4 onchange attribute -

+

The onchange attribute is an event handler whose corresponding event handler event type is change.

- Whenever the user agent is aware that the state of a PermissionStatus instance + Whenever the user agent is aware that the state of a PermissionStatus instance status has changed, it asynchronously runs the PermissionStatus update steps:

    -
  1. If this's relevant global object is a Window object, then: +
  2. If this's relevant global object is a Window object, then:
      -
    1. Let document be status's relevant global object's associated Document. +
    2. Let document be status's relevant global object's associated Document.
    3. -
    4. If document is null or document is not fully active, terminate +
    5. If document is null or document is not fully active, terminate this algorithm.
  3. -
  4. Let query be status's [[query]] internal slot. +
  5. Let query be status's [[query]] internal slot.
  6. -
  7. Run query's name's permission query algorithm, passing query and status. +
  8. Run query's name's permission query algorithm, passing query and status.
  9. - Queue a task on the permissions task source to - fire an event named change at status. + Queue a task on the permissions task source to fire an event named + change at status.
-

5.3.5 +

6.3.5 Garbage collection -

+

- A PermissionStatus object MUST NOT be garbage collected if it has an event listener whose type is change. + A PermissionStatus object MUST NOT be garbage collected if it has an event listener whose type is change.

-

6. Conformance

As well as sections marked as non-normative, all authoring guidelines, diagrams, examples, and notes in this specification are non-normative. Everything else in this specification is normative.

+

7. Conformance

As well as sections marked as non-normative, all authoring guidelines, diagrams, examples, and notes in this specification are non-normative. Everything else in this specification is normative.

The key words MAY, MUST, MUST NOT, OPTIONAL, and SHOULD in this document are to be interpreted as described in BCP 14 @@ -1648,8 +1818,8 @@

Permissions

- Two classes of product can claim conformance to this specification: user agents and - other specifications (i.e., a technical report that specifies a powerful feature in a manner that conforms to the requirements of this specification). + Two classes of product can claim conformance to this specification: user agents and + other specifications (i.e., a technical report that specifies a powerful feature in a manner that conforms to the requirements of this specification).

A. @@ -1662,7 +1832,7 @@

Permissions

- On the one hand, this specification exclusively concerns itself with powerful features + On the one hand, this specification exclusively concerns itself with powerful features whose access is managed through a user-agent mediated permissions UI (i.e., permissions where the user gives express consent before that feature can be used, and where the user retains the ability to deny that permission at any time for any reason). These powerful @@ -1670,26 +1840,26 @@

Permissions

On the other hand, the Permissions Policy specification allows developers to - selectively enable and disable policy-controlled features through a "permissions policy" (be it a HTTP header or the allow attribute). In that sense, the + selectively enable and disable policy-controlled features through a "permissions policy" (be it a HTTP header or the allow attribute). In that sense, the Permissions Policy subsumes this specification in that Permissions Policy governs whether a feature is available at all, independently of this specification. These policy-controlled features are also registered in the Permissions Registry.

A powerful feature that has been disabled by the Permissions Policy specification - always has its permission state reflected as "denied" by this specification. This - occurs because reading the current permission - relies on [HTML]'s "allowed to use" check, which itself calls into the + always has its permission state reflected as "denied" by this specification. This + occurs because reading the current permission + relies on [HTML]'s "allowed to use" check, which itself calls into the Permissions Policy specification. Important to note here is the sharing of permission names across both specifications. Both this specification and the Permissions Policy specification rely on other specifications defining the names of the permission and - name, and they are usually named the same thing (e.g., "geolocation" + name, and they are usually named the same thing (e.g., "geolocation" of the Geolocation API, and so on).

Finally, it's not possible for a powerful feature to ever become "granted" through any means provided by the Permissions Policy specification. The only way that a - powerful feature can be granted is by the user giving express permission or by some user agent policy. + powerful feature can be granted is by the user giving express permission or by some user agent policy.

B. @@ -1701,10 +1871,9 @@

Permissions

extension commands for the [WebDriver] specification. It is OPTIONAL for a user agent to support extension commands commands.

-
WebIDLdictionary PermissionSetParameters {
-  required PermissionDescriptor descriptor;
-  required PermissionState state;
-  boolean oneRealm = false;
+      
WebIDLdictionary PermissionSetParameters {
+  required PermissionDescriptor descriptor;
+  required PermissionState state;
 };

B.1 Set Permission @@ -1731,54 +1900,52 @@

Permissions

- The Set Permission extension command simulates user modification of a - PermissionDescriptor's permission state. + The Set Permission + extension command simulates user modification of a PermissionDescriptor's + permission state.

The remote end steps are:

  1. Let parameters be the parameters argument, converted to an IDL value of - type PermissionSetParameters. If this throws an exception, return an invalid argument error. + type PermissionSetParameters. If this throws an exception, return an invalid argument error.
  2. Let rootDesc be parameters.descriptor.
  3. Let typedDescriptor be the object rootDesc refers to, converted to an IDL - value of rootDesc.name's permission descriptor type. If this throws an exception, return a invalid argument error. + value of rootDesc.name's permission descriptor type. If this throws an exception, return a invalid argument error.
  4. -
  5. If parameters.state is an inappropriate permission - state for any implementation-defined reason, return a invalid argument error. -
    Note

    +

  6. If parameters.state is an inappropriate permission + state for any implementation-defined reason, return a invalid argument error. +
    Note

    For example, user agents that define the "midi" powerful feature as - "always on" may choose to reject a command to set the permission state to + "always on" may choose to reject a command to set the permission state to "denied" at this step.

  7. -
  8. Let settings be the current settings object. +
  9. Let settings be the current settings object.
  10. -
  11. If parameters.oneRealm is true, let targets be a - list whose sole member is settings. -
  12. -
  13. Otherwise, let targets be a list containing all environment settings - objects whose origin is the - same as the origin of settings. +
  14. Let targets be a list containing all environment settings objects + whose origin is the same as + the origin of settings.
  15. Let tasks be an empty list.
  16. For each environment settings object target in targets:
    1. - Queue a task task on the permissions task source of target's - relevant settings object's global object's - browsing context to perform the following step: + Queue a task task on the permissions task source of target's + relevant settings object's global object's + browsing context to perform the following step:
      1. Interpret parameters.state as if it were the - result of an invocation of permission state for typedDescriptor with the + result of an invocation of permission state for typedDescriptor with the argument target made at this moment.
    2. -
    3. Append task to tasks. +
    4. Append task to tasks.
  17. @@ -1791,8 +1958,9 @@

    Permissions

    Example 7: Setting a permission via WebDriver

- To set permission for {name: "midi", sysex: true} of the current settings object of the session with ID 23 to "granted", the local end would POST to - /session/23/permissions with the body: + To set permission for {name: "midi", sysex: true} of the + current settings object of the session with ID 23 to "granted", the local + end would POST to /session/23/permissions with the body:

{
   "descriptor": {
@@ -1809,17 +1977,16 @@ 

Permissions

- An adversary could use a permission state as an element in creating a "fingerprint" + An adversary could use a permission state as an element in creating a "fingerprint" corresponding to an end-user. Although an adversary can already determine the state of a permission by actually using the API, that often leads to a UI prompt being presented to - the end-user (if the permission was not already granted). Even though this + the end-user (if the permission was not already granted). Even though this API doesn't expose new fingerprinting information to websites, it makes it easier for an adversary to have discreet access to this information.

A user agent SHOULD provide a means for the user to review, update, and reset the - permission state of powerful features associated with a realm or - origin. + permission state of powerful features associated with an origin.

D. @@ -1834,28 +2001,28 @@

Permissions

E. IDL Index

WebIDL[Exposed=(Window)]
 partial interface Navigator {
-  [SameObject] readonly attribute Permissions permissions;
+  [SameObject] readonly attribute Permissions permissions;
 };
 
 [Exposed=(Worker)]
 partial interface WorkerNavigator {
-  [SameObject] readonly attribute Permissions permissions;
+  [SameObject] readonly attribute Permissions permissions;
 };
 
 [Exposed=(Window,Worker)]
 interface Permissions {
-  Promise<PermissionStatus> query(object permissionDesc);
+  Promise<PermissionStatus> query(object permissionDesc);
 };
 
 dictionary PermissionDescriptor {
-  required DOMString name;
+  required DOMString name;
 };
 
 [Exposed=(Window,Worker)]
-interface PermissionStatus : EventTarget {
-  readonly attribute PermissionState state;
-  readonly attribute DOMString name;
-  attribute EventHandler onchange;
+interface PermissionStatus : EventTarget {
+  readonly attribute PermissionState state;
+  readonly attribute DOMString name;
+  attribute EventHandler onchange;
 };
 
 enum PermissionState {
@@ -1865,9 +2032,8 @@ 

Permissions

dictionary PermissionSetParameters { - required PermissionDescriptor descriptor; - required PermissionState state; - boolean oneRealm = false; + required PermissionDescriptor descriptor; + required PermissionState state; };

F. Acknowledgments @@ -1893,7 +2059,7 @@

Permissions

[Notifications]
Notifications API Standard. Anne van Kesteren. WHATWG. Living Standard. URL: https://notifications.spec.whatwg.org/
[Permissions-Policy]
- Permissions Policy. Ian Clelland. W3C. 16 July 2020. W3C Working Draft. URL: https://www.w3.org/TR/permissions-policy-1/ + Permissions Policy. Ian Clelland. W3C. 17 October 2023. W3C Working Draft. URL: https://www.w3.org/TR/permissions-policy-1/
[permissions-registry]
Permissions Registry. unofficial. URL: https://w3c.github.io/permissions-registry/
[RFC2119]
@@ -1908,13 +2074,13 @@

Permissions

G.2 Informative references

[appmanifest]
- Web Application Manifest. Marcos Caceres; Kenneth Christiansen; Matt Giuca; Aaron Gustafson; Daniel Murphy; Anssi Kostiainen. W3C. 17 February 2022. W3C Working Draft. URL: https://www.w3.org/TR/appmanifest/ + Web Application Manifest. Marcos Caceres; Kenneth Christiansen; Matt Giuca; Aaron Gustafson; Daniel Murphy; Anssi Kostiainen. W3C. 28 October 2023. W3C Working Draft. URL: https://www.w3.org/TR/appmanifest/
[Geolocation]
- Geolocation API. Marcos Caceres; Reilly Grant. W3C. 18 March 2022. W3C Candidate Recommendation. URL: https://www.w3.org/TR/geolocation/ + Geolocation API. Marcos Caceres; Reilly Grant. W3C. 1 September 2022. W3C Recommendation. URL: https://www.w3.org/TR/geolocation/
[GETUSERMEDIA]
- Media Capture and Streams. Cullen Jennings; Bernard Aboba; Jan-Ivar Bruaroey; Henrik Boström; youenn fablet. W3C. 10 March 2022. W3C Candidate Recommendation. URL: https://www.w3.org/TR/mediacapture-streams/ + Media Capture and Streams. Cullen Jennings; Bernard Aboba; Jan-Ivar Bruaroey; Henrik Boström; youenn fablet. W3C. 21 September 2023. W3C Candidate Recommendation. URL: https://www.w3.org/TR/mediacapture-streams/
[push-api]
- Push API. Peter Beverloo; Martin Thomson. W3C. 23 March 2022. W3C Working Draft. URL: https://www.w3.org/TR/push-api/ + Push API. Peter Beverloo; Martin Thomson; Marcos Caceres. W3C. 10 October 2023. W3C Working Draft. URL: https://www.w3.org/TR/push-api/

Permissions

Referenced in: