Contact emails
sni...@microsoft.com<mailto:sni...@microsoft.com>, 
sa...@microsoft.com<mailto:sa...@microsoft.com>, 
ansol...@microsoft.com<mailto:ansol...@microsoft.com>, 
est...@chromium.org<mailto:est...@chromium.org>, 
asu...@chromium.org<mailto:asu...@chromium.org>


Explainer
https://docs.google.com/document/d/1rTEg2I-hMPXGiLrEMqKJz2Ycu6GRjlM3uvakOe84m8Q/edit?usp=sharing


Specification
https://github.com/w3c/editing/blob/gh-pages/docs/clipboard-unsanitized/explainer.md


Design docs

https://github.com/w3c/editing/blob/gh-pages/docs/clipboard-unsanitized/explainer.md


Summary
This proposal aligns the sanitization requirement of the HTML format from 
read/write async API with the setData/getData DataTransfer APIs. Currently, 
when we read/write text/html MIME types using the async API, the sanitizer is 
invoked to strip out contents from the HTML markup due to security concerns, 
and styles are inlined in the HTML, which leads to a bloated HTML payload and 
loss of fidelity of HTML content when read by web authors or native apps. 
Currently, Firefox provides access to unsanitized HTML via DataTransfer APIs, 
which matches Chromium's behavior, and Safari only allows access to unsanitized 
HTML if it's being read within the same origin.



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 api<https://chromestatus.com/features#tags:async%20api>, 
clipboard<https://chromestatus.com/features#tags:clipboard>


TAG review

There is no desire to standardize this behavior as discussed in 
https://github.com/w3c/clipboard-apis/issues/150#issuecomment-917273986. Also, 
Webkit was opposed to any change in behavior since their implementation of 
Async API interops with DataTransfer API 
(https://github.com/w3c/clipboard-apis/issues/165#issuecomment-1047152542).

TAG review status
Not applicable


Risks


Interoperability and Compatibility
This is a Chromium-only feature (see discussion in 
https://docs.google.com/document/d/1ha0pcpQsEgVGtPK8dd8N_0P1ynI7rXV7bR5ZFmOTD6Y/edit?usp=sharing),
 so adding a dictionary as an argument in read will be ignored in non-Chromium 
browsers and the HTML read might be sanitized. As this change aligns the 
sanitization behavior of the DataTransfer API and the Clipboard Async API, 
existing paste targets that support DataTransfer APIs unsanitized HTML don't 
need to make updates on how they handle HTML if they decide to transition to 
the Clipboard Async API.


Gecko: Neutral (https://github.com/mozilla/standards-positions/issues/769) 
https://github.com/w3c/clipboard-apis/issues/150#issuecomment-1031684598

WebKit: Negative 
(https://github.com/w3c/clipboard-apis/issues/150#issuecomment-974236367)

Web developers: Positive Positive signals from Excel Online.


Ergonomics
The spec'd read method doesn't accept any arguments. With this feature, we have 
overloaded the read method in order to add a dictionary argument, where web 
authors will explicitly request for the unsanitization of the HTML.



Activation
The current Clipboard Async API read method as specified in 
https://w3c.github.io/clipboard-apis/ isn't affected by the introduction of 
this feature, the behavior is validated through existing web tests.



Security
The legacy DataTransfer APIs already allow access to unsanitized HTML content, 
so we don't think this will create any additional security loopholes. Moreover, 
sites have to explicitly opt into reading unsanitized HTML content via the 
"unsanitized" option, so any sites that don't have that option would get the 
default, sanitized HTML content.



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.


Goals for experimentation
Gather feedback from web developers.


Debuggability
No specific DevTools changes are required. This feature is treated like any 
other JS method.



Will this feature be supported on all six Blink platforms (Windows, Mac, Linux, 
Chrome OS, Android, and Android WebView)?
Yes
No platform restrictions.



Is this feature fully tested by 
web-platform-tests<https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>?
Yes


DevTrial instructions
https://github.com/w3c/editing/blob/gh-pages/docs/clipboard-unsanitized/HOWTO.md


Flag name
ClipboardUnsanitizedContent


Requires code in //chrome?
False


Tracking bug
https://bugs.chromium.org/p/chromium/issues/detail?id=1268679


Estimated milestones
DevTrial on desktop
113

DevTrial on Android
113





Link to entry on the Chrome Platform Status
https://chromestatus.com/feature/5716132676763648

This intent message was generated by Chrome Platform 
Status<https://chromestatus.com/>.


-- 
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/MW2PR00MB0332D03F29A2530B924A94C4FD8F9%40MW2PR00MB0332.namprd00.prod.outlook.com.

Reply via email to