1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-01 06:02:07 +00:00

LibWeb: Allow calc() values in image sizes attribute

Note that we currently can't resolve calc() values without a layout
node, so when normalizing an image's source set, we'll flush any pending
layout updates and hope that gives us an up-to-date layout node.

I've left a FIXME about implementing this in a more elegant and less
layout-thrashy way, as that will require more architectural work.
This commit is contained in:
Andreas Kling 2023-07-28 15:52:06 +02:00
parent 9997f46593
commit 95097e47a7
7 changed files with 77 additions and 28 deletions

View file

@ -710,7 +710,7 @@ static void update_the_source_set(DOM::Element& element)
// 10. Let el's source set be the result of creating a source set given default source, srcset, and sizes.
if (is<HTMLImageElement>(element))
static_cast<HTMLImageElement&>(element).set_source_set(SourceSet::create(element.document(), default_source, srcset, sizes));
static_cast<HTMLImageElement&>(element).set_source_set(SourceSet::create(element, default_source, srcset, sizes));
else if (is<HTMLLinkElement>(element))
TODO();
return;
@ -750,7 +750,7 @@ static void update_the_source_set(DOM::Element& element)
// Otherwise, set el's dimension attribute source to el.
// 10. Normalize the source densities of source set.
source_set.normalize_source_densities();
source_set.normalize_source_densities(element);
// 11. Let el's source set be source set.
if (is<HTMLImageElement>(element))