support TRUSTED_TYPES_POLICY configuration option #800
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.
Summary
Introducing a new configuration option to allow more flexibility for DOMPurify when used in larger applications which need to handle multiple DOMPurify instances or when allowing a 'dompurify' policy, which DOMPurify attempts to create internally on startup, is not an option.
Background & Context
The feature has been described in #798.
The existing behavior has been maintained, DOMPurify will still try to create its internal policy.
Tasks
DOMPurify.sanitize('<img />', {TRUSTED_TYPES_POLICY: yourPolicy})
and validate call count for the policy methodcreateHTML
is 2 (one foremptyHTML
and one wheninitDocument
is called)DOMPurify.sanitize('<img />', {TRUSTED_TYPES_POLICY: yourPolicy, RETURN_TRUSTED_TYPE: true })
and validate call count for the policy methodcreateHTML
is 3 (one foremptyHTML
, one forinitDocument
, one for return value).setConfig({TRUSTED_TYPES_POLICY: yourPolicy})
to configure the policy only. Callsanitize('<img />')
on the new instance and validate call count for the policy methodcreateHTML
is 2 (one foremptyHTML
and one wheninitDocument
is called).setConfig({TRUSTED_TYPES_POLICY: yourPolicy, RETURN_TRUSTED_TYPE: true })
to configure the policy and return type to be a TrustedType. Callsanitize('<img />')
and validate call count for the policy methodcreateHTML
is 3 (one foremptyHTML
, one forinitDocument
, one for return value)