1/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ 2/* 3 * Clipboard API and events 4 * W3C Working Draft, 4 June 2021 5 * The origin of this IDL file is: 6 * https://www.w3.org/TR/2021/WD-clipboard-apis-20210604/ 7 */ 8 9dictionary ClipboardEventInit : EventInit { 10 DataTransfer? clipboardData = null; 11}; 12 13[Exposed=Window] 14interface ClipboardEvent : Event { 15 constructor(DOMString type, optional ClipboardEventInit eventInitDict = {}); 16 readonly attribute DataTransfer? clipboardData; 17}; 18 19partial interface Navigator { 20 [SecureContext, SameObject] readonly attribute Clipboard? clipboard; 21}; 22 23typedef sequence<ClipboardItem> ClipboardItems; 24 25[SecureContext, Exposed=Window] interface Clipboard : EventTarget { 26 Promise<ClipboardItems> read(); 27 Promise<DOMString> readText(); 28 Promise<undefined> write(ClipboardItems data); 29 Promise<undefined> writeText(DOMString data); 30}; 31 32typedef (DOMString or Blob) ClipboardItemDataType; 33typedef Promise<ClipboardItemDataType> ClipboardItemData; 34 35callback ClipboardItemDelayedCallback = ClipboardItemData (); 36 37[Exposed=Window] interface ClipboardItem { 38 constructor(record<DOMString, ClipboardItemData> items, 39 optional ClipboardItemOptions options = {}); 40 static ClipboardItem createDelayed( 41 record<DOMString, ClipboardItemDelayedCallback> items, 42 optional ClipboardItemOptions options = {}); 43 44 readonly attribute PresentationStyle presentationStyle; 45 readonly attribute long long lastModified; 46 readonly attribute boolean delayed; 47 48 readonly attribute FrozenArray<DOMString> types; 49 50 Promise<Blob> getType(DOMString type); 51}; 52 53enum PresentationStyle { "unspecified", "inline", "attachment" }; 54 55dictionary ClipboardItemOptions { 56 PresentationStyle presentationStyle = "unspecified"; 57}; 58 59dictionary ClipboardPermissionDescriptor : PermissionDescriptor { 60 boolean allowWithoutGesture = false; 61}; 62