/* * Copyright (c) 2022-2025, Sam Atkins * Copyright (c) 2022, Andreas Kling * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include namespace Web::CSS { class CSSFontFaceRule final : public CSSRule { WEB_PLATFORM_OBJECT(CSSFontFaceRule, CSSRule); GC_DECLARE_ALLOCATOR(CSSFontFaceRule); public: [[nodiscard]] static GC::Ref create(JS::Realm&, GC::Ref); virtual ~CSSFontFaceRule() override = default; bool is_valid() const; ParsedFontFace font_face() const; CSSStyleDeclaration* style() { return m_style; } private: CSSFontFaceRule(JS::Realm&, GC::Ref); virtual void initialize(JS::Realm&) override; virtual String serialized() const override; virtual void visit_edges(Visitor&) override; GC::Ref m_style; }; template<> inline bool CSSRule::fast_is() const { return type() == CSSRule::Type::FontFace; } }