[fix]: Add support for TrustedTypes in Svelte #16271
Open
+32
−1
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Before submitting the PR, please make sure you do the following
Resolves #14438
Resolves #10826
This PR makes it possible to use Svelte on pages which require
TrustedTypes
support via their CSP by wrapping assignments toinnerHTML
in aTrustedTypePolicy
calledsvelte-trusted-html
if theTrustedTypes
API exists.Servers can allowlist the policy by setting
require-trusted-types-for 'script'; trusted-types svelte-trusted-html
in theirContent-Security-Policy
header.feat:
,fix:
,chore:
, ordocs:
.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:
TrustedTypes
support (i.e. Firefox, Safari)pnpm test
and lint the project withpnpm 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