diff --git a/index.html b/index.html index 8ca6304..10236b0 100644 --- a/index.html +++ b/index.html @@ -147,6 +147,9 @@

[Exposed=Window] interface Gamepad { readonly attribute DOMString id; + readonly attribute unsigned short? vendorId; + readonly attribute unsigned short? productId; + readonly attribute DOMString name; readonly attribute long index; readonly attribute boolean connected; readonly attribute DOMHighResTimeStamp timestamp; @@ -334,6 +337,47 @@

{{Gamepad/id}} string.

+
+ vendorId attribute +
+
+

+ The 16-bit identifier assigned to the device vendor by the USB + Implementers Forum or Bluetooth Special Interest Group, or `null` + if the gamepad has no vendor identifier or it is not available. +

+

+ The [=user agent=] MAY set {{Gamepad/vendorId}} and + {{Gamepad/productId}} to `null` to mitigate the risk of exposing + device identifiers. If one of {{Gamepad/vendorId}} or + {{Gamepad/productId}} is `null` then both MUST be `null`. +

+
+
+ productId attribute +
+
+ The product identifier assigned by the device vendor, or `null` if + the gamepad has no product identifier or it is not available. +
+
+ name attribute +
+
+

+ A human-readable identifier for the gamepad. The exact content of + the {{Gamepad/name}} string is left unspecified. The [=user agent=] + MAY use a product name string provided by the device firmware. The + {{Gamepad/name}} MUST NOT be the empty string and MUST NOT include + unique identifiers like serial numbers or Bluetooth device + addresses. +

+

+ The {{Gamepad/name}} is intended only as a user-facing identifier. + It is not a stable identifier and might change over time due to + updates to the device firmware, browser, or operating system. +

+
index attribute
@@ -659,6 +703,21 @@

  • Initialize |gamepad|'s {{Gamepad/id}} attribute to an identification string for the gamepad.
  • +
  • Initialize |gamepad|.{{Gamepad/vendorId}} to `null`
  • +
  • Initialize |gamepad|.{{Gamepad/productId}} to `null`.
  • +
  • If the gamepad has vendor and product identifiers: +
      +
    1. Set |gamepad|.{{Gamepad/vendorId}} to the vendor + identifier. +
    2. +
    3. Set |gamepad|.{{Gamepad/productId}} to the product + identifier. +
    4. +
    +
  • +
  • Initialize |gamepad|'s {{Gamepad/name}} attribute to a + human-readable identifier for the gamepad. +
  • Initialize |gamepad|'s {{Gamepad/index}} attribute to the result of [=selecting an unused gamepad index=] for |gamepad|.