allowedScriptDomains = \array_unique(\array_merge($this->allowedScriptDomains, $CSP->get('script-src'))); $this->allowedScriptDomains = \array_diff($this->allowedScriptDomains, ["'unsafe-inline'", "'unsafe-eval'"]); // Nextcloud only sets 'strict-dynamic' when browserSupportsCspV3() ? \method_exists($this, 'useStrictDynamic') ? $this->useStrictDynamic(true) // NC24+ : $this->addAllowedScriptDomain("'strict-dynamic'"); $this->allowedImageDomains = \array_unique(\array_merge($this->allowedImageDomains, $CSP->get('img-src'))); $this->allowedStyleDomains = \array_unique(\array_merge($this->allowedStyleDomains, $CSP->get('style-src'))); $this->allowedStyleDomains = \array_diff($this->allowedStyleDomains, ["'unsafe-inline'"]); $this->allowedFrameDomains = \array_unique(\array_merge($this->allowedFrameDomains, $CSP->get('frame-src'))); $this->reportTo = \array_unique(\array_merge($this->reportTo, $CSP->report_to)); } public function getSnappyMailNonce() { static $sNonce; if (!$sNonce) { $cspManager = \OC::$server->getContentSecurityPolicyNonceManager(); $sNonce = $cspManager->getNonce() ?: \SnappyMail\UUID::generate(); if (\method_exists($cspManager, 'browserSupportsCspV3') && !$cspManager->browserSupportsCspV3()) { $this->addAllowedScriptDomain("'nonce-{$sNonce}'"); } } return $sNonce; } }