summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarol Kosek <krkk@serenityos.org>2021-07-29 15:36:10 +0200
committerAli Mohammad Pur <Ali.mpfard@gmail.com>2022-02-14 12:50:44 +0330
commitfb5e2670d634f8a024d76f28d931bc36988884b4 (patch)
treeb4ac0553306f85e052b605935c261ba90724706d
parent704bb361bbb40f01259d963ae5d20cd4b9c51482 (diff)
downloadserenity-fb5e2670d634f8a024d76f28d931bc36988884b4.zip
LibWeb: Fix highlighting HTML comments
Commit b193351a99 caused the HTML comments to flash when changing the text cursor. Also, when double-clicking on a comment, the selection started from the beginning of the file instead. The following message was displaying when `TOKENIZER_TRACE_DEBUG` was enabled: (Tokenizer::nth_last_position) Invalid position requested: 4th-last of 4. Returning (0-0). Changing the `nth_last_position` to 3 fixes this. I'm guessing that's because the parser is at that moment on the second hyphen of the `<!--` string, so it has to go back only by three characters.
-rw-r--r--Tests/LibWeb/TestHTMLTokenizer.cpp2
-rw-r--r--Userland/Libraries/LibWeb/HTML/Parser/HTMLTokenizer.cpp2
2 files changed, 2 insertions, 2 deletions
diff --git a/Tests/LibWeb/TestHTMLTokenizer.cpp b/Tests/LibWeb/TestHTMLTokenizer.cpp
index 71ca7409ee..da84b9e295 100644
--- a/Tests/LibWeb/TestHTMLTokenizer.cpp
+++ b/Tests/LibWeb/TestHTMLTokenizer.cpp
@@ -206,5 +206,5 @@ TEST_CASE(regression)
auto file_contents = file.value()->read_all();
auto tokens = run_tokenizer(file_contents);
u32 hash = hash_tokens(tokens);
- EXPECT_EQ(hash, 1280197787u);
+ EXPECT_EQ(hash, 3215459107u);
}
diff --git a/Userland/Libraries/LibWeb/HTML/Parser/HTMLTokenizer.cpp b/Userland/Libraries/LibWeb/HTML/Parser/HTMLTokenizer.cpp
index 0770b47c99..a4136bd181 100644
--- a/Userland/Libraries/LibWeb/HTML/Parser/HTMLTokenizer.cpp
+++ b/Userland/Libraries/LibWeb/HTML/Parser/HTMLTokenizer.cpp
@@ -382,7 +382,7 @@ _StartOfFunction:
DONT_CONSUME_NEXT_INPUT_CHARACTER;
if (consume_next_if_match("--")) {
create_new_token(HTMLToken::Type::Comment);
- m_current_token.set_start_position({}, nth_last_position(4));
+ m_current_token.set_start_position({}, nth_last_position(3));
SWITCH_TO(CommentStart);
}
if (consume_next_if_match("DOCTYPE", CaseSensitivity::CaseInsensitive)) {