mirror of
https://github.com/servo/servo
synced 2026-04-26 01:25:32 +02:00
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:
@@ -83,6 +83,7 @@ use crate::dom::bindings::codegen::Bindings::ElementBinding::ScrollLogicalPositi
|
||||
use crate::dom::bindings::codegen::Bindings::EventBinding::Event_Binding::EventMethods;
|
||||
use crate::dom::bindings::codegen::Bindings::HTMLIFrameElementBinding::HTMLIFrameElement_Binding::HTMLIFrameElementMethods;
|
||||
use crate::dom::bindings::codegen::Bindings::HTMLOrSVGElementBinding::FocusOptions;
|
||||
#[cfg(any(feature = "webxr", feature = "gamepad"))]
|
||||
use crate::dom::bindings::codegen::Bindings::NavigatorBinding::Navigator_Binding::NavigatorMethods;
|
||||
use crate::dom::bindings::codegen::Bindings::NodeBinding::NodeMethods;
|
||||
use crate::dom::bindings::codegen::Bindings::NodeFilterBinding::NodeFilter;
|
||||
@@ -4688,6 +4689,7 @@ impl Document {
|
||||
// state and document. Any other specs' visibility steps will go here.
|
||||
|
||||
// <https://www.w3.org/TR/gamepad/#handling-visibility-change>
|
||||
#[cfg(feature = "gamepad")]
|
||||
if visibility_state == DocumentVisibilityState::Hidden {
|
||||
self.window
|
||||
.Navigator()
|
||||
|
||||
Reference in New Issue
Block a user