diff --git a/Userland/Libraries/LibWeb/Bindings/WindowObjectHelper.h b/Userland/Libraries/LibWeb/Bindings/WindowObjectHelper.h index 9073de1fd1b..4a0df4cc050 100644 --- a/Userland/Libraries/LibWeb/Bindings/WindowObjectHelper.h +++ b/Userland/Libraries/LibWeb/Bindings/WindowObjectHelper.h @@ -17,6 +17,8 @@ #include #include #include +#include +#include #include #include #include @@ -358,6 +360,7 @@ ADD_WINDOW_OBJECT_INTERFACE(AbstractRange) \ ADD_WINDOW_OBJECT_INTERFACE(Crypto) \ ADD_WINDOW_OBJECT_INTERFACE(CSSFontFaceRule) \ + ADD_WINDOW_OBJECT_INTERFACE(CSSGroupingRule) \ ADD_WINDOW_OBJECT_INTERFACE(CSSRule) \ ADD_WINDOW_OBJECT_INTERFACE(CSSRuleList) \ ADD_WINDOW_OBJECT_INTERFACE(CSSStyleDeclaration) \ diff --git a/Userland/Libraries/LibWeb/CMakeLists.txt b/Userland/Libraries/LibWeb/CMakeLists.txt index 2d7bd9e890c..cc04d4f56b7 100644 --- a/Userland/Libraries/LibWeb/CMakeLists.txt +++ b/Userland/Libraries/LibWeb/CMakeLists.txt @@ -452,6 +452,7 @@ endfunction() libweb_js_wrapper(Crypto/Crypto) libweb_js_wrapper(Crypto/SubtleCrypto) libweb_js_wrapper(CSS/CSSFontFaceRule) +libweb_js_wrapper(CSS/CSSGroupingRule) libweb_js_wrapper(CSS/CSSRule) libweb_js_wrapper(CSS/CSSRuleList) libweb_js_wrapper(CSS/CSSStyleDeclaration) diff --git a/Userland/Libraries/LibWeb/CSS/CSSGroupingRule.h b/Userland/Libraries/LibWeb/CSS/CSSGroupingRule.h index 7161c7edaf8..4d28f42ee71 100644 --- a/Userland/Libraries/LibWeb/CSS/CSSGroupingRule.h +++ b/Userland/Libraries/LibWeb/CSS/CSSGroupingRule.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021, Sam Atkins + * Copyright (c) 2021-2022, Sam Atkins * * SPDX-License-Identifier: BSD-2-Clause */ @@ -19,10 +19,13 @@ class CSSGroupingRule : public CSSRule { AK_MAKE_NONMOVABLE(CSSGroupingRule); public: - ~CSSGroupingRule() = default; + using WrapperType = Bindings::CSSGroupingRuleWrapper; + + virtual ~CSSGroupingRule() = default; CSSRuleList const& css_rules() const { return m_rules; } CSSRuleList& css_rules() { return m_rules; } + NonnullRefPtr css_rules_for_bindings() { return m_rules; } size_t insert_rule(StringView rule, size_t index = 0); void delete_rule(size_t index); diff --git a/Userland/Libraries/LibWeb/CSS/CSSGroupingRule.idl b/Userland/Libraries/LibWeb/CSS/CSSGroupingRule.idl index 9d942b4407f..6f8280a0fd5 100644 --- a/Userland/Libraries/LibWeb/CSS/CSSGroupingRule.idl +++ b/Userland/Libraries/LibWeb/CSS/CSSGroupingRule.idl @@ -1,8 +1,9 @@ #import #import +[Exposed=Window] interface CSSGroupingRule : CSSRule { - [SameObject] readonly attribute CSSRuleList cssRules; + [SameObject, ImplementedAs=css_rules_for_bindings] readonly attribute CSSRuleList cssRules; unsigned long insertRule(CSSOMString rule, optional unsigned long index = 0); undefined deleteRule(unsigned long index); }; diff --git a/Userland/Libraries/LibWeb/Forward.h b/Userland/Libraries/LibWeb/Forward.h index f6f4282747b..ed1019e9f94 100644 --- a/Userland/Libraries/LibWeb/Forward.h +++ b/Userland/Libraries/LibWeb/Forward.h @@ -35,6 +35,7 @@ class BorderStyleValue; class CalculatedStyleValue; class ColorStyleValue; class ContentStyleValue; +class CSSGroupingRule; class CSSImportRule; class CSSFontFaceRule; class CSSMediaRule; @@ -407,6 +408,7 @@ class CloseEventWrapper; class CommentWrapper; class CryptoWrapper; class CSSFontFaceRuleWrapper; +class CSSGroupingRuleWrapper; class CSSRuleListWrapper; class CSSRuleWrapper; class CSSStyleDeclarationWrapper;