From 901a3e2eb0c04c62f632d7864cb8a219f902ad83 Mon Sep 17 00:00:00 2001 From: Jeffrey Yasskin Date: Fri, 22 Apr 2016 13:00:26 -0700 Subject: [PATCH] Update references for changes to other specs. The biggest change was that "associated PermissionDescriptor" changed to "permission descriptor type". --- index.bs | 24 +------ index.html | 180 +++++++++++++++++++++++++---------------------------- 2 files changed, 87 insertions(+), 117 deletions(-) diff --git a/index.bs b/index.bs index 1d493e6..8698575 100644 --- a/index.bs +++ b/index.bs @@ -90,13 +90,9 @@ spec: BLUETOOTH-ASSIGNED type: dfn text: Shortened Local Name; url: https://www.bluetooth.org/en-us/specification/assigned-numbers/generic-access-profile# -spec: whatwg-dom; urlPrefix: http://dom.spec.whatwg.org/#; type: dfn - text: participate in a tree; url: concept-tree-participate - spec: ECMAScript; urlPrefix: https://tc39.github.io/ecma262/# type: dfn text: fulfilled; url: sec-promise-objects - text: global object; url: global-object text: realm; url: sec-code-realms type: method text: Array.prototype.map; url: sec-array.prototype.map @@ -110,30 +106,14 @@ spec: ECMAScript; urlPrefix: https://tc39.github.io/ecma262/# text: TypeError; url: sec-native-error-types-used-in-this-standard-typeerror text: TypedArray; url: sec-typedarray-constructors -spec: encoding; urlPrefix: https://encoding.spec.whatwg.org/# - type: dfn - text: utf-8 decode without BOM; url: utf-8-decode-without-bom - text: utf-8 encode; url: utf-8-encode - spec: permissions; urlPrefix: https://w3c.github.io/permissions/ type: dfn text: permission store -spec: promises-guide; urlPrefix: https://www.w3.org/2001/tag/doc/promises-guide# - type: dfn - text: A promise rejected with; url: a-promise-rejected-with - text: Reject; url: reject-promise - text: Resolve; url: resolve-promise - text: Transforming; url: transforming-by - spec: WebIDL; urlPrefix: https://heycam.github.io/webidl/# type: dfn text: a copy of the bytes held; url: dfn-get-buffer-source-copy text: global object associated with; url: es-platform-objects - type: interface - text: FrozenArray; url: idl-frozen-array - type: typedef - text: BufferSource; url: common-BufferSource @@ -1265,7 +1243,7 @@ spec: permissions

- associated PermissionDescriptor + permission descriptor type
diff --git a/index.html b/index.html
index 53be8df..da16eb7 100644
--- a/index.html
+++ b/index.html
@@ -1410,7 +1410,7 @@
   

Web Bluetooth

-

Draft Community Group Report,

+

Draft Community Group Report,

This version: @@ -2068,7 +2068,7 @@

transforming permissionResult with a fulfillment handler that takes an argument result and runs the following steps: + Return the result of transforming permissionResult with a fulfillment handler that takes an argument result and runs the following steps:
  1. If result.devices is empty, throw a NotFoundError and abort these steps. @@ -2081,27 +2081,27 @@

    BluetoothPermissionResult status, the UA MUST return a new promise promise and run the following steps in parallel:

      -
    1. If the incumbent settings object is not a secure context, reject promise with a SecurityError and abort these steps. -
    2. If the algorithm is not allowed to show a popup, reject promise with a SecurityError and abort these steps. +
    3. If the incumbent settings object is not a secure context, reject promise with a SecurityError and abort these steps. +
    4. If the algorithm is not allowed to show a popup, reject promise with a SecurityError and abort these steps.
    5. In order to convert the arguments from service names and aliases to just UUIDs, do the following substeps:
        -
      1. If options.filters.length === 0, reject promise with a TypeError and abort these steps. +
      2. If options.filters.length === 0, reject promise with a TypeError and abort these steps.
      3. Let uuidFilters be a new Array and requiredServiceUUIDs be a new Set.
      4. For each filter in options.filters, do the following steps:
          -
        1. If none of filter’s services, name, or namePrefix members is present, reject promise with a TypeError and abort these steps. +
        2. If none of filter’s services, name, or namePrefix members is present, reject promise with a TypeError and abort these steps.
        3. Let canonicalizedFilter be {}.
        4. If filter.services is present, do the following sub-steps:
            -
          1. If filter.services.length === 0, reject promise with a TypeError and abort these steps. +
          2. If filter.services.length === 0, reject promise with a TypeError and abort these steps.
          3. Let services be Array.prototype.map.call(filter.services, BluetoothUUID.getService). -
          4. If any of the BluetoothUUID.getService() calls threw an exception, reject promise with that exception and abort these steps. -
          5. If any service in services is blacklisted, reject promise with a SecurityError and abort these steps. +
          6. If any of the BluetoothUUID.getService() calls threw an exception, reject promise with that exception and abort these steps. +
          7. If any service in services is blacklisted, reject promise with a SecurityError and abort these steps.
          8. Set canonicalizedFilter.services to services.
          9. Add the elements of services to requiredServiceUUIDs.
          @@ -2109,7 +2109,7 @@

          UTF-8 encoding of filter.name is more than 248 bytes long, reject promise with a TypeError and abort these steps. + If the UTF-8 encoding of filter.name is more than 248 bytes long, reject promise with a TypeError and abort these steps.

          248 is the maximum number of UTF-8 code units in a Bluetooth Device Name.

        5. Set canonicalizedFilter.name to filter.name. @@ -2118,7 +2118,7 @@

          UTF-8 encoding of filter.namePrefix is more than 248 bytes long, reject promise with a TypeError and abort these steps. + If filter.namePrefix.length === 0 or if the UTF-8 encoding of filter.namePrefix is more than 248 bytes long, reject promise with a TypeError and abort these steps.

          248 is the maximum number of UTF-8 code units in a Bluetooth Device Name.

        6. Set canonicalizedFilter.namePrefix to filter.namePrefix. @@ -2126,12 +2126,12 @@

          Array.prototype.map.call(options.optionalServices, BluetoothUUID.getService). -
        7. If any of the BluetoothUUID.getService() calls threw an exception, reject promise with that exception and abort these steps. +
        8. If any of the BluetoothUUID.getService() calls threw an exception, reject promise with that exception and abort these steps.
        9. Remove from optionalServiceUUIDs any UUIDs that are blacklisted.
      5. Set status.state to storage.state.
      6. If status.state is "denied", - set status.devices to an empty FrozenArray, resolve promise with undefined, + set status.devices to an empty FrozenArray, resolve promise with undefined, and abort these steps.
      7. Scan for devices with requiredServiceUUIDs as the set of Service UUIDs, and let scanResult be the result. @@ -2147,7 +2147,7 @@

        devices to an empty FrozenArray, resolve promise with undefined, + set status.devices to an empty FrozenArray, resolve promise with undefined, and abort these steps.
      8. Add device to storage with the union of requiredServiceUUIDs and optionalServiceUUIDs as allowed services.
      9. The UA MAY populate the Bluetooth cache with @@ -2157,8 +2157,8 @@

        fulfilled, - set status.devices to a new FrozenArray containing the value of deviceObjPromise as its only element. -
      10. Resolve promise with deviceObjPromise. + set status.devices to a new FrozenArray containing the value of deviceObjPromise as its only element. +
      11. Resolve promise with deviceObjPromise.

      To scan for devices#scan-for-devicesReferenced in:3. Device Discovery with an optional set of Service UUIDs, defaulting to the set of all UUIDs, @@ -2271,7 +2271,7 @@

      "bluetooth" enum value.

      The "bluetooth"#dom-permissionname-bluetoothReferenced in:3.1. Permission API Integration4.3. BluetoothDevice permission is defined as follows:

      -
      associated PermissionDescriptor +
      permission descriptor type
      dictionary BluetoothPermissionDescriptor#dictdef-bluetoothpermissiondescriptorReferenced in:3. Device Discovery3.1. Permission API Integration : PermissionDescriptor {
         DOMString deviceId#dom-bluetoothpermissiondescriptor-deviceidReferenced in:3.1. Permission API Integration;
      @@ -2323,7 +2323,7 @@ 

      matchingDevices.

  2. Set status.devices to - a new FrozenArray whose contents are matchingDevices. + a new FrozenArray whose contents are matchingDevices.
permission request algorithm
Request the "bluetooth" permission. @@ -2337,7 +2337,7 @@

4. Device Representation

The UA needs to track Bluetooth device properties at several levels: - globally, per origin, and per global object.

+ globally, per origin, and per global object.

4.1. Global Bluetooth device properties

The physical Bluetooth device may be guaranteed to have @@ -2462,7 +2462,7 @@

<

4.3. BluetoothDevice#bluetoothdeviceReferenced in:3. Device Discovery (2) (3)3.1. Permission API Integration4.2. Per-origin Bluetooth device properties (2)4.3. BluetoothDevice (2) (3) (4) (5) (6) (7) (8) (9) (10)4.3.1. BluetoothAdvertisingData4.3.1.2. BluetoothServiceDataMap5.1.1. The Bluetooth cache5.1.2. Navigating the Bluetooth Hierarchy5.2. BluetoothRemoteGATTServer (2) (3)5.3. BluetoothRemoteGATTService (2)5.6.1. Bluetooth Tree (2) (3)5.6.2. Event types5.6.3. Responding to Disconnection5.6.5. Responding to Service Changes

-

A BluetoothDevice instance represents a Bluetooth device for a particular global object (or, equivalently, for a particular Realm or Bluetooth instance).

+

A BluetoothDevice instance represents a Bluetooth device for a particular global object (or, equivalently, for a particular Realm or Bluetooth instance).

interface BluetoothDevice {
   readonly attribute DOMString id;
   readonly attribute DOMString? name;
@@ -2573,7 +2573,7 @@ 

  • Set [[cachedAllowedServices]] to a copy of [[allowedServices]].
  • Set [[cachedUnfilteredUuids]] to a copy of [[unfilteredUuids]]. -
  • Set [[filteredUuids]] to a new FrozenArray consisting of the intersection of [[unfilteredUuids]] and [[allowedServices]]. +
  • Set [[filteredUuids]] to a new FrozenArray consisting of the intersection of [[unfilteredUuids]] and [[allowedServices]].
  • Return [[filteredUuids]]. @@ -2786,9 +2786,9 @@

    BluetoothDevice instance deviceObj for entries matching some description, the UA MUST return a deviceObj.gatt-connection-checking wrapper around a new promise promise and run the following steps in parallel:

      -
    1. If deviceObj.gatt.connected is false, reject promise with a NetworkError and abort these steps. +
    2. If deviceObj.gatt.connected is false, reject promise with a NetworkError and abort these steps.
    3. Populate the Bluetooth cache with entries matching the description. -
    4. If the previous step returns an error, reject promise with that error and abort these steps. +
    5. If the previous step returns an error, reject promise with that error and abort these steps.
    6. Let entries be the sequence of known-present cache entries matching the description.
    7. Let context be deviceObj@[[context]]. @@ -2804,7 +2804,7 @@

      Append to result the Promise<BluetoothGATT*> instance associated with entry in context@[[attributeInstanceMap]].

    -
  • Resolve promise with the result of waiting for all elements of result. +
  • Resolve promise with the result of waiting for all elements of result.
  • @@ -2814,9 +2814,9 @@

    When no ECMAScript code can observe an instance of BluetoothRemoteGATTServer server anymore, @@ -2915,17 +2915,17 @@

    a new promise promise and run the following steps in parallel:

      -
    1. If this.device@[[representedDevice]] is null, reject promise with a NetworkError and abort these steps. +
    2. If this.device@[[representedDevice]] is null, reject promise with a NetworkError and abort these steps.
    3. If this.device@[[representedDevice]] has no ATT Bearer, attempt to create one using the procedures described in "Connection Establishment" under GAP Interoperability Requirements. -
    4. If this attempt fails, reject promise with a NetworkError and abort these steps. +
    5. If this attempt fails, reject promise with a NetworkError and abort these steps.
    6. Queue a task to perform the following sub-steps:
        -
      1. If this.device@[[representedDevice]] is null, reject promise with a NetworkError and abort these steps. +
      2. If this.device@[[representedDevice]] is null, reject promise with a NetworkError and abort these steps.
      3. Set this.connected to true. -
      4. Resolve promise with this. +
      5. Resolve promise with this.

    The disconnect()#dom-bluetoothremotegattserver-disconnectReferenced in:4.2. Per-origin Bluetooth device properties5.2. BluetoothRemoteGATTServer (2) (3) method, when invoked, @@ -2953,7 +2953,7 @@

    If gattServer.connected is true, add promise to gattServer@[[activeAlgorithms]].
  • - Return the result of transforming promise with fulfillment and rejection handlers that perform the following steps: + Return the result of transforming promise with fulfillment and rejection handlers that perform the following steps:
    fulfillment handler
    @@ -2977,7 +2977,7 @@

    1. If service is not in this.device@[[allowedServices]], - return a promise rejected with a SecurityError and abort these steps. + return a promise rejected with a SecurityError and abort these steps.
    2. Return GetGATTChildren(attribute=this.device,
      single=true,
      uuidCanonicalizer=BluetoothUUID.getService,
      uuid=service,
      allowedUuids=this.device@[[allowedServices]],
      child type="GATT Primary Service")

    The getPrimaryServices(service)#dom-bluetoothremotegattserver-getprimaryservicesReferenced in:5.2. BluetoothRemoteGATTServer method, when invoked, @@ -2985,7 +2985,7 @@

  • If service is present and not in this.device@[[allowedServices]], - return a promise rejected with a SecurityError and abort these steps. + return a promise rejected with a SecurityError and abort these steps.
  • Return GetGATTChildren(attribute=this.device@[[representedDevice]],
    single=false,
    uuidCanonicalizer=BluetoothUUID.getService,
    uuid=service,
    allowedUuids=this.device@[[allowedServices]],
    child type="GATT Primary Service")
    @@ -3025,13 +3025,13 @@

    Let result be a new instance of BluetoothRemoteGATTService.
  • Get the BluetoothDevice representing the device in which service appears, and let device be the result. -
  • If the previous step threw an error, reject promise with that error and abort these steps. +
  • If the previous step threw an error, reject promise with that error and abort these steps.
  • Initialize result.device from device.
  • Initialize result.uuid from the UUID of service.
  • If service is a Primary Service, initialize result.isPrimary to true. Otherwise initialize result.isPrimary to false. -
  • Resolve promise with result. +
  • Resolve promise with result.

    The getCharacteristic(characteristic)#dom-bluetoothremotegattservice-getcharacteristicReferenced in:1.1. Examples (2) (3)5.1. GATT Information Model5.3. BluetoothRemoteGATTService method retrieves a Characteristic inside this Service. @@ -3091,7 +3091,7 @@

    characteristic, and let propertiesPromise be the result.
  • Wait for propertiesPromise to settle. -
  • If propertiesPromise was rejected, resolve promise with propertiesPromise and +
  • If propertiesPromise was rejected, resolve promise with propertiesPromise and abort these steps.
  • Initialize result.properties from the value propertiesPromise was fulfilled with. @@ -3099,7 +3099,7 @@

    result.value to a new DataView wrapping a new ArrayBuffer containing the most recently read value from characteristic if this value is available. -
  • Resolve promise with result. +
  • Resolve promise with result.

    The getDescriptor(descriptor)#dom-bluetoothremotegattcharacteristic-getdescriptorReferenced in:5.1. GATT Information Model5.4. BluetoothRemoteGATTCharacteristic method retrieves a Descriptor inside this Characteristic. @@ -3113,28 +3113,28 @@

    1. If this.uuid is blacklisted for reads, - return a promise rejected with a SecurityError and abort these steps. + return a promise rejected with a SecurityError and abort these steps.
    2. If this.characteristic.service.device.gatt.connected is false, - return a promise rejected with a NetworkError and abort these steps. + return a promise rejected with a NetworkError and abort these steps.
    3. Let characteristic be the Characteristic that this represents.
    4. Return a this.service.device.gatt-connection-checking wrapper around a new promise promise and run the following steps in parallel:
      1. If the Read bit is not set - in characteristic’s properties, reject promise with a NotSupportedError and abort these steps. + in characteristic’s properties, reject promise with a NotSupportedError and abort these steps.
      2. Use any combination of the sub-procedures in the Characteristic Value Read procedure to retrieve the value of characteristic. Handle errors as described in §5.7 Error handling. -
      3. If the previous step returned an error, reject promise with that error and abort these steps. +
      4. If the previous step returned an error, reject promise with that error and abort these steps.
      5. Queue a task to perform the following steps:
          -
        1. If promise is not in this.service.device.gatt@[[activeAlgorithms]], reject promise with a NetworkError and abort these steps. +
        2. If promise is not in this.service.device.gatt@[[activeAlgorithms]], reject promise with a NetworkError and abort these steps.
        3. Let buffer be an ArrayBuffer holding the retrieved value, and assign new DataView(buffer) to this.value.
        4. Fire an event named characteristicvaluechanged with its bubbles attribute initialized to true at this. -
        5. Resolve promise with this.value. +
        6. Resolve promise with this.value.
    @@ -3142,14 +3142,14 @@

    1. If this.uuid is blacklisted for writes, - return a promise rejected with a SecurityError and abort these steps. + return a promise rejected with a SecurityError and abort these steps.
    2. Let characteristic be the Characteristic that this represents.
    3. Let bytes be a copy of the bytes held by value.
    4. If bytes is more than 512 bytes long (the maximum length of an attribute value, per Long Attribute Values) - return a promise rejected with an InvalidModificationError and abort these steps. + return a promise rejected with an InvalidModificationError and abort these steps.
    5. If this.service.device.gatt.connected is false, - return a promise rejected with a NetworkError and abort these steps. + return a promise rejected with a NetworkError and abort these steps.
    6. Return a this.service.device.gatt-connection-checking wrapper around a new promise promise and run the following steps in parallel.
        @@ -3157,14 +3157,14 @@

        Characteristic Value Write procedure to write bytes to characteristic. Handle errors as described in §5.7 Error handling. -
      1. If the previous step returned an error, reject promise with that error and abort these steps. +
      2. If the previous step returned an error, reject promise with that error and abort these steps.
      3. Queue a task to perform the following steps:
          -
        1. If promise is not in this.service.device.gatt@[[activeAlgorithms]], reject promise with a NetworkError and abort these steps. +
        2. If promise is not in this.service.device.gatt@[[activeAlgorithms]], reject promise with a NetworkError and abort these steps.
        3. Set this.value to a new DataView wrapping a new ArrayBuffer containing bytes. -
        4. Resolve promise with undefined. +
        5. Resolve promise with undefined.
    @@ -3177,13 +3177,13 @@

    a new promise promise and run the following steps in parallel. See §5.6.4 Responding to Notifications and Indications for details of receiving notifications.

      -
    1. If this.uuid is blacklisted for reads, reject promise with a SecurityError and abort these steps. +
    2. If this.uuid is blacklisted for reads, reject promise with a SecurityError and abort these steps.
    3. Let characteristic be the GATT Characteristic that this represents.
    4. If neither of the Notify or Indicate bits are set - in characteristic’s properties, reject promise with a NotSupportedError and abort these steps. -
    5. If characteristic’s active notification context set contains navigator.bluetooth, resolve promise with undefined and abort these steps. -
    6. If this.service.device.gatt.connected is false, reject promise with a NetworkError and abort these steps. + in characteristic’s properties, reject promise with a NotSupportedError and abort these steps. +
    7. If characteristic’s active notification context set contains navigator.bluetooth, resolve promise with undefined and abort these steps. +
    8. If this.service.device.gatt.connected is false, reject promise with a NetworkError and abort these steps.
    9. Use any of the Characteristic Descriptors procedures to ensure that one of the Notification or Indication bits in characteristic’s Client Characteristic Configuration descriptor is set, matching the constraints @@ -3191,9 +3191,9 @@

      value-change events if both bits are set. Handle errors as described in §5.7 Error handling. -
    10. If the previous step returned an error, reject promise with that error and abort these steps. +
    11. If the previous step returned an error, reject promise with that error and abort these steps.
    12. Add navigator.bluetooth to characteristic’s active notification context set. -
    13. Resolve promise with undefined. +
    14. Resolve promise with undefined.

    After notifications are enabled, the resulting value-change events won’t be delivered @@ -3210,7 +3210,7 @@

    If characteristic’s active notification context set became empty, the UA SHOULD use any of the Characteristic Descriptors procedures to clear the Notification and Indication bits in characteristic’s Client Characteristic Configuration descriptor. -
  • Queue a task to resolve promise with undefined. +
  • Queue a task to resolve promise with undefined.

    Queuing a task to resolve the promise ensures that no value change events due to notifications @@ -3281,13 +3281,13 @@

    Characteristic Extended Properties isn’t clear whether the extended properties are immutable for a given Characteristic. If they are, the UA should be allowed to cache them.

    -
  • If the previous step returned an error, reject promise with that error and abort these steps. +
  • If the previous step returned an error, reject promise with that error and abort these steps.
  • Initialize propertiesObj.reliableWrite from the Reliable Write bit of extendedProperties.
  • Initialize propertiesObj.writableAuxiliaries from the Writable Auxiliaries bit of extendedProperties. -
  • Resolve promise with propertiesObj. +
  • Resolve promise with propertiesObj. @@ -3322,15 +3322,15 @@

    result.value to a new DataView wrapping a new ArrayBuffer containing the most recently read value from descriptor if this value is available. -
  • Resolve promise with result. +
  • Resolve promise with result.

    The readValue()#dom-bluetoothremotegattdescriptor-readvalueReferenced in:5.5. BluetoothRemoteGATTDescriptor method, when invoked, MUST run the following steps:

    1. If this.uuid is blacklisted for reads, - return a promise rejected with a SecurityError and abort these steps. + return a promise rejected with a SecurityError and abort these steps.
    2. If this.characteristic.service.device.gatt.connected is false, - return a promise rejected with a NetworkError and abort these steps. + return a promise rejected with a NetworkError and abort these steps.
    3. Let descriptor be the Descriptor that this represents.
    4. Return a this.characteristic.service.device.gatt-connection-checking wrapper around a new promise promise and run the following steps in parallel: @@ -3339,14 +3339,14 @@

      Read Long Characteristic Descriptors sub-procedure to retrieve the value of descriptor. Handle errors as described in §5.7 Error handling. -
    5. If the previous step returned an error, reject promise with that error and abort these steps. +
    6. If the previous step returned an error, reject promise with that error and abort these steps.
    7. Queue a task to perform the following steps:
        -
      1. If promise is not in this.characteristic.service.device.gatt@[[activeAlgorithms]], reject promise with a NetworkError and abort these steps. +
      2. If promise is not in this.characteristic.service.device.gatt@[[activeAlgorithms]], reject promise with a NetworkError and abort these steps.
      3. Let buffer be an ArrayBuffer holding the retrieved value, and assign new DataView(buffer) to this.value. -
      4. Resolve promise with this.value. +
      5. Resolve promise with this.value.
    @@ -3354,14 +3354,14 @@

    1. If this.uuid is blacklisted for writes, - return a promise rejected with a SecurityError and abort these steps. + return a promise rejected with a SecurityError and abort these steps.
    2. Let descriptor be the Descriptor that this represents.
    3. Let bytes be a copy of the bytes held by value.
    4. If bytes is more than 512 bytes long (the maximum length of an attribute value, per Long Attribute Values) - return a promise rejected with an InvalidModificationError and abort these steps. + return a promise rejected with an InvalidModificationError and abort these steps.
    5. If this.characteristic.service.device.gatt.connected is false, - return a promise rejected with a NetworkError and abort these steps. + return a promise rejected with a NetworkError and abort these steps.
    6. Return a this.characteristic.service.device.gatt-connection-checking wrapper around a new promise promise and run the following steps in parallel.
        @@ -3369,14 +3369,14 @@

        Write Long Characteristic Descriptors sub-procedure to write bytes to descriptor. Handle errors as described in §5.7 Error handling. -
      1. If the previous step returned an error, reject promise with that error and abort these steps. +
      2. If the previous step returned an error, reject promise with that error and abort these steps.
      3. Queue a task to perform the following steps:
          -
        1. If promise is not in this.characteristic.service.device.gatt@[[activeAlgorithms]], reject promise with a NetworkError and abort these steps. +
        2. If promise is not in this.characteristic.service.device.gatt@[[activeAlgorithms]], reject promise with a NetworkError and abort these steps.
        3. Set this.value to a new DataView wrapping a new ArrayBuffer containing bytes. -
        4. Resolve promise with undefined. +
        5. Resolve promise with undefined.
    @@ -3386,7 +3386,7 @@

    5.6

    5.6.1. Bluetooth Tree#bluetooth-treeReferenced in:5.6.1. Bluetooth Tree5.6.2. Event types (2)5.6.4. Responding to Notifications and Indications5.6.5. Responding to Service Changes (2)

    navigator.bluetooth and - objects implementing the BluetoothDevice, BluetoothRemoteGATTService, BluetoothRemoteGATTCharacteristic, or BluetoothRemoteGATTDescriptor interface participate in a tree, + objects implementing the BluetoothDevice, BluetoothRemoteGATTService, BluetoothRemoteGATTCharacteristic, or BluetoothRemoteGATTDescriptor interface participate in a tree, simply named the Bluetooth tree.

  • [WebIDL-1] defines the following terms: @@ -4584,6 +4581,7 @@

    children
  • context object
  • fire an event +
  • participate in a tree
  • [WHATWG-ENCODING] defines the following terms: @@ -4600,6 +4598,7 @@

    browsing context
  • environment settings object
  • event handler idl attribute +
  • global object
  • in parallel
  • incumbent settings object
  • perform a microtask checkpoint @@ -4621,10 +4620,10 @@

    PermissionName
  • PermissionStatus
  • PermissionStorage -
  • associated permissiondescriptor
  • create a permission storage entry
  • name
  • permission +
  • permission descriptor type
  • permission query algorithm
  • permission request algorithm
  • permission result type @@ -4638,18 +4637,14 @@

    retrieve the permission storage
  • state -
  • - [promises-guide] defines the following terms: -
  • [promises-guide] defines the following terms:
  • @@ -4660,7 +4655,9 @@

    [WebIDL-1] defines the following terms: -
  • - [WHATWG-DOM] defines the following terms: -

    References

    Normative References