Coverage Report

Created: 2025-11-16 07:46

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/serenity/Userland/Libraries/LibWeb/CSS/CSSGroupingRule.h
Line
Count
Source
1
/*
2
 * Copyright (c) 2021-2024, Sam Atkins <sam@ladybird.org>
3
 *
4
 * SPDX-License-Identifier: BSD-2-Clause
5
 */
6
7
#pragma once
8
9
#include <AK/Function.h>
10
#include <AK/NonnullRefPtr.h>
11
#include <LibWeb/CSS/CSSRule.h>
12
#include <LibWeb/CSS/CSSRuleList.h>
13
#include <LibWeb/Forward.h>
14
15
namespace Web::CSS {
16
17
class CSSGroupingRule : public CSSRule {
18
    WEB_PLATFORM_OBJECT(CSSGroupingRule, CSSRule);
19
20
public:
21
    virtual ~CSSGroupingRule() = default;
22
23
0
    CSSRuleList const& css_rules() const { return m_rules; }
24
0
    CSSRuleList& css_rules() { return m_rules; }
25
0
    CSSRuleList* css_rules_for_bindings() { return m_rules; }
26
    WebIDL::ExceptionOr<u32> insert_rule(StringView rule, u32 index = 0);
27
    WebIDL::ExceptionOr<void> delete_rule(u32 index);
28
29
    virtual void for_each_effective_rule(TraversalOrder, Function<void(CSSRule const&)> const& callback) const;
30
31
    virtual void set_parent_style_sheet(CSSStyleSheet*) override;
32
33
protected:
34
    CSSGroupingRule(JS::Realm&, CSSRuleList&);
35
36
    virtual void initialize(JS::Realm&) override;
37
    virtual void visit_edges(Cell::Visitor&) override;
38
39
private:
40
    JS::NonnullGCPtr<CSSRuleList> m_rules;
41
};
42
43
}