From 3406d500a42204b344f12cd765e5c6fb5abe6bf6 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Sat, 12 Aug 2023 15:23:38 +0200 Subject: [PATCH] LibWeb: Hook up WOFF2 decompression in the StyleComputer With this, we now support WOFF2 fonts on the web :^) --- Userland/Libraries/LibWeb/CSS/StyleComputer.cpp | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/Userland/Libraries/LibWeb/CSS/StyleComputer.cpp b/Userland/Libraries/LibWeb/CSS/StyleComputer.cpp index b812212777..52fa404942 100644 --- a/Userland/Libraries/LibWeb/CSS/StyleComputer.cpp +++ b/Userland/Libraries/LibWeb/CSS/StyleComputer.cpp @@ -21,6 +21,7 @@ #include #include #include +#include #include #include #include @@ -158,13 +159,25 @@ private: return TRY(OpenType::Font::try_load_from_externally_owned_memory(resource()->encoded_data())); if (mime_type == "font/woff"sv || mime_type == "application/font-woff"sv) return TRY(WOFF::Font::try_load_from_externally_owned_memory(resource()->encoded_data())); + if (mime_type == "font/woff2"sv || mime_type == "application/font-woff2"sv) { + auto woff2 = WOFF2::Font::try_load_from_externally_owned_memory(resource()->encoded_data()); + if (woff2.is_error()) { + dbgln("WOFF2 error: {}", woff2.error()); + return woff2.release_error(); + } + return woff2.release_value(); + } auto ttf = OpenType::Font::try_load_from_externally_owned_memory(resource()->encoded_data()); if (!ttf.is_error()) return ttf.release_value(); auto woff = WOFF::Font::try_load_from_externally_owned_memory(resource()->encoded_data()); if (!woff.is_error()) return woff.release_value(); - return ttf.release_error(); + auto woff2 = WOFF2::Font::try_load_from_externally_owned_memory(resource()->encoded_data()); + if (!woff2.is_error()) + return woff2.release_value(); + dbgln("WOFF2 error: {}", woff2.error()); + return woff2.release_error(); } StyleComputer& m_style_computer;