Skip to content

Commit 4f42dae

Browse files
feat: trusted-types CSP compatibility for Web Components (#8135)
1 parent 79fa5b3 commit 4f42dae

File tree

2 files changed

+7
-2
lines changed

2 files changed

+7
-2
lines changed

src/compiler/compile/render_dom/index.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -531,7 +531,10 @@ export default function dom(
531531
constructor(options) {
532532
super();
533533
534-
${css.code && b`this.shadowRoot.innerHTML = \`<style>${css.code.replace(regex_backslashes, '\\\\')}${css_sourcemap_enabled && options.dev ? `\n/*# sourceMappingURL=${css.map.toUrl()} */` : ''}</style>\`;`}
534+
${css.code && b`
535+
const style = document.createElement('style');
536+
style.textContent = \`${css.code.replace(regex_backslashes, '\\\\')}${css_sourcemap_enabled && options.dev ? `\n/*# sourceMappingURL=${css.map.toUrl()} */` : ''}\`
537+
this.shadowRoot.appendChild(style)`}
535538
536539
@init(this, { target: this.shadowRoot, props: ${init_props}, customElement: true }, ${definition}, ${has_create_fragment ? 'create_fragment' : 'null'}, ${not_equal}, ${prop_indexes}, null, ${dirty});
537540

test/js/samples/css-shadow-dom-keyframes/expected.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,9 @@ function create_fragment(ctx) {
3434
class Component extends SvelteElement {
3535
constructor(options) {
3636
super();
37-
this.shadowRoot.innerHTML = `<style>div{animation:foo 1s}@keyframes foo{0%{opacity:0}100%{opacity:1}}</style>`;
37+
const style = document.createElement('style');
38+
style.textContent = `div{animation:foo 1s}@keyframes foo{0%{opacity:0}100%{opacity:1}}`;
39+
this.shadowRoot.appendChild(style);
3840

3941
init(
4042
this,

0 commit comments

Comments
 (0)