mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-04-21 20:15:17 +00:00
LibWeb: Fix parsing of "<textarea></textarea>"
When handling a "textarea" start tag, we have to ignore the next token if it's an LF ('\n'). However, we were not switching the tokenizer state before fetching the lookahead token, and this caused us to force the tokenizer into the RCDATA state too late, effectively getting it stuck in that state for way longer than it should be. Fixes #2508.
This commit is contained in:
parent
4e71684a3a
commit
b4591f0037
Notes:
sideshowbarker
2024-07-19 05:49:24 +09:00
Author: https://github.com/awesomekling Commit: https://github.com/SerenityOS/serenity/commit/b4591f00374
1 changed files with 2 additions and 1 deletions
|
@ -1283,12 +1283,13 @@ void HTMLDocumentParser::handle_in_body(HTMLToken& token)
|
|||
if (token.is_start_tag() && token.tag_name() == "textarea") {
|
||||
insert_html_element(token);
|
||||
|
||||
m_tokenizer.switch_to({}, HTMLTokenizer::State::RCDATA);
|
||||
|
||||
// If the next token is a U+000A LINE FEED (LF) character token,
|
||||
// then ignore that token and move on to the next one.
|
||||
// (Newlines at the start of pre blocks are ignored as an authoring convenience.)
|
||||
auto next_token = m_tokenizer.next_token();
|
||||
|
||||
m_tokenizer.switch_to({}, HTMLTokenizer::State::RCDATA);
|
||||
m_original_insertion_mode = m_insertion_mode;
|
||||
m_frameset_ok = false;
|
||||
m_insertion_mode = InsertionMode::Text;
|
||||
|
|
Loading…
Add table
Reference in a new issue