From 7ef6647a38eebec43374194df51dcdef9236c6f4 Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Mon, 20 Sep 2021 13:36:26 +0200 Subject: Add GM_setClipboard Based on the Greasemonkey implementation: https://github.com/greasemonkey/greasemonkey/blob/4.11/src/bg/api-provider-source.js#L232-L249 Needed by e.g. this script to work at all: https://greasyfork.org/en/scripts/394820-mouseover-popup-image-viewer (cherry picked from commit 1bea82698153ba3e20529e010bc3f254b9904231) --- qutebrowser/javascript/greasemonkey_wrapper.js | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/qutebrowser/javascript/greasemonkey_wrapper.js b/qutebrowser/javascript/greasemonkey_wrapper.js index 8a0a12c0d..ced4e1063 100644 --- a/qutebrowser/javascript/greasemonkey_wrapper.js +++ b/qutebrowser/javascript/greasemonkey_wrapper.js @@ -110,6 +110,22 @@ } } + // Based on GreaseMonkey: + // https://github.com/greasemonkey/greasemonkey/blob/4.11/src/bg/api-provider-source.js#L232-L249 + function GM_setClipboard(text) { + function onCopy(event) { + document.removeEventListener('copy', onCopy, true); + + event.stopImmediatePropagation(); + event.preventDefault(); + + event.clipboardData.setData('text/plain', text); + } + + document.addEventListener('copy', onCopy, true); + document.execCommand('copy'); + } + // Stub these two so that the gm4 polyfill script doesn't try to // create broken versions as attributes of window. function GM_getResourceText(caption, commandFunc, accessKey) { @@ -126,6 +142,7 @@ const entries = { 'log': GM_log, 'addStyle': GM_addStyle, + 'setClipboard': GM_setClipboard, 'deleteValue': GM_deleteValue, 'getValue': GM_getValue, 'listValues': GM_listValues, -- cgit v1.2.3-54-g00ecf