m...@chromium.org, huang...@chromium.org, dsl...@google.com
Explainer
https://docs.google.com/document/d/1Rx7gi01avpRRNYKSpp3U4WQdjery0H0IkX2XxDtfZ8I/edit#
The list of mime types supported by the async clipboard API isn’t currently specified anywhere. The list of mime types supported by datatransfer is specified here: https://w3c.github.io/clipboard-apis/#mandatory-data-types-x
There are also efforts to improve this specification here: https://github.com/w3c/editing/issues/305
https://docs.google.com/document/d/1jq8QSCQRdNy99rnPusmW8is62c22PVuq-Sk-tMT2tRk/edit (internal)
Adds image/svg+xml support to the Async Clipboard API. The current implementation of the Async Clipboard API only supports text/plain, image/png, and text/html. SVG images are popular due to their ability to encode images in a space efficiently and their ability to maintain image quality even when zooming in.
N/A. This is a minor addition, and the supported mime types are left up to the user agent. See “Specification” section of this intent.
There is some interoperability risk because chrome will be the first browser to support the SVG format on the clipboard. There haven't been any public signals from other browsers but there also haven't been any negative signals, and this is a specified part of the clipboard, so should improve our matching of the implementation with the specification.
Gecko: No signal
WebKit: No signal
Web developers: Positive
The risk is no higher than any of the other formats in the Clipboard API.
The feature is relatively easy to access. All one must do is specify the new format type as an argument.
Similarly to HTML, SVG can contain malicious content. SVG is an XML based format, so it can contain javascript. We use the same sanitizer that HTML uses to remove script tags and other javascript that can be embedded in other elements.
Yes
https://docs.google.com/document/d/1lZDkgiwVRsUVTjCQRcwWd6Le8W3gzVOsnrEFyehf-Sc/edit
chrome://flags/#enable-experimental-web-platform-features
https://bugs.chromium.org/p/chromium/issues/detail?id=1110511
https://gilded-petalite-frost.glitch.me/
https://www.chromestatus.com/feature/5125790490427392
Intent to Prototype: https://groups.google.com/u/1/a/chromium.org/g/blink-dev/c/uZIHh4zMS94/m/MOVBHIAGAgAJ
This intent message was generated by Chrome Platform Status.Contact emails
m...@chromium.org, huang...@chromium.org, dsl...@google.com
Explainer
https://docs.google.com/document/d/1Rx7gi01avpRRNYKSpp3U4WQdjery0H0IkX2XxDtfZ8I/edit#
Specification
The list of mime types supported by the async clipboard API isn’t currently specified anywhere. The list of mime types supported by datatransfer is specified here: https://w3c.github.io/clipboard-apis/#mandatory-data-types-x
There are also efforts to improve this specification here: https://github.com/w3c/editing/issues/305
Design docs
https://docs.google.com/document/d/1jq8QSCQRdNy99rnPusmW8is62c22PVuq-Sk-tMT2tRk/edit (internal)
Summary
Adds image/svg+xml support to the Async Clipboard API. The current implementation of the Async Clipboard API only supports text/plain, image/png, and text/html. SVG images are popular due to their ability to encode images in a space efficiently and their ability to maintain image quality even when zooming in.
Blink component
Search tags
TAG review
N/A. This is a minor addition, and the supported mime types are left up to the user agent. See “Specification” section of this intent.
Risks
Interoperability and Compatibility
There is some interoperability risk because chrome will be the first browser to support the SVG format on the clipboard. There haven't been any public signals from other browsers but there also haven't been any negative signals, and this is a specified part of the clipboard, so should improve our matching of the implementation with the specification.
Gecko: No signal
WebKit: No signal
Web developers: Positive
Ergonomics
The risk is no higher than any of the other formats in the Clipboard API.
Activation
The feature is relatively easy to access. All one must do is specify the new format type as an argument.
Security
Similarly to HTML, SVG can contain malicious content. SVG is an XML based format, so it can contain javascript. We use the same sanitizer that HTML uses to remove script tags and other javascript that can be embedded in other elements.
Is this feature fully tested by web-platform-tests?
Yes
DevTrial instructions
https://docs.google.com/document/d/1lZDkgiwVRsUVTjCQRcwWd6Le8W3gzVOsnrEFyehf-Sc/edit
Flag name
chrome://flags/#enable-experimental-web-platform-features
Tracking bug
https://bugs.chromium.org/p/chromium/issues/detail?id=1110511
Sample links
https://gilded-petalite-frost.glitch.me/
Link to entry on the Chrome Platform Status
https://www.chromestatus.com/feature/5125790490427392
Links to previous Intent discussions
Intent to Prototype: https://groups.google.com/u/1/a/chromium.org/g/blink-dev/c/uZIHh4zMS94/m/MOVBHIAGAgAJ
This intent message was generated by Chrome Platform Status.--- Darwin Huang
--
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+...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAPV4WLa-%2BCRVjTkc6%2B7V_1ok%2BF7mmT%3Daydy8PGCWtQt%3DMAvViQ%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAL5BFfX0VHWDxv5X5q0wc%3DjVBhg8H4_0QB_pEs3SP%3Dbwb%2BiwPg%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CA%2Bm%3DdJpDiwC8CGT3vGo2kW5WnogmSPxw%3DjWH70Ew0-t2xKQUmA%40mail.gmail.com.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+unsubscribe@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAPV4WLa-%2BCRVjTkc6%2B7V_1ok%2BF7mmT%3Daydy8PGCWtQt%3DMAvViQ%40mail.gmail.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+unsubscribe@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAL5BFfX0VHWDxv5X5q0wc%3DjVBhg8H4_0QB_pEs3SP%3Dbwb%2BiwPg%40mail.gmail.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+unsubscribe@chromium.org.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAPV4WLa-%2BCRVjTkc6%2B7V_1ok%2BF7mmT%3Daydy8PGCWtQt%3DMAvViQ%40mail.gmail.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+...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAL5BFfX0VHWDxv5X5q0wc%3DjVBhg8H4_0QB_pEs3SP%3Dbwb%2BiwPg%40mail.gmail.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+...@chromium.org.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAPV4WLa-%2BCRVjTkc6%2B7V_1ok%2BF7mmT%3Daydy8PGCWtQt%3DMAvViQ%40mail.gmail.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+...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAL5BFfX0VHWDxv5X5q0wc%3DjVBhg8H4_0QB_pEs3SP%3Dbwb%2BiwPg%40mail.gmail.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+...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CA%2Bm%3DdJpDiwC8CGT3vGo2kW5WnogmSPxw%3DjWH70Ew0-t2xKQUmA%40mail.gmail.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+...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/41e37835-6046-4d39-8b7f-118005ebfb47n%40chromium.org.
Web developers: Positive
Any links?
--
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+...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/081c193e-b7d7-4eeb-872f-a3e64610fa64n%40chromium.org.
My concern with style-less SVG is that it might result in useless content so that the feature becomes avoided rather than used. Most of the semantics in HTML is in the text, while most of the semantics in SVG is in location, size and colour, things that might be in CSS styles depending on the SVG author.
I do not know how often style-stripped SVGs are useless though, so I don't know how concerned I should be.
/Daniel
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CA%2Bm%3DdJrYsm5mVpWUKhguRd-PgYbx1Otfa4rR%2BdjchAq6oDeuXA%40mail.gmail.com.
There's a recurring debate here about the stripping of inline style information; Sean, how much worse is it for styles to be stripped in your use-cases? If we wait for styles to be re-added (if they can be at all) to ship this, how much worse is that?
--
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+...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAKXHy%3DetF5YyNUVt8%3D%2BpHOXnAMRXLd9TPG2Cxyv-TXLqQdXh4g%40mail.gmail.com.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+unsubscribe@chromium.org.
--
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+unsubscribe@chromium.org.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+unsubscribe@chromium.org.
--
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+unsubscribe@chromium.org.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+...@chromium.org.
--
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+...@chromium.org.
Unfortunately, three LGTMs obtained here did not ship. Can anyone re-continue this process?
With Keynote 13.1 supporting the SVG format, this API seems to be the only way to copy and paste SVGs into Keynote in a browser.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/44f418ae-c0b4-4e59-8083-bbb43517da29n%40chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAOMQ%2Bw_-4qajXkv5mi_XzvWwCmyeU-YGEAKFzo1u6s0GaK%2B18w%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CA%2Bm%3DdJpTYBs0Mos%3Dmm%2B73z_w%3D1B5nt2VCV5O0%3D3d2hx0h7g%2BiQ%40mail.gmail.com.
My understanding is that SVG support got lost in a personnel shuffle and that we would like to ship it in theory. This comment has some more context, the takeaways being that:
- we need to be more sure of the implementation
- we need partner confirmation, i.e. addressing "LGTM3 with the caveat that we should only flip this flag to ship if big customers like Sean's team are able to use this successfully to minimally cover their needs."
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAO4XGS_fGhHCrfAqfutFA_NvR_HbDD8neWs9mwbGrCfgoCZPHg%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAOMQ%2Bw_VgWcBprV8sdeCjnusLzuM1-C-6TDLXXuGHd%3D2S8VXaA%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/SA2PR00MB09859E328A8EB23C2D8487B6CF552%40SA2PR00MB0985.namprd00.prod.outlook.com.
LGTM
Not sure if it's LGTM2 or LGTM4 since that depends on if the 2021
LGTMS still apply, but this still seems ready to ship.
/Daniel
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAOMQ%2Bw_70VcfmFf13-Wd9Z%2BFaGBncLCkTWCj2X-JEcoZteDCjQ%40mail.gmail.com.
LGTM
Not sure if it's LGTM2 or LGTM4 since that depends on if the 2021 LGTMS still apply, but this still seems ready to ship.
/Daniel
On 2024-02-23 19:14, Chris Harrelson wrote:
My LGTM still stands, and have recorded it in the tool.
On Fri, Feb 23, 2024 at 10:01 AM 'Anupam Snigdha' via blink-dev <blin...@chromium.org> wrote:
Gentle ping.. Received signoffs for all review gates for this feature.
From: Anupam Snigdha <sni...@microsoft.com>
Sent: Monday, February 12, 2024 10:37 AM
To: Thomas Steiner <to...@google.com>; Chris Harrelson <chri...@chromium.org>
Cc: Evan Stade <est...@chromium.org>; Anupam Snigdha <snianu.m...@gmail.com>; 一丝 <yio...@gmail.com>; blink-dev <blin...@chromium.org>; sligh...@chromium.org <sligh...@chromium.org>; svo...@gmail.com <se...@voisen.org>; pwn...@chromium.org <pwn...@chromium.org>; Marijn Kruisselbrink <m...@chromium.org>; yoav...@chromium.org <yoav...@chromium.org>; huang...@chromium.org <huang...@chromium.org>; mk...@chromium.org <mk...@chromium.org>; Joshua Bell <jsb...@chromium.org>; chris...@chromium.org <chris...@chromium.org>; etien...@chromium.org <etien...@chromium.org>; Sanket Joshi (EDGE) <sa...@microsoft.com>
Subject: Re: [EXTERNAL] Re: [blink-dev] Intent to Ship: Clipboard API: SvgI've made some changes to address the loss of styles and other formatting issues during write. During read, if the authors have added `image/svg+xml` to the `unsanitized` list, then the SVG image content is returned without any strict processing by the browser. By-default, read processes the `image/svg+xml`using the strict HTML fragment parser that inlines the styles and strips out certain tags that may be security sensitive.
I noticed that the tests here are marked as "tentative". Is the sanitizer part of this specified?
I noticed that the tests here are marked as "tentative". Is the sanitizer part of this specified?Since there is no consensus on the clipboard sanitization, the tests are marked as tentative for now. We had discussions in the past to standardize the sanitization process (in the context of HTML), but were not able to get consensus
We're using the same sanitizer that HTML format uses to produce a fragment with styles inlined. This is also the same sanitization process used in paste operation(ctrl+V).
How hard would it be to specify the sanitization steps we implemented for both HTML and SVG on top of the Sanitizer API?
Thank you for all the LGTMs!
How hard would it be to specify the sanitization steps we implemented for both HTML and SVG on top of the Sanitizer API?I think once we have support for clipboard sanitization in the Sanitizer API, it should be fairly easy to specify that in the clipboard spec. Webkit is totally opposed to it, but Firefox position is neutral to positive, so we need support from Firefox to add this to the official clipboard API spec.