소스 검색

LibWeb: Allow custom properties in getPropertyPriority()

Aliaksandr Kalenik 7 달 전
부모
커밋
41c172c663

+ 6 - 0
Libraries/LibWeb/CSS/CSSStyleDeclaration.cpp

@@ -318,6 +318,12 @@ StringView CSSStyleDeclaration::get_property_priority(StringView property_name)
     auto property_id = property_id_from_string(property_name);
     if (!property_id.has_value())
         return {};
+    if (property_id.value() == PropertyID::Custom) {
+        auto maybe_custom_property = custom_property(FlyString::from_utf8_without_validation(property_name.bytes()));
+        if (!maybe_custom_property.has_value())
+            return {};
+        return maybe_custom_property.value().important == Important::Yes ? "important"sv : ""sv;
+    }
     auto maybe_property = property(property_id.value());
     if (!maybe_property.has_value())
         return {};

+ 1 - 0
Tests/LibWeb/Text/expected/css/CSSStyleDeclaration-custom-properties.txt

@@ -1,3 +1,4 @@
 style.getPropertyValue(--redcolor)=red
+style.getPropertyPriority(--redcolor)=
 rgb(255, 0, 0)
 rgba(0, 0, 0, 0)

+ 1 - 0
Tests/LibWeb/Text/input/css/CSSStyleDeclaration-custom-properties.html

@@ -6,6 +6,7 @@
         const div = document.createElement('div');
         div.style.setProperty("--redcolor", "red");
         println(`style.getPropertyValue(--redcolor)=${div.style.getPropertyValue("--redcolor")}`);
+        println(`style.getPropertyPriority(--redcolor)=${div.style.getPropertyPriority("--redcolor")}`);
 
         const nested = document.createElement('div');
         nested.style["backgroundColor"] = "var(--redcolor)";