chore: fix warnings for Windows-specific fonts code (#37063)

Fix warnings from `components/fonts/platform/windows/font.rs` and
`components/fonts/platform/windows/font_list.rs` due to deprecations
from dwrote.

Testing: none, should behave as it did before

---------

Signed-off-by: Ashwin Naren <arihant2math@gmail.com>
Co-authored-by: Martin Robinson <mrobinson@igalia.com>
This commit is contained in:
Ashwin Naren 2025-05-21 09:30:43 -07:00 committed by GitHub
parent 856ffa6ecb
commit cebb1619ae
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 19 additions and 7 deletions

View file

@ -132,7 +132,9 @@ impl PlatformFontMethods for PlatformFont {
pt_size: Option<Au>, pt_size: Option<Au>,
) -> Result<PlatformFont, &'static str> { ) -> Result<PlatformFont, &'static str> {
let font_face = FontCollection::system() let font_face = FontCollection::system()
.get_font_from_descriptor(&font_identifier.font_descriptor) .font_from_descriptor(&font_identifier.font_descriptor)
.ok()
.flatten()
.ok_or("Could not create Font from descriptor")? .ok_or("Could not create Font from descriptor")?
.create_font_face(); .create_font_face();
Self::new(font_face, pt_size) Self::new(font_face, pt_size)

View file

@ -25,7 +25,9 @@ where
{ {
let system_fc = FontCollection::system(); let system_fc = FontCollection::system();
for family in system_fc.families_iter() { for family in system_fc.families_iter() {
callback(family.name()); if let Ok(family_name) = family.family_name() {
callback(family_name);
}
} }
} }
@ -40,13 +42,17 @@ pub struct LocalFontIdentifier {
impl LocalFontIdentifier { impl LocalFontIdentifier {
pub fn index(&self) -> u32 { pub fn index(&self) -> u32 {
FontCollection::system() FontCollection::system()
.get_font_from_descriptor(&self.font_descriptor) .font_from_descriptor(&self.font_descriptor)
.ok()
.flatten()
.map_or(0, |font| font.create_font_face().get_index()) .map_or(0, |font| font.create_font_face().get_index())
} }
pub(crate) fn native_font_handle(&self) -> NativeFontHandle { pub(crate) fn native_font_handle(&self) -> NativeFontHandle {
let face = FontCollection::system() let face = FontCollection::system()
.get_font_from_descriptor(&self.font_descriptor) .font_from_descriptor(&self.font_descriptor)
.ok()
.flatten()
.expect("Could not create Font from FontDescriptor") .expect("Could not create Font from FontDescriptor")
.create_font_face(); .create_font_face();
let path = face let path = face
@ -62,7 +68,9 @@ impl LocalFontIdentifier {
} }
pub(crate) fn read_data_from_file(&self) -> Option<Vec<u8>> { pub(crate) fn read_data_from_file(&self) -> Option<Vec<u8>> {
let font = FontCollection::system().get_font_from_descriptor(&self.font_descriptor)?; let font = FontCollection::system()
.font_from_descriptor(&self.font_descriptor)
.ok()??;
let face = font.create_font_face(); let face = font.create_font_face();
let files = face.get_files(); let files = face.get_files();
assert!(!files.is_empty()); assert!(!files.is_empty());
@ -86,10 +94,12 @@ where
F: FnMut(FontTemplate), F: FnMut(FontTemplate),
{ {
let system_fc = FontCollection::system(); let system_fc = FontCollection::system();
if let Some(family) = system_fc.get_font_family_by_name(family_name) { if let Ok(Some(family)) = system_fc.font_family_by_name(family_name) {
let count = family.get_font_count(); let count = family.get_font_count();
for i in 0..count { for i in 0..count {
let font = family.get_font(i); let Ok(font) = family.font(i) else {
continue;
};
let template_descriptor = (&font).into(); let template_descriptor = (&font).into();
let local_font_identifier = LocalFontIdentifier { let local_font_identifier = LocalFontIdentifier {
font_descriptor: Arc::new(font.to_descriptor()), font_descriptor: Arc::new(font.to_descriptor()),