1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 02:17:34 +00:00

LibWeb: Add CSSSupportsRule wrapper

This commit is contained in:
Sam Atkins 2022-04-22 14:17:23 +01:00 committed by Andreas Kling
parent fda71a6d48
commit 1cec8e473f
6 changed files with 18 additions and 2 deletions

View file

@ -11,10 +11,12 @@
#include <LibWeb/Bindings/CSSRuleWrapper.h> #include <LibWeb/Bindings/CSSRuleWrapper.h>
#include <LibWeb/Bindings/CSSRuleWrapperFactory.h> #include <LibWeb/Bindings/CSSRuleWrapperFactory.h>
#include <LibWeb/Bindings/CSSStyleRuleWrapper.h> #include <LibWeb/Bindings/CSSStyleRuleWrapper.h>
#include <LibWeb/Bindings/CSSSupportsRuleWrapper.h>
#include <LibWeb/CSS/CSSFontFaceRule.h> #include <LibWeb/CSS/CSSFontFaceRule.h>
#include <LibWeb/CSS/CSSImportRule.h> #include <LibWeb/CSS/CSSImportRule.h>
#include <LibWeb/CSS/CSSMediaRule.h> #include <LibWeb/CSS/CSSMediaRule.h>
#include <LibWeb/CSS/CSSStyleRule.h> #include <LibWeb/CSS/CSSStyleRule.h>
#include <LibWeb/CSS/CSSSupportsRule.h>
namespace Web::Bindings { namespace Web::Bindings {
@ -31,6 +33,8 @@ CSSRuleWrapper* wrap(JS::GlobalObject& global_object, CSS::CSSRule& rule)
return static_cast<CSSRuleWrapper*>(wrap_impl(global_object, verify_cast<CSS::CSSMediaRule>(rule))); return static_cast<CSSRuleWrapper*>(wrap_impl(global_object, verify_cast<CSS::CSSMediaRule>(rule)));
if (is<CSS::CSSFontFaceRule>(rule)) if (is<CSS::CSSFontFaceRule>(rule))
return static_cast<CSSRuleWrapper*>(wrap_impl(global_object, verify_cast<CSS::CSSFontFaceRule>(rule))); return static_cast<CSSRuleWrapper*>(wrap_impl(global_object, verify_cast<CSS::CSSFontFaceRule>(rule)));
if (is<CSS::CSSSupportsRule>(rule))
return static_cast<CSSRuleWrapper*>(wrap_impl(global_object, verify_cast<CSS::CSSSupportsRule>(rule)));
return static_cast<CSSRuleWrapper*>(wrap_impl(global_object, rule)); return static_cast<CSSRuleWrapper*>(wrap_impl(global_object, rule));
} }

View file

@ -35,6 +35,8 @@
#include <LibWeb/Bindings/CSSStyleRulePrototype.h> #include <LibWeb/Bindings/CSSStyleRulePrototype.h>
#include <LibWeb/Bindings/CSSStyleSheetConstructor.h> #include <LibWeb/Bindings/CSSStyleSheetConstructor.h>
#include <LibWeb/Bindings/CSSStyleSheetPrototype.h> #include <LibWeb/Bindings/CSSStyleSheetPrototype.h>
#include <LibWeb/Bindings/CSSSupportsRuleConstructor.h>
#include <LibWeb/Bindings/CSSSupportsRulePrototype.h>
#include <LibWeb/Bindings/CanvasGradientConstructor.h> #include <LibWeb/Bindings/CanvasGradientConstructor.h>
#include <LibWeb/Bindings/CanvasGradientPrototype.h> #include <LibWeb/Bindings/CanvasGradientPrototype.h>
#include <LibWeb/Bindings/CanvasRenderingContext2DConstructor.h> #include <LibWeb/Bindings/CanvasRenderingContext2DConstructor.h>
@ -374,6 +376,7 @@
ADD_WINDOW_OBJECT_INTERFACE(CSSStyleDeclaration) \ ADD_WINDOW_OBJECT_INTERFACE(CSSStyleDeclaration) \
ADD_WINDOW_OBJECT_INTERFACE(CSSStyleRule) \ ADD_WINDOW_OBJECT_INTERFACE(CSSStyleRule) \
ADD_WINDOW_OBJECT_INTERFACE(CSSStyleSheet) \ ADD_WINDOW_OBJECT_INTERFACE(CSSStyleSheet) \
ADD_WINDOW_OBJECT_INTERFACE(CSSSupportsRule) \
ADD_WINDOW_OBJECT_INTERFACE(CanvasGradient) \ ADD_WINDOW_OBJECT_INTERFACE(CanvasGradient) \
ADD_WINDOW_OBJECT_INTERFACE(CanvasRenderingContext2D) \ ADD_WINDOW_OBJECT_INTERFACE(CanvasRenderingContext2D) \
ADD_WINDOW_OBJECT_INTERFACE(CharacterData) \ ADD_WINDOW_OBJECT_INTERFACE(CharacterData) \

View file

@ -461,6 +461,7 @@ libweb_js_wrapper(CSS/CSSRuleList)
libweb_js_wrapper(CSS/CSSStyleDeclaration) libweb_js_wrapper(CSS/CSSStyleDeclaration)
libweb_js_wrapper(CSS/CSSStyleRule) libweb_js_wrapper(CSS/CSSStyleRule)
libweb_js_wrapper(CSS/CSSStyleSheet) libweb_js_wrapper(CSS/CSSStyleSheet)
libweb_js_wrapper(CSS/CSSSupportsRule)
libweb_js_wrapper(CSS/MediaList) libweb_js_wrapper(CSS/MediaList)
libweb_js_wrapper(CSS/MediaQueryList) libweb_js_wrapper(CSS/MediaQueryList)
libweb_js_wrapper(CSS/MediaQueryListEvent) libweb_js_wrapper(CSS/MediaQueryListEvent)

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2021, Sam Atkins <atkinssj@serenityos.org> * Copyright (c) 2021-2022, Sam Atkins <atkinssj@serenityos.org>
* *
* SPDX-License-Identifier: BSD-2-Clause * SPDX-License-Identifier: BSD-2-Clause
*/ */
@ -21,12 +21,14 @@ class CSSSupportsRule final : public CSSConditionRule {
AK_MAKE_NONMOVABLE(CSSSupportsRule); AK_MAKE_NONMOVABLE(CSSSupportsRule);
public: public:
using WrapperType = Bindings::CSSSupportsRuleWrapper;
static NonnullRefPtr<CSSSupportsRule> create(NonnullRefPtr<Supports>&& supports, NonnullRefPtrVector<CSSRule>&& rules) static NonnullRefPtr<CSSSupportsRule> create(NonnullRefPtr<Supports>&& supports, NonnullRefPtrVector<CSSRule>&& rules)
{ {
return adopt_ref(*new CSSSupportsRule(move(supports), move(rules))); return adopt_ref(*new CSSSupportsRule(move(supports), move(rules)));
} }
~CSSSupportsRule() = default; virtual ~CSSSupportsRule() = default;
virtual StringView class_name() const override { return "CSSSupportsRule"; }; virtual StringView class_name() const override { return "CSSSupportsRule"; };
virtual Type type() const override { return Type::Supports; }; virtual Type type() const override { return Type::Supports; };

View file

@ -0,0 +1,5 @@
#import <CSS/CSSConditionRule.idl>
[Exposed=Window]
interface CSSSupportsRule : CSSConditionRule {
};

View file

@ -418,6 +418,7 @@ class CSSRuleWrapper;
class CSSStyleDeclarationWrapper; class CSSStyleDeclarationWrapper;
class CSSStyleRuleWrapper; class CSSStyleRuleWrapper;
class CSSStyleSheetWrapper; class CSSStyleSheetWrapper;
class CSSSupportsRuleWrapper;
class CustomEventWrapper; class CustomEventWrapper;
class DocumentFragmentWrapper; class DocumentFragmentWrapper;
class DocumentTypeWrapper; class DocumentTypeWrapper;