From 1d84a842ccae9d9d67bd585c1ce3335268e34a51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vojt=C4=9Bch=20Pej=C5=A1a?= Date: Wed, 22 Apr 2020 14:19:17 +0200 Subject: [PATCH 1/4] Add clipboard webidl --- .../web-sys/webidls/unstable/Clipboard.webidl | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 crates/web-sys/webidls/unstable/Clipboard.webidl diff --git a/crates/web-sys/webidls/unstable/Clipboard.webidl b/crates/web-sys/webidls/unstable/Clipboard.webidl new file mode 100644 index 00000000000..f9ecdbd2265 --- /dev/null +++ b/crates/web-sys/webidls/unstable/Clipboard.webidl @@ -0,0 +1,60 @@ +/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* + * Clipboard API and events + * W3C Working Draft, 5 June 2019 + * The origin of this IDL file is: + * https://www.w3.org/TR/2019/WD-clipboard-apis-20190605/ + */ + +dictionary ClipboardEventInit : EventInit { + DataTransfer? clipboardData = null; +}; + +[Constructor(DOMString type, optional ClipboardEventInit eventInitDict), Exposed=Window] +interface ClipboardEvent : Event { + readonly attribute DataTransfer? clipboardData; +}; + +partial interface Navigator { + [SecureContext, SameObject] readonly attribute Clipboard clipboard; +}; + +typedef sequence ClipboardItems; + +[SecureContext, Exposed=Window] interface Clipboard : EventTarget { + Promise read(); + Promise readText(); + Promise write(ClipboardItems data); + Promise writeText(DOMString data); +}; + +typedef (DOMString or Blob) ClipboardItemDataType; +typedef Promise ClipboardItemData; + +callback ClipboardItemDelayedCallback = ClipboardItemData (); + +[Constructor(record items, + optional ClipboardItemOptions options), + Exposed=Window] interface ClipboardItem { + static ClipboardItem createDelayed( + record items, + optional ClipboardItemOptions options); + + readonly attribute PresentationStyle presentationStyle; + readonly attribute long long lastModified; + readonly attribute boolean delayed; + + readonly attribute FrozenArray types; + + Promise getType(DOMString type); +}; + +enum PresentationStyle { "unspecified", "inline", "attachment" }; + +dictionary ClipboardItemOptions { + PresentationStyle presentationStyle = "unspecified"; +}; + +dictionary ClipboardPermissionDescriptor : PermissionDescriptor { + boolean allowWithoutGesture = false; +}; From e7361d8a36134404d7850075e496e9f0a5c3080a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vojt=C4=9Bch=20Pej=C5=A1a?= Date: Wed, 22 Apr 2020 14:21:18 +0200 Subject: [PATCH 2/4] Generate Clipboard APIs --- crates/web-sys/Cargo.toml | 5 ++ crates/web-sys/src/features/gen_Clipboard.rs | 62 ++++++++++++++++ .../src/features/gen_ClipboardEvent.rs | 54 ++++++++++++++ .../src/features/gen_ClipboardEventInit.rs | 44 +++++++----- .../web-sys/src/features/gen_ClipboardItem.rs | 63 ++++++++++++++++ .../src/features/gen_ClipboardItemOptions.rs | 52 ++++++++++++++ .../gen_ClipboardPermissionDescriptor.rs | 71 +++++++++++++++++++ crates/web-sys/src/features/gen_Navigator.rs | 24 +++++++ .../src/features/gen_PresentationStyle.rs | 16 +++++ crates/web-sys/src/features/mod.rs | 30 ++++++++ 10 files changed, 405 insertions(+), 16 deletions(-) create mode 100644 crates/web-sys/src/features/gen_Clipboard.rs create mode 100644 crates/web-sys/src/features/gen_ClipboardItem.rs create mode 100644 crates/web-sys/src/features/gen_ClipboardItemOptions.rs create mode 100644 crates/web-sys/src/features/gen_ClipboardPermissionDescriptor.rs create mode 100644 crates/web-sys/src/features/gen_PresentationStyle.rs diff --git a/crates/web-sys/Cargo.toml b/crates/web-sys/Cargo.toml index 2e5575e4bdb..ab7d888f892 100644 --- a/crates/web-sys/Cargo.toml +++ b/crates/web-sys/Cargo.toml @@ -151,8 +151,12 @@ ClientQueryOptions = [] ClientRectsAndTexts = [] ClientType = [] Clients = [] +Clipboard = ["EventTarget"] ClipboardEvent = ["Event"] ClipboardEventInit = [] +ClipboardItem = [] +ClipboardItemOptions = [] +ClipboardPermissionDescriptor = [] CloseEvent = ["Event"] CloseEventInit = [] CollectedClientData = [] @@ -835,6 +839,7 @@ PresentationConnectionList = ["EventTarget"] PresentationConnectionState = [] PresentationReceiver = [] PresentationRequest = ["EventTarget"] +PresentationStyle = [] ProcessingInstruction = ["CharacterData", "EventTarget", "Node"] ProfileTimelineLayerRect = [] ProfileTimelineMarker = [] diff --git a/crates/web-sys/src/features/gen_Clipboard.rs b/crates/web-sys/src/features/gen_Clipboard.rs new file mode 100644 index 00000000000..0c2a4ea0072 --- /dev/null +++ b/crates/web-sys/src/features/gen_Clipboard.rs @@ -0,0 +1,62 @@ +#![allow(unused_imports)] +use super::*; +use wasm_bindgen::prelude::*; +#[cfg(web_sys_unstable_apis)] +#[wasm_bindgen] +extern "C" { + # [ wasm_bindgen ( extends = EventTarget , extends = :: js_sys :: Object , js_name = Clipboard , typescript_type = "Clipboard" ) ] + #[derive(Debug, Clone, PartialEq, Eq)] + #[doc = "The `Clipboard` class."] + #[doc = ""] + #[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/Clipboard)"] + #[doc = ""] + #[doc = "*This API requires the following crate features to be activated: `Clipboard`*"] + #[doc = ""] + #[doc = "*This API is unstable and requires `--cfg=web_sys_unstable_apis` to be activated, as"] + #[doc = "[described in the `wasm-bindgen` guide](https://rustwasm.github.io/docs/wasm-bindgen/web-sys/unstable-apis.html)*"] + pub type Clipboard; + #[cfg(web_sys_unstable_apis)] + # [ wasm_bindgen ( method , structural , js_class = "Clipboard" , js_name = read ) ] + #[doc = "The `read()` method."] + #[doc = ""] + #[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/Clipboard/read)"] + #[doc = ""] + #[doc = "*This API requires the following crate features to be activated: `Clipboard`*"] + #[doc = ""] + #[doc = "*This API is unstable and requires `--cfg=web_sys_unstable_apis` to be activated, as"] + #[doc = "[described in the `wasm-bindgen` guide](https://rustwasm.github.io/docs/wasm-bindgen/web-sys/unstable-apis.html)*"] + pub fn read(this: &Clipboard) -> ::js_sys::Promise; + #[cfg(web_sys_unstable_apis)] + # [ wasm_bindgen ( method , structural , js_class = "Clipboard" , js_name = readText ) ] + #[doc = "The `readText()` method."] + #[doc = ""] + #[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/Clipboard/readText)"] + #[doc = ""] + #[doc = "*This API requires the following crate features to be activated: `Clipboard`*"] + #[doc = ""] + #[doc = "*This API is unstable and requires `--cfg=web_sys_unstable_apis` to be activated, as"] + #[doc = "[described in the `wasm-bindgen` guide](https://rustwasm.github.io/docs/wasm-bindgen/web-sys/unstable-apis.html)*"] + pub fn read_text(this: &Clipboard) -> ::js_sys::Promise; + #[cfg(web_sys_unstable_apis)] + # [ wasm_bindgen ( method , structural , js_class = "Clipboard" , js_name = write ) ] + #[doc = "The `write()` method."] + #[doc = ""] + #[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/Clipboard/write)"] + #[doc = ""] + #[doc = "*This API requires the following crate features to be activated: `Clipboard`*"] + #[doc = ""] + #[doc = "*This API is unstable and requires `--cfg=web_sys_unstable_apis` to be activated, as"] + #[doc = "[described in the `wasm-bindgen` guide](https://rustwasm.github.io/docs/wasm-bindgen/web-sys/unstable-apis.html)*"] + pub fn write(this: &Clipboard, data: &::wasm_bindgen::JsValue) -> ::js_sys::Promise; + #[cfg(web_sys_unstable_apis)] + # [ wasm_bindgen ( method , structural , js_class = "Clipboard" , js_name = writeText ) ] + #[doc = "The `writeText()` method."] + #[doc = ""] + #[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/Clipboard/writeText)"] + #[doc = ""] + #[doc = "*This API requires the following crate features to be activated: `Clipboard`*"] + #[doc = ""] + #[doc = "*This API is unstable and requires `--cfg=web_sys_unstable_apis` to be activated, as"] + #[doc = "[described in the `wasm-bindgen` guide](https://rustwasm.github.io/docs/wasm-bindgen/web-sys/unstable-apis.html)*"] + pub fn write_text(this: &Clipboard, data: &str) -> ::js_sys::Promise; +} diff --git a/crates/web-sys/src/features/gen_ClipboardEvent.rs b/crates/web-sys/src/features/gen_ClipboardEvent.rs index fa86798c2fd..44f7b094a80 100644 --- a/crates/web-sys/src/features/gen_ClipboardEvent.rs +++ b/crates/web-sys/src/features/gen_ClipboardEvent.rs @@ -1,6 +1,7 @@ #![allow(unused_imports)] use super::*; use wasm_bindgen::prelude::*; +#[cfg(web_sys_unstable_apis)] #[wasm_bindgen] extern "C" { # [ wasm_bindgen ( extends = Event , extends = :: js_sys :: Object , js_name = ClipboardEvent , typescript_type = "ClipboardEvent" ) ] @@ -10,7 +11,11 @@ extern "C" { #[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/ClipboardEvent)"] #[doc = ""] #[doc = "*This API requires the following crate features to be activated: `ClipboardEvent`*"] + #[doc = ""] + #[doc = "*This API is unstable and requires `--cfg=web_sys_unstable_apis` to be activated, as"] + #[doc = "[described in the `wasm-bindgen` guide](https://rustwasm.github.io/docs/wasm-bindgen/web-sys/unstable-apis.html)*"] pub type ClipboardEvent; + #[cfg(web_sys_unstable_apis)] #[cfg(feature = "DataTransfer")] # [ wasm_bindgen ( structural , method , getter , js_class = "ClipboardEvent" , js_name = clipboardData ) ] #[doc = "Getter for the `clipboardData` field of this object."] @@ -18,14 +23,34 @@ extern "C" { #[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/ClipboardEvent/clipboardData)"] #[doc = ""] #[doc = "*This API requires the following crate features to be activated: `ClipboardEvent`, `DataTransfer`*"] + #[doc = ""] + #[doc = "*This API is unstable and requires `--cfg=web_sys_unstable_apis` to be activated, as"] + #[doc = "[described in the `wasm-bindgen` guide](https://rustwasm.github.io/docs/wasm-bindgen/web-sys/unstable-apis.html)*"] pub fn clipboard_data(this: &ClipboardEvent) -> Option; + #[cfg(web_sys_unstable_apis)] + #[cfg(feature = "DataTransfer")] + # [ wasm_bindgen ( structural , method , getter , js_class = "ClipboardEvent" , js_name = clipboardData ) ] + #[doc = "Getter for the `clipboardData` field of this object."] + #[doc = ""] + #[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/ClipboardEvent/clipboardData)"] + #[doc = ""] + #[doc = "*This API requires the following crate features to be activated: `ClipboardEvent`, `DataTransfer`*"] + #[doc = ""] + #[doc = "*This API is unstable and requires `--cfg=web_sys_unstable_apis` to be activated, as"] + #[doc = "[described in the `wasm-bindgen` guide](https://rustwasm.github.io/docs/wasm-bindgen/web-sys/unstable-apis.html)*"] + pub fn clipboard_data(this: &ClipboardEvent) -> Option; + #[cfg(web_sys_unstable_apis)] #[wasm_bindgen(catch, constructor, js_class = "ClipboardEvent")] #[doc = "The `new ClipboardEvent(..)` constructor, creating a new instance of `ClipboardEvent`."] #[doc = ""] #[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/ClipboardEvent/ClipboardEvent)"] #[doc = ""] #[doc = "*This API requires the following crate features to be activated: `ClipboardEvent`*"] + #[doc = ""] + #[doc = "*This API is unstable and requires `--cfg=web_sys_unstable_apis` to be activated, as"] + #[doc = "[described in the `wasm-bindgen` guide](https://rustwasm.github.io/docs/wasm-bindgen/web-sys/unstable-apis.html)*"] pub fn new(type_: &str) -> Result; + #[cfg(web_sys_unstable_apis)] #[cfg(feature = "ClipboardEventInit")] #[wasm_bindgen(catch, constructor, js_class = "ClipboardEvent")] #[doc = "The `new ClipboardEvent(..)` constructor, creating a new instance of `ClipboardEvent`."] @@ -33,6 +58,35 @@ extern "C" { #[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/ClipboardEvent/ClipboardEvent)"] #[doc = ""] #[doc = "*This API requires the following crate features to be activated: `ClipboardEvent`, `ClipboardEventInit`*"] + #[doc = ""] + #[doc = "*This API is unstable and requires `--cfg=web_sys_unstable_apis` to be activated, as"] + #[doc = "[described in the `wasm-bindgen` guide](https://rustwasm.github.io/docs/wasm-bindgen/web-sys/unstable-apis.html)*"] + pub fn new_with_event_init_dict( + type_: &str, + event_init_dict: &ClipboardEventInit, + ) -> Result; + #[cfg(web_sys_unstable_apis)] + #[wasm_bindgen(catch, constructor, js_class = "ClipboardEvent")] + #[doc = "The `new ClipboardEvent(..)` constructor, creating a new instance of `ClipboardEvent`."] + #[doc = ""] + #[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/ClipboardEvent/ClipboardEvent)"] + #[doc = ""] + #[doc = "*This API requires the following crate features to be activated: `ClipboardEvent`*"] + #[doc = ""] + #[doc = "*This API is unstable and requires `--cfg=web_sys_unstable_apis` to be activated, as"] + #[doc = "[described in the `wasm-bindgen` guide](https://rustwasm.github.io/docs/wasm-bindgen/web-sys/unstable-apis.html)*"] + pub fn new(type_: &str) -> Result; + #[cfg(web_sys_unstable_apis)] + #[cfg(feature = "ClipboardEventInit")] + #[wasm_bindgen(catch, constructor, js_class = "ClipboardEvent")] + #[doc = "The `new ClipboardEvent(..)` constructor, creating a new instance of `ClipboardEvent`."] + #[doc = ""] + #[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/ClipboardEvent/ClipboardEvent)"] + #[doc = ""] + #[doc = "*This API requires the following crate features to be activated: `ClipboardEvent`, `ClipboardEventInit`*"] + #[doc = ""] + #[doc = "*This API is unstable and requires `--cfg=web_sys_unstable_apis` to be activated, as"] + #[doc = "[described in the `wasm-bindgen` guide](https://rustwasm.github.io/docs/wasm-bindgen/web-sys/unstable-apis.html)*"] pub fn new_with_event_init_dict( type_: &str, event_init_dict: &ClipboardEventInit, diff --git a/crates/web-sys/src/features/gen_ClipboardEventInit.rs b/crates/web-sys/src/features/gen_ClipboardEventInit.rs index 83c97981f62..c53cf036609 100644 --- a/crates/web-sys/src/features/gen_ClipboardEventInit.rs +++ b/crates/web-sys/src/features/gen_ClipboardEventInit.rs @@ -1,6 +1,7 @@ #![allow(unused_imports)] use super::*; use wasm_bindgen::prelude::*; +#[cfg(web_sys_unstable_apis)] #[wasm_bindgen] extern "C" { # [ wasm_bindgen ( extends = :: js_sys :: Object , js_name = ClipboardEventInit ) ] @@ -8,20 +9,31 @@ extern "C" { #[doc = "The `ClipboardEventInit` dictionary."] #[doc = ""] #[doc = "*This API requires the following crate features to be activated: `ClipboardEventInit`*"] + #[doc = ""] + #[doc = "*This API is unstable and requires `--cfg=web_sys_unstable_apis` to be activated, as"] + #[doc = "[described in the `wasm-bindgen` guide](https://rustwasm.github.io/docs/wasm-bindgen/web-sys/unstable-apis.html)*"] pub type ClipboardEventInit; } +#[cfg(web_sys_unstable_apis)] impl ClipboardEventInit { #[doc = "Construct a new `ClipboardEventInit`."] #[doc = ""] #[doc = "*This API requires the following crate features to be activated: `ClipboardEventInit`*"] + #[doc = ""] + #[doc = "*This API is unstable and requires `--cfg=web_sys_unstable_apis` to be activated, as"] + #[doc = "[described in the `wasm-bindgen` guide](https://rustwasm.github.io/docs/wasm-bindgen/web-sys/unstable-apis.html)*"] pub fn new() -> Self { #[allow(unused_mut)] let mut ret: Self = ::wasm_bindgen::JsCast::unchecked_into(::js_sys::Object::new()); ret } + #[cfg(web_sys_unstable_apis)] #[doc = "Change the `bubbles` field of this object."] #[doc = ""] #[doc = "*This API requires the following crate features to be activated: `ClipboardEventInit`*"] + #[doc = ""] + #[doc = "*This API is unstable and requires `--cfg=web_sys_unstable_apis` to be activated, as"] + #[doc = "[described in the `wasm-bindgen` guide](https://rustwasm.github.io/docs/wasm-bindgen/web-sys/unstable-apis.html)*"] pub fn bubbles(&mut self, val: bool) -> &mut Self { use wasm_bindgen::JsValue; let r = ::js_sys::Reflect::set( @@ -36,9 +48,13 @@ impl ClipboardEventInit { let _ = r; self } + #[cfg(web_sys_unstable_apis)] #[doc = "Change the `cancelable` field of this object."] #[doc = ""] #[doc = "*This API requires the following crate features to be activated: `ClipboardEventInit`*"] + #[doc = ""] + #[doc = "*This API is unstable and requires `--cfg=web_sys_unstable_apis` to be activated, as"] + #[doc = "[described in the `wasm-bindgen` guide](https://rustwasm.github.io/docs/wasm-bindgen/web-sys/unstable-apis.html)*"] pub fn cancelable(&mut self, val: bool) -> &mut Self { use wasm_bindgen::JsValue; let r = ::js_sys::Reflect::set( @@ -53,9 +69,13 @@ impl ClipboardEventInit { let _ = r; self } + #[cfg(web_sys_unstable_apis)] #[doc = "Change the `composed` field of this object."] #[doc = ""] #[doc = "*This API requires the following crate features to be activated: `ClipboardEventInit`*"] + #[doc = ""] + #[doc = "*This API is unstable and requires `--cfg=web_sys_unstable_apis` to be activated, as"] + #[doc = "[described in the `wasm-bindgen` guide](https://rustwasm.github.io/docs/wasm-bindgen/web-sys/unstable-apis.html)*"] pub fn composed(&mut self, val: bool) -> &mut Self { use wasm_bindgen::JsValue; let r = ::js_sys::Reflect::set( @@ -70,27 +90,19 @@ impl ClipboardEventInit { let _ = r; self } - #[doc = "Change the `data` field of this object."] + #[cfg(web_sys_unstable_apis)] + #[cfg(feature = "DataTransfer")] + #[doc = "Change the `clipboardData` field of this object."] #[doc = ""] - #[doc = "*This API requires the following crate features to be activated: `ClipboardEventInit`*"] - pub fn data(&mut self, val: &str) -> &mut Self { - use wasm_bindgen::JsValue; - let r = ::js_sys::Reflect::set(self.as_ref(), &JsValue::from("data"), &JsValue::from(val)); - debug_assert!( - r.is_ok(), - "setting properties should never fail on our dictionary objects" - ); - let _ = r; - self - } - #[doc = "Change the `dataType` field of this object."] + #[doc = "*This API requires the following crate features to be activated: `ClipboardEventInit`, `DataTransfer`*"] #[doc = ""] - #[doc = "*This API requires the following crate features to be activated: `ClipboardEventInit`*"] - pub fn data_type(&mut self, val: &str) -> &mut Self { + #[doc = "*This API is unstable and requires `--cfg=web_sys_unstable_apis` to be activated, as"] + #[doc = "[described in the `wasm-bindgen` guide](https://rustwasm.github.io/docs/wasm-bindgen/web-sys/unstable-apis.html)*"] + pub fn clipboard_data(&mut self, val: Option<&DataTransfer>) -> &mut Self { use wasm_bindgen::JsValue; let r = ::js_sys::Reflect::set( self.as_ref(), - &JsValue::from("dataType"), + &JsValue::from("clipboardData"), &JsValue::from(val), ); debug_assert!( diff --git a/crates/web-sys/src/features/gen_ClipboardItem.rs b/crates/web-sys/src/features/gen_ClipboardItem.rs new file mode 100644 index 00000000000..680e5833ead --- /dev/null +++ b/crates/web-sys/src/features/gen_ClipboardItem.rs @@ -0,0 +1,63 @@ +#![allow(unused_imports)] +use super::*; +use wasm_bindgen::prelude::*; +#[cfg(web_sys_unstable_apis)] +#[wasm_bindgen] +extern "C" { + # [ wasm_bindgen ( extends = :: js_sys :: Object , js_name = ClipboardItem , typescript_type = "ClipboardItem" ) ] + #[derive(Debug, Clone, PartialEq, Eq)] + #[doc = "The `ClipboardItem` class."] + #[doc = ""] + #[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/ClipboardItem)"] + #[doc = ""] + #[doc = "*This API requires the following crate features to be activated: `ClipboardItem`*"] + #[doc = ""] + #[doc = "*This API is unstable and requires `--cfg=web_sys_unstable_apis` to be activated, as"] + #[doc = "[described in the `wasm-bindgen` guide](https://rustwasm.github.io/docs/wasm-bindgen/web-sys/unstable-apis.html)*"] + pub type ClipboardItem; + #[cfg(web_sys_unstable_apis)] + #[cfg(feature = "PresentationStyle")] + # [ wasm_bindgen ( structural , method , getter , js_class = "ClipboardItem" , js_name = presentationStyle ) ] + #[doc = "Getter for the `presentationStyle` field of this object."] + #[doc = ""] + #[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/ClipboardItem/presentationStyle)"] + #[doc = ""] + #[doc = "*This API requires the following crate features to be activated: `ClipboardItem`, `PresentationStyle`*"] + #[doc = ""] + #[doc = "*This API is unstable and requires `--cfg=web_sys_unstable_apis` to be activated, as"] + #[doc = "[described in the `wasm-bindgen` guide](https://rustwasm.github.io/docs/wasm-bindgen/web-sys/unstable-apis.html)*"] + pub fn presentation_style(this: &ClipboardItem) -> PresentationStyle; + #[cfg(web_sys_unstable_apis)] + # [ wasm_bindgen ( structural , method , getter , js_class = "ClipboardItem" , js_name = lastModified ) ] + #[doc = "Getter for the `lastModified` field of this object."] + #[doc = ""] + #[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/ClipboardItem/lastModified)"] + #[doc = ""] + #[doc = "*This API requires the following crate features to be activated: `ClipboardItem`*"] + #[doc = ""] + #[doc = "*This API is unstable and requires `--cfg=web_sys_unstable_apis` to be activated, as"] + #[doc = "[described in the `wasm-bindgen` guide](https://rustwasm.github.io/docs/wasm-bindgen/web-sys/unstable-apis.html)*"] + pub fn last_modified(this: &ClipboardItem) -> f64; + #[cfg(web_sys_unstable_apis)] + # [ wasm_bindgen ( structural , method , getter , js_class = "ClipboardItem" , js_name = delayed ) ] + #[doc = "Getter for the `delayed` field of this object."] + #[doc = ""] + #[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/ClipboardItem/delayed)"] + #[doc = ""] + #[doc = "*This API requires the following crate features to be activated: `ClipboardItem`*"] + #[doc = ""] + #[doc = "*This API is unstable and requires `--cfg=web_sys_unstable_apis` to be activated, as"] + #[doc = "[described in the `wasm-bindgen` guide](https://rustwasm.github.io/docs/wasm-bindgen/web-sys/unstable-apis.html)*"] + pub fn delayed(this: &ClipboardItem) -> bool; + #[cfg(web_sys_unstable_apis)] + # [ wasm_bindgen ( method , structural , js_class = "ClipboardItem" , js_name = getType ) ] + #[doc = "The `getType()` method."] + #[doc = ""] + #[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/ClipboardItem/getType)"] + #[doc = ""] + #[doc = "*This API requires the following crate features to be activated: `ClipboardItem`*"] + #[doc = ""] + #[doc = "*This API is unstable and requires `--cfg=web_sys_unstable_apis` to be activated, as"] + #[doc = "[described in the `wasm-bindgen` guide](https://rustwasm.github.io/docs/wasm-bindgen/web-sys/unstable-apis.html)*"] + pub fn get_type(this: &ClipboardItem, type_: &str) -> ::js_sys::Promise; +} diff --git a/crates/web-sys/src/features/gen_ClipboardItemOptions.rs b/crates/web-sys/src/features/gen_ClipboardItemOptions.rs new file mode 100644 index 00000000000..bd60a79cf83 --- /dev/null +++ b/crates/web-sys/src/features/gen_ClipboardItemOptions.rs @@ -0,0 +1,52 @@ +#![allow(unused_imports)] +use super::*; +use wasm_bindgen::prelude::*; +#[cfg(web_sys_unstable_apis)] +#[wasm_bindgen] +extern "C" { + # [ wasm_bindgen ( extends = :: js_sys :: Object , js_name = ClipboardItemOptions ) ] + #[derive(Debug, Clone, PartialEq, Eq)] + #[doc = "The `ClipboardItemOptions` dictionary."] + #[doc = ""] + #[doc = "*This API requires the following crate features to be activated: `ClipboardItemOptions`*"] + #[doc = ""] + #[doc = "*This API is unstable and requires `--cfg=web_sys_unstable_apis` to be activated, as"] + #[doc = "[described in the `wasm-bindgen` guide](https://rustwasm.github.io/docs/wasm-bindgen/web-sys/unstable-apis.html)*"] + pub type ClipboardItemOptions; +} +#[cfg(web_sys_unstable_apis)] +impl ClipboardItemOptions { + #[doc = "Construct a new `ClipboardItemOptions`."] + #[doc = ""] + #[doc = "*This API requires the following crate features to be activated: `ClipboardItemOptions`*"] + #[doc = ""] + #[doc = "*This API is unstable and requires `--cfg=web_sys_unstable_apis` to be activated, as"] + #[doc = "[described in the `wasm-bindgen` guide](https://rustwasm.github.io/docs/wasm-bindgen/web-sys/unstable-apis.html)*"] + pub fn new() -> Self { + #[allow(unused_mut)] + let mut ret: Self = ::wasm_bindgen::JsCast::unchecked_into(::js_sys::Object::new()); + ret + } + #[cfg(web_sys_unstable_apis)] + #[cfg(feature = "PresentationStyle")] + #[doc = "Change the `presentationStyle` field of this object."] + #[doc = ""] + #[doc = "*This API requires the following crate features to be activated: `ClipboardItemOptions`, `PresentationStyle`*"] + #[doc = ""] + #[doc = "*This API is unstable and requires `--cfg=web_sys_unstable_apis` to be activated, as"] + #[doc = "[described in the `wasm-bindgen` guide](https://rustwasm.github.io/docs/wasm-bindgen/web-sys/unstable-apis.html)*"] + pub fn presentation_style(&mut self, val: PresentationStyle) -> &mut Self { + use wasm_bindgen::JsValue; + let r = ::js_sys::Reflect::set( + self.as_ref(), + &JsValue::from("presentationStyle"), + &JsValue::from(val), + ); + debug_assert!( + r.is_ok(), + "setting properties should never fail on our dictionary objects" + ); + let _ = r; + self + } +} diff --git a/crates/web-sys/src/features/gen_ClipboardPermissionDescriptor.rs b/crates/web-sys/src/features/gen_ClipboardPermissionDescriptor.rs new file mode 100644 index 00000000000..09be6cdff77 --- /dev/null +++ b/crates/web-sys/src/features/gen_ClipboardPermissionDescriptor.rs @@ -0,0 +1,71 @@ +#![allow(unused_imports)] +use super::*; +use wasm_bindgen::prelude::*; +#[cfg(web_sys_unstable_apis)] +#[wasm_bindgen] +extern "C" { + # [ wasm_bindgen ( extends = :: js_sys :: Object , js_name = ClipboardPermissionDescriptor ) ] + #[derive(Debug, Clone, PartialEq, Eq)] + #[doc = "The `ClipboardPermissionDescriptor` dictionary."] + #[doc = ""] + #[doc = "*This API requires the following crate features to be activated: `ClipboardPermissionDescriptor`*"] + #[doc = ""] + #[doc = "*This API is unstable and requires `--cfg=web_sys_unstable_apis` to be activated, as"] + #[doc = "[described in the `wasm-bindgen` guide](https://rustwasm.github.io/docs/wasm-bindgen/web-sys/unstable-apis.html)*"] + pub type ClipboardPermissionDescriptor; +} +#[cfg(web_sys_unstable_apis)] +impl ClipboardPermissionDescriptor { + #[cfg(feature = "PermissionName")] + #[doc = "Construct a new `ClipboardPermissionDescriptor`."] + #[doc = ""] + #[doc = "*This API requires the following crate features to be activated: `ClipboardPermissionDescriptor`, `PermissionName`*"] + #[doc = ""] + #[doc = "*This API is unstable and requires `--cfg=web_sys_unstable_apis` to be activated, as"] + #[doc = "[described in the `wasm-bindgen` guide](https://rustwasm.github.io/docs/wasm-bindgen/web-sys/unstable-apis.html)*"] + pub fn new(name: PermissionName) -> Self { + #[allow(unused_mut)] + let mut ret: Self = ::wasm_bindgen::JsCast::unchecked_into(::js_sys::Object::new()); + ret.name(name); + ret + } + #[cfg(web_sys_unstable_apis)] + #[cfg(feature = "PermissionName")] + #[doc = "Change the `name` field of this object."] + #[doc = ""] + #[doc = "*This API requires the following crate features to be activated: `ClipboardPermissionDescriptor`, `PermissionName`*"] + #[doc = ""] + #[doc = "*This API is unstable and requires `--cfg=web_sys_unstable_apis` to be activated, as"] + #[doc = "[described in the `wasm-bindgen` guide](https://rustwasm.github.io/docs/wasm-bindgen/web-sys/unstable-apis.html)*"] + pub fn name(&mut self, val: PermissionName) -> &mut Self { + use wasm_bindgen::JsValue; + let r = ::js_sys::Reflect::set(self.as_ref(), &JsValue::from("name"), &JsValue::from(val)); + debug_assert!( + r.is_ok(), + "setting properties should never fail on our dictionary objects" + ); + let _ = r; + self + } + #[cfg(web_sys_unstable_apis)] + #[doc = "Change the `allowWithoutGesture` field of this object."] + #[doc = ""] + #[doc = "*This API requires the following crate features to be activated: `ClipboardPermissionDescriptor`*"] + #[doc = ""] + #[doc = "*This API is unstable and requires `--cfg=web_sys_unstable_apis` to be activated, as"] + #[doc = "[described in the `wasm-bindgen` guide](https://rustwasm.github.io/docs/wasm-bindgen/web-sys/unstable-apis.html)*"] + pub fn allow_without_gesture(&mut self, val: bool) -> &mut Self { + use wasm_bindgen::JsValue; + let r = ::js_sys::Reflect::set( + self.as_ref(), + &JsValue::from("allowWithoutGesture"), + &JsValue::from(val), + ); + debug_assert!( + r.is_ok(), + "setting properties should never fail on our dictionary objects" + ); + let _ = r; + self + } +} diff --git a/crates/web-sys/src/features/gen_Navigator.rs b/crates/web-sys/src/features/gen_Navigator.rs index 744258dd52b..1638d0dbe00 100644 --- a/crates/web-sys/src/features/gen_Navigator.rs +++ b/crates/web-sys/src/features/gen_Navigator.rs @@ -105,6 +105,30 @@ extern "C" { #[doc = "*This API requires the following crate features to be activated: `CredentialsContainer`, `Navigator`*"] pub fn credentials(this: &Navigator) -> CredentialsContainer; #[cfg(web_sys_unstable_apis)] + #[cfg(feature = "Clipboard")] + # [ wasm_bindgen ( structural , method , getter , js_class = "Navigator" , js_name = clipboard ) ] + #[doc = "Getter for the `clipboard` field of this object."] + #[doc = ""] + #[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/Navigator/clipboard)"] + #[doc = ""] + #[doc = "*This API requires the following crate features to be activated: `Clipboard`, `Navigator`*"] + #[doc = ""] + #[doc = "*This API is unstable and requires `--cfg=web_sys_unstable_apis` to be activated, as"] + #[doc = "[described in the `wasm-bindgen` guide](https://rustwasm.github.io/docs/wasm-bindgen/web-sys/unstable-apis.html)*"] + pub fn clipboard(this: &Navigator) -> Clipboard; + #[cfg(web_sys_unstable_apis)] + #[cfg(feature = "Xr")] + # [ wasm_bindgen ( structural , method , getter , js_class = "Navigator" , js_name = xr ) ] + #[doc = "Getter for the `xr` field of this object."] + #[doc = ""] + #[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/Navigator/xr)"] + #[doc = ""] + #[doc = "*This API requires the following crate features to be activated: `Navigator`, `Xr`*"] + #[doc = ""] + #[doc = "*This API is unstable and requires `--cfg=web_sys_unstable_apis` to be activated, as"] + #[doc = "[described in the `wasm-bindgen` guide](https://rustwasm.github.io/docs/wasm-bindgen/web-sys/unstable-apis.html)*"] + pub fn xr(this: &Navigator) -> Xr; + #[cfg(web_sys_unstable_apis)] #[cfg(feature = "Gpu")] # [ wasm_bindgen ( structural , method , getter , js_class = "Navigator" , js_name = gpu ) ] #[doc = "Getter for the `gpu` field of this object."] diff --git a/crates/web-sys/src/features/gen_PresentationStyle.rs b/crates/web-sys/src/features/gen_PresentationStyle.rs new file mode 100644 index 00000000000..3f45b29c97c --- /dev/null +++ b/crates/web-sys/src/features/gen_PresentationStyle.rs @@ -0,0 +1,16 @@ +#![allow(unused_imports)] +use wasm_bindgen::prelude::*; +#[cfg(web_sys_unstable_apis)] +#[wasm_bindgen] +#[doc = "The `PresentationStyle` enum."] +#[doc = ""] +#[doc = "*This API requires the following crate features to be activated: `PresentationStyle`*"] +#[doc = ""] +#[doc = "*This API is unstable and requires `--cfg=web_sys_unstable_apis` to be activated, as"] +#[doc = "[described in the `wasm-bindgen` guide](https://rustwasm.github.io/docs/wasm-bindgen/web-sys/unstable-apis.html)*"] +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +pub enum PresentationStyle { + Unspecified = "unspecified", + Inline = "inline", + Attachment = "attachment", +} diff --git a/crates/web-sys/src/features/mod.rs b/crates/web-sys/src/features/mod.rs index 5884025a971..d288e2d8d1b 100644 --- a/crates/web-sys/src/features/mod.rs +++ b/crates/web-sys/src/features/mod.rs @@ -724,6 +724,12 @@ mod gen_Clients; #[cfg(feature = "Clients")] pub use gen_Clients::*; +#[cfg(feature = "Clipboard")] +#[allow(non_snake_case)] +mod gen_Clipboard; +#[cfg(feature = "Clipboard")] +pub use gen_Clipboard::*; + #[cfg(feature = "ClipboardEvent")] #[allow(non_snake_case)] mod gen_ClipboardEvent; @@ -736,6 +742,24 @@ mod gen_ClipboardEventInit; #[cfg(feature = "ClipboardEventInit")] pub use gen_ClipboardEventInit::*; +#[cfg(feature = "ClipboardItem")] +#[allow(non_snake_case)] +mod gen_ClipboardItem; +#[cfg(feature = "ClipboardItem")] +pub use gen_ClipboardItem::*; + +#[cfg(feature = "ClipboardItemOptions")] +#[allow(non_snake_case)] +mod gen_ClipboardItemOptions; +#[cfg(feature = "ClipboardItemOptions")] +pub use gen_ClipboardItemOptions::*; + +#[cfg(feature = "ClipboardPermissionDescriptor")] +#[allow(non_snake_case)] +mod gen_ClipboardPermissionDescriptor; +#[cfg(feature = "ClipboardPermissionDescriptor")] +pub use gen_ClipboardPermissionDescriptor::*; + #[cfg(feature = "CloseEvent")] #[allow(non_snake_case)] mod gen_CloseEvent; @@ -4828,6 +4852,12 @@ mod gen_PresentationRequest; #[cfg(feature = "PresentationRequest")] pub use gen_PresentationRequest::*; +#[cfg(feature = "PresentationStyle")] +#[allow(non_snake_case)] +mod gen_PresentationStyle; +#[cfg(feature = "PresentationStyle")] +pub use gen_PresentationStyle::*; + #[cfg(feature = "ProcessingInstruction")] #[allow(non_snake_case)] mod gen_ProcessingInstruction; From d5da20c795bed1d8ed19f5c3dd2615ac328bea1d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vojt=C4=9Bch=20Pej=C5=A1a?= Date: Wed, 22 Apr 2020 16:42:24 +0200 Subject: [PATCH 3/4] Remove old ClipboardEvent webidl --- .../webidls/enabled/ClipboardEvent.webidl | 23 ------------------- 1 file changed, 23 deletions(-) delete mode 100644 crates/web-sys/webidls/enabled/ClipboardEvent.webidl diff --git a/crates/web-sys/webidls/enabled/ClipboardEvent.webidl b/crates/web-sys/webidls/enabled/ClipboardEvent.webidl deleted file mode 100644 index 8fe8a4935bc..00000000000 --- a/crates/web-sys/webidls/enabled/ClipboardEvent.webidl +++ /dev/null @@ -1,23 +0,0 @@ -/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * For more information on this interface please see - * http://dev.w3.org/2006/webapi/clipops/#x5-clipboard-event-interfaces - * - * Copyright © 2012 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C - * liability, trademark and document use rules apply. - */ - -[Constructor(DOMString type, optional ClipboardEventInit eventInitDict)] -interface ClipboardEvent : Event -{ - readonly attribute DataTransfer? clipboardData; -}; - -dictionary ClipboardEventInit : EventInit -{ - DOMString data = ""; - DOMString dataType = ""; -}; From 4ff154fbfcb7747c335e3021b4a205f4ef3206c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vojt=C4=9Bch=20Pej=C5=A1a?= Date: Wed, 22 Apr 2020 16:45:02 +0200 Subject: [PATCH 4/4] Generate web-sys with old ClipboardEvent removed. --- .../src/features/gen_ClipboardEvent.rs | 38 ------------------- crates/web-sys/src/features/gen_Navigator.rs | 12 ------ 2 files changed, 50 deletions(-) diff --git a/crates/web-sys/src/features/gen_ClipboardEvent.rs b/crates/web-sys/src/features/gen_ClipboardEvent.rs index 44f7b094a80..f95acc74a71 100644 --- a/crates/web-sys/src/features/gen_ClipboardEvent.rs +++ b/crates/web-sys/src/features/gen_ClipboardEvent.rs @@ -28,44 +28,6 @@ extern "C" { #[doc = "[described in the `wasm-bindgen` guide](https://rustwasm.github.io/docs/wasm-bindgen/web-sys/unstable-apis.html)*"] pub fn clipboard_data(this: &ClipboardEvent) -> Option; #[cfg(web_sys_unstable_apis)] - #[cfg(feature = "DataTransfer")] - # [ wasm_bindgen ( structural , method , getter , js_class = "ClipboardEvent" , js_name = clipboardData ) ] - #[doc = "Getter for the `clipboardData` field of this object."] - #[doc = ""] - #[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/ClipboardEvent/clipboardData)"] - #[doc = ""] - #[doc = "*This API requires the following crate features to be activated: `ClipboardEvent`, `DataTransfer`*"] - #[doc = ""] - #[doc = "*This API is unstable and requires `--cfg=web_sys_unstable_apis` to be activated, as"] - #[doc = "[described in the `wasm-bindgen` guide](https://rustwasm.github.io/docs/wasm-bindgen/web-sys/unstable-apis.html)*"] - pub fn clipboard_data(this: &ClipboardEvent) -> Option; - #[cfg(web_sys_unstable_apis)] - #[wasm_bindgen(catch, constructor, js_class = "ClipboardEvent")] - #[doc = "The `new ClipboardEvent(..)` constructor, creating a new instance of `ClipboardEvent`."] - #[doc = ""] - #[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/ClipboardEvent/ClipboardEvent)"] - #[doc = ""] - #[doc = "*This API requires the following crate features to be activated: `ClipboardEvent`*"] - #[doc = ""] - #[doc = "*This API is unstable and requires `--cfg=web_sys_unstable_apis` to be activated, as"] - #[doc = "[described in the `wasm-bindgen` guide](https://rustwasm.github.io/docs/wasm-bindgen/web-sys/unstable-apis.html)*"] - pub fn new(type_: &str) -> Result; - #[cfg(web_sys_unstable_apis)] - #[cfg(feature = "ClipboardEventInit")] - #[wasm_bindgen(catch, constructor, js_class = "ClipboardEvent")] - #[doc = "The `new ClipboardEvent(..)` constructor, creating a new instance of `ClipboardEvent`."] - #[doc = ""] - #[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/ClipboardEvent/ClipboardEvent)"] - #[doc = ""] - #[doc = "*This API requires the following crate features to be activated: `ClipboardEvent`, `ClipboardEventInit`*"] - #[doc = ""] - #[doc = "*This API is unstable and requires `--cfg=web_sys_unstable_apis` to be activated, as"] - #[doc = "[described in the `wasm-bindgen` guide](https://rustwasm.github.io/docs/wasm-bindgen/web-sys/unstable-apis.html)*"] - pub fn new_with_event_init_dict( - type_: &str, - event_init_dict: &ClipboardEventInit, - ) -> Result; - #[cfg(web_sys_unstable_apis)] #[wasm_bindgen(catch, constructor, js_class = "ClipboardEvent")] #[doc = "The `new ClipboardEvent(..)` constructor, creating a new instance of `ClipboardEvent`."] #[doc = ""] diff --git a/crates/web-sys/src/features/gen_Navigator.rs b/crates/web-sys/src/features/gen_Navigator.rs index 1638d0dbe00..110fedbf236 100644 --- a/crates/web-sys/src/features/gen_Navigator.rs +++ b/crates/web-sys/src/features/gen_Navigator.rs @@ -117,18 +117,6 @@ extern "C" { #[doc = "[described in the `wasm-bindgen` guide](https://rustwasm.github.io/docs/wasm-bindgen/web-sys/unstable-apis.html)*"] pub fn clipboard(this: &Navigator) -> Clipboard; #[cfg(web_sys_unstable_apis)] - #[cfg(feature = "Xr")] - # [ wasm_bindgen ( structural , method , getter , js_class = "Navigator" , js_name = xr ) ] - #[doc = "Getter for the `xr` field of this object."] - #[doc = ""] - #[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/Navigator/xr)"] - #[doc = ""] - #[doc = "*This API requires the following crate features to be activated: `Navigator`, `Xr`*"] - #[doc = ""] - #[doc = "*This API is unstable and requires `--cfg=web_sys_unstable_apis` to be activated, as"] - #[doc = "[described in the `wasm-bindgen` guide](https://rustwasm.github.io/docs/wasm-bindgen/web-sys/unstable-apis.html)*"] - pub fn xr(this: &Navigator) -> Xr; - #[cfg(web_sys_unstable_apis)] #[cfg(feature = "Gpu")] # [ wasm_bindgen ( structural , method , getter , js_class = "Navigator" , js_name = gpu ) ] #[doc = "Getter for the `gpu` field of this object."]