summaryrefslogtreecommitdiff
path: root/vendor/github.com/microcosm-cc/bluemonday/policy.go
diff options
context:
space:
mode:
authorLibravatar dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>2023-05-29 14:03:08 +0100
committerLibravatar GitHub <noreply@github.com>2023-05-29 14:03:08 +0100
commit049b02aab13190b3b12d2a255e30c955f02f9da2 (patch)
treed622e3e5ff5cab00b0eb6a9e6ac34f39544f8797 /vendor/github.com/microcosm-cc/bluemonday/policy.go
parent[chore]: Bump github.com/coreos/go-oidc/v3 from 3.5.0 to 3.6.0 (#1840) (diff)
downloadgotosocial-049b02aab13190b3b12d2a255e30c955f02f9da2.tar.xz
[chore]: Bump github.com/microcosm-cc/bluemonday from 1.0.23 to 1.0.24 (#1843)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Diffstat (limited to 'vendor/github.com/microcosm-cc/bluemonday/policy.go')
-rw-r--r--vendor/github.com/microcosm-cc/bluemonday/policy.go12
1 files changed, 12 insertions, 0 deletions
diff --git a/vendor/github.com/microcosm-cc/bluemonday/policy.go b/vendor/github.com/microcosm-cc/bluemonday/policy.go
index c446fad0f..995f46c2d 100644
--- a/vendor/github.com/microcosm-cc/bluemonday/policy.go
+++ b/vendor/github.com/microcosm-cc/bluemonday/policy.go
@@ -117,6 +117,10 @@ type Policy struct {
// returning true are allowed.
allowURLSchemes map[string][]urlPolicy
+ // These regexps are used to match allowed URL schemes, for example
+ // if one would want to allow all URL schemes, they would add `.+`
+ allowURLSchemeRegexps []*regexp.Regexp
+
// If an element has had all attributes removed as a result of a policy
// being applied, then the element would be removed from the output.
//
@@ -221,6 +225,7 @@ func (p *Policy) init() {
p.elsMatchingAndStyles = make(map[*regexp.Regexp]map[string][]stylePolicy)
p.globalStyles = make(map[string][]stylePolicy)
p.allowURLSchemes = make(map[string][]urlPolicy)
+ p.allowURLSchemeRegexps = make([]*regexp.Regexp, 0)
p.setOfElementsAllowedWithoutAttrs = make(map[string]struct{})
p.setOfElementsToSkipContent = make(map[string]struct{})
p.initialized = true
@@ -563,6 +568,13 @@ func (p *Policy) AllowElementsMatching(regex *regexp.Regexp) *Policy {
return p
}
+// AllowURLSchemesMatching will append URL schemes to the allowlist if they
+// match a regexp.
+func (p *Policy) AllowURLSchemesMatching(r *regexp.Regexp) *Policy {
+ p.allowURLSchemeRegexps = append(p.allowURLSchemeRegexps, r)
+ return p
+}
+
// RequireNoFollowOnLinks will result in all a, area, link tags having a
// rel="nofollow"added to them if one does not already exist
//