Преглед изворни кода

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 пре 2 година
родитељ
комит
14fb6372c3
1 измењених фајлова са 3 додато и 1 уклоњено
  1. 3 1
      Userland/Libraries/LibWeb/CSS/CSSStyleDeclaration.cpp

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

@@ -93,7 +93,9 @@ WebIDL::ExceptionOr<void> PropertyOwningCSSStyleDeclaration::set_property(Proper
         return {};
         return {};
 
 
     // 5. Let component value list be the result of parsing value for property property.
     // 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.
     // 6. If component value list is null, then return.
     if (!component_value_list)
     if (!component_value_list)