Merge pull request #2100 from vojta7/clipboard

Clipboard API
This commit is contained in:
Pauan 2020-04-23 10:00:00 +02:00 committed by GitHub
commit a479241c46
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 415 additions and 39 deletions

View File

@ -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 = []

View File

@ -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;
}

View File

@ -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,22 @@ 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<DataTransfer>;
#[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<ClipboardEvent, JsValue>;
#[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 +46,9 @@ 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,

View File

@ -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!(

View File

@ -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;
}

View File

@ -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
}
}

View File

@ -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
}
}

View File

@ -105,6 +105,18 @@ 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 = "Gpu")]
# [ wasm_bindgen ( structural , method , getter , js_class = "Navigator" , js_name = gpu ) ]
#[doc = "Getter for the `gpu` field of this object."]

View File

@ -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",
}

View File

@ -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;

View File

@ -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 = "";
};

View File

@ -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<ClipboardItem> ClipboardItems;
[SecureContext, Exposed=Window] interface Clipboard : EventTarget {
Promise<ClipboardItems> read();
Promise<DOMString> readText();
Promise<void> write(ClipboardItems data);
Promise<void> writeText(DOMString data);
};
typedef (DOMString or Blob) ClipboardItemDataType;
typedef Promise<ClipboardItemDataType> ClipboardItemData;
callback ClipboardItemDelayedCallback = ClipboardItemData ();
[Constructor(record<DOMString, ClipboardItemData> items,
optional ClipboardItemOptions options),
Exposed=Window] interface ClipboardItem {
static ClipboardItem createDelayed(
record<DOMString, ClipboardItemDelayedCallback> items,
optional ClipboardItemOptions options);
readonly attribute PresentationStyle presentationStyle;
readonly attribute long long lastModified;
readonly attribute boolean delayed;
readonly attribute FrozenArray<DOMString> types;
Promise<Blob> getType(DOMString type);
};
enum PresentationStyle { "unspecified", "inline", "attachment" };
dictionary ClipboardItemOptions {
PresentationStyle presentationStyle = "unspecified";
};
dictionary ClipboardPermissionDescriptor : PermissionDescriptor {
boolean allowWithoutGesture = false;
};