Re: [w3c/clipboard-apis] Defer OS clipboard read from clipboard.read() to ClipboardItem.getType() (PR #248)

@shwetabin commented on this pull request.



> +
+       1. If |isCustom| is true, then:
+
+        1. Let |webCustomFormatMap| be the [=os specific custom map name=].
+
+        1. Read |webCustomFormatMap| from the [=system clipboard=].
+
+        1. Let |webCustomFormatMapString| be the JSON string deserialized from |webCustomFormatMap|.
+
+        1. Let |osFormatName| be the value in |webCustomFormatMapString| whose key matches |mimeType| [=serialize a MIME type|serialized=].
+
+        1. If |osFormatName| is not found, then [=queue a global task=] on the [=clipboard task source=], given |realm|'s [=realm/global object=], to [=reject=] |p| with a {{"NotFoundError"}} {{DOMException}} in |realm|, then abort these steps.
+
+       1. Else, let |osFormatName| be the result of running [=os specific well-known format=] given |mimeType|.
+
+      1. Let |clipboardItem| be the [=system clipboard item=] currently held in the [=system clipboard=]. If there is no such item, then [=queue a global task=] on the [=clipboard task source=], given |realm|'s [=realm/global object=], to [=reject=] |p| with a {{"NotFoundError"}} {{DOMException}} in |realm|, then abort these steps.

The mapping is implicit via the [=ClipboardItem/clipboard change count at read=] check earlier in this algorithm: if the [=clipboard change count=] hasn't changed since {{Clipboard/read()}}, the "currently held" [=system clipboard item=] is by construction the same one {{Clipboard/read()}} observed. In practice the [=system clipboard=] holds at most one item at a time, so "currently held" is unambiguous. 

-- 
Reply to this email directly or view it on GitHub:
https://github.com/w3c/clipboard-apis/pull/248#discussion_r3323880396
You are receiving this because you are subscribed to this thread.

Message ID: <w3c/clipboard-apis/pull/248/review/4388934729@github.com>

Received on Friday, 29 May 2026 11:02:11 UTC