Bug 217675
| Summary: | Allow gamepad button press to count as a user gesture | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | Justin Uberti <juberti> |
| Component: | WebCore Misc. | Assignee: | Nobody <webkit-unassigned> |
| Status: | NEW | ||
| Severity: | Normal | CC: | beidson, webkit-bug-importer |
| Priority: | P2 | Keywords: | InRadar |
| Version: | Safari 14 | ||
| Hardware: | Unspecified | ||
| OS: | All | ||
| See Also: | https://bugs.webkit.org/show_bug.cgi?id=235052 | ||
Justin Uberti
Many of Safari's APIs require a user gesture, e.g.:
- fullscreen
- autoplay
- clipboard
However it is not possible to trigger a user gesture from an attached USB or Bluetooth gamepad, which makes it hard for apps to entirely drive their UI from a gamepad.
Chrome adopted an approach where a getGamepads() call with at least one button pushed more than 50% triggers a user gesture callback (https://bugs.chromium.org/p/chromium/issues/detail?id=381596#c13). This seems like it would be easy to adopt in Safari as well, assuming this approach gets a thumbs-up.
| Attachments | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |
Radar WebKit Bug Importer
<rdar://problem/70315471>
Brady Eidson
This seems like a reasonable thing to do.
Justin Uberti
OK, great. I'll look at grabbing a UserGestureToken somewhere like https://github.com/WebKit/webkit/blob/89c28d471fae35f1788a0f857067896a10af8974/Source/WebCore/platform/gamepad/GamepadProvider.cpp#L53 and see if that direction will work.