1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-19 20:45:08 +00:00

LibWeb: Handle comment blocks when skipping unknown @-rules

This css definition was parsed incorrectly before:

```css
@media screen {
    /* Unclosed bracket in comment { */
    body {
        background: red;
    }
}
```
This commit is contained in:
K-Adam 2021-07-28 11:49:08 +02:00 committed by Andreas Kling
parent e426e15101
commit 15cdb702c2

View file

@ -1428,17 +1428,28 @@ public:
} }
// FIXME: We ignore other @-rules completely for now. // FIXME: We ignore other @-rules completely for now.
while (peek() != 0 && peek() != '{')
consume_one();
int level = 0; int level = 0;
for (;;) { bool in_comment = false;
while (peek() != 0) {
auto ch = consume_one(); auto ch = consume_one();
if (ch == '{') {
++level; if (!in_comment) {
} else if (ch == '}') { if (ch == '/' && peek() == '*') {
--level; consume_one();
if (level == 0) in_comment = true;
break; } else if (ch == '{') {
++level;
} else if (ch == '}') {
--level;
if (level == 0)
break;
}
} else {
if (ch == '*' && peek() == '/') {
consume_one();
in_comment = false;
}
} }
} }
} }