1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-20 17:45:07 +00:00

LibWeb: Implement more of the foster parenting algorithm in the parser

This commit is contained in:
Andreas Kling 2020-06-21 17:00:55 +02:00
parent 213e2793bd
commit 966bc05fef
4 changed files with 58 additions and 12 deletions

View file

@ -140,4 +140,27 @@ Element* StackOfOpenElements::topmost_special_node_below(const Element& formatti
return found_element;
}
Element* StackOfOpenElements::last_element_with_tag_name(const FlyString& tag_name)
{
for (ssize_t i = m_elements.size() - 1; i >= 0; --i) {
auto& element = m_elements[i];
if (element.tag_name() == tag_name)
return &element;
}
return nullptr;
}
Element* StackOfOpenElements::element_before(const Element& target)
{
bool found_target = false;
for (ssize_t i = m_elements.size() - 1; i >= 0; --i) {
auto& element = m_elements[i];
if (&element == &target) {
found_target = true;
} else if (found_target)
return &element;
}
return nullptr;
}
}