diff --git a/Userland/Libraries/LibWeb/HTML/HTMLImageElement.cpp b/Userland/Libraries/LibWeb/HTML/HTMLImageElement.cpp index 5b654c1fc2..35a83b0c87 100644 --- a/Userland/Libraries/LibWeb/HTML/HTMLImageElement.cpp +++ b/Userland/Libraries/LibWeb/HTML/HTMLImageElement.cpp @@ -101,6 +101,11 @@ unsigned HTMLImageElement::width() const if (auto* paint_box = this->paint_box()) return paint_box->content_width(); + // NOTE: This step seems to not be in the spec, but all browsers do it. + auto width_attr = get_attribute(HTML::AttributeNames::width); + if (auto converted = width_attr.to_uint(); converted.has_value()) + return *converted; + // ...or else the density-corrected intrinsic width and height of the image, in CSS pixels, // if the image has intrinsic dimensions and is available but not being rendered. if (m_image_loader.has_image()) @@ -124,6 +129,11 @@ unsigned HTMLImageElement::height() const if (auto* paint_box = this->paint_box()) return paint_box->content_height(); + // NOTE: This step seems to not be in the spec, but all browsers do it. + auto height_attr = get_attribute(HTML::AttributeNames::height); + if (auto converted = height_attr.to_uint(); converted.has_value()) + return *converted; + // ...or else the density-corrected intrinsic height and height of the image, in CSS pixels, // if the image has intrinsic dimensions and is available but not being rendered. if (m_image_loader.has_image())