From 644cc1d7ee7d85f250208783ac2b2832b263acf8 Mon Sep 17 00:00:00 2001 From: Kemal Zebari Date: Tue, 19 Sep 2023 23:46:31 -0700 Subject: [PATCH] LibWeb/MimeSniff: Add `MimeType::is_archive()` --- Userland/Libraries/LibWeb/MimeSniff/MimeType.cpp | 10 ++++++++++ Userland/Libraries/LibWeb/MimeSniff/MimeType.h | 1 + 2 files changed, 11 insertions(+) diff --git a/Userland/Libraries/LibWeb/MimeSniff/MimeType.cpp b/Userland/Libraries/LibWeb/MimeSniff/MimeType.cpp index 4157960161..5ac43eab40 100644 --- a/Userland/Libraries/LibWeb/MimeSniff/MimeType.cpp +++ b/Userland/Libraries/LibWeb/MimeSniff/MimeType.cpp @@ -284,6 +284,16 @@ bool MimeType::is_zip_based() const return subtype().ends_with_bytes("+zip"sv) || essence().is_one_of("application/zip"sv); } +// https://mimesniff.spec.whatwg.org/#archive-mime-type +bool MimeType::is_archive() const +{ + // An archive MIME type is any MIME type whose essence is one of the following: + // - application/x-rar-compressed + // - application/zip + // - application/x-gzip + return essence().is_one_of("application/x-rar-compressed"sv, "application/zip"sv, "application/x-gzip"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 c5fecf1243..8d22153110 100644 --- a/Userland/Libraries/LibWeb/MimeSniff/MimeType.h +++ b/Userland/Libraries/LibWeb/MimeSniff/MimeType.h @@ -30,6 +30,7 @@ public: bool is_audio_or_video() const; bool is_font() const; bool is_zip_based() const; + bool is_archive() const; bool is_xml() const; bool is_html() const; bool is_javascript() const;