/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 | | } |