LibWeb: Start fleshing out the "in table" parser insertion mode

This commit is contained in:
Andreas Kling 2020-05-25 20:30:34 +02:00
parent f62a8d3b19
commit 1e30ef239b
Notes: sideshowbarker 2024-07-19 06:08:56 +09:00
4 changed files with 78 additions and 1 deletions

View file

@ -35,7 +35,7 @@ StackOfOpenElements::~StackOfOpenElements()
{
}
bool StackOfOpenElements::has_in_scope_impl(const FlyString& tag_name, const Vector<FlyString> &list) const
bool StackOfOpenElements::has_in_scope_impl(const FlyString& tag_name, const Vector<FlyString>& list) const
{
for (ssize_t i = m_elements.size() - 1; i >= 0; --i) {
auto& node = m_elements.at(i);
@ -59,6 +59,15 @@ bool StackOfOpenElements::has_in_button_scope(const FlyString& tag_name) const
return has_in_scope_impl(tag_name, list);
}
bool StackOfOpenElements::has_in_table_scope(const FlyString& tag_name) const
{
auto list = s_base_list;
list.append("html");
list.append("table");
list.append("template");
return has_in_scope_impl(tag_name, list);
}
bool StackOfOpenElements::contains(const Element& element) const
{
for (auto& element_on_stack : m_elements) {