Bug 1770047 [wpt PR 34117] - [Clipboard API] Clipboard Web Custom Formats implementat...
commitd47aa55c45448289ef3bc23be3dcadaf4ca7da63
authorAnupam Snigdha <snianu@microsoft.com>
Thu, 9 Jun 2022 16:22:00 +0000 (9 16:22 +0000)
committermoz-wptsync-bot <wptsync@mozilla.com>
Fri, 10 Jun 2022 03:33:19 +0000 (10 03:33 +0000)
treea546fbae558fc546649698d5726b1c6e26b7e535
parent79785843f09344f504748e54274ebc208b4a79d5
Bug 1770047 [wpt PR 34117] - [Clipboard API] Clipboard Web Custom Formats implementation., a=testonly

Automatic update from web-platform-tests
[Clipboard API] Clipboard Web Custom Formats implementation.

This patch addresses the changes proposed by the EditingWG[1] and
agreed upon by all browser vendors. We are removing the `unsanitized`
option, and instead, adding custom format support for MIME types that
have "web " prefix in them.
Added few wpt tests to test these changes.
Below is a summary of the changes in this CL:
1. Removed `unsanitized` option from read/write methods.
2. If the custom format doesn't have a "web " prefix, then clipboard
   read/write fails.
3. Transient user activation is applicable to all supported formats -
   text/html, text/plain, image/png and web custom formats.
4. There are two "buckets" of clipboard formats. One for the
   well-known formats and the other for the web custom format. If the
   author doesn't specify the web format explicitly, then they don't
   get access to it. This means, we won't write web custom formats
   for well-known types implicitly if authors have not indicated that
   during the write call via a "web " prefix (e.g. "web text/html").
   Same  applies for reading web custom formats for well-known types-
   if there aren't any formats in the web custom format map, then we
   won't return any web custom formats i.e. text/html won't be
   automatically converted into "web text/html".

Spec: https://github.com/w3c/clipboard-apis/pull/175
Explainer: https://github.com/w3c/editing/blob/gh-pages/docs/clipboard-pickling/explainer.md
i2p: https://groups.google.com/a/chromium.org/g/blink-dev/c/Lo7WBM_v_LY/m/LncCKkXeAwAJ
i2s: https://groups.google.com/a/chromium.org/g/blink-dev/c/k2rgX-4Cigc/m/P0RijrpzBAAJ?utm_medium=email&utm_source=footer&pli=1

1. Github issue: https://github.com/w3c/clipboard-apis/issues/165

Bug: 106449

Change-Id: I86aae6a662089efeede2a01ac87cb698e9646df5
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3650952
Commit-Queue: Anupam Snigdha <snianu@microsoft.com>
Reviewed-by: Alexander Timin <altimin@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Austin Sullivan <asully@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1011078}

--

wpt-commits: b8ebea7f172334f5a5d9ac87860aec5f55becd26
wpt-pr: 34117
32 files changed:
testing/web-platform/tests/clipboard-apis/async-custom-formats-write-read.tentative.https.html
testing/web-platform/tests/clipboard-apis/async-html-script-removal.https.html
testing/web-platform/tests/clipboard-apis/async-navigator-clipboard-read-resource-load.https.html
testing/web-platform/tests/clipboard-apis/async-navigator-clipboard-read-sanitize.https.html
testing/web-platform/tests/clipboard-apis/async-promise-write-blobs-read-blobs.https.html
testing/web-platform/tests/clipboard-apis/async-svg-script-removal.https.html
testing/web-platform/tests/clipboard-apis/async-unsanitized-html-formats-write-read.tentative.https.html
testing/web-platform/tests/clipboard-apis/async-unsanitized-plaintext-formats-write-read.tentative.https.html
testing/web-platform/tests/clipboard-apis/async-write-blobs-read-blobs.https.html
testing/web-platform/tests/clipboard-apis/async-write-html-read-html.https.html
testing/web-platform/tests/clipboard-apis/async-write-image-read-image.https.html
testing/web-platform/tests/clipboard-apis/async-write-svg-read-svg.https.html
testing/web-platform/tests/clipboard-apis/detached-iframe/write-read-on-detached-iframe.https.html
testing/web-platform/tests/clipboard-apis/detached-iframe/writeText-readText-on-detached-iframe.https.html
testing/web-platform/tests/clipboard-apis/feature-policy/clipboard-read/clipboard-read-enabled-by-feature-policy-attribute-cross-origin-tentative.https.sub.html
testing/web-platform/tests/clipboard-apis/feature-policy/clipboard-read/clipboard-read-enabled-by-feature-policy-attribute-tentative.https.sub.html
testing/web-platform/tests/clipboard-apis/feature-policy/clipboard-read/clipboard-read-enabled-by-feature-policy-cross-origin-tentative.https.sub.html
testing/web-platform/tests/clipboard-apis/feature-policy/clipboard-read/clipboard-read-enabled-by-feature-policy.tentative.https.sub.html
testing/web-platform/tests/clipboard-apis/feature-policy/clipboard-read/clipboard-read-enabled-on-self-origin-by-feature-policy.tentative.https.sub.html
testing/web-platform/tests/clipboard-apis/feature-policy/clipboard-write/clipboard-write-enabled-by-feature-policy-attribute-cross-origin-tentative.https.sub.html
testing/web-platform/tests/clipboard-apis/feature-policy/clipboard-write/clipboard-write-enabled-by-feature-policy-attribute-tentative.https.sub.html
testing/web-platform/tests/clipboard-apis/feature-policy/clipboard-write/clipboard-write-enabled-by-feature-policy-cross-origin-tentative.https.sub.html
testing/web-platform/tests/clipboard-apis/feature-policy/clipboard-write/clipboard-write-enabled-by-feature-policy.tentative.https.sub.html
testing/web-platform/tests/clipboard-apis/feature-policy/clipboard-write/clipboard-write-enabled-on-self-origin-by-feature-policy.tentative.https.sub.html
testing/web-platform/tests/clipboard-apis/permissions/readText-denied.https.html
testing/web-platform/tests/clipboard-apis/permissions/readText-granted.https.html
testing/web-platform/tests/clipboard-apis/permissions/writeText-denied.https.html
testing/web-platform/tests/clipboard-apis/permissions/writeText-granted.https.html
testing/web-platform/tests/clipboard-apis/text-write-read/async-write-read.https.html
testing/web-platform/tests/clipboard-apis/text-write-read/async-write-readText.https.html
testing/web-platform/tests/clipboard-apis/text-write-read/async-writeText-read.https.html
testing/web-platform/tests/clipboard-apis/text-write-read/async-writeText-readText.https.html