mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-08-13 03:29:49 +00:00
LibGfx+LibWeb: Store Typeface and Font-related types in RefPtr to const
This commit is contained in:
parent
ffd0259bef
commit
be2dd91289
Notes:
github-actions[bot]
2025-04-16 16:44:15 +00:00
Author: https://github.com/ADKaster
Commit: be2dd91289
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/4362
Reviewed-by: https://github.com/AtkinsSJ
Reviewed-by: https://github.com/Hendiadyoin1
13 changed files with 28 additions and 28 deletions
|
@ -198,7 +198,7 @@ public:
|
|||
return *m_first_available_computed_font;
|
||||
}
|
||||
|
||||
void set_computed_font_list(NonnullRefPtr<Gfx::FontCascadeList> font_list)
|
||||
void set_computed_font_list(NonnullRefPtr<Gfx::FontCascadeList const> font_list)
|
||||
{
|
||||
m_font_list = move(font_list);
|
||||
// https://drafts.csswg.org/css-fonts/#first-available-font
|
||||
|
@ -251,8 +251,8 @@ private:
|
|||
HashMap<PropertyID, NonnullRefPtr<CSSStyleValue const>> m_animated_property_values;
|
||||
|
||||
int m_math_depth { InitialValues::math_depth() };
|
||||
RefPtr<Gfx::FontCascadeList> m_font_list;
|
||||
RefPtr<Gfx::Font> m_first_available_computed_font;
|
||||
RefPtr<Gfx::FontCascadeList const> m_font_list;
|
||||
RefPtr<Gfx::Font const> m_first_available_computed_font;
|
||||
|
||||
Optional<CSSPixels> m_line_height;
|
||||
|
||||
|
|
|
@ -559,7 +559,7 @@ public:
|
|||
protected:
|
||||
struct {
|
||||
Color caret_color { InitialValues::caret_color() };
|
||||
RefPtr<Gfx::FontCascadeList> font_list {};
|
||||
RefPtr<Gfx::FontCascadeList const> font_list {};
|
||||
CSSPixels font_size { InitialValues::font_size() };
|
||||
int font_weight { InitialValues::font_weight() };
|
||||
Optional<Gfx::FontVariantAlternates> font_variant_alternates;
|
||||
|
@ -749,7 +749,7 @@ public:
|
|||
|
||||
void set_aspect_ratio(AspectRatio aspect_ratio) { m_noninherited.aspect_ratio = move(aspect_ratio); }
|
||||
void set_caret_color(Color caret_color) { m_inherited.caret_color = caret_color; }
|
||||
void set_font_list(NonnullRefPtr<Gfx::FontCascadeList> font_list) { m_inherited.font_list = move(font_list); }
|
||||
void set_font_list(NonnullRefPtr<Gfx::FontCascadeList const> font_list) { m_inherited.font_list = move(font_list); }
|
||||
void set_font_size(CSSPixels font_size) { m_inherited.font_size = font_size; }
|
||||
void set_font_weight(int font_weight) { m_inherited.font_weight = font_weight; }
|
||||
void set_font_variant_alternates(Optional<Gfx::FontVariantAlternates> font_variant_alternates) { m_inherited.font_variant_alternates = font_variant_alternates; }
|
||||
|
|
|
@ -27,9 +27,9 @@
|
|||
|
||||
namespace Web::CSS {
|
||||
|
||||
static NonnullRefPtr<Core::Promise<NonnullRefPtr<Gfx::Typeface>>> load_vector_font(JS::Realm& realm, ByteBuffer const& data)
|
||||
static NonnullRefPtr<Core::Promise<NonnullRefPtr<Gfx::Typeface const>>> load_vector_font(JS::Realm& realm, ByteBuffer const& data)
|
||||
{
|
||||
auto promise = Core::Promise<NonnullRefPtr<Gfx::Typeface>>::construct();
|
||||
auto promise = Core::Promise<NonnullRefPtr<Gfx::Typeface const>>::construct();
|
||||
|
||||
// FIXME: 'Asynchronously' shouldn't mean 'later on the main thread'.
|
||||
// Can we defer this to a background thread?
|
||||
|
|
|
@ -107,8 +107,8 @@ private:
|
|||
Vector<ParsedFontFace::Source> m_urls; // [[Urls]]
|
||||
ByteBuffer m_binary_data {}; // [[Data]]
|
||||
|
||||
RefPtr<Gfx::Typeface> m_parsed_font;
|
||||
RefPtr<Core::Promise<NonnullRefPtr<Gfx::Typeface>>> m_font_load_promise;
|
||||
RefPtr<Gfx::Typeface const> m_parsed_font;
|
||||
RefPtr<Core::Promise<NonnullRefPtr<Gfx::Typeface const>>> m_font_load_promise;
|
||||
|
||||
// https://drafts.csswg.org/css-font-loading/#css-connected
|
||||
bool m_is_css_connected { false };
|
||||
|
|
|
@ -229,7 +229,7 @@ void FontLoader::resource_did_load_or_fail()
|
|||
m_style_computer.did_load_font(m_family_name);
|
||||
}
|
||||
|
||||
RefPtr<Gfx::Font> FontLoader::font_with_point_size(float point_size)
|
||||
RefPtr<Gfx::Font const> FontLoader::font_with_point_size(float point_size)
|
||||
{
|
||||
if (!m_vector_font) {
|
||||
if (!resource())
|
||||
|
@ -261,7 +261,7 @@ void FontLoader::start_loading_next_url()
|
|||
set_resource(ResourceLoader::the().load_resource(Resource::Type::Generic, request));
|
||||
}
|
||||
|
||||
ErrorOr<NonnullRefPtr<Gfx::Typeface>> FontLoader::try_load_font()
|
||||
ErrorOr<NonnullRefPtr<Gfx::Typeface const>> FontLoader::try_load_font()
|
||||
{
|
||||
// FIXME: This could maybe use the format() provided in @font-face as well, since often the mime type is just application/octet-stream and we have to try every format
|
||||
auto mime_type = MimeSniff::MimeType::parse(resource()->mime_type());
|
||||
|
@ -295,7 +295,7 @@ struct StyleComputer::MatchingFontCandidate {
|
|||
|
||||
[[nodiscard]] RefPtr<Gfx::FontCascadeList const> font_with_point_size(float point_size) const
|
||||
{
|
||||
RefPtr<Gfx::FontCascadeList> font_list = Gfx::FontCascadeList::create();
|
||||
auto font_list = Gfx::FontCascadeList::create();
|
||||
if (auto* loader_list = loader_or_typeface.get_pointer<FontLoaderList*>(); loader_list) {
|
||||
for (auto const& loader : **loader_list) {
|
||||
if (auto font = loader->font_with_point_size(point_size); font)
|
||||
|
|
|
@ -320,9 +320,9 @@ public:
|
|||
virtual ~FontLoader() override;
|
||||
|
||||
Vector<Gfx::UnicodeRange> const& unicode_ranges() const { return m_unicode_ranges; }
|
||||
RefPtr<Gfx::Typeface> vector_font() const { return m_vector_font; }
|
||||
RefPtr<Gfx::Typeface const> vector_font() const { return m_vector_font; }
|
||||
|
||||
RefPtr<Gfx::Font> font_with_point_size(float point_size);
|
||||
RefPtr<Gfx::Font const> font_with_point_size(float point_size);
|
||||
void start_loading_next_url();
|
||||
|
||||
bool is_loading() const { return resource() && resource()->is_pending(); }
|
||||
|
@ -334,12 +334,12 @@ private:
|
|||
|
||||
void resource_did_load_or_fail();
|
||||
|
||||
ErrorOr<NonnullRefPtr<Gfx::Typeface>> try_load_font();
|
||||
ErrorOr<NonnullRefPtr<Gfx::Typeface const>> try_load_font();
|
||||
|
||||
StyleComputer& m_style_computer;
|
||||
FlyString m_family_name;
|
||||
Vector<Gfx::UnicodeRange> m_unicode_ranges;
|
||||
RefPtr<Gfx::Typeface> m_vector_font;
|
||||
RefPtr<Gfx::Typeface const> m_vector_font;
|
||||
Vector<::URL::URL> m_urls;
|
||||
Function<void(FontLoader const&)> m_on_load;
|
||||
Function<void()> m_on_fail;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue