1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 22:38:13 +00:00

LibWeb: Parse "input" tags during the "in body" insertion mode

This commit is contained in:
Andreas Kling 2020-05-28 12:18:46 +02:00
parent 7aa7a2078f
commit 772b51038e
4 changed files with 26 additions and 0 deletions

View file

@ -751,6 +751,18 @@ void HTMLDocumentParser::handle_in_body(HTMLToken& token)
return;
}
if (token.is_start_tag() && token.tag_name() == "input") {
reconstruct_the_active_formatting_elements();
insert_html_element(token);
m_stack_of_open_elements.pop();
token.acknowledge_self_closing_flag_if_set();
auto type_attribute = token.attribute(HTML::AttributeNames::type);
if (type_attribute.is_null() || type_attribute != "hidden") {
m_frameset_ok = false;
}
return;
}
if (token.is_start_tag()) {
reconstruct_the_active_formatting_elements();
insert_html_element(token);

View file

@ -26,6 +26,7 @@
#pragma once
#include <AK/FlyString.h>
#include <AK/String.h>
#include <AK/StringBuilder.h>
#include <AK/Types.h>
@ -104,6 +105,16 @@ public:
m_tag.self_closing_acknowledged = true;
}
StringView attribute(const FlyString& attribute_name)
{
ASSERT(is_start_tag() || is_end_tag());
for (auto& attribute : m_tag.attributes) {
if (attribute_name == attribute.name_builder.string_view())
return attribute.value_builder.string_view();
}
return {};
}
Type type() const { return m_type; }
String to_string() const;