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] 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 00000000..f9ecdbd2 --- /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; +};