diff --git a/Userland/Libraries/LibWeb/MimeSniff/MimeType.cpp b/Userland/Libraries/LibWeb/MimeSniff/MimeType.cpp index 8eee0aa836..6565ec8247 100644 --- a/Userland/Libraries/LibWeb/MimeSniff/MimeType.cpp +++ b/Userland/Libraries/LibWeb/MimeSniff/MimeType.cpp @@ -252,6 +252,30 @@ bool MimeType::is_audio_or_video() const return type().is_one_of("audio"sv, "video"sv) || essence() == "application/ogg"sv; } +// https://mimesniff.spec.whatwg.org/#font-mime-type +bool MimeType::is_font() const +{ + // A font MIME type is any MIME type whose type is "font", or whose essence is one of the following: + // - application/font-cff + // - application/font-off + // - application/font-sfnt + // - application/font-ttf + // - application/font-woff + // - application/vnd.ms-fontobject + // - application/vnd.ms-opentype + if (type() == "font"sv) + return true; + + return essence().is_one_of( + "application/font-cff"sv, + "application/font-off"sv, + "application/font-sfnt"sv, + "application/font-ttf"sv, + "application/font-woff"sv, + "application/vnd.ms-fontobject"sv, + "application/vnd.ms-opentype"sv); +} + // https://mimesniff.spec.whatwg.org/#xml-mime-type bool MimeType::is_xml() const { diff --git a/Userland/Libraries/LibWeb/MimeSniff/MimeType.h b/Userland/Libraries/LibWeb/MimeSniff/MimeType.h index 9fb06aa3f8..e7aa8d6ec3 100644 --- a/Userland/Libraries/LibWeb/MimeSniff/MimeType.h +++ b/Userland/Libraries/LibWeb/MimeSniff/MimeType.h @@ -28,6 +28,7 @@ public: bool is_image() const; bool is_audio_or_video() const; + bool is_font() const; bool is_xml() const; bool is_html() const; bool is_javascript() const;