diff --git a/Ladybird/FontPlugin.cpp b/Ladybird/FontPlugin.cpp index fb17bb87368..8cd60744aa3 100644 --- a/Ladybird/FontPlugin.cpp +++ b/Ladybird/FontPlugin.cpp @@ -61,6 +61,17 @@ Gfx::Font& FontPlugin::default_fixed_width_font() return *m_default_fixed_width_font; } +RefPtr FontPlugin::default_emoji_font(float point_size) +{ +#ifdef AK_OS_MACOS + auto default_emoji_font_name = "Apple Color Emoji"_fly_string; +#else + auto default_emoji_font_name = "Noto Color Emoji"_fly_string; +#endif + + return Gfx::FontDatabase::the().get(default_emoji_font_name, point_size, 400, Gfx::FontWidth::Normal, 0); +} + #ifdef USE_FONTCONFIG static Optional query_fontconfig_for_generic_family(Web::Platform::GenericFont generic_font) { diff --git a/Ladybird/FontPlugin.h b/Ladybird/FontPlugin.h index 56d7ff51d64..a8db577fded 100644 --- a/Ladybird/FontPlugin.h +++ b/Ladybird/FontPlugin.h @@ -19,6 +19,7 @@ public: virtual Gfx::Font& default_font() override; virtual Gfx::Font& default_fixed_width_font() override; + virtual RefPtr default_emoji_font(float point_size) override; virtual FlyString generic_font_name(Web::Platform::GenericFont) override; void update_generic_fonts(); diff --git a/Userland/Libraries/LibWeb/CSS/StyleComputer.cpp b/Userland/Libraries/LibWeb/CSS/StyleComputer.cpp index e65a3ffed76..83d27dee5df 100644 --- a/Userland/Libraries/LibWeb/CSS/StyleComputer.cpp +++ b/Userland/Libraries/LibWeb/CSS/StyleComputer.cpp @@ -2325,6 +2325,10 @@ RefPtr StyleComputer::compute_font_for_style_values( font_list->extend(*other_font_list); } + if (auto emoji_font = Platform::FontPlugin::the().default_emoji_font(font_size_in_pt); emoji_font) { + font_list->add(*emoji_font); + } + auto found_font = StyleProperties::font_fallback(monospace, bold); font_list->set_last_resort_font(found_font->with_size(font_size_in_pt)); diff --git a/Userland/Libraries/LibWeb/Platform/FontPlugin.h b/Userland/Libraries/LibWeb/Platform/FontPlugin.h index 0825c909e5a..7521459e1d3 100644 --- a/Userland/Libraries/LibWeb/Platform/FontPlugin.h +++ b/Userland/Libraries/LibWeb/Platform/FontPlugin.h @@ -33,6 +33,7 @@ public: virtual Gfx::Font& default_font() = 0; virtual Gfx::Font& default_fixed_width_font() = 0; + virtual RefPtr default_emoji_font(float point_size) = 0; virtual FlyString generic_font_name(GenericFont) = 0; };