[w3c/clipboard-apis] Add comprehensive clipboardchange event specification with ClipboardChangeEventInit dictionary (PR #239)

## Summary

This PR adds a complete specification for the `clipboardchange` event to the W3C Clipboard API specification, including the missing `ClipboardChangeEventInit` dictionary and enhanced documentation based on implementation experience and the Microsoft Edge explainer.

## Changes

### Added ClipboardChangeEventInit Dictionary
- **New:** `ClipboardChangeEventInit` dictionary with `types` sequence parameter
- **Documentation:** Clear specification of available mandatory data types on system clipboard
- **Security:** Explicit exclusion of custom data types to prevent fingerprinting

### Enhanced ClipboardChangeEvent Interface
- **Improved:** Detailed documentation for the `types` attribute behavior
- **Clarified:** Event firing conditions and focus requirements
- **Added:** Constructor steps algorithm following W3C specification patterns

## Implementation Status

- ✅ **Chromium**: Tracking bug [#41442253](https://issues.chromium.org/issues/41442253)
- ✅ **Chrome Platform Status**: [#5085102657503232](https://chromestatus.com/feature/5085102657503232)
- 🔄 **TAG Review**: [w3ctag/design-reviews#1017](https://github.com/w3ctag/design-reviews/issues/1017)

## Related Documentation

- **Microsoft Edge Explainer**: [clipboard-change-event-explainer.md](https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/main/ClipboardAPI/clipboard-change-event-explainer.md)
- **Intent to Prototype**: Posted November 2024
- **Feature Name**: ClipboardChangeEvent

## Testing

The specification includes comprehensive examples that can be used for:
- Web Platform Tests (WPTs) development
- Cross-browser compatibility validation
- Security and privacy testing scenarios

## Security & Privacy Considerations

- **No permissions required**: Event only exposes data types, not contents
- **Fingerprinting mitigation**: Custom data types excluded from event payload
- **Focus-gated**: Events only fire when document has focus
- **Privacy-preserving**: No clipboard contents exposed in event

---

**Contacts**: roraja@microsoft.com, ragoulik@microsoft.com

Fixes #230 

For normative changes, the following tasks have been completed:
 * [X] Editing WG resolution on the proposed changes, with at least two implementers participating and not objecting:
   * [X] WebKit
   * [X] Chromium
   * [X] Gecko


<!--
    This comment and the below content is programmatically generated.
    You may add a comma-separated list of anchors you'd like a
    direct link to below (e.g. #idl-serializers, #idl-sequence):

    Don't remove this comment or modify anything below this line.
    If you don't want a preview generated for this pull request,
    just replace the whole of this comment's content by "no preview"
    and remove what's below.
-->
***
<a href="https://pr-preview.s3.amazonaws.com/roraja/clipboard-apis/pull/239.html" title="Last updated on Jun 23, 2025, 5:37 AM UTC (efdccf0)">Preview</a> | <a href="https://pr-preview.s3.amazonaws.com/w3c/clipboard-apis/239/c3ba452...roraja:efdccf0.html" title="Last updated on Jun 23, 2025, 5:37 AM UTC (efdccf0)">Diff</a>
You can view, comment on, or merge this pull request online at:

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

-- Commit Summary --

  * Initial spec changes for clipboardchange event

-- File Changes --

    M index.bs (74)

-- Patch Links --

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

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

Message ID: <w3c/clipboard-apis/pull/239@github.com>

Received on Monday, 23 June 2025 05:38:09 UTC