ladybird/Libraries/LibWeb/CSS/Parser
Sam Atkins bc00ef8314 LibWeb/CSS: Replace Parser "current property" with a stack of contexts
`current_property_id()` is insufficient to determine if a quirk is
allowed. For example, unitless lengths are allowed in certain
properties, but NOT if they are inside a calc() or other function. It's
also incorrect when we are parsing a longhand inside a shorthand. So
instead, replace that with a stack of value-parsing contexts. For now,
this is either properties or CSS functions, but in future can be
expanded to include media features and other places.

This lets us disallow quirks inside functions, like we're supposed to.

It also lays the groundwork for being able to more easily determine
what type a percentage inside a calculation should become, as this is
based on the same stack of contexts.
2025-01-13 10:59:16 +00:00
..
ComponentValue.cpp Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
ComponentValue.h Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
Dimension.h LibWeb/CSS: Add Parser::Dimension::to_string() 2024-12-18 12:21:22 +00:00
GradientParsing.cpp LibWeb/CSS: Replace Parser "current property" with a stack of contexts 2025-01-13 10:59:16 +00:00
Helpers.cpp Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
MediaParsing.cpp LibGC: Rename MarkedVector => RootVector 2024-12-26 19:10:44 +01:00
Parser.cpp LibWeb/CSS: Replace Parser "current property" with a stack of contexts 2025-01-13 10:59:16 +00:00
Parser.h LibWeb/CSS: Replace Parser "current property" with a stack of contexts 2025-01-13 10:59:16 +00:00
ParsingContext.cpp LibWeb/CSS: Make ParsingContext's Realm optional 2024-12-05 19:59:57 +01:00
ParsingContext.h LibWeb/CSS: Replace Parser "current property" with a stack of contexts 2025-01-13 10:59:16 +00:00
RuleParsing.cpp LibGC: Rename MarkedVector => RootVector 2024-12-26 19:10:44 +01:00
SelectorParsing.cpp LibWeb: Require CSS combinators to be followed by a simple selector 2024-11-23 09:49:33 +01:00
Token.cpp Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
Token.h Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
Tokenizer.cpp LibWeb: Move CSS character type definitions to new header 2024-12-02 16:19:47 +00:00
Tokenizer.h Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
TokenStream.h Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
Types.cpp Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
Types.h Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00