Coverage Report

Created: 2026-02-14 08:01

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/serenity/Userland/Libraries/LibWeb/CSS/StyleSheetIdentifier.cpp
Line
Count
Source
1
/*
2
 * Copyright (c) 2024, Sam Atkins <sam@ladybird.org>
3
 *
4
 * SPDX-License-Identifier: BSD-2-Clause
5
 */
6
7
#include "StyleSheetIdentifier.h"
8
#include <LibIPC/Decoder.h>
9
#include <LibIPC/Encoder.h>
10
11
namespace Web::CSS {
12
13
StringView style_sheet_identifier_type_to_string(StyleSheetIdentifier::Type type)
14
0
{
15
0
    switch (type) {
16
0
    case StyleSheetIdentifier::Type::StyleElement:
17
0
        return "StyleElement"sv;
18
0
    case StyleSheetIdentifier::Type::LinkElement:
19
0
        return "LinkElement"sv;
20
0
    case StyleSheetIdentifier::Type::ImportRule:
21
0
        return "ImportRule"sv;
22
0
    case StyleSheetIdentifier::Type::UserAgent:
23
0
        return "UserAgent"sv;
24
0
    case StyleSheetIdentifier::Type::UserStyle:
25
0
        return "UserStyle"sv;
26
0
    }
27
0
    VERIFY_NOT_REACHED();
28
0
}
29
30
Optional<StyleSheetIdentifier::Type> style_sheet_identifier_type_from_string(StringView string)
31
0
{
32
0
    if (string == "StyleElement"sv)
33
0
        return StyleSheetIdentifier::Type::StyleElement;
34
0
    if (string == "LinkElement"sv)
35
0
        return StyleSheetIdentifier::Type::LinkElement;
36
0
    if (string == "ImportRule"sv)
37
0
        return StyleSheetIdentifier::Type::ImportRule;
38
0
    if (string == "UserAgent"sv)
39
0
        return StyleSheetIdentifier::Type::UserAgent;
40
0
    if (string == "UserStyle"sv)
41
0
        return StyleSheetIdentifier::Type::UserStyle;
42
0
    return {};
43
0
}
44
45
}
46
47
namespace IPC {
48
49
template<>
50
ErrorOr<void> encode(Encoder& encoder, Web::CSS::StyleSheetIdentifier const& style_sheet_source)
51
0
{
52
0
    TRY(encoder.encode(style_sheet_source.type));
53
0
    TRY(encoder.encode(style_sheet_source.dom_element_unique_id));
54
0
    TRY(encoder.encode(style_sheet_source.url));
55
56
0
    return {};
57
0
}
58
59
template<>
60
ErrorOr<Web::CSS::StyleSheetIdentifier> decode(Decoder& decoder)
61
0
{
62
0
    auto type = TRY(decoder.decode<Web::CSS::StyleSheetIdentifier::Type>());
63
0
    auto dom_element_unique_id = TRY(decoder.decode<Optional<i32>>());
64
0
    auto url = TRY(decoder.decode<Optional<String>>());
65
66
0
    return Web::CSS::StyleSheetIdentifier {
67
0
        .type = type,
68
0
        .dom_element_unique_id = move(dom_element_unique_id),
69
0
        .url = move(url),
70
0
    };
71
0
}
72
73
}