aboutsummaryrefslogtreecommitdiffstats
path: root/packages/meshbay-client/src/main.js
diff options
context:
space:
mode:
Diffstat (limited to 'packages/meshbay-client/src/main.js')
-rw-r--r--packages/meshbay-client/src/main.js10
1 files changed, 7 insertions, 3 deletions
diff --git a/packages/meshbay-client/src/main.js b/packages/meshbay-client/src/main.js
index 794477b..c263d2c 100644
--- a/packages/meshbay-client/src/main.js
+++ b/packages/meshbay-client/src/main.js
@@ -499,9 +499,13 @@ function publicKeyB64(privateKey) {
return der.subarray(der.length - 32).toString('base64');
}
-// Everything the interface is allowed to ask Chromium for. Watching a film
-// full-screen is the whole list.
-const GRANTED_PERMISSIONS = new Set(['fullscreen']);
+// Everything the interface is allowed to ask Chromium for: watching a film
+// full-screen, and putting text on the clipboard. The second is what every Copy
+// button needs (an invitation link, the recovery key, the node key, a cast
+// URL); refused, `navigator.clipboard.writeText` rejects and each button
+// quietly did nothing. Write only, and sanitized — reading the clipboard stays
+// refused, because that is someone else's text.
+const GRANTED_PERMISSIONS = new Set(['fullscreen', 'clipboard-sanitized-write']);
// No hub call is still going to be answered after this. The hub's longest is
// signaling a WebRTC offer, which gives up at fifteen seconds of its own.