diff --git a/src/content/sanitizer/sanitizer.go b/src/content/sanitizer/sanitizer.go
index c486be8..7789f42 100644
--- a/src/content/sanitizer/sanitizer.go
+++ b/src/content/sanitizer/sanitizer.go
@@ -69,8 +69,12 @@ func Sanitize(baseURL, input string) string {
buffer.WriteString("<" + tagName + ">")
}
- if wrap {
- buffer.WriteString("")
+ if tagName == "iframe" {
+ // autoclose iframes
+ buffer.WriteString("")
+ if wrap {
+ buffer.WriteString("")
+ }
} else {
tagStack = append(tagStack, tagName)
}
@@ -80,6 +84,7 @@ func Sanitize(baseURL, input string) string {
}
case html.EndTagToken:
tagName := token.Data
+ // iframes are autoclosed. see above
if tagName == "iframe" {
continue
}
diff --git a/src/content/sanitizer/sanitizer_test.go b/src/content/sanitizer/sanitizer_test.go
index eaa5f70..8f49f05 100644
--- a/src/content/sanitizer/sanitizer_test.go
+++ b/src/content/sanitizer/sanitizer_test.go
@@ -163,6 +163,16 @@ func TestInvalidNestedTag(t *testing.T) {
}
}
+func TestValidIFrame(t *testing.T) {
+ input := ``
+ expected := ``
+ output := Sanitize("http://example.org/", input)
+
+ if expected != output {
+ t.Errorf("Wrong output:\nwant: %s\nhave: %s", expected, output)
+ }
+}
+
func TestInvalidIFrame(t *testing.T) {
input := ``
expected := ``