From de1a4aad302e3366b13e683dbe0ca10407a4c57b Mon Sep 17 00:00:00 2001 From: Frédéric Guillot Date: Wed, 4 Jul 2018 22:45:44 -0700 Subject: Add support for protocol relative YouTube URLs --- reader/sanitizer/sanitizer.go | 3 ++- reader/sanitizer/sanitizer_test.go | 10 ++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) (limited to 'reader') diff --git a/reader/sanitizer/sanitizer.go b/reader/sanitizer/sanitizer.go index f13681b..b37a9af 100644 --- a/reader/sanitizer/sanitizer.go +++ b/reader/sanitizer/sanitizer.go @@ -17,7 +17,7 @@ import ( ) var ( - youtubeEmbedRegex = regexp.MustCompile(`http[s]?://www\.youtube\.com/embed/(.*)`) + youtubeEmbedRegex = regexp.MustCompile(`//www\.youtube\.com/embed/(.*)`) ) // Sanitize returns safe HTML. @@ -291,6 +291,7 @@ func isBlacklistedResource(src string) bool { func isValidIframeSource(src string) bool { whitelist := []string{ + "//www.youtube.com", "http://www.youtube.com", "https://www.youtube.com", "https://www.youtube-nocookie.com", diff --git a/reader/sanitizer/sanitizer_test.go b/reader/sanitizer/sanitizer_test.go index fab493a..8db0bda 100644 --- a/reader/sanitizer/sanitizer_test.go +++ b/reader/sanitizer/sanitizer_test.go @@ -203,6 +203,16 @@ func TestReplaceYoutubeURLAlreadyReplaced(t *testing.T) { } } +func TestReplaceProtocolRelativeYoutubeURL(t *testing.T) { + input := `` + expected := `` + output := Sanitize("http://example.org/", input) + + if expected != output { + t.Errorf(`Wrong output: "%s" != "%s"`, expected, output) + } +} + func TestReplaceIframeURL(t *testing.T) { input := `` expected := `` -- cgit v1.2.3