LibWeb: Add a way to stop the new HTML parser

Some things are specced to "stop parsing", which basically just means
to stop fetching tokens and jump to "The end"
This commit is contained in:
Andreas Kling 2020-05-28 18:55:18 +02:00
parent 00b44ab148
commit 68b1bdc234
Notes: sideshowbarker 2024-07-19 06:01:32 +09:00
2 changed files with 11 additions and 3 deletions

View file

@ -76,6 +76,11 @@ void HTMLDocumentParser::run(const URL& url)
dbg() << "[" << insertion_mode_name() << "] " << token.to_string();
#endif
process_using_the_rules_for(m_insertion_mode, token);
if (m_stop_parsing) {
dbg() << "Stop parsing! :^)";
break;
}
}
// "The end"
@ -497,8 +502,8 @@ void HTMLDocumentParser::handle_after_body(HTMLToken& token)
}
if (token.is_end_of_file()) {
// FIXME: Stop parsing!
TODO();
stop_parsing();
return;
}
if (token.is_end_tag() && token.tag_name() == "html") {
@ -522,7 +527,7 @@ void HTMLDocumentParser::handle_after_after_body(HTMLToken& token)
}
if (token.is_end_of_file()) {
dbg() << "Stop parsing! :^)";
stop_parsing();
return;
}
ASSERT_NOT_REACHED();