On Mon, Dec 11, 2023 at 6:05 PM 'Anupam Snigdha' via blink-dev <
blink-dev@chromium.org> wrote:

> Contact emails
>
> sni...@microsoft.com, sa...@microsoft.com, est...@chromium.org
>
> Specification
>
>
> https://w3c.github.io/clipboard-apis/#dom-clipboard-write
>
> Design docs
>
>
> https://docs.google.com/document/d/1rTEg2I-hMPXGiLrEMqKJz2Ycu6GRjlM3uvakOe84m8Q/edit?usp=sharing
>
> Summary
>
> The Async clipboard writer API uses sanitizers to strip out content such
> as <head>, <meta>, <style>, <script> tags from the HTML and inline styles
> into the markup. In this proposal, writing to the clipboard for `text/html`
> MIME type using the navigator.clipboard.write() API will write a higher
> fidelity sanitized, well-formed HTML markup instead of a more strictly
> sanitized HTML fragment. It will also preserve the tags such as <meta>,
> <style>, <head> etc  that were stripped out by the fragment parser.
>
> Roundtripping of HTML content using the async clipboard API within the web
> doesn’t change as the async clipboard read() method still produces a
> sanitized HTML fragment.
>
> Method used to write HTML data to the clipboard
>
> Does it affect the DataTransfer getData() method?
>
> Does it affect the navigator.clipboard.read() method?
>
> Does it affect the native apps that read HTML data from the clipboard?
>
> navigator.clipboard.write()
>
> Yes, if web authors write via navigator.clipboard.write() and read via
> DataTransfer getData(). It returns well-formed HTML markup.
>
> No. By-default read() returns a strictly sanitized fragment.
>
> Yes. It returns a higher fidelity sanitized markup instead of a strictly
> sanitized fragment.
>
>
> Blink component
>
> Blink>DataTransfer
> <https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3EDataTransfer>
>
> Search tags
>
> unsanitized html
> <https://chromestatus.com/features#tags:unsanitized%20html>, async
> clipboard <https://chromestatus.com/features#tags:async%20clipboard>,
> clipboard <https://chromestatus.com/features#tags:clipboard>, copy
> <https://chromestatus.com/features#tags:copy>
>
> TAG review
>
> None. There is no web API change. It only changes the sanitization
> requirement by writing a higher fidelity sanitized HTML instead of a more
> strictly sanitized HTML fragment to the system clipboard.
>
> TAG reviewed the unsanitized read/write as part of a broader review of the
> Pickling API
>
> https://github.com/w3ctag/design-reviews/issues/636#issuecomment-919324784
>
> https://github.com/w3ctag/design-reviews/issues/636#issuecomment-869792053
>
>
> TAG review status
>
> Not applicable
>
> Risks
>
>
> Interoperability and Compatibility
>
> Existing paste targets don't need to make updates to read HTML written via
> the async clipboard API, as they are already able to handle unsanitized
> HTML written via the DataTransfer API.
>
>
> *Gecko*: Neutral (
> https://github.com/mozilla/standards-positions/issues/769)
>
> *WebKit*: Negative (
> https://github.com/w3c/clipboard-apis/issues/150#issuecomment-974236367)
>

Reading through this discussion, WebKit raised some privacy concerns and
indicated that they would not be willing to ship the proposed changes. I
think this poses a sufficient risk to interop that it warrants a full
Intent to Ship (instead of a Web Facing PSA). Specifically, I see that the
security team has been consulted for this feature, but I'm curious to see
if this has been raised with privacy teams.

Thanks,
Vlad


>
> *Web developers*: Positive signals from Excel Online. Google Sheets also
> appear to be positive based on discussions in this *bug
> <https://bugs.chromium.org/p/chromium/issues/detail?id=1493388&q=Google%20sheets&can=2>*,
> *I2S
> <https://groups.google.com/a/chromium.org/g/blink-dev/c/pjpN9Lwv5Tk/m/DEALX5QdBwAJ?utm_medium=email&utm_source=footer>*
>  and
> email conversations.
>
> *Other signals*:
>
> Ergonomics
>
> No API change.
>
>
> Activation
>
> The current Clipboard Async API write method as specified in
> <https://w3c.github.io/clipboard-apis/#dom-clipboard-write>
> https://w3c.github.io/clipboard-apis/#dom-clipboard-write isn't affected
> by this change, the behavior is validated in existing web tests.
>
>
> Security
>
> Existing DataTransfer APIs already allow reading and writing unsanitized
> HTML content from/to the clipboard. The proposed change just makes sure
> that the HTML markup that gets written to the clipboard via the async
> clipboard API is a well-formed HTML document.
>
>
> https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/main/ClipboardAPI/tag-security-privacy-clipboard-unsanitized-read.md
>
> Here is a threat model that was presented to the Chrome security team: 
> *https://docs.google.com/document/d/1QLt50Q8UnlQksVltZ2PNkDZVdk9N58Pq7P0lzGTKh-U/edit?usp=sharing
> <https://docs.google.com/document/d/1QLt50Q8UnlQksVltZ2PNkDZVdk9N58Pq7P0lzGTKh-U/edit?usp=sharing>*
>
> Discussions: 
> *https://docs.google.com/document/d/1yHUC_laWTRoG65QOQTIqkpiULITDyQmznwKtVr0KMk8/edit?usp=sharing&resourcekey=0-q650DjDFdpHyVLffTwP7Yw
> <https://docs.google.com/document/d/1yHUC_laWTRoG65QOQTIqkpiULITDyQmznwKtVr0KMk8/edit?usp=sharing&resourcekey=0-q650DjDFdpHyVLffTwP7Yw>*
>
> Since the DataTransfer API, which is more widely used,  already allows
> access to the unsanitized HTML content, we don’t think there are any
> additional security concerns with this proposal.
>
> Native apps have their own HTML parser to process the HTML content before
> it is inserted into their document model. These apps already handle
> unsanitized HTML because the DataTransfer API, which is much more commonly
> used, does not sanitize HTML either. More details here: 
> *https://docs.google.com/document/d/1O2vtCS23nB_6aJy7_xcdaWKw7TtqYm0fERzEjtLyv5M/edit?usp=sharing
> <https://docs.google.com/document/d/1O2vtCS23nB_6aJy7_xcdaWKw7TtqYm0fERzEjtLyv5M/edit?usp=sharing>*
> .
>
>
> 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?*
>
> None
>
>
> Debuggability
>
> No specific DevTools changes are required as it doesn’t introduce any new
> web API. Existing support for async clipboard APIs is sufficient.
>
>
> 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
> <https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>
> ?
>
> Yes
>
>
> https://wpt.fyi/results/clipboard-apis/async-unsanitized-standard-html-formats-write-read.tentative.https.html
> ,
> <https://wpt.fyi/results/clipboard-apis/async-unsanitized-standard-html-read-fail.tentative.https.html>
> https://wpt.fyi/results/clipboard-apis/async-unsanitized-standard-html-read-fail.tentative.https.html
>
>
> Flag name in Blink
>
> ClipboardWellFormedHtmlSanitizationWrite
>
> Finch feature name
>
> ClipboardWellFormedHtmlSanitizationWrite
>
> Requires code in //chrome?
>
> False
>
> Tracking bug
>
> https://bugs.chromium.org/p/chromium/issues/detail?id=1268679
>
> Sample links
>
>
> https://github.com/w3c/editing/blob/gh-pages/docs/clipboard-unsanitized/unsanitized-html-demo.html
>
> Estimated milestones
>
> Shipping on desktop
>
> 122
>
> Shipping on Android
>
> 122
>
> Shipping on WebView
>
> 122
>
>
>
> Anticipated spec changes
>
> None
>
> Link to entry on the Chrome Platform Status
>
> https://chromestatus.com/feature/6236486997639168
>
> This intent message was generated by Chrome Platform Status
> <https://chromestatus.com/>.
>
>
> Thanks,
> Anupam
>
> Sent from Outlook <http://aka.ms/weboutlook>
>
> --
> You received this message because you are subscribed to the Google Groups
> "blink-dev" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to blink-dev+unsubscr...@chromium.org.
> To view this discussion on the web visit
> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/SJ0PR00MB09912FF13F0DA983D298E0E4CF8FA%40SJ0PR00MB0991.namprd00.prod.outlook.com
> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/SJ0PR00MB09912FF13F0DA983D298E0E4CF8FA%40SJ0PR00MB0991.namprd00.prod.outlook.com?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to blink-dev+unsubscr...@chromium.org.
To view this discussion on the web visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CADsXd2ONp9coYAva0Ahcy0EyfOG8DbOx06j%3Dq3ny8i0Gg50fpg%40mail.gmail.com.

Reply via email to