/src/serenity/Userland/Libraries/LibWeb/CSS/Parser/ParsingContext.cpp
Line | Count | Source (jump to first uncovered line) |
1 | | /* |
2 | | * Copyright (c) 2018-2022, Andreas Kling <kling@serenityos.org> |
3 | | * Copyright (c) 2020-2021, the SerenityOS developers. |
4 | | * Copyright (c) 2021-2023, Sam Atkins <atkinssj@serenityos.org> |
5 | | * Copyright (c) 2021, Tobias Christiansen <tobyase@serenityos.org> |
6 | | * Copyright (c) 2022, MacDue <macdue@dueutil.tech> |
7 | | * |
8 | | * SPDX-License-Identifier: BSD-2-Clause |
9 | | */ |
10 | | |
11 | | #include <LibWeb/CSS/Parser/Parser.h> |
12 | | #include <LibWeb/DOM/Document.h> |
13 | | |
14 | | namespace Web::CSS::Parser { |
15 | | |
16 | | ParsingContext::ParsingContext(JS::Realm& realm, Mode mode) |
17 | 0 | : m_realm(realm) |
18 | 0 | , m_mode(mode) |
19 | 0 | { |
20 | 0 | } |
21 | | |
22 | | ParsingContext::ParsingContext(JS::Realm& realm, URL::URL url, Mode mode) |
23 | 0 | : m_realm(realm) |
24 | 0 | , m_url(move(url)) |
25 | 0 | , m_mode(mode) |
26 | 0 | { |
27 | 0 | } |
28 | | |
29 | | ParsingContext::ParsingContext(DOM::Document const& document, URL::URL url, Mode mode) |
30 | 0 | : m_realm(const_cast<JS::Realm&>(document.realm())) |
31 | 0 | , m_document(&document) |
32 | 0 | , m_url(move(url)) |
33 | 0 | , m_mode(mode) |
34 | 0 | { |
35 | 0 | } |
36 | | |
37 | | ParsingContext::ParsingContext(DOM::Document const& document, Mode mode) |
38 | 0 | : m_realm(const_cast<JS::Realm&>(document.realm())) |
39 | 0 | , m_document(&document) |
40 | 0 | , m_url(document.url()) |
41 | 0 | , m_mode(mode) |
42 | 0 | { |
43 | 0 | } |
44 | | |
45 | | ParsingContext::ParsingContext(DOM::ParentNode& parent_node, Mode mode) |
46 | 0 | : m_realm(parent_node.realm()) |
47 | 0 | , m_document(&parent_node.document()) |
48 | 0 | , m_url(parent_node.document().url()) |
49 | 0 | , m_mode(mode) |
50 | 0 | { |
51 | 0 | } |
52 | | |
53 | | bool ParsingContext::in_quirks_mode() const |
54 | 0 | { |
55 | 0 | return m_document ? m_document->in_quirks_mode() : false; |
56 | 0 | } |
57 | | |
58 | | // https://www.w3.org/TR/css-values-4/#relative-urls |
59 | | URL::URL ParsingContext::complete_url(StringView relative_url) const |
60 | 0 | { |
61 | 0 | return m_url.complete_url(relative_url); |
62 | 0 | } |
63 | | |
64 | | HTML::Window const* ParsingContext::window() const |
65 | 0 | { |
66 | 0 | if (!m_document) |
67 | 0 | return nullptr; |
68 | 0 | return m_document->window(); |
69 | 0 | } |
70 | | |
71 | | } |