fonts: Add support for more @font-face features#32164
Merged
mrobinson merged 1 commit intoservo:mainfrom Apr 29, 2024
Merged
Conversation
dfacc34 to
c18f6d7
Compare
@font-face features
mukilan
approved these changes
Apr 29, 2024
components/gfx/font_cache_thread.rs
Outdated
| } | ||
| } | ||
|
|
||
| impl fmt::Debug for FontIdentifier { |
Member
There was a problem hiding this comment.
Should we add a comment noting why this is not simply derive(Debug)?
Member
Author
There was a problem hiding this comment.
Oh, good point. I've updated this to remove our custom version of the Debug. I think the real fix here is to not truncate URLs in ServoUrl Debug impl.
c18f6d7 to
fdf8067
Compare
There are a couple major changes here: 1. Support is added for the `weight`, `style`, `stretch` and `unicode-range` declarations in `@font-face`. 2. Font matching in the font cache can return templates and `FontGroupFamily` can own mulitple templates. This is due to needing support for "composite fonts". These are `@font-face` declarations that only differ in their `unicode-range` definition. This fixes a lot of non-determinism in font selection especially when dealing with pages that define "composite faces." A notable example of such a page is servo.org, which now consistently displays the correct web font. One test starts to fail due to an uncovered bug, but this will be fixed in a followup change. Fixes servo#20686. Fixes servo#20684. Co-authored-by: Mukilan Thiyagarajan <mukilan@igalia.com>
fdf8067 to
baf4a9e
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
There are a couple major changes here:
weight,style,stretchandunicode-rangedeclarations in@font-face.FontGroupFamilycan own mulitple templates. This is due to needingsupport for "composite fonts". These are
@font-facedeclarationsthat only differ in their
unicode-rangedefinition.This fixes a lot of non-determinism in font selection especially when
dealing with pages that define "composite faces." A notable example of
such a page is servo.org, which now consistently displays the correct
web font.
One test starts to fail due to an uncovered bug, but this will be fixed
in a followup change.
Fixes #20686.
Fixes #20684.
Co-authored-by: Mukilan Thiyagarajan mukilan@igalia.com
./mach build -ddoes not report any errors./mach test-tidydoes not report any errors