LibWeb: Relax HTML parser to allow more tags inside <select>

This implements parsing part of customizable <select> spec update.
See whatwg/html PR #10548.

Two failing subtests in `html5lib_innerHTML_tests_innerHTML_1.html`
and `customizable-select/select-parsing.html` are due to the spec
still disallowing `<input>` inside `<select>`, even though Chrome
has already implemented this behavoir (see whatwg/html#11288).
This commit is contained in:
Feng Yu 2025-10-23 20:44:10 -07:00 committed by Sam Atkins
parent 315ffb91af
commit d2029b1814
Notes: github-actions[bot] 2025-12-04 17:18:25 +00:00
17 changed files with 379 additions and 384 deletions

View file

@ -39,7 +39,6 @@ public:
bool has_in_button_scope(FlyString const& tag_name) const;
bool has_in_table_scope(FlyString const& tag_name) const;
bool has_in_list_item_scope(FlyString const& tag_name) const;
bool has_in_select_scope(FlyString const& tag_name) const;
bool has_in_scope(DOM::Element const&) const;
@ -49,7 +48,7 @@ public:
auto const& elements() const { return m_elements; }
auto& elements() { return m_elements; }
void pop_until_an_element_with_tag_name_has_been_popped(FlyString const& local_name);
void pop_until_an_element_with_tag_name_has_been_popped(FlyString const& tag_name);
GC::Ptr<DOM::Element> topmost_special_node_below(DOM::Element const&);