diff --git a/backend/src/index.js b/backend/src/index.js index 140ec8a..b36237b 100644 --- a/backend/src/index.js +++ b/backend/src/index.js @@ -33,7 +33,7 @@ app.use((_req, res, next) => { "style-src 'self' 'unsafe-inline' https://fonts.googleapis.com", "font-src 'self' https://fonts.gstatic.com", // iCal-Feeds werden serverseitig geprosxt → nur 'self' nötig - "connect-src 'self'", + "connect-src 'self' https://web.archive.org", // data: für Avatare (base64), google.com + gstatic.com für Favicons im QuickLinks-Widget "img-src 'self' data: https://www.google.com https://*.gstatic.com https://image.tmdb.org", "worker-src 'self'", diff --git a/frontend/src/tools/paywallkiller.jsx b/frontend/src/tools/paywallkiller.jsx index b13e223..6208c9a 100644 --- a/frontend/src/tools/paywallkiller.jsx +++ b/frontend/src/tools/paywallkiller.jsx @@ -94,11 +94,17 @@ export default function PaywallKiller() { setTimeout(() => inputRef.current?.focus(), 50); } - async function handlePaste() { - try { - const text = await navigator.clipboard.readText(); - if (text) setInputUrl(text.trim()); - } catch { inputRef.current?.focus(); } + function handlePaste() { + // Fokus ins Input setzen und nativen Paste auslösen – kein Permission-Dialog + const input = inputRef.current; + if (!input) return; + input.focus(); + // execCommand('paste') funktioniert auf Android ohne Clipboard-Permission + const ok = document.execCommand('paste'); + if (!ok) { + // Fallback: nur fokussieren, User kann selbst einfügen + input.select(); + } } const isChecking = status === 'checking';