FIX: Don't strip `noopener` from oneboxes
This commit is contained in:
parent
c69983a30d
commit
7045a2a87c
|
@ -621,7 +621,16 @@ class CookedPostProcessor
|
|||
end
|
||||
|
||||
if @omit_nofollow || !SiteSetting.add_rel_nofollow_to_user_content
|
||||
@doc.css(".onebox-body a, .onebox a").each { |a| a.remove_attribute("rel") }
|
||||
@doc.css(".onebox-body a[rel], .onebox a[rel]").each do |a|
|
||||
rel_values = a['rel'].split(' ').map(&:downcase)
|
||||
rel_values.delete('nofollow')
|
||||
rel_values.delete('ugc')
|
||||
if rel_values.blank?
|
||||
a.remove_attribute("rel")
|
||||
else
|
||||
a["rel"] = rel_values.join(' ')
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -1102,13 +1102,13 @@ describe CookedPostProcessor do
|
|||
SiteSetting.add_rel_nofollow_to_user_content = false
|
||||
Oneboxer.expects(:onebox)
|
||||
.with("http://www.youtube.com/watch?v=9bZkp7q19f0", invalidate_oneboxes: true, user_id: nil, category_id: post.topic.category_id)
|
||||
.returns('<aside class="onebox"><a href="https://www.youtube.com/watch?v=9bZkp7q19f0" rel="nofollow noopener">GANGNAM STYLE</a></aside>')
|
||||
.returns('<aside class="onebox"><a href="https://www.youtube.com/watch?v=9bZkp7q19f0" rel="nofollow noopener ugc">GANGNAM STYLE</a></aside>')
|
||||
cpp.post_process_oneboxes
|
||||
end
|
||||
|
||||
it "removes nofollow noopener from links" do
|
||||
expect(cpp).to be_dirty
|
||||
expect(cpp.html).to match_html '<aside class="onebox"><a href="https://www.youtube.com/watch?v=9bZkp7q19f0">GANGNAM STYLE</a></aside>'
|
||||
expect(cpp.html).to match_html '<aside class="onebox"><a href="https://www.youtube.com/watch?v=9bZkp7q19f0" rel="noopener">GANGNAM STYLE</a></aside>'
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -1123,13 +1123,13 @@ describe CookedPostProcessor do
|
|||
SiteSetting.tl3_links_no_follow = false
|
||||
Oneboxer.expects(:onebox)
|
||||
.with("http://www.youtube.com/watch?v=9bZkp7q19f0", invalidate_oneboxes: true, user_id: nil, category_id: post.topic.category_id)
|
||||
.returns('<aside class="onebox"><a href="https://www.youtube.com/watch?v=9bZkp7q19f0" rel="nofollow noopener">GANGNAM STYLE</a></aside>')
|
||||
.returns('<aside class="onebox"><a href="https://www.youtube.com/watch?v=9bZkp7q19f0" rel="nofollow ugc noopener">GANGNAM STYLE</a></aside>')
|
||||
cpp.post_process_oneboxes
|
||||
end
|
||||
|
||||
it "removes nofollow noopener from links" do
|
||||
it "removes nofollow ugc from links" do
|
||||
expect(cpp).to be_dirty
|
||||
expect(cpp.html).to match_html '<aside class="onebox"><a href="https://www.youtube.com/watch?v=9bZkp7q19f0">GANGNAM STYLE</a></aside>'
|
||||
expect(cpp.html).to match_html '<aside class="onebox"><a href="https://www.youtube.com/watch?v=9bZkp7q19f0" rel="noopener">GANGNAM STYLE</a></aside>'
|
||||
end
|
||||
end
|
||||
|
||||
|
|
Loading…
Reference in New Issue