Svelte

[fix]: Add support for TrustedTypes in Svelte

#16271

Closing issues

Pull request

Merged
F
fallaciousreasoning
Jul 1, 2025, 3:44 AM

Before submitting the PR, please make sure you do the following

Resolves Resolves

This PR makes it possible to use Svelte on pages which require TrustedTypes support via their CSP by wrapping assignments to innerHTML in a TrustedTypePolicy called svelte-trusted-html if the TrustedTypes API exists.

Servers can allowlist the policy by setting require-trusted-types-for 'script'; trusted-types svelte-trusted-html in their Content-Security-Policy header.

  • It's really useful if your PR references an issue where it is discussed ahead of time. In many cases, features are absent for a reason. For large changes, please create an RFC: https://github.com/sveltejs/rfcs
  • Prefix your PR title with feat:, fix:, chore:, or docs:.
  • This message body should clearly illustrate what problems it solves.
  • Ideally, include a test that fails without this PR but passes with it.
  • If this PR changes code within packages/svelte/src, add a changeset (npx changeset).

Tests and linting

Note: I haven't run the tests since I don't have pnpm setup properly.

I have tested that:

  1. A project with a CSP fails with Tip of Tree Svelte
  2. That project works when installing this revision of Svelte
  3. The project (with this revision) works in Browsers with no TrustedTypes support (i.e. Firefox, Safari)
  • Run the tests with pnpm test and lint the project with pnpm lint

My test project is here: https://github.com/fallaciousreasoning/svelte-tt-test/blob/master/src/routes/%2Bpage.server.js

The only changes to the default project is adding the CSP in src/routes/page.server.js

❤️ 5

Info

Merged at Feb 13, 2026, 2:34 AM
Merged by Rich-Harris
Assignees None
Reviewers None
Labels None
Milestone None

Pro tip: You can prefix GitHub URLs of issues, PRs or discussions with svcl.dev/ to view them on this page! Also try it on a GitHub release ;)