diff --git a/Userland/Libraries/LibWeb/MimeSniff/MimeType.cpp b/Userland/Libraries/LibWeb/MimeSniff/MimeType.cpp index 6565ec8247..4157960161 100644 --- a/Userland/Libraries/LibWeb/MimeSniff/MimeType.cpp +++ b/Userland/Libraries/LibWeb/MimeSniff/MimeType.cpp @@ -276,6 +276,14 @@ bool MimeType::is_font() const "application/vnd.ms-opentype"sv); } +// https://mimesniff.spec.whatwg.org/#zip-based-mime-type +bool MimeType::is_zip_based() const +{ + // A ZIP-based MIME type is any MIME type whose subtype ends in "+zip" or whose essence is one of the following: + // - application/zip + return subtype().ends_with_bytes("+zip"sv) || essence().is_one_of("application/zip"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 e7aa8d6ec3..c5fecf1243 100644 --- a/Userland/Libraries/LibWeb/MimeSniff/MimeType.h +++ b/Userland/Libraries/LibWeb/MimeSniff/MimeType.h @@ -29,6 +29,7 @@ public: bool is_image() const; bool is_audio_or_video() const; bool is_font() const; + bool is_zip_based() const; bool is_xml() const; bool is_html() const; bool is_javascript() const;