1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 03:57:44 +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/CSSRuleWrapperFactory.h>
#include <LibWeb/Bindings/CSSStyleRuleWrapper.h>
#include <LibWeb/Bindings/CSSSupportsRuleWrapper.h>
#include <LibWeb/CSS/CSSFontFaceRule.h>
#include <LibWeb/CSS/CSSImportRule.h>
#include <LibWeb/CSS/CSSMediaRule.h>
#include <LibWeb/CSS/CSSStyleRule.h>
#include <LibWeb/CSS/CSSSupportsRule.h>
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)));
if (is<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));
}

View file

@ -35,6 +35,8 @@
#include <LibWeb/Bindings/CSSStyleRulePrototype.h>
#include <LibWeb/Bindings/CSSStyleSheetConstructor.h>
#include <LibWeb/Bindings/CSSStyleSheetPrototype.h>
#include <LibWeb/Bindings/CSSSupportsRuleConstructor.h>
#include <LibWeb/Bindings/CSSSupportsRulePrototype.h>
#include <LibWeb/Bindings/CanvasGradientConstructor.h>
#include <LibWeb/Bindings/CanvasGradientPrototype.h>
#include <LibWeb/Bindings/CanvasRenderingContext2DConstructor.h>
@ -374,6 +376,7 @@
ADD_WINDOW_OBJECT_INTERFACE(CSSStyleDeclaration) \
ADD_WINDOW_OBJECT_INTERFACE(CSSStyleRule) \
ADD_WINDOW_OBJECT_INTERFACE(CSSStyleSheet) \
ADD_WINDOW_OBJECT_INTERFACE(CSSSupportsRule) \
ADD_WINDOW_OBJECT_INTERFACE(CanvasGradient) \
ADD_WINDOW_OBJECT_INTERFACE(CanvasRenderingContext2D) \
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/CSSStyleRule)
libweb_js_wrapper(CSS/CSSStyleSheet)
libweb_js_wrapper(CSS/CSSSupportsRule)
libweb_js_wrapper(CSS/MediaList)
libweb_js_wrapper(CSS/MediaQueryList)
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
*/
@ -21,12 +21,14 @@ class CSSSupportsRule final : public CSSConditionRule {
AK_MAKE_NONMOVABLE(CSSSupportsRule);
public:
using WrapperType = Bindings::CSSSupportsRuleWrapper;
static NonnullRefPtr<CSSSupportsRule> create(NonnullRefPtr<Supports>&& supports, NonnullRefPtrVector<CSSRule>&& rules)
{
return adopt_ref(*new CSSSupportsRule(move(supports), move(rules)));
}
~CSSSupportsRule() = default;
virtual ~CSSSupportsRule() = default;
virtual StringView class_name() const override { return "CSSSupportsRule"; };
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 CSSStyleRuleWrapper;
class CSSStyleSheetWrapper;
class CSSSupportsRuleWrapper;
class CustomEventWrapper;
class DocumentFragmentWrapper;
class DocumentTypeWrapper;