Merge branch 'dev_issue_15331' into 'master'
Fixes window.opener bug Adds `noreferrer` value to rel attribute for external links REF: https://gitlab.com/gitlab-org/gitlab-ce/issues/15331 See merge request !1953
This commit is contained in:
commit
1ea2408ba3
3 changed files with 17 additions and 5 deletions
|
@ -1,7 +1,6 @@
|
|||
module Banzai
|
||||
module Filter
|
||||
# HTML Filter to add a `rel="nofollow"` attribute to external links
|
||||
#
|
||||
# HTML Filter to modify the attributes of external links
|
||||
class ExternalLinkFilter < HTML::Pipeline::Filter
|
||||
def call
|
||||
doc.search('a').each do |node|
|
||||
|
@ -15,7 +14,7 @@ module Banzai
|
|||
# Skip internal links
|
||||
next if link.start_with?(internal_url)
|
||||
|
||||
node.set_attribute('rel', 'nofollow')
|
||||
node.set_attribute('rel', 'nofollow noreferrer')
|
||||
end
|
||||
|
||||
doc
|
||||
|
|
|
@ -165,7 +165,12 @@ describe 'GitLab Markdown', feature: true do
|
|||
describe 'ExternalLinkFilter' do
|
||||
it 'adds nofollow to external link' do
|
||||
link = doc.at_css('a:contains("Google")')
|
||||
expect(link.attr('rel')).to match 'nofollow'
|
||||
expect(link.attr('rel')).to include('nofollow')
|
||||
end
|
||||
|
||||
it 'adds noreferrer to external link' do
|
||||
link = doc.at_css('a:contains("Google")')
|
||||
expect(link.attr('rel')).to include('noreferrer')
|
||||
end
|
||||
|
||||
it 'ignores internal link' do
|
||||
|
|
|
@ -24,6 +24,14 @@ describe Banzai::Filter::ExternalLinkFilter, lib: true do
|
|||
doc = filter(act)
|
||||
|
||||
expect(doc.at_css('a')).to have_attribute('rel')
|
||||
expect(doc.at_css('a')['rel']).to eq 'nofollow'
|
||||
expect(doc.at_css('a')['rel']).to include 'nofollow'
|
||||
end
|
||||
|
||||
it 'adds rel="noreferrer" to external links' do
|
||||
act = %q(<a href="https://google.com/">Google</a>)
|
||||
doc = filter(act)
|
||||
|
||||
expect(doc.at_css('a')).to have_attribute('rel')
|
||||
expect(doc.at_css('a')['rel']).to include 'noreferrer'
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue