From 355e373ce5cad685914e1dea8857ad23d4a17e07 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_json()` --- Userland/Libraries/LibWeb/MimeSniff/MimeType.cpp | 7 +++++++ Userland/Libraries/LibWeb/MimeSniff/MimeType.h | 1 + 2 files changed, 8 insertions(+) diff --git a/Userland/Libraries/LibWeb/MimeSniff/MimeType.cpp b/Userland/Libraries/LibWeb/MimeSniff/MimeType.cpp index e327d9bded..fa150252e3 100644 --- a/Userland/Libraries/LibWeb/MimeSniff/MimeType.cpp +++ b/Userland/Libraries/LibWeb/MimeSniff/MimeType.cpp @@ -335,4 +335,11 @@ bool MimeType::is_javascript() const "text/x-javascript"sv); } +// https://mimesniff.spec.whatwg.org/#json-mime-type +bool MimeType::is_json() const +{ + // A JSON MIME type is any MIME type whose subtype ends in "+json" or whose essence is "application/json" or "text/json". + return subtype().ends_with_bytes("+json"sv) || essence().is_one_of("application/json"sv, "text/json"sv); +} + } diff --git a/Userland/Libraries/LibWeb/MimeSniff/MimeType.h b/Userland/Libraries/LibWeb/MimeSniff/MimeType.h index 5fd01918e6..d85578842e 100644 --- a/Userland/Libraries/LibWeb/MimeSniff/MimeType.h +++ b/Userland/Libraries/LibWeb/MimeSniff/MimeType.h @@ -35,6 +35,7 @@ public: bool is_html() const; bool is_scriptable() const; bool is_javascript() const; + bool is_json() const; ErrorOr set_parameter(String name, String value);