diff --git a/Userland/Libraries/LibWeb/CSS/CSSStyleDeclaration.cpp b/Userland/Libraries/LibWeb/CSS/CSSStyleDeclaration.cpp index c5a7b1c50f..dae3a69a59 100644 --- a/Userland/Libraries/LibWeb/CSS/CSSStyleDeclaration.cpp +++ b/Userland/Libraries/LibWeb/CSS/CSSStyleDeclaration.cpp @@ -91,4 +91,15 @@ bool PropertyOwningCSSStyleDeclaration::set_property(PropertyID property_id, Str return true; } +String CSSStyleDeclaration::get_property_value(StringView property_name) const +{ + auto property_id = property_id_from_string(property_name); + if (property_id == CSS::PropertyID::Invalid) + return {}; + auto maybe_property = property(property_id); + if (!maybe_property.has_value()) + return {}; + return maybe_property->value->to_string(); +} + } diff --git a/Userland/Libraries/LibWeb/CSS/CSSStyleDeclaration.h b/Userland/Libraries/LibWeb/CSS/CSSStyleDeclaration.h index 6c8410e3f1..17bfcb26c1 100644 --- a/Userland/Libraries/LibWeb/CSS/CSSStyleDeclaration.h +++ b/Userland/Libraries/LibWeb/CSS/CSSStyleDeclaration.h @@ -34,6 +34,8 @@ public: virtual Optional property(PropertyID) const = 0; virtual bool set_property(PropertyID, StringView css_text) = 0; + String get_property_value(StringView property) const; + protected: CSSStyleDeclaration() { } }; diff --git a/Userland/Libraries/LibWeb/CSS/CSSStyleDeclaration.idl b/Userland/Libraries/LibWeb/CSS/CSSStyleDeclaration.idl index 987ae17337..743f2151ad 100644 --- a/Userland/Libraries/LibWeb/CSS/CSSStyleDeclaration.idl +++ b/Userland/Libraries/LibWeb/CSS/CSSStyleDeclaration.idl @@ -4,4 +4,6 @@ interface CSSStyleDeclaration { readonly attribute unsigned long length; CSSOMString item(unsigned long index); + CSSOMString getPropertyValue(CSSOMString property); + };