Procházet zdrojové kódy

LibWeb: Parse Element.style url functions relative to the document

Previously we used a parsing context with no access to the document, so
any URLs in url() functions would become invalid.

Fixes the images on Steam's store carousel, which sets
Element.style.backgroundImage to url() functions.
Luke Wilde před 2 roky
rodič
revize
14fb6372c3

+ 3 - 1
Userland/Libraries/LibWeb/CSS/CSSStyleDeclaration.cpp

@@ -93,7 +93,9 @@ WebIDL::ExceptionOr<void> PropertyOwningCSSStyleDeclaration::set_property(Proper
         return {};
 
     // 5. Let component value list be the result of parsing value for property property.
-    auto component_value_list = parse_css_value(CSS::Parser::ParsingContext { realm() }, value, property_id);
+    auto component_value_list = is<ElementInlineCSSStyleDeclaration>(this)
+        ? parse_css_value(CSS::Parser::ParsingContext { static_cast<ElementInlineCSSStyleDeclaration&>(*this).element()->document() }, value, property_id)
+        : parse_css_value(CSS::Parser::ParsingContext { realm() }, value, property_id);
 
     // 6. If component value list is null, then return.
     if (!component_value_list)