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/ReferrerPolicy/ReferrerPolicy.cpp
Line
Count
Source
1
/*
2
 * Copyright (c) 2023, Sam Atkins <atkinssj@serenityos.org>
3
 *
4
 * SPDX-License-Identifier: BSD-2-Clause
5
 */
6
7
#include <LibWeb/ReferrerPolicy/ReferrerPolicy.h>
8
9
namespace Web::ReferrerPolicy {
10
11
StringView to_string(ReferrerPolicy referrer_policy)
12
0
{
13
0
    switch (referrer_policy) {
14
0
    case ReferrerPolicy::EmptyString:
15
0
        return ""sv;
16
0
    case ReferrerPolicy::NoReferrer:
17
0
        return "no-referrer"sv;
18
0
    case ReferrerPolicy::NoReferrerWhenDowngrade:
19
0
        return "no-referrer-when-downgrade"sv;
20
0
    case ReferrerPolicy::SameOrigin:
21
0
        return "same-origin"sv;
22
0
    case ReferrerPolicy::Origin:
23
0
        return "origin"sv;
24
0
    case ReferrerPolicy::StrictOrigin:
25
0
        return "strict-origin"sv;
26
0
    case ReferrerPolicy::OriginWhenCrossOrigin:
27
0
        return "origin-when-cross-origin"sv;
28
0
    case ReferrerPolicy::StrictOriginWhenCrossOrigin:
29
0
        return "strict-origin-when-cross-origin"sv;
30
0
    case ReferrerPolicy::UnsafeURL:
31
0
        return "unsafe-url"sv;
32
0
    }
33
0
    VERIFY_NOT_REACHED();
34
0
}
35
36
Optional<ReferrerPolicy> from_string(StringView string)
37
0
{
38
0
    if (string.is_empty())
39
0
        return ReferrerPolicy::EmptyString;
40
0
    if (string.equals_ignoring_ascii_case("no-referrer"sv))
41
0
        return ReferrerPolicy::NoReferrer;
42
0
    if (string.equals_ignoring_ascii_case("no-referrer-when-downgrade"sv))
43
0
        return ReferrerPolicy::NoReferrerWhenDowngrade;
44
0
    if (string.equals_ignoring_ascii_case("same-origin"sv))
45
0
        return ReferrerPolicy::SameOrigin;
46
0
    if (string.equals_ignoring_ascii_case("origin"sv))
47
0
        return ReferrerPolicy::Origin;
48
0
    if (string.equals_ignoring_ascii_case("strict-origin"sv))
49
0
        return ReferrerPolicy::StrictOrigin;
50
0
    if (string.equals_ignoring_ascii_case("origin-when-cross-origin"sv))
51
0
        return ReferrerPolicy::OriginWhenCrossOrigin;
52
0
    if (string.equals_ignoring_ascii_case("strict-origin-when-cross-origin"sv))
53
0
        return ReferrerPolicy::StrictOriginWhenCrossOrigin;
54
0
    if (string.equals_ignoring_ascii_case("unsafe-url"sv))
55
0
        return ReferrerPolicy::UnsafeURL;
56
0
    return {};
57
0
}
58
59
}