mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 13:27:35 +00:00
LibWeb: Don't infer SVG viewBox if width and/or height is zero
The fix here has two parts: 1. Don't use the fallback viewBox at all if we're not in SVG-as-image. 2. Don't make a fallback viewBox with zero width and/or height. This fixes a crash on Bandcamp pages. Thanks Tim Flynn for reporting!
This commit is contained in:
parent
ffd5b3da16
commit
0ec522ab54
4 changed files with 31 additions and 2 deletions
|
@ -104,7 +104,7 @@ void SVGSVGElement::update_fallback_view_box_for_svg_as_image()
|
|||
height = height_value->as_length().length().absolute_length_to_px().to_double();
|
||||
}
|
||||
|
||||
if (width.has_value() && height.has_value()) {
|
||||
if (width.has_value() && width.value() > 0 && height.has_value() && height.value() > 0) {
|
||||
m_fallback_view_box_for_svg_as_image = ViewBox { 0, 0, width.value(), height.value() };
|
||||
} else {
|
||||
m_fallback_view_box_for_svg_as_image = {};
|
||||
|
@ -121,7 +121,8 @@ Optional<ViewBox> SVGSVGElement::view_box() const
|
|||
if (m_view_box.has_value())
|
||||
return m_view_box;
|
||||
|
||||
if (m_fallback_view_box_for_svg_as_image.has_value())
|
||||
// NOTE: If the parent is a document, we're an <svg> element used as an image.
|
||||
if (parent() && parent()->is_document() && m_fallback_view_box_for_svg_as_image.has_value())
|
||||
return m_fallback_view_box_for_svg_as_image;
|
||||
|
||||
return {};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue