diff --git a/.changeset/csp-unsafe-inline-helper.md b/.changeset/csp-unsafe-inline-helper.md new file mode 100644 index 000000000000..04bcb7c46f80 --- /dev/null +++ b/.changeset/csp-unsafe-inline-helper.md @@ -0,0 +1,5 @@ +--- +'@sveltejs/kit': patch +--- + +chore: deduplicate repeated CSP directive handling diff --git a/packages/kit/src/runtime/server/page/csp.js b/packages/kit/src/runtime/server/page/csp.js index 2c9dee9720c1..47e1cea65d92 100644 --- a/packages/kit/src/runtime/server/page/csp.js +++ b/packages/kit/src/runtime/server/page/csp.js @@ -53,19 +53,19 @@ class BaseProvider { #directives; /** @type {Set} */ - #script_src; + #script_src = new Set(); /** @type {Set} */ - #script_src_elem; + #script_src_elem = new Set(); /** @type {Set} */ - #style_src; + #style_src = new Set(); /** @type {Set} */ - #style_src_attr; + #style_src_attr = new Set(); /** @type {Set} */ - #style_src_elem; + #style_src_elem = new Set(); /** @type {boolean} */ script_needs_nonce; @@ -90,12 +90,6 @@ class BaseProvider { const d = this.#directives; - this.#script_src = new Set(); - this.#script_src_elem = new Set(); - this.#style_src = new Set(); - this.#style_src_attr = new Set(); - this.#style_src_elem = new Set(); - const effective_script_src = d['script-src'] || d['default-src']; const script_src_elem = d['script-src-elem']; const effective_style_src = d['style-src'] || d['default-src']; @@ -117,32 +111,25 @@ class BaseProvider { // ...and add unsafe-inline so we can inject