mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-08-18 16:30:50 +00:00
LibWeb: Allow anonymous layer block rule with no declarations
This commit is contained in:
parent
30cdacc05a
commit
701fcb9e87
Notes:
github-actions[bot]
2025-06-17 07:59:15 +00:00
Author: https://github.com/tcl3
Commit: 701fcb9e87
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/5111
Reviewed-by: https://github.com/AtkinsSJ ✅
6 changed files with 51 additions and 2 deletions
|
@ -441,6 +441,7 @@ Optional<AtRule> Parser::consume_an_at_rule(TokenStream<T>& input, Nested nested
|
|||
.name = ((Token)input.consume_a_token()).at_keyword(),
|
||||
.prelude = {},
|
||||
.child_rules_and_lists_of_declarations = {},
|
||||
.is_block_rule = false,
|
||||
};
|
||||
|
||||
// Process input:
|
||||
|
@ -479,6 +480,7 @@ Optional<AtRule> Parser::consume_an_at_rule(TokenStream<T>& input, Nested nested
|
|||
// Consume a block from input, and assign the result to rule’s child rules.
|
||||
m_rule_context.append(rule_context_type_for_at_rule(rule.name));
|
||||
rule.child_rules_and_lists_of_declarations = consume_a_block(input);
|
||||
rule.is_block_rule = true;
|
||||
m_rule_context.take_last();
|
||||
|
||||
// If rule is valid in the current context, return it. Otherwise, return nothing.
|
||||
|
|
|
@ -288,7 +288,7 @@ Optional<FlyString> Parser::parse_layer_name(TokenStream<ComponentValue>& tokens
|
|||
GC::Ptr<CSSRule> Parser::convert_to_layer_rule(AtRule const& rule, Nested nested)
|
||||
{
|
||||
// https://drafts.csswg.org/css-cascade-5/#at-layer
|
||||
if (!rule.child_rules_and_lists_of_declarations.is_empty()) {
|
||||
if (rule.is_block_rule) {
|
||||
// CSSLayerBlockRule
|
||||
// @layer <layer-name>? {
|
||||
// <rule-list>
|
||||
|
|
|
@ -31,6 +31,7 @@ struct AtRule {
|
|||
FlyString name;
|
||||
Vector<ComponentValue> prelude;
|
||||
Vector<RuleOrListOfDeclarations> child_rules_and_lists_of_declarations;
|
||||
bool is_block_rule { false };
|
||||
|
||||
void for_each(AtRuleVisitor&& visit_at_rule, QualifiedRuleVisitor&& visit_qualified_rule, DeclarationVisitor&& visit_declaration) const;
|
||||
void for_each_as_declaration_list(DeclarationVisitor&& visit) const;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue