ladybird/Userland/Libraries/LibWeb/CSS
Mathis Wiehl 3a45bba4e0 LibWeb: Load alternative font urls if others fail
We don't support all parts of the font formats we assume as "supported"
in the CSS parser. For example, if an open type font has a CFF table, we
reject loading it. This meant that until now, when such an
unsupported-supported font url was first in the list of urls, we
couldn't load it at all, even when we would support a later url.

To resolve that, try loading all font urls one after each other, in case
we are not able to load the higher priority one.

This also resolves a FIXME related to spec compliant url prioritization.
Our CSS parser already filters and prioritizes font src urls in
compliance with the spec. However, we still had to resort to brittle
file extension matching, because some websites don't set the `format`
and if the first url in a src list happened to be one we don't support,
the font could not be loaded at all. This now is unnecessary because we
can try and discard the urls instead.
2023-03-18 13:47:51 +01:00
..
Parser LibWeb: Load alternative font urls if others fail 2023-03-18 13:47:51 +01:00
SyntaxHighlighter LibGfx+Userland: Make TextAttributes::underline_style optional 2023-03-15 14:55:49 +01:00
Angle.cpp Everywhere: Rename equals_ignoring_case => equals_ignoring_ascii_case 2023-03-10 13:15:44 +01:00
Angle.h LibWeb+WebContent: Use new String class in CSS::StyleValue 2023-01-09 11:09:31 +01:00
BackdropFilter.h Everywhere: Use ReadonlySpan<T> instead of Span<T const> 2023-02-08 19:15:45 +00:00
Clip.cpp LibWeb: Use rect value in CSS clip property 2022-08-07 22:40:11 +02:00
Clip.h LibWeb: Use rect value in CSS clip property 2022-08-07 22:40:11 +02:00
ComputedValues.h LibWeb+LibIDL: Fix (or paper over) various const-correctness issues 2023-02-21 00:54:04 +01:00
CSS.cpp LibWeb: Port the CSS namespace to IDL 2023-03-15 12:48:25 -04:00
CSS.h LibWeb: Port the CSS namespace to IDL 2023-03-15 12:48:25 -04:00
CSS.idl LibWeb: Port the CSS namespace to IDL 2023-03-15 12:48:25 -04:00
CSSConditionRule.cpp LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
CSSConditionRule.h LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
CSSConditionRule.idl LibWeb: Remove the NoInstanceWrapper extended IDL attribute 2022-09-06 00:27:09 +02:00
CSSFontFaceRule.cpp LibWeb: Make factory method of CSS::CSSFontFaceRule fallible 2023-02-18 00:52:47 +01:00
CSSFontFaceRule.h LibWeb: Make factory method of CSS::CSSFontFaceRule fallible 2023-02-18 00:52:47 +01:00
CSSFontFaceRule.idl LibWeb: Remove the NoInstanceWrapper extended IDL attribute 2022-09-06 00:27:09 +02:00
CSSGroupingRule.cpp LibJS+LibWeb: Wrap raw JS::Cell*/& fields in GCPtr/NonnullGCPtr 2023-03-15 08:48:49 +01:00
CSSGroupingRule.h LibJS+LibWeb: Wrap raw JS::Cell*/& fields in GCPtr/NonnullGCPtr 2023-03-15 08:48:49 +01:00
CSSGroupingRule.idl LibWeb: Remove the NoInstanceWrapper extended IDL attribute 2022-09-06 00:27:09 +02:00
CSSImportRule.cpp LibWeb: Make factory method of CSS::CSSImportRule fallible 2023-02-18 00:52:47 +01:00
CSSImportRule.h LibWeb: Make factory method of CSS::CSSImportRule fallible 2023-02-18 00:52:47 +01:00
CSSImportRule.idl LibWeb: Remove the NoInstanceWrapper extended IDL attribute 2022-09-06 00:27:09 +02:00
CSSMediaRule.cpp LibJS+LibWeb: Wrap raw JS::Cell*/& fields in GCPtr/NonnullGCPtr 2023-03-15 08:48:49 +01:00
CSSMediaRule.h LibJS+LibWeb: Wrap raw JS::Cell*/& fields in GCPtr/NonnullGCPtr 2023-03-15 08:48:49 +01:00
CSSMediaRule.idl LibWeb: Remove the NoInstanceWrapper extended IDL attribute 2022-09-06 00:27:09 +02:00
CSSRule.cpp AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
CSSRule.h AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
CSSRule.idl LibWeb: Remove the NoInstanceWrapper extended IDL attribute 2022-09-06 00:27:09 +02:00
CSSRuleList.cpp LibJS+LibWeb: Wrap raw JS::Cell*/& fields in GCPtr/NonnullGCPtr 2023-03-15 08:48:49 +01:00
CSSRuleList.h LibJS+LibWeb: Wrap raw JS::Cell*/& fields in GCPtr/NonnullGCPtr 2023-03-15 08:48:49 +01:00
CSSRuleList.idl LibWeb: Remove the NoInstanceWrapper extended IDL attribute 2022-09-06 00:27:09 +02:00
CSSStyleDeclaration.cpp LibWeb: Remove CSS::Parser::ParsingContext's default constructor 2023-03-07 11:51:12 +00:00
CSSStyleDeclaration.h LibWeb+LibIDL: Fix (or paper over) various const-correctness issues 2023-02-21 00:54:04 +01:00
CSSStyleDeclaration.idl LibIDL: Also parse extended attributes after 'optional' 2023-03-05 21:59:16 +00:00
CSSStyleRule.cpp LibJS+LibWeb: Wrap raw JS::Cell*/& fields in GCPtr/NonnullGCPtr 2023-03-15 08:48:49 +01:00
CSSStyleRule.h LibJS+LibWeb: Wrap raw JS::Cell*/& fields in GCPtr/NonnullGCPtr 2023-03-15 08:48:49 +01:00
CSSStyleRule.idl LibWeb: Remove the NoInstanceWrapper extended IDL attribute 2022-09-06 00:27:09 +02:00
CSSStyleSheet.cpp LibJS+LibWeb: Wrap raw JS::Cell*/& fields in GCPtr/NonnullGCPtr 2023-03-15 08:48:49 +01:00
CSSStyleSheet.h LibJS+LibWeb: Wrap raw JS::Cell*/& fields in GCPtr/NonnullGCPtr 2023-03-15 08:48:49 +01:00
CSSStyleSheet.idl LibWeb: Add Exposed attribute and IDL spec links where missing 2022-10-09 10:14:57 +02:00
CSSSupportsRule.cpp LibWeb: Remove CSS::Parser::ParsingContext's default constructor 2023-03-07 11:51:12 +00:00
CSSSupportsRule.h Everywhere: Remove NonnullRefPtr.h includes 2023-03-06 23:46:35 +01:00
CSSSupportsRule.idl LibWeb: Remove the NoInstanceWrapper extended IDL attribute 2022-09-06 00:27:09 +02:00
Default.css LibWeb: Re-implement checkbox painting using the UA stylesheet 2023-02-12 00:15:52 +00:00
Display.cpp LibWeb: Port CSS::Display to new Strings 2023-02-15 12:48:26 -05:00
Display.h LibWeb: Port CSS::Display to new Strings 2023-02-15 12:48:26 -05:00
Enums.json LibWeb: Support "start" and "end" values for justify-content 2023-01-04 11:50:03 +01:00
FontFace.cpp LibWeb: Port FontFace to new Strings 2023-02-19 00:51:16 +01:00
FontFace.h LibWeb: Port FontFace to new Strings 2023-02-19 00:51:16 +01:00
Frequency.cpp Everywhere: Rename equals_ignoring_case => equals_ignoring_ascii_case 2023-03-10 13:15:44 +01:00
Frequency.h LibWeb+WebContent: Use new String class in CSS::StyleValue 2023-01-09 11:09:31 +01:00
GeneralEnclosed.h LibWeb: Port GeneralEnclosed to new Strings 2023-02-19 00:51:16 +01:00
GridTrackPlacement.cpp LibWeb: Use String class in certain CSS Grid classes 2023-01-21 14:35:00 +01:00
GridTrackPlacement.h LibWeb: Use String class in certain CSS Grid classes 2023-01-21 14:35:00 +01:00
GridTrackSize.cpp Everywhere: Use _{short_,}string to create Strings from literals 2023-02-25 20:51:49 +01:00
GridTrackSize.h LibWeb: Parse min and max-content 2023-01-21 14:35:00 +01:00
Identifiers.json LibWeb: Parse font-stretch CSS property 2023-02-03 12:49:13 +00:00
Length.cpp Everywhere: Rename equals_ignoring_case => equals_ignoring_ascii_case 2023-03-10 13:15:44 +01:00
Length.h LibWeb: Remove unused includes for DeprecatedString 2023-02-15 12:48:26 -05:00
LengthBox.cpp LibWeb: Resolve cyclic declaration/definitions involving Length 2022-09-15 14:45:38 +01:00
LengthBox.h LibWeb: Resolve cyclic declaration/definitions involving Length 2022-09-15 14:45:38 +01:00
LinkStyle.idl LibWeb: Extract the LinkStyle IDL mixin 2022-07-29 17:15:49 +01:00
MediaFeatures.json LibWeb: Add missing MEDIAQUERIES-5 media-features 2022-03-16 22:07:53 +01:00
MediaList.cpp LibWeb: Remove CSS::Parser::ParsingContext's default constructor 2023-03-07 11:51:12 +00:00
MediaList.h Everywhere: Remove NonnullRefPtr.h includes 2023-03-06 23:46:35 +01:00
MediaList.idl LibWeb: Remove the NoInstanceWrapper extended IDL attribute 2022-09-06 00:27:09 +02:00
MediaQuery.cpp Everywhere: Rename equals_ignoring_case => equals_ignoring_ascii_case 2023-03-10 13:15:44 +01:00
MediaQuery.h Everywhere: Remove NonnullOwnPtr.h includes 2023-03-06 23:46:35 +01:00
MediaQueryList.cpp Everywhere: Stop using NonnullRefPtrVector 2023-03-06 23:46:35 +01:00
MediaQueryList.h Everywhere: Stop using NonnullRefPtrVector 2023-03-06 23:46:35 +01:00
MediaQueryList.idl LibWeb: Replace ad-hoc EventHandler type with callback function typedef 2022-03-31 01:10:47 +02:00
MediaQueryListEvent.cpp LibWeb: Port MediaQueryListEvent to new String 2023-03-05 18:25:59 +00:00
MediaQueryListEvent.h LibWeb: Port MediaQueryListEvent to new String 2023-03-05 18:25:59 +00:00
MediaQueryListEvent.idl LibWeb: Port MediaQueryListEvent to new String 2023-03-05 18:25:59 +00:00
Number.h LibWeb+WebContent: Use new String class in CSS::StyleValue 2023-01-09 11:09:31 +01:00
Percentage.cpp LibWeb: Stop handling impossible Percentage return values 2022-07-21 16:36:08 +02:00
Percentage.h LibWeb+WebContent: Use new String class in CSS::StyleValue 2023-01-09 11:09:31 +01:00
PreferredColorScheme.cpp Everywhere: Rename equals_ignoring_case => equals_ignoring_ascii_case 2023-03-10 13:15:44 +01:00
PreferredColorScheme.h LibWeb: Use StringView in CSS::PreferredColorScheme 2023-02-15 12:48:26 -05:00
Properties.json LibWeb: Parse font-stretch CSS property 2023-02-03 12:49:13 +00:00
QuirksMode.css LibWeb: Flesh out the default "quirks mode" style sheet 2022-09-20 14:48:07 +02:00
Ratio.cpp LibWeb+WebContent: Use new String class in CSS::StyleValue 2023-01-09 11:09:31 +01:00
Ratio.h LibWeb+WebContent: Use new String class in CSS::StyleValue 2023-01-09 11:09:31 +01:00
Resolution.cpp Everywhere: Rename equals_ignoring_case => equals_ignoring_ascii_case 2023-03-10 13:15:44 +01:00
Resolution.h LibWeb+WebContent: Use new String class in CSS::StyleValue 2023-01-09 11:09:31 +01:00
ResolvedCSSStyleDeclaration.cpp LibWeb: Rename Layout::InitialContainingBlock to Layout::Viewport 2023-02-28 12:21:56 +01:00
ResolvedCSSStyleDeclaration.h LibWeb+LibIDL: Fix (or paper over) various const-correctness issues 2023-02-21 00:54:04 +01:00
Screen.cpp LibWeb: Make factory method of CSS::Screen fallible 2023-02-18 00:52:47 +01:00
Screen.h LibWeb: Make factory method of CSS::Screen fallible 2023-02-18 00:52:47 +01:00
Screen.idl LibWeb: Add Exposed attribute and IDL spec links where missing 2022-10-09 10:14:57 +02:00
Selector.cpp Everywhere: Rename equals_ignoring_case => equals_ignoring_ascii_case 2023-03-10 13:15:44 +01:00
Selector.h Everywhere: Remove NonnullRefPtr.h includes 2023-03-06 23:46:35 +01:00
SelectorEngine.cpp LibWeb: Use from_deprecated_fly_string() instead of from_utf8() 2023-03-11 18:32:33 +00:00
SelectorEngine.h LibWeb: Match styles for pseudo-elements 2022-02-25 19:35:34 +01:00
Serialize.cpp LibWeb: Port CSS/Serialize.{h,cpp} to new Strings, and propagate errors 2023-02-15 12:48:26 -05:00
Serialize.h LibWeb: Port CSS/Serialize.{h,cpp} to new Strings, and propagate errors 2023-02-15 12:48:26 -05:00
Size.cpp Everywhere: Use _{short_,}string to create Strings from literals 2023-02-25 20:51:49 +01:00
Size.h LibWeb+WebContent: Use new String class in CSS::StyleValue 2023-01-09 11:09:31 +01:00
StyleComputer.cpp LibWeb: Load alternative font urls if others fail 2023-03-18 13:47:51 +01:00
StyleComputer.h LibJS+LibWeb: Wrap raw JS::Cell*/& fields in GCPtr/NonnullGCPtr 2023-03-15 08:48:49 +01:00
StyleProperties.cpp LibWeb: Stop using NonnullRefPtrVector for StyleValueVector 2023-03-06 23:46:35 +01:00
StyleProperties.h LibWeb+LibIDL: Fix (or paper over) various const-correctness issues 2023-02-21 00:54:04 +01:00
StyleSheet.cpp LibWeb: Respect media attribute of style tag 2022-11-14 14:47:37 +00:00
StyleSheet.h LibJS+LibWeb: Wrap raw JS::Cell*/& fields in GCPtr/NonnullGCPtr 2023-03-15 08:48:49 +01:00
StyleSheet.idl LibWeb: Respect media attribute of style tag 2022-11-14 14:47:37 +00:00
StyleSheetList.cpp LibJS+LibWeb: Wrap raw JS::Cell*/& fields in GCPtr/NonnullGCPtr 2023-03-15 08:48:49 +01:00
StyleSheetList.h LibJS+LibWeb: Wrap raw JS::Cell*/& fields in GCPtr/NonnullGCPtr 2023-03-15 08:48:49 +01:00
StyleSheetList.idl LibWeb: Remove the NoInstanceWrapper extended IDL attribute 2022-09-06 00:27:09 +02:00
StyleValue.cpp Everywhere: Stop using NonnullOwnPtrVector 2023-03-06 23:46:35 +01:00
StyleValue.h Everywhere: Remove NonnullOwnPtr.h includes 2023-03-06 23:46:35 +01:00
Supports.cpp LibWeb: Remove CSS::Parser::ParsingContext's default constructor 2023-03-07 11:51:12 +00:00
Supports.h LibWeb: Remove CSS::Parser::ParsingContext's default constructor 2023-03-07 11:51:12 +00:00
Time.cpp Everywhere: Rename equals_ignoring_case => equals_ignoring_ascii_case 2023-03-10 13:15:44 +01:00
Time.h LibWeb+WebContent: Use new String class in CSS::StyleValue 2023-01-09 11:09:31 +01:00
TransformFunctions.json LibWeb: Support translate3d 2022-11-02 11:04:23 +00:00
UnicodeRange.h LibWeb: Port CSS::UnicodeRange to new Strings 2023-02-15 12:48:26 -05:00