Serenity Operating System
1/*
2 * Copyright (c) 2021-2022, Sam Atkins <atkinssj@serenityos.org>
3 *
4 * SPDX-License-Identifier: BSD-2-Clause
5 */
6
7#pragma once
8
9#include <AK/NonnullRefPtr.h>
10#include <LibWeb/CSS/CSSGroupingRule.h>
11#include <LibWeb/Forward.h>
12
13namespace Web::CSS {
14
15class CSSConditionRule : public CSSGroupingRule {
16 WEB_PLATFORM_OBJECT(CSSConditionRule, CSSGroupingRule);
17
18public:
19 virtual ~CSSConditionRule() = default;
20
21 virtual DeprecatedString condition_text() const = 0;
22 virtual void set_condition_text(DeprecatedString) = 0;
23 virtual bool condition_matches() const = 0;
24
25 virtual void for_each_effective_style_rule(Function<void(CSSStyleRule const&)> const& callback) const override;
26
27protected:
28 CSSConditionRule(JS::Realm&, CSSRuleList&);
29
30 virtual JS::ThrowCompletionOr<void> initialize(JS::Realm&) override;
31};
32
33}