Guardian-PWA: CSP-nonce injecteren zodat de JS laadt
DIT was de echte oorzaak van "guardian-PWA doet niks / hangt / niks functioneel",
en waarom cache legen en incognito nooit hielpen: het is geen caching.
De guardian-PWA wordt direct met res.render gerenderd, NIET via renderPage. Alleen
renderPage draait injectCspNonce over de HTML. Onze CSP is strict-dynamic + per-
request nonce, dus een <script src="/guardian/app.js"> zonder nonce wordt door de
browser geweigerd (precies de fout die Robin zag op boiert.eu). Gevolg: guardian.js
laadde nooit, dus alle knoppen deden niks. Dit gold ook al voor de oude
/assets/js/guardian.js; de no-cache-verhuizing veranderde daar niks aan.
Fix: de guardian-render door injectCspNonce halen, net als de rest van de app.
injectCspNonce is nu exporteerbaar. Geverifieerd: na injectie heeft het app.js-
script de per-request nonce.
Changed files:
src/middleware/render.js
- injectCspNonce geexporteerd
src/routes/guardian.js
- guardian-PWA gerenderd naar string en nonce geinjecteerd (anders blokkeert strict-dynamic de JS)
remarks: embed-player zet een eigen CSP (unsafe-inline) en is niet geraakt. Tests 6/6.
-robo
Co-Authored-By: Claude Opus 4.8 <noreply@…>