ladybird/Libraries/LibWeb/CSS
Shannon Booth 5bed8f4055 LibURL+LibWeb: Make URL::basic_parse return an Optional<URL>
URL::basic_parse has a subtle bug where the resulting URL is not set
to valid when StateOveride is provided and the URL parser early returns
a valid URL.

This has not surfaced as a problem so far, as the only users of the
state override API provide an already valid URL buffer and also ignore
the result of basic parsing with a state override.

However, this bug surfaces implementing the URL pattern spec, which as
part of URL canonicalization:
 * Provides a dummy URL record
 * Basic URL parses that URL with state override
 * Checks the result of the URL parser to validate the URL

While we could set URL validity on every early return of the URL parser
during state override, it has been a long standing FIXME around the code
to try and remove the awkward validity state of the URL class. So this
commit makes the first stage of this change by migrating the basic
parser API to return Optional, which also happens to make this subtle
issue not a problem any more.
2025-01-11 10:08:29 -05:00
..
Parser LibWeb/CSS: Remove use of Dimension in calc() parsing 2025-01-08 14:28:54 +00:00
StyleValues LibWeb/CSS: Remove illegal <number-percentage> type 2025-01-08 14:28:54 +00:00
SyntaxHighlighter
Angle.cpp Revert "LibWeb/CSS: Rename CalculatedStyleValue -> CSSMathValue" 2024-12-21 18:14:28 +01:00
Angle.h Revert "LibWeb/CSS: Rename CalculatedStyleValue -> CSSMathValue" 2024-12-21 18:14:28 +01:00
AnimationEvent.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
AnimationEvent.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
AnimationEvent.idl
CalculatedOr.cpp Revert "LibWeb/CSS: Rename CalculatedStyleValue -> CSSMathValue" 2024-12-21 18:14:28 +01:00
CalculatedOr.h Revert "LibWeb/CSS: Rename CalculatedStyleValue -> CSSMathValue" 2024-12-21 18:14:28 +01:00
CascadedProperties.cpp LibWeb: Split StyleComputer work into two phases with separate outputs 2024-12-22 10:12:49 +01:00
CascadedProperties.h LibWeb: Split StyleComputer work into two phases with separate outputs 2024-12-22 10:12:49 +01:00
CascadeOrigin.h LibWeb: Split StyleComputer work into two phases with separate outputs 2024-12-22 10:12:49 +01:00
CharacterTypes.h LibWeb: Move CSS character type definitions to new header 2024-12-02 16:19:47 +00:00
Clip.cpp
Clip.h
ColumnCount.h Everywhere: Run clang-format 2024-12-28 05:39:32 -08:00
ComputedProperties.cpp LibWeb: Implement user-select 2025-01-08 14:37:28 +00:00
ComputedProperties.h LibWeb: Implement user-select 2025-01-08 14:37:28 +00:00
ComputedValues.h LibWeb: Implement user-select 2025-01-08 14:37:28 +00:00
CountersSet.cpp
CountersSet.h
CSS.cpp LibWeb: Stop passing Realm unnecessarily to parse CSS properties 2024-12-05 19:59:57 +01:00
CSS.h
CSS.idl
CSSAnimation.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
CSSAnimation.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
CSSAnimation.idl
CSSConditionRule.cpp
CSSConditionRule.h
CSSConditionRule.idl
CSSFontFaceRule.cpp LibURL+LibWeb: Make URL::serialize return a String 2024-12-04 16:34:13 +00:00
CSSFontFaceRule.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
CSSFontFaceRule.idl
CSSGroupingRule.cpp
CSSGroupingRule.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
CSSGroupingRule.idl
CSSImportRule.cpp LibWeb/CSS: Use fetch for CSS import rules 2024-12-22 12:30:09 +01:00
CSSImportRule.h LibWeb/CSS: Use fetch for CSS import rules 2024-12-22 12:30:09 +01:00
CSSImportRule.idl
CSSKeyframeRule.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
CSSKeyframeRule.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
CSSKeyframeRule.idl
CSSKeyframesRule.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
CSSKeyframesRule.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
CSSKeyframesRule.idl
CSSLayerBlockRule.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
CSSLayerBlockRule.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
CSSLayerBlockRule.idl
CSSLayerStatementRule.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
CSSLayerStatementRule.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
CSSLayerStatementRule.idl
CSSMediaRule.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
CSSMediaRule.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
CSSMediaRule.idl
CSSNamespaceRule.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
CSSNamespaceRule.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
CSSNamespaceRule.idl
CSSNestedDeclarations.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
CSSNestedDeclarations.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
CSSNestedDeclarations.idl
CSSNumericType.cpp LibWeb/CSS: Remove illegal <number-percentage> type 2025-01-08 14:28:54 +00:00
CSSNumericType.h LibWeb/CSS: Remove illegal <number-percentage> type 2025-01-08 14:28:54 +00:00
CSSPropertyRule.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
CSSPropertyRule.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
CSSPropertyRule.idl
CSSRule.cpp
CSSRule.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
CSSRule.idl
CSSRuleList.cpp LibGC: Rename MarkedVector => RootVector 2024-12-26 19:10:44 +01:00
CSSRuleList.h LibGC: Rename MarkedVector => RootVector 2024-12-26 19:10:44 +01:00
CSSRuleList.idl
CSSStyleDeclaration.cpp LibWeb: Serialize resolved CSS values in dedicated serialization mode 2024-12-07 08:31:03 +00:00
CSSStyleDeclaration.h LibWeb: Serialize resolved CSS values in dedicated serialization mode 2024-12-07 08:31:03 +00:00
CSSStyleDeclaration.idl LibWeb: Generate IDL attributes for all supported CSS properties 2024-11-14 19:50:22 +01:00
CSSStyleRule.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
CSSStyleRule.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
CSSStyleRule.idl
CSSStyleSheet.cpp LibGC: Rename MarkedVector => RootVector 2024-12-26 19:10:44 +01:00
CSSStyleSheet.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
CSSStyleSheet.idl
CSSStyleValue.cpp LibWeb/CSS: Implement the color-scheme CSS property 2025-01-08 11:18:13 +00:00
CSSStyleValue.h LibWeb/CSS: Implement the color-scheme CSS property 2025-01-08 11:18:13 +00:00
CSSSupportsRule.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
CSSSupportsRule.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
CSSSupportsRule.idl
CSSTransition.cpp LibWeb: Avoid crash from zero-duration transitions 2025-01-08 11:22:53 +00:00
CSSTransition.h LibWeb/DOM: Fire transition[cancel,start,run,end] events 2024-12-25 17:14:08 +01:00
CSSTransition.idl
Default.css LibWeb/CSS: Implement the color-scheme CSS property 2025-01-08 11:18:13 +00:00
Display.cpp LibWeb: Make CSS display serialization match other engines 2024-11-15 14:46:09 +01:00
Display.h
EasingFunctions.json
EdgeRect.cpp
EdgeRect.h
ElementCSSInlineStyle.idl
Enums.json LibWeb: Implement user-select 2025-01-08 14:37:28 +00:00
Fetch.cpp LibURL+LibWeb: Make URL::basic_parse return an Optional<URL> 2025-01-11 10:08:29 -05:00
Fetch.h LibWeb/CSS: Implement "fetch a style resource" algorithm 2024-12-22 12:30:09 +01:00
Filter.h Everywhere: Run clang-format 2024-12-28 05:39:32 -08:00
Flex.cpp
Flex.h
FontFace.cpp LibWeb: Remove unneeded spec deviation from font loading 2025-01-04 17:58:38 +00:00
FontFace.h LibWeb: Remove unneeded spec deviation from font loading 2025-01-04 17:58:38 +00:00
FontFace.idl
FontFaceSet.cpp LibGC: Rename MarkedVector => RootVector 2024-12-26 19:10:44 +01:00
FontFaceSet.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
FontFaceSet.idl
Frequency.cpp Revert "LibWeb/CSS: Rename CalculatedStyleValue -> CSSMathValue" 2024-12-21 18:14:28 +01:00
Frequency.h Revert "LibWeb/CSS: Rename CalculatedStyleValue -> CSSMathValue" 2024-12-21 18:14:28 +01:00
GeneralEnclosed.h
GridTrackPlacement.cpp
GridTrackPlacement.h Everywhere: Run clang-format 2024-12-28 05:39:32 -08:00
GridTrackSize.cpp
GridTrackSize.h
Interpolation.cpp Revert "LibWeb/CSS: Rename CalculatedStyleValue -> CSSMathValue" 2024-12-21 18:14:28 +01:00
Interpolation.h
Keywords.json LibWeb: Add font-variant-* css properties 2024-12-17 19:07:13 +01:00
Length.cpp Revert "LibWeb/CSS: Rename CalculatedStyleValue -> CSSMathValue" 2024-12-21 18:14:28 +01:00
Length.h Revert "LibWeb/CSS: Rename CalculatedStyleValue -> CSSMathValue" 2024-12-21 18:14:28 +01:00
LengthBox.cpp
LengthBox.h Revert "LibWeb/CSS: Rename CalculatedStyleValue -> CSSMathValue" 2024-12-21 18:14:28 +01:00
LinkStyle.idl
MathFunctions.json LibWeb/CSS: Use CSSNumericType for CalculationResult's numeric type 2024-12-21 18:14:28 +01:00
MediaFeatures.json
MediaList.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
MediaList.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
MediaList.idl
MediaQuery.cpp LibWeb: Add mode flag to CSSStyleValue::to_string() 2024-12-07 08:31:03 +00:00
MediaQuery.h LibWeb/CSS: Allow calc() values in media queries 2024-12-04 12:26:50 +00:00
MediaQueryList.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
MediaQueryList.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
MediaQueryList.idl
MediaQueryListEvent.cpp LibWeb/CSS: Create a MediaQueryListEvent when calling MQLE::create() 2024-12-25 11:56:37 +01:00
MediaQueryListEvent.h LibWeb/CSS: Create a MediaQueryListEvent when calling MQLE::create() 2024-12-25 11:56:37 +01:00
MediaQueryListEvent.idl
Number.h
ParsedFontFace.cpp
ParsedFontFace.h LibGfx: Return family names by reference to avoid unnecessairy cloning 2024-11-20 15:38:03 +01:00
Percentage.h
PercentageOr.cpp
PercentageOr.h Revert "LibWeb/CSS: Rename CalculatedStyleValue -> CSSMathValue" 2024-12-21 18:14:28 +01:00
PreferredColorScheme.cpp
PreferredColorScheme.h
PreferredContrast.cpp
PreferredContrast.h
PreferredMotion.cpp
PreferredMotion.h
Properties.json LibWeb: Implement user-select 2025-01-08 14:37:28 +00:00
PropertyName.h
PseudoClasses.json LibWeb: Implement popover methods 2024-12-06 12:39:14 +00:00
QuirksMode.css
Ratio.cpp
Ratio.h
Resolution.cpp
Resolution.h
ResolvedCSSStyleDeclaration.cpp LibWeb: Make CSS::ComputedProperties GC-allocated 2024-12-22 10:12:49 +01:00
ResolvedCSSStyleDeclaration.h LibWeb: Serialize resolved CSS values in dedicated serialization mode 2024-12-07 08:31:03 +00:00
Screen.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
Screen.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
Screen.idl LibWeb: Update Screen IDL definition to not inherit from EventTarget 2024-11-26 18:44:26 +01:00
ScreenOrientation.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
ScreenOrientation.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
ScreenOrientation.idl
Selector.cpp LibWeb: Further optimize :hover style invalidation 2025-01-04 20:32:35 +01:00
Selector.h LibWeb: Further optimize :hover style invalidation 2025-01-04 20:32:35 +01:00
SelectorEngine.cpp LibWeb: Optimize :hover style invalidation 2025-01-04 20:32:35 +01:00
SelectorEngine.h LibWeb: Optimize :hover style invalidation 2025-01-04 20:32:35 +01:00
Serialize.cpp LibWeb/CSS: Shorten the length of srgb serialization 2024-12-04 11:30:44 +00:00
Serialize.h LibWeb/CSS: Remove unused serialization helpers 2024-12-04 11:30:44 +00:00
Size.cpp Revert "LibWeb/CSS: Rename CalculatedStyleValue -> CSSMathValue" 2024-12-21 18:14:28 +01:00
Size.h Revert "LibWeb/CSS: Rename CalculatedStyleValue -> CSSMathValue" 2024-12-21 18:14:28 +01:00
Sizing.cpp
Sizing.h
StyleComputer.cpp LibWeb: Implement "preserves overrides" property of editing commands 2025-01-10 23:33:35 +01:00
StyleComputer.h LibWeb: Implement "preserves overrides" property of editing commands 2025-01-10 23:33:35 +01:00
StyleInvalidation.cpp LibWeb: Rename CSS::StyleProperties => CSS::ComputedProperties 2024-12-22 10:12:49 +01:00
StyleInvalidation.h
StyleProperty.cpp
StyleProperty.h
StyleSheet.cpp
StyleSheet.h LibWeb/CSS: Expose CSSStyleSheet's origin clean flag 2024-12-22 12:30:09 +01:00
StyleSheet.idl
StyleSheetIdentifier.cpp
StyleSheetIdentifier.h
StyleSheetList.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
StyleSheetList.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
StyleSheetList.idl
Supports.cpp
Supports.h LibWeb: Fix incorrect spec link for the @supports rule 2024-11-23 18:44:38 +00:00
SystemColor.cpp LibWeb/CSS: Implement the color-scheme CSS property 2025-01-08 11:18:13 +00:00
SystemColor.h LibWeb/CSS: Implement the color-scheme CSS property 2025-01-08 11:18:13 +00:00
Time.cpp Revert "LibWeb/CSS: Rename CalculatedStyleValue -> CSSMathValue" 2024-12-21 18:14:28 +01:00
Time.h Revert "LibWeb/CSS: Rename CalculatedStyleValue -> CSSMathValue" 2024-12-21 18:14:28 +01:00
Transformation.cpp
Transformation.h
TransformFunctions.json
TransitionEvent.cpp LibWeb/CSS: Add the TransitionEvent type 2024-12-25 17:14:08 +01:00
TransitionEvent.h LibWeb/CSS: Add the TransitionEvent type 2024-12-25 17:14:08 +01:00
TransitionEvent.idl LibWeb/CSS: Add the TransitionEvent type 2024-12-25 17:14:08 +01:00
VisualViewport.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
VisualViewport.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
VisualViewport.idl