diff --git a/lib/cooked_post_processor.rb b/lib/cooked_post_processor.rb
index 8415100965a..0e6e15986e7 100644
--- a/lib/cooked_post_processor.rb
+++ b/lib/cooked_post_processor.rb
@@ -385,6 +385,8 @@ class CookedPostProcessor
end
def process_hotlinked_image(img)
+ onebox = img.ancestors(".onebox, .onebox-body").first
+
@hotlinked_map ||= @post.post_hotlinked_media.preload(:upload).map { |r| [r.url, r] }.to_h
normalized_src =
PostHotlinkedMedia.normalize_src(img["src"] || img[PrettyText::BLOCKED_HOTLINKED_SRC_ATTR])
@@ -393,7 +395,7 @@ class CookedPostProcessor
still_an_image = true
if info&.too_large?
- if img.ancestors(".onebox, .onebox-body").blank?
+ if !onebox || onebox.element_children.size == 1
add_large_image_placeholder!(img)
else
img.remove
@@ -401,7 +403,7 @@ class CookedPostProcessor
still_an_image = false
elsif info&.download_failed?
- if img.ancestors(".onebox, .onebox-body").blank?
+ if !onebox || onebox.element_children.size == 1
add_broken_image_placeholder!(img)
else
img.remove
diff --git a/spec/lib/cooked_post_processor_spec.rb b/spec/lib/cooked_post_processor_spec.rb
index 566b9726cea..df42d360cb8 100644
--- a/spec/lib/cooked_post_processor_spec.rb
+++ b/spec/lib/cooked_post_processor_spec.rb
@@ -1152,13 +1152,13 @@ RSpec.describe CookedPostProcessor do
it "replaces large image placeholder" do
SiteSetting.max_image_size_kb = 4096
- url = "https://image.com/my-avatar"
- image_url = "https://image.com/avatar.png"
+ url = "https://image.com/avatar.png"
- Oneboxer
- .stubs(:onebox)
- .with(url, anything)
- .returns("")
+ Oneboxer.stubs(:onebox).with(url, anything).returns <<~HTML
+
+
+
+ HTML
post = Fabricate(:post, raw: url)