mirror of
https://github.com/discourse/discourse.git
synced 2025-06-11 13:01:32 +08:00
FIX: prefer data-original-href attribute to get iframe URL
This commit is contained in:
@ -150,7 +150,7 @@ module Email
|
|||||||
next
|
next
|
||||||
end
|
end
|
||||||
|
|
||||||
src_uri = URI(i['src'])
|
src_uri = i["data-original-href"].present? ? URI(i["data-original-href"]) : URI(i['src'])
|
||||||
# If an iframe is protocol relative, use SSL when displaying it
|
# If an iframe is protocol relative, use SSL when displaying it
|
||||||
display_src = "#{src_uri.scheme || 'https'}://#{src_uri.host}#{src_uri.path}#{src_uri.query.nil? ? '' : '?' + src_uri.query}#{src_uri.fragment.nil? ? '' : '#' + src_uri.fragment}"
|
display_src = "#{src_uri.scheme || 'https'}://#{src_uri.host}#{src_uri.path}#{src_uri.query.nil? ? '' : '?' + src_uri.query}#{src_uri.fragment.nil? ? '' : '#' + src_uri.fragment}"
|
||||||
i.replace "<p><a href='#{src_uri.to_s}'>#{CGI.escapeHTML(display_src)}</a><p>"
|
i.replace "<p><a href='#{src_uri.to_s}'>#{CGI.escapeHTML(display_src)}</a><p>"
|
||||||
|
@ -106,6 +106,15 @@ describe Email::Styles do
|
|||||||
expect(frag.at('iframe')).to be_blank
|
expect(frag.at('iframe')).to be_blank
|
||||||
expect(frag.at('a')).to be_blank
|
expect(frag.at('a')).to be_blank
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it "prefers data-original-href attribute to get iframe link" do
|
||||||
|
original_url = "https://vimeo.com/329875646"
|
||||||
|
iframe_url = "https://player.vimeo.com/video/329875646"
|
||||||
|
frag = html_fragment("<iframe src=\"#{iframe_url}\" data-original-href=\"#{original_url}\"></iframe>")
|
||||||
|
expect(frag.at('iframe')).to be_blank
|
||||||
|
expect(frag.at('a')).to be_present
|
||||||
|
expect(frag.at('a')['href']).to eq(original_url)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context "rewriting protocol relative URLs to the forum" do
|
context "rewriting protocol relative URLs to the forum" do
|
||||||
|
Reference in New Issue
Block a user