/src/serenity/Userland/Libraries/LibWeb/DOM/NonElementParentNode.h
Line | Count | Source |
1 | | /* |
2 | | * Copyright (c) 2020, Andreas Kling <kling@serenityos.org> |
3 | | * |
4 | | * SPDX-License-Identifier: BSD-2-Clause |
5 | | */ |
6 | | |
7 | | #pragma once |
8 | | |
9 | | #include <AK/FlyString.h> |
10 | | #include <AK/Forward.h> |
11 | | #include <LibJS/Heap/GCPtr.h> |
12 | | #include <LibWeb/Forward.h> |
13 | | #include <LibWeb/HTML/AttributeNames.h> |
14 | | #include <LibWeb/TreeNode.h> |
15 | | |
16 | | namespace Web::DOM { |
17 | | |
18 | | template<typename NodeType> |
19 | | class NonElementParentNode { |
20 | | public: |
21 | | JS::GCPtr<Element> get_element_by_id(FlyString const& id) const |
22 | 0 | { |
23 | 0 | JS::GCPtr<Element> found_element; |
24 | 0 | const_cast<NodeType*>(static_cast<NodeType const*>(this))->template for_each_in_inclusive_subtree_of_type<Element>([&](auto& element) { |
25 | 0 | if (element.id() == id) { |
26 | 0 | found_element = &element; |
27 | 0 | return TraversalDecision::Break; |
28 | 0 | } |
29 | 0 | return TraversalDecision::Continue; |
30 | 0 | }); Unexecuted instantiation: auto Web::DOM::NonElementParentNode<Web::DOM::Document>::get_element_by_id(AK::FlyString const&) const::{lambda(auto:1&)#1}::operator()<Web::DOM::Element>(Web::DOM::Element&) constUnexecuted instantiation: auto Web::DOM::NonElementParentNode<Web::DOM::DocumentFragment>::get_element_by_id(AK::FlyString const&) const::{lambda(auto:1&)#1}::operator()<Web::DOM::Element>(Web::DOM::Element&) constUnexecuted instantiation: auto Web::DOM::NonElementParentNode<Web::SVG::SVGSVGElement>::get_element_by_id(AK::FlyString const&) const::{lambda(auto:1&)#1}::operator()<Web::DOM::Element>(Web::DOM::Element&) const |
31 | 0 | return found_element; |
32 | 0 | } Unexecuted instantiation: Web::DOM::NonElementParentNode<Web::DOM::Document>::get_element_by_id(AK::FlyString const&) const Unexecuted instantiation: Web::DOM::NonElementParentNode<Web::DOM::DocumentFragment>::get_element_by_id(AK::FlyString const&) const Unexecuted instantiation: Web::DOM::NonElementParentNode<Web::SVG::SVGSVGElement>::get_element_by_id(AK::FlyString const&) const |
33 | | |
34 | | protected: |
35 | | NonElementParentNode() = default; |
36 | | }; |
37 | | |
38 | | } |