Contact emails
Specification
https://www.w3.org/TR/gamepad/#extensions-to-the-navigator-interface
Summary
We intend to replace GamepadList with sequence<Gamepad?> for navigator.getGamepads() return value to follow the spec and match current Gecko and WebKit implementations.
Blink component
Motivation
The W3C Gamepad spec defines the value returned by navigator.getGamepads() as a sequence<Gamepad?>, but Chrome is the only browser to implement it as a GamepadList. It has a similar interface (as it provides an operator[] getter and length attribute) but is not identical as it also provides an .item() accessor. Because of that, web developers tend to use [...navigator.getGamepads()] when they could simply use the Array returned by navigator.getGamepads().
TAG review
As Gecko and WebKit already implement this spec, a TAG review doesn't seem required.
Risks
I've scanned the httparchive.response_bodies.2021_11_01_desktop table and found 995 URLs that contain “.getGamepads()” and “.item(“. Roughly half of them are from the A-Frame, TDV Player, and ArcGIS libraries and don’t use the Gamepad API “.item()” accessor. I’ve looked at 20 randomly picked URLs and didn’t find a single one using the Gamepad API “.item()” accessor. They are used for other APIs like NodeList or TouchList, and not the return value of navigator.getGamepads().
Results are publicly available at https://docs.google.com/spreadsheets/d/e/2PACX-1vSFs3guk11lnMMIyvt6pFR586oRYxO0ap20uF1i7U7CZW8aRDS7kJYw05MQCZ3CcijT-Zxq2HFgQcOC/pubhtml
Interoperability and Compatibility
Gecko: Spec compliant already
WebKit: Spec compliant already
Web developers: Positive (https://www.youtube.com/watch?v=pIIHJ-NIyes&t=527s)
Debuggability
No specific DevTools changes are required. This feature is treated like any other JS event/attribute.
Is this feature fully tested by web-platform-tests?
Yes. See https://wpt.fyi/results/gamepad
Tracking bug
Estimated milestones
M99
Link to entry on the Chrome Platform Status
https://www.chromestatus.com/feature/5693119438782464
Contact emails
Specification
https://www.w3.org/TR/gamepad/#extensions-to-the-navigator-interface
Summary
We intend to replace GamepadList with sequence<Gamepad?> for navigator.getGamepads() return value to follow the spec and match current Gecko and WebKit implementations.
Blink component
Motivation
The W3C Gamepad spec defines the value returned by navigator.getGamepads() as a sequence<Gamepad?>, but Chrome is the only browser to implement it as a GamepadList. It has a similar interface (as it provides an operator[] getter and length attribute) but is not identical as it also provides an .item() accessor. Because of that, web developers tend to use [...navigator.getGamepads()] when they could simply use the Array returned by navigator.getGamepads().
TAG review
As Gecko and WebKit already implement this spec, a TAG review doesn't seem required.
Risks
I've scanned the httparchive.response_bodies.2021_11_01_desktop table and found 995 URLs that contain “.getGamepads()” and “.item(“. Roughly half of them are from the A-Frame, TDV Player, and ArcGIS libraries and don’t use the Gamepad API “.item()” accessor. I’ve looked at 20 randomly picked URLs and didn’t find a single one using the Gamepad API “.item()” accessor. They are used for other APIs like NodeList or TouchList, and not the return value of navigator.getGamepads().
Results are publicly available at https://docs.google.com/spreadsheets/d/e/2PACX-1vSFs3guk11lnMMIyvt6pFR586oRYxO0ap20uF1i7U7CZW8aRDS7kJYw05MQCZ3CcijT-Zxq2HFgQcOC/pubhtml
Interoperability and Compatibility
Gecko: Spec compliant already
WebKit: Spec compliant already
Web developers: Positive (https://www.youtube.com/watch?v=pIIHJ-NIyes&t=527s)
Debuggability
No specific DevTools changes are required. This feature is treated like any other JS event/attribute.
Is this feature fully tested by web-platform-tests?
Yes. See https://wpt.fyi/results/gamepad
Tracking bug
Estimated milestones
M99
Link to entry on the Chrome Platform Status
https://www.chromestatus.com/feature/5693119438782464
--
You received this message because you are subscribed to the Google Groups "blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAPpwU5K7%2BajfRH0LOxOnitYwG0Hkn5W3M5GevxaOL-CpacCpCA%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAL5BFfVxaFyZyqfvk4SsjvH0p%3DqOfqP8akChF-LDCAQcNOp2nA%40mail.gmail.com.
LGTM3
/Daniel
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAKXHy%3DdqFFVqu4pDYb%3DqpZoFjaO_RVUrRjMoUvZfavQNJk%2BWbA%40mail.gmail.com.