tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

commit bea43aaa93e1ce29a7278b65e81669eecee6f2cb
parent 845af535e43ba35a1f081ef161897a0e58ba5a5a
Author: Edgar Chen <echen@mozilla.com>
Date:   Fri, 21 Nov 2025 08:38:19 +0000

Bug 2001379 - Get rid of dom.events.asyncClipboard.clipboardItem; r=tschuster,webidl,smaug

Differential Revision: https://phabricator.services.mozilla.com/D273482

Diffstat:
Mdom/events/test/clipboard/browser_navigator_clipboard_contextmenu_suppression.js | 1-
Mdom/events/test/clipboard/browser_navigator_clipboard_contextmenu_suppression_ext.js | 1-
Mdom/events/test/clipboard/browser_navigator_clipboard_read.js | 5+----
Mdom/events/test/clipboard/test_async_clipboard.xhtml | 3---
Mdom/events/test/clipboard/test_async_clipboard_datatransfer.html | 8--------
Mdom/webidl/Clipboard.webidl | 6+++---
Mmodules/libpref/init/StaticPrefList.yaml | 7-------
Dtesting/web-platform/meta/clipboard-apis/__dir__.ini | 1-
Mtoolkit/components/extensions/test/mochitest/test_ext_async_clipboard.html | 6------
9 files changed, 4 insertions(+), 34 deletions(-)

diff --git a/dom/events/test/clipboard/browser_navigator_clipboard_contextmenu_suppression.js b/dom/events/test/clipboard/browser_navigator_clipboard_contextmenu_suppression.js @@ -116,7 +116,6 @@ function testPasteContextMenuSuppression(aWriteFun, aMsg) { add_setup(async function () { await SpecialPowers.pushPrefEnv({ set: [ - ["dom.events.asyncClipboard.clipboardItem", true], ["test.events.async.enabled", true], // Avoid paste button delay enabling making test too long. ["security.dialog_enable_delay", 0], diff --git a/dom/events/test/clipboard/browser_navigator_clipboard_contextmenu_suppression_ext.js b/dom/events/test/clipboard/browser_navigator_clipboard_contextmenu_suppression_ext.js @@ -126,7 +126,6 @@ function testExtensionContentScript(aContentScript, aMessage) { add_setup(async function () { await SpecialPowers.pushPrefEnv({ set: [ - ["dom.events.asyncClipboard.clipboardItem", true], ["test.events.async.enabled", true], // Avoid paste button delay enabling making test too long. ["security.dialog_enable_delay", 0], diff --git a/dom/events/test/clipboard/browser_navigator_clipboard_read.js b/dom/events/test/clipboard/browser_navigator_clipboard_read.js @@ -40,10 +40,7 @@ function promiseMutatedReadResultFromContentElement(aBrowser) { add_setup(async function () { await SpecialPowers.pushPrefEnv({ - set: [ - ["dom.events.asyncClipboard.clipboardItem", true], - ["test.events.async.enabled", true], - ], + set: [["test.events.async.enabled", true]], }); }); diff --git a/dom/events/test/clipboard/test_async_clipboard.xhtml b/dom/events/test/clipboard/test_async_clipboard.xhtml @@ -87,9 +87,6 @@ function runTest() { (async function() { - await SpecialPowers.pushPrefEnv({"set": [ - ["dom.events.asyncClipboard.clipboardItem", true], - ]}); await testRead(); await testReadText(); await testWrite(); diff --git a/dom/events/test/clipboard/test_async_clipboard_datatransfer.html b/dom/events/test/clipboard/test_async_clipboard_datatransfer.html @@ -38,14 +38,6 @@ async function paste(aCallback) { await pastePromise; } -add_setup(async function () { - await SpecialPowers.pushPrefEnv({ - set: [ - ["dom.events.asyncClipboard.clipboardItem", true], - ], - }); -}); - add_task(async function test_mandatory_type() { const items = { "text/plain": "X" + Math.random(), diff --git a/dom/webidl/Clipboard.webidl b/dom/webidl/Clipboard.webidl @@ -15,12 +15,12 @@ typedef sequence<ClipboardItem> ClipboardItems; [SecureContext, Exposed=Window] interface Clipboard : EventTarget { - [Pref="dom.events.asyncClipboard.clipboardItem", NewObject, NeedsSubjectPrincipal] + [NewObject, NeedsSubjectPrincipal] Promise<ClipboardItems> read(); [NewObject, NeedsSubjectPrincipal] Promise<DOMString> readText(); - [Pref="dom.events.asyncClipboard.clipboardItem", NewObject, NeedsSubjectPrincipal] + [NewObject, NeedsSubjectPrincipal] Promise<undefined> write(ClipboardItems data); [NewObject, NeedsSubjectPrincipal] @@ -31,7 +31,7 @@ typedef (DOMString or Blob) ClipboardItemDataType; typedef Promise<ClipboardItemDataType> ClipboardItemData; // callback ClipboardItemDelayedCallback = ClipboardItemData (); -[SecureContext, Exposed=Window, Pref="dom.events.asyncClipboard.clipboardItem"] +[SecureContext, Exposed=Window] interface ClipboardItem { [Throws] constructor(record<DOMString, ClipboardItemData> items, diff --git a/modules/libpref/init/StaticPrefList.yaml b/modules/libpref/init/StaticPrefList.yaml @@ -2960,13 +2960,6 @@ value: true mirror: always -# Control whether clipboard.read(), clipboard.write() and ClipboardItem are exposed -# to content. -- name: dom.events.asyncClipboard.clipboardItem - type: bool - value: true - mirror: always - # Skips checking permission and user activation when accessing the clipboard. # Should only be enabled in tests. # Access with Clipboard::IsTestingPrefEnabled(). diff --git a/testing/web-platform/meta/clipboard-apis/__dir__.ini b/testing/web-platform/meta/clipboard-apis/__dir__.ini @@ -1 +0,0 @@ -prefs: [dom.events.asyncClipboard.clipboardItem: true] diff --git a/toolkit/components/extensions/test/mochitest/test_ext_async_clipboard.html b/toolkit/components/extensions/test/mochitest/test_ext_async_clipboard.html @@ -56,12 +56,6 @@ function clearClipboard() { SpecialPowers.Services.clipboard.setData(transf, null, SpecialPowers.Services.clipboard.kGlobalClipboard); } -add_task(async function setup() { - await SpecialPowers.pushPrefEnv({"set": [ - ["dom.events.asyncClipboard.clipboardItem", true], - ]}); -}); - // Test that without enough permissions, we are NOT allowed to use writeText, write, read or readText in background script add_task(async function test_background_async_clipboard_no_permissions() { function backgroundScript() {