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.

Reply via email to