I vaguely recalled that this was a long simmering request, and you can see
that in the (partial) history of Mozilla's design:
https://github.com/mozilla-firefox/firefox/commits/main/dom/webidl/GamepadButtonEvent.webidl
Thank you for making this evented in Chromium!
LGTM1
Best,
Alex
On Monday, April 27, 2026 at 5:14:37 PM UTC-7 Gabriel Brito wrote:
> *Contact emails*
> [email protected], [email protected],
> [email protected], [email protected]
>
> *Explainer*
>
> https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/main/GamepadEventDrivenInputAPI/explainer.md
>
> *Specification*
> https://w3c.github.io/gamepad
>
> *Summary*
> This proposal extends the Gamepad API with a new event-driven model that
> enables applications to receive gamepad input with lower latency. Instead
> of relying on frequent polling via navigator.getGamepads(), developers can
> now listen for a rawgamepadinputchange event, which fires whenever new
> input data is available from the device. This allows for more responsive
> input handling, particularly in latency-sensitive applications.
>
> As a side note, currently, Chromium's backend implementation for obtaining
> gamepad input data from the underlying platform uses a poll-based approach.
> Adopting a full event-based backend implementation is challenging due to
> platform/device support. However, as platform support evolves, this new
> event API allows us to adopt an event-based approach in the backend without
> changing the web API shape.
>
> *Blink component*
> Blink>GamepadAPI
> <https://issues.chromium.org/issues?q=customfield1222907:%22Blink%3EGamepadAPI%22>
>
> *Web Feature ID*
> *No information provided*
>
> *Search tags*
> gamepad <https://chromestatus.com/features#tags:gamepad>, button
> <https://chromestatus.com/features#tags:button>, axis
> <https://chromestatus.com/features#tags:axis>, event
> <https://chromestatus.com/features#tags:event>, raw input
> <https://chromestatus.com/features#tags:raw%20input>
>
> *TAG review*
> None
>
> *TAG review status*
> Pending
>
> *Goals for experimentation*
> The OT should help us collect information on the performance impact of
> this change across real users. There is a high chance that the current API
> shape is NOT its final form (see more at
> https://github.com/w3c/gamepad/issues/4). We want to measure whether this
> version of raw events brings measurable performance improvements for cloud
> gaming, considering many different devices. If it negatively impacts
> low-powered devices, we'll need to work with partners on improvements. It
> could be adding event coalescing, changing the spec proposal to permit
> event throttling, etc.
>
> *Risks*
>
>
> *Interoperability and Compatibility*
> *No information provided*
>
> *Gecko*: No signal (
> https://github.com/mozilla/standards-positions/issues/1389)
> Firefox’s experimental implementation:
>
> - GamepadButtonEvent:
>
> https://searchfox.org/mozilla-central/source/dom/webidl/GamepadButtonEvent.webidl
> ,
> - GamepadAxisMoveEvent:
>
> https://searchfox.org/mozilla-central/source/dom/webidl/GamepadAxisMoveEvent.webidl#9
>
>
> *WebKit*: No signal (
> https://github.com/WebKit/standards-positions/issues/647)
>
> *Web developers*: Positive (
> https://stackoverflow.com/questions/72294832/using-gamepad-api-via-events-rather-than-polling
> )
> There is strong developer interest in an event-driven Gamepad API to
> improve responsiveness and simplify input handling. In w3c/gamepad#4 (
> https://github.com/w3c/gamepad/issues/4), developers have long requested
> events for gamepad input, citing the inefficiency of polling-based models.
> Similarly, in a popular Stack Overflow thread, developers express
> frustration with the lack of native gamepad events and seek workarounds,
> underscoring unmet needs in the current API. The existence of third-party
> libraries like gamecontroller.js (
> https://github.com/firsching/gamecontroller.js) and Gamepad-Controller (
> https://github.com/alvaromontoro/gamepad-controller) further demonstrates
> this.
>
> *Other signals*:
>
> *WebView application risks*
> *Does this intent deprecate or change behavior of existing APIs, such that
> it has potentially high risk for Android WebView-based applications?*
> No changes were anticipated.
>
> *Ongoing technical constraints*
> *No information provided*
>
> *Debuggability*
> N/A
>
> *Will this feature be supported on all six Blink platforms (Windows, Mac,
> Linux, ChromeOS, Android, and Android WebView)?*
> Yes
>
> *Is this feature fully tested by **web-platform-tests*
> <https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>
> *?*
> No
> Web platform tests will be added with the prototype implementation.
>
> *Flag name on about://flags*
> #gamepad-raw-input-change-event
>
> *Finch feature name*
> GamepadRawInputChangeEvent
>
> *Requires code in //chrome?*
> True
>
> *Tracking bug*
> https://crbug.com/40582297
>
> *Estimated milestones*
>
> DevTrial on desktop
> 147
> DevTrial on Android
> 147
>
>
> *Link to entry on the Chrome Platform Status*
> https://chromestatus.com/feature/5989275208253440?gate=4676374353149952
>
> *Links to previous Intent discussions*
> Intent to Prototype:
> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/682e0a48.170a0220.2aa17e.113c.GAE%40google.com
>
>
> This intent message was generated by Chrome Platform Status
> <https://chromestatus.com/>.
>
>
>
--
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 [email protected].
To view this discussion visit
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/f155e4ba-658e-4902-970d-221afcf72425n%40chromium.org.