From d5597c30acc5f388e443fbbc17b22eb749f934e8 Mon Sep 17 00:00:00 2001 From: daxpedda Date: Sat, 25 Nov 2023 19:37:58 +0100 Subject: [PATCH] Add bindings for `UserActivation` --- CHANGELOG.md | 5 ++++ crates/web-sys/Cargo.toml | 1 + crates/web-sys/src/features/gen_Navigator.rs | 8 +++++ .../src/features/gen_UserActivation.rs | 29 +++++++++++++++++++ crates/web-sys/src/features/mod.rs | 6 ++++ .../webidls/enabled/UserActivation.webidl | 9 ++++++ 6 files changed, 58 insertions(+) create mode 100644 crates/web-sys/src/features/gen_UserActivation.rs create mode 100644 crates/web-sys/webidls/enabled/UserActivation.webidl diff --git a/CHANGELOG.md b/CHANGELOG.md index 1a4516dcdad..b9bc727c119 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,11 @@ ## [Unreleased](https://github.com/rustwasm/wasm-bindgen/compare/0.2.89...main) +### Added + +* Add bindings for `UserActivation`. + [#3719](https://github.com/rustwasm/wasm-bindgen/pull/3719) + ### Removed * Removed Gecko-only `InstallTriggerData` and Gecko-internal `FlexLineGrowthState`, `GridDeclaration`, `GridTrackState`, diff --git a/crates/web-sys/Cargo.toml b/crates/web-sys/Cargo.toml index 68d1ce9197e..baa3d3529c6 100644 --- a/crates/web-sys/Cargo.toml +++ b/crates/web-sys/Cargo.toml @@ -1423,6 +1423,7 @@ UsbPermissionStorage = [] UsbRecipient = [] UsbRequestType = [] UsbTransferStatus = [] +UserActivation = [] UserProximityEvent = ["Event"] UserProximityEventInit = [] UserVerificationRequirement = [] diff --git a/crates/web-sys/src/features/gen_Navigator.rs b/crates/web-sys/src/features/gen_Navigator.rs index 17197347dce..a9b499e6d3e 100644 --- a/crates/web-sys/src/features/gen_Navigator.rs +++ b/crates/web-sys/src/features/gen_Navigator.rs @@ -105,6 +105,14 @@ extern "C" { #[doc = ""] #[doc = "*This API requires the following crate features to be activated: `CredentialsContainer`, `Navigator`*"] pub fn credentials(this: &Navigator) -> CredentialsContainer; + #[cfg(feature = "UserActivation")] + # [wasm_bindgen (structural , method , getter , js_class = "Navigator" , js_name = userActivation)] + #[doc = "Getter for the `userActivation` field of this object."] + #[doc = ""] + #[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/Navigator/userActivation)"] + #[doc = ""] + #[doc = "*This API requires the following crate features to be activated: `Navigator`, `UserActivation`*"] + pub fn user_activation(this: &Navigator) -> UserActivation; #[cfg(web_sys_unstable_apis)] #[cfg(feature = "Bluetooth")] # [wasm_bindgen (structural , method , getter , js_class = "Navigator" , js_name = bluetooth)] diff --git a/crates/web-sys/src/features/gen_UserActivation.rs b/crates/web-sys/src/features/gen_UserActivation.rs new file mode 100644 index 00000000000..deef4a5ce43 --- /dev/null +++ b/crates/web-sys/src/features/gen_UserActivation.rs @@ -0,0 +1,29 @@ +#![allow(unused_imports)] +#![allow(clippy::all)] +use super::*; +use wasm_bindgen::prelude::*; +#[wasm_bindgen] +extern "C" { + # [wasm_bindgen (extends = :: js_sys :: Object , js_name = UserActivation , typescript_type = "UserActivation")] + #[derive(Debug, Clone, PartialEq, Eq)] + #[doc = "The `UserActivation` class."] + #[doc = ""] + #[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/UserActivation)"] + #[doc = ""] + #[doc = "*This API requires the following crate features to be activated: `UserActivation`*"] + pub type UserActivation; + # [wasm_bindgen (structural , method , getter , js_class = "UserActivation" , js_name = hasBeenActive)] + #[doc = "Getter for the `hasBeenActive` field of this object."] + #[doc = ""] + #[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/UserActivation/hasBeenActive)"] + #[doc = ""] + #[doc = "*This API requires the following crate features to be activated: `UserActivation`*"] + pub fn has_been_active(this: &UserActivation) -> bool; + # [wasm_bindgen (structural , method , getter , js_class = "UserActivation" , js_name = isActive)] + #[doc = "Getter for the `isActive` field of this object."] + #[doc = ""] + #[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/UserActivation/isActive)"] + #[doc = ""] + #[doc = "*This API requires the following crate features to be activated: `UserActivation`*"] + pub fn is_active(this: &UserActivation) -> bool; +} diff --git a/crates/web-sys/src/features/mod.rs b/crates/web-sys/src/features/mod.rs index 5c034caaa27..8333053be51 100644 --- a/crates/web-sys/src/features/mod.rs +++ b/crates/web-sys/src/features/mod.rs @@ -8350,6 +8350,12 @@ mod gen_UsbTransferStatus; #[cfg(feature = "UsbTransferStatus")] pub use gen_UsbTransferStatus::*; +#[cfg(feature = "UserActivation")] +#[allow(non_snake_case)] +mod gen_UserActivation; +#[cfg(feature = "UserActivation")] +pub use gen_UserActivation::*; + #[cfg(feature = "UserProximityEvent")] #[allow(non_snake_case)] mod gen_UserProximityEvent; diff --git a/crates/web-sys/webidls/enabled/UserActivation.webidl b/crates/web-sys/webidls/enabled/UserActivation.webidl new file mode 100644 index 00000000000..302f9d738a3 --- /dev/null +++ b/crates/web-sys/webidls/enabled/UserActivation.webidl @@ -0,0 +1,9 @@ +[Exposed=Window] +interface UserActivation { + readonly attribute boolean hasBeenActive; + readonly attribute boolean isActive; +}; + +partial interface Navigator { + [SameObject] readonly attribute UserActivation userActivation; +};