diff --git a/Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp b/Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp index 5102a187a6..1f438e2227 100644 --- a/Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp +++ b/Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp @@ -2341,7 +2341,10 @@ Optional Parser::parse_url_function(ComponentValue const& component_val if (data_url.data_mime_type().starts_with("image"sv, CaseSensitivity::CaseInsensitive)) return data_url; break; - + case AllowedDataUrlType::Font: + if (data_url.data_mime_type().starts_with("font"sv, CaseSensitivity::CaseInsensitive)) + return data_url; + break; default: break; } @@ -4820,9 +4823,8 @@ Vector Parser::parse_font_face_src(TokenStream auto& first = source_tokens.next_token(); // [ format()]? - // FIXME: Allow data urls for fonts. // FIXME: Implement optional tech() function from CSS-Fonts-4. - if (auto maybe_url = parse_url_function(first); maybe_url.has_value()) { + if (auto maybe_url = parse_url_function(first, AllowedDataUrlType::Font); maybe_url.has_value()) { auto url = maybe_url.release_value(); Optional format; diff --git a/Userland/Libraries/LibWeb/CSS/Parser/Parser.h b/Userland/Libraries/LibWeb/CSS/Parser/Parser.h index 004e665da8..24592381aa 100644 --- a/Userland/Libraries/LibWeb/CSS/Parser/Parser.h +++ b/Userland/Libraries/LibWeb/CSS/Parser/Parser.h @@ -318,6 +318,7 @@ private: enum class AllowedDataUrlType { None, Image, + Font, }; Optional parse_url_function(ComponentValue const&, AllowedDataUrlType = AllowedDataUrlType::None);