diff --git a/Libraries/LibWeb/DOM/HTMLBodyElement.cpp b/Libraries/LibWeb/DOM/HTMLBodyElement.cpp
index a5fbd9dc90..5ce725f1f9 100644
--- a/Libraries/LibWeb/DOM/HTMLBodyElement.cpp
+++ b/Libraries/LibWeb/DOM/HTMLBodyElement.cpp
@@ -52,7 +52,8 @@ void HTMLBodyElement::apply_presentational_hints(StyleProperties& style) const
if (color.has_value())
style.set_property(CSS::PropertyID::Color, ColorStyleValue::create(color.value()));
} else if (name.equals_ignoring_case("background")) {
- style.set_property(CSS::PropertyID::BackgroundImage, ImageStyleValue::create(document().complete_url(value), const_cast(document())));
+ ASSERT(m_background_style_value);
+ style.set_property(CSS::PropertyID::BackgroundImage, *m_background_style_value);
}
});
}
@@ -71,6 +72,8 @@ void HTMLBodyElement::parse_attribute(const String& name, const String& value)
auto color = Color::from_string(value);
if (color.has_value())
document().set_visited_link_color(color.value());
+ } else if (name.equals_ignoring_case("background")) {
+ m_background_style_value = ImageStyleValue::create(document().complete_url(value), const_cast(document()));
}
}
diff --git a/Libraries/LibWeb/DOM/HTMLBodyElement.h b/Libraries/LibWeb/DOM/HTMLBodyElement.h
index 22296fa46c..cef9e3a664 100644
--- a/Libraries/LibWeb/DOM/HTMLBodyElement.h
+++ b/Libraries/LibWeb/DOM/HTMLBodyElement.h
@@ -37,6 +37,9 @@ public:
virtual void parse_attribute(const String&, const String&) override;
virtual void apply_presentational_hints(StyleProperties&) const override;
+
+private:
+ RefPtr m_background_style_value;
};
template<>