Intent to Ship: Clipboardchange event

22 views
Skip to first unread message

Chromestatus

unread,
4:05 AM (5 hours ago) 4:05 AM
to blin...@chromium.org, dan...@chromium.org, rago...@microsoft.com, ror...@microsoft.com
Contact emails
ror...@microsoft.com, rago...@microsoft.com, dan...@chromium.org

Explainer
https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/main/ClipboardAPI/ClipboardChangeEvent/clipboard-change-event-explainer.md

Specification
https://github.com/w3c/clipboard-apis/pull/239

Summary
The "clipboardchange" event fires whenever the system clipboard contents are changed either by a web app or any other system application. This allows web-apps like remote desktop clients to keep their clipboards synchronized with the system clipboard. It provides an efficient alternative to polling the clipboard(using Javascript) for changes.

Blink component
Blink>DataTransfer

Web Feature ID
clipboardchange

Motivation
Today, a web-app can monitor the system clipboard by polling and reading the clipboard through async clipboard API at regular intervals. For example, web based remote desktop clients like Chrome Remote desktop may read the clipboard contents for changes on every page focus event which is inefficient. Some Github links also suggests polling of clipboard being performed in Electron JS apps like (https://gist.github.com/LewdEwe-ErikWallace/d6e36f899a77a4f05e46388c254d014f). This feature aims to introduce an efficient way of notifying web apps when clipboard changes.

Initial public proposal
https://github.com/WICG/proposals/issues/186

Search tags
clipboard change event, clipboardchange, clipboard monitor

TAG review
https://github.com/w3ctag/design-reviews/issues/1017

TAG review status
Issues addressed

Origin Trial Name
Clipboardchange event

Chromium Trial Name
ClipboardChangeEvent

Origin Trial documentation link
https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/main/ClipboardAPI/ClipboardChangeEvent/README.md

WebFeature UseCounter name
kClipboardChangeEventAddListener

Risks


Interoperability and Compatibility
No information provided

Gecko: No signal (https://github.com/mozilla/standards-positions/issues/1115)

WebKit: No signal (https://github.com/WebKit/standards-positions/issues/429)

Web developers: Positive 34+ upvotes in the associated Chromium bug indicates strong interest. Issues like following also indicate a strong developer interest: - https://stackoverflow.com/questions/63856050/javascript-how-can-i-have-a-constantly-running-process-for-the-purpose-of-monit - https://github.com/p0deje/Maccy/issues/948

Other signals:

WebView application risks

Does this intent deprecate or change behavior of existing APIs, such that it has potentially high risk for Android WebView-based applications?

No information provided


Debuggability
To improve debuggability, developers should be able to set breakpoints directly in their code where the clipboardchange event listener is registered, using the Sources tool as with any other event. Additionally, clipboardchange will be available alongside other clipboard-related events—such as copy, cut, and paste—in the “Clipboard” section of Event Listener Breakpoints within the Sources tool.

Will this feature be supported on all six Blink platforms (Windows, Mac, Linux, ChromeOS, Android, and Android WebView)?
Yes

Is this feature fully tested by web-platform-tests?
Yes
https://wpt.fyi/results/clipboard-apis/async-navigator-clipboard-change-event.tentative.https.html

DevTrial instructions
https://developer.chrome.com/blog/clipboardchange

Flag name on about://flags
ClipboardChangeEvent

Finch feature name
ClipboardChangeEvent

Rollout plan
Will ship enabled for all users

Requires code in //chrome?
False

Tracking bug
https://issues.chromium.org/issues/41442253

Estimated milestones
Shipping on desktop143
Origin trial desktop first140
Origin trial desktop last142
Shipping on Android143
Origin trial Android first140
Origin trial Android last142
Origin trial WebView first140
Origin trial WebView last142


Anticipated spec changes

Open questions about a feature may be a source of future web compat or interop issues. Please list open issues (e.g. links to known github issues in the project for the feature specification) whose resolution may introduce web compat/interop risk (e.g., changing to naming or structure of the API in a non-backward-compatible way).

No information provided

Link to entry on the Chrome Platform Status
https://chromestatus.com/feature/5085102657503232?gate=5067234201042944

Links to previous Intent discussions
Intent to Prototype: https://groups.google.com/a/chromium.org/d/msgid/blink-dev/67454fad.2b0a0220.19a388.0284.GAE%40google.com
Intent to Experiment: https://groups.google.com/a/chromium.org/g/blink-dev/c/JQb0t_esk1k/m/WnqkGA2pCQAJ


This intent message was generated by Chrome Platform Status.
Reply all
Reply to author
Forward
0 new messages