dom: Implement ClipboardItem (#36336)

implement the `ClipboardItem` interface

Testing: covered by existing wpt tests

part of #36084

---------

Signed-off-by: Gae24 <96017547+Gae24@users.noreply.github.com>
This commit is contained in:
Gae24 2025-04-07 01:47:57 +02:00 committed by GitHub
parent 33b00dbe40
commit d1243a1867
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
12 changed files with 219 additions and 38 deletions

View file

@ -0,0 +1,26 @@
/* 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/. */
// https://w3c.github.io/clipboard-apis/#clipboard-item-interface
typedef Promise<(DOMString or Blob)> ClipboardItemData;
[SecureContext, Exposed=Window, Pref="dom_async_clipboard_enabled"]
interface ClipboardItem {
[Throws] constructor(record<DOMString, ClipboardItemData> items,
optional ClipboardItemOptions options = {});
readonly attribute PresentationStyle presentationStyle;
readonly attribute /* FrozenArray<DOMString> */ any types;
// Promise<Blob> getType(DOMString type);
// static boolean supports(DOMString type);
};
enum PresentationStyle { "unspecified", "inline", "attachment" };
dictionary ClipboardItemOptions {
PresentationStyle presentationStyle = "unspecified";
};