File tree Expand file tree Collapse file tree 3 files changed +15
-5
lines changed
Expand file tree Collapse file tree 3 files changed +15
-5
lines changed Original file line number Diff line number Diff line change @@ -11,13 +11,15 @@ def initialize(text:)
1111 # Iterate over all images and unlink tracking pixels
1212 css ( 'img[src]' ) . each do |node |
1313 node . unlink if TrackingDetection . tracking_pixel? ( node )
14+
15+ # Don't send referrer when requesting images
16+ node . set_attribute ( 'referrerpolicy' , 'no-referrer' )
1417 end
1518 end
1619
1720 # Iterate over all urls in the document
1821 # If the block returns a new url, the element gets replaced
19- # rubocop:disable Metrics/AbcSize
20- def handle_img_urls ( &)
22+ def handle_img_urls ( &) # rubocop:disable Metrics/AbcSize
2123 css ( 'img[src]' ) . each do |node |
2224 node . set_attribute ( 'src' , yield ( node [ 'src' ] ) )
2325 end
@@ -31,7 +33,6 @@ def handle_img_urls(&)
3133 node . set_attribute ( 'style' , urls_in_styles ( node [ 'style' ] , &) )
3234 end
3335 end
34- # rubocop:enable Metrics/AbcSize
3536
3637 def add_to_head ( node_or_string )
3738 at_css ( 'head' ) . add_child ( node_or_string )
Original file line number Diff line number Diff line change @@ -40,7 +40,8 @@ class EntryComponentTest < ViewComponent::TestCase
4040 render_inline ( EntryComponent . new ( entry :) )
4141
4242 assert_selector '.entry__iframe'
43- assert_includes page . find ( '.entry__iframe' ) [ :srcdoc ] , '<body><div><img src="https://example.com/image.jpg"></div></body>'
43+ assert_includes page . find ( '.entry__iframe' ) [ :srcdoc ] ,
44+ '<body><div><img src="https://example.com/image.jpg" referrerpolicy="no-referrer"></div></body>'
4445 end
4546
4647 test 'should replace image src when proxied' do
@@ -55,7 +56,7 @@ class EntryComponentTest < ViewComponent::TestCase
5556
5657 assert_selector '.entry__iframe'
5758
58- regex = %r{<img src="/rails/active_storage/blobs/redirect/[A-Za-z\d =-]+/image.jpg"> }
59+ regex = %r{<img src="/rails/active_storage/blobs/redirect/[A-Za-z\d =-]+/image.jpg"}
5960
6061 assert_match regex , page . find ( '.entry__iframe' ) [ :srcdoc ]
6162 end
Original file line number Diff line number Diff line change 33require 'test_helper'
44
55class RichTextTest < ActiveSupport ::TestCase
6+ test 'should set no-referrer for all images' do
7+ text = RichText . new (
8+ text : '<div><img src="https://example.com/image.jpg" /></div>'
9+ )
10+
11+ assert_includes text . to_html , '<img src="https://example.com/image.jpg" referrerpolicy="no-referrer">'
12+ end
13+
614 # Handle_img_urls
715 test 'should detect url is srcset' do
816 text = RichText . new (
You can’t perform that action at this time.
0 commit comments