1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 15:28:11 +00:00

LibWeb: Bring HTMLImageElement closer to spec

This commit is contained in:
Igor Pissolati 2022-04-12 13:20:43 -03:00 committed by Andreas Kling
parent 682a4a347a
commit e5d978af9f
3 changed files with 29 additions and 0 deletions

View file

@ -138,4 +138,28 @@ void HTMLImageElement::set_height(unsigned height)
set_attribute(HTML::AttributeNames::height, String::number(height)); set_attribute(HTML::AttributeNames::height, String::number(height));
} }
// https://html.spec.whatwg.org/multipage/embedded-content.html#dom-img-naturalwidth
unsigned HTMLImageElement::natural_width() const
{
// Return the density-corrected intrinsic width of the image, in CSS pixels,
// if the image has intrinsic dimensions and is available.
if (m_image_loader.has_image())
return m_image_loader.width();
// ...or else 0.
return 0;
}
// https://html.spec.whatwg.org/multipage/embedded-content.html#dom-img-naturalheight
unsigned HTMLImageElement::natural_height() const
{
// Return the density-corrected intrinsic height of the image, in CSS pixels,
// if the image has intrinsic dimensions and is available.
if (m_image_loader.has_image())
return m_image_loader.height();
// ...or else 0.
return 0;
}
} }

View file

@ -39,6 +39,9 @@ public:
unsigned height() const; unsigned height() const;
void set_height(unsigned); void set_height(unsigned);
unsigned natural_width() const;
unsigned natural_height() const;
private: private:
virtual void apply_presentational_hints(CSS::StyleProperties&) const override; virtual void apply_presentational_hints(CSS::StyleProperties&) const override;

View file

@ -15,5 +15,7 @@ interface HTMLImageElement : HTMLElement {
[CEReactions] attribute unsigned long width; [CEReactions] attribute unsigned long width;
[CEReactions] attribute unsigned long height; [CEReactions] attribute unsigned long height;
readonly attribute unsigned long naturalWidth;
readonly attribute unsigned long naturalHeight;
}; };