LibWeb/HTML: Implement HTMLImageElement::allows_auto_sizes()

This commit is contained in:
Sam Atkins 2024-09-11 14:06:08 +01:00 committed by Andreas Kling
parent 2671820ace
commit 99718653e2
Notes: github-actions[bot] 2024-09-12 05:40:13 +00:00
2 changed files with 16 additions and 0 deletions

View file

@ -1171,4 +1171,17 @@ void HTMLImageElement::set_decoding(String decoding)
m_decoding_hint = ImageDecodingHint::Auto;
}
bool HTMLImageElement::allows_auto_sizes() const
{
// An img element allows auto-sizes if:
// - its loading attribute is in the Lazy state, and
// - its sizes attribute's value is "auto" (ASCII case-insensitive), or starts with "auto," (ASCII case-insensitive).
if (lazy_loading_attribute() != LazyLoading::Lazy)
return false;
auto sizes = attribute(HTML::AttributeNames::sizes);
return sizes.has_value()
&& (sizes->equals_ignoring_ascii_case("auto"sv)
|| sizes->starts_with_bytes("auto,"sv, AK::CaseSensitivity::CaseInsensitive));
}
}

View file

@ -94,6 +94,9 @@ public:
// https://html.spec.whatwg.org/multipage/images.html#upgrade-the-pending-request-to-the-current-request
void upgrade_pending_request_to_current_request();
// https://html.spec.whatwg.org/multipage/embedded-content.html#allows-auto-sizes
bool allows_auto_sizes() const;
// ^Layout::ImageProvider
virtual bool is_image_available() const override;
virtual Optional<CSSPixels> intrinsic_width() const override;