feat: gamepad feature flag (#41451)

Put the Gamepad API and its supporting infrastructure behind a `gamepad`
feature flag. This allows embedders to opt-out of gamepad support at
compile time to save on binary size and reduce dependencies.

Testing:
1. `./mach build -d` (Gamepad enabled by default)
2. `cargo build -p servoshell --no-default-features --features
"libservo/clipboard,js_jit,max_log_level,webgpu"` (Gamepad Disabled)
3. `cargo build -p servoshell --features "gamepad,webxr,..."` (Gamepad &
WebXR Enabled)

Fixes: #40897

Signed-off-by: WaterWhisperer <waterwhisperer24@qq.com>
This commit is contained in:
WaterWhisperer
2025-12-21 21:18:06 +08:00
committed by GitHub
parent 1a6b18937a
commit 6623cc1dbb
28 changed files with 111 additions and 21 deletions

View File

@@ -2,6 +2,8 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// skip-unless CARGO_FEATURE_GAMEPAD
// https://w3c.github.io/gamepad/#gamepadevent-interface
[Exposed=Window, Pref="dom_gamepad_enabled"]
interface GamepadEvent : Event {