[google_fonts] Fix file type priority in asset path lookup#10907
[google_fonts] Fix file type priority in asset path lookup#10907auto-submit[bot] merged 2 commits intoflutter:mainfrom
Conversation
Follow-up to flutter#10703 which added WOFF/WOFF2 support for web. The previous implementation iterated through manifest assets first, then checked file extensions. This meant if a .ttf file appeared before a .woff2 file in the manifest, the .ttf would be selected even though .woff2 should be preferred on web. This fix inverts the loop order to iterate by file type priority first (woff2 > woff > ttf > otf on web), ensuring the preferred format is selected regardless of manifest order.
There was a problem hiding this comment.
Code Review
This pull request fixes a bug in how bundled font assets are selected. The logic in findFamilyWithVariantAssetPath has been changed to prioritize more optimized font formats (like WOFF2/WOFF on web) over others, regardless of their order in the asset manifest. This is achieved by iterating through a list of preferred file types first, then searching the manifest for a matching asset. The change is supported by an updated test to verify the new behavior, a version bump to 8.0.1, and a corresponding changelog entry.
guidezpl
left a comment
There was a problem hiding this comment.
This is consistent with guidance on asset manifests which says that the order doesn't matter
██╗ ██████╗ ████████╗███╗ ███╗
██║ ██╔════╝ ╚══██╔══╝████╗ ████║
██║ ██║ ███╗ ██║ ██╔████╔██║
██║ ██║ ██║ ██║ ██║╚██╔╝██║
███████╗╚██████╔╝ ██║ ██║ ╚═╝ ██║
╚══════╝ ╚═════╝ ╚═╝ ╚═╝ ╚═╝
|
@Frank3K While waiting for the secondary review, the analyzer issue that's causing CI failures will need to be fixed before this can land. |
Piinks
left a comment
There was a problem hiding this comment.
This LGTM! Thank you! Once the failures in CI are addressed, we can land this. 👍
|
@Piinks Done, it's green now. Thanks. |
flutter/packages@3bddf2c...c197455 2026-02-05 engine-flutter-autoroll@skia.org Roll Flutter from bf701fe to f916dd6 (44 revisions) (flutter/packages#10967) 2026-02-05 stuartmorgan@google.com [webview_flutter] Fix crash in iOS external native API (flutter/packages#10959) 2026-02-04 8014077+Frank3K@users.noreply.github.com [google_fonts] Fix file type priority in asset path lookup (flutter/packages#10907) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-packages-flutter-autoroll Please CC flutter-ecosystem@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Description
Follow-up to #10703 which added WOFF/WOFF2 support for web.
The previous implementation iterated through manifest assets first, then checked file extensions. This meant if a
.ttffile appeared before a.woff2file in the manifest, the.ttfwould be selected even though.woff2should be preferred on web.This fix inverts the loop order to iterate by file type priority first (woff2 > woff > ttf > otf on web), ensuring the preferred format is selected regardless of manifest order.
While working on #10703 I already looked at the specific for-loop, but not immediately notice this might be an issue. For Flutter projects with web-only support it is not; one can just include the woff2 fonts only. But for cross-platform projects it is an issue. Sample from an
assets.gen.dartfile:With the old loop, the
.ttfwould be selected, even though a better alternative (the.woff2) is present.Pre-Review Checklist
[shared_preferences]pubspec.yamlwith an appropriate new version according to the pub versioning philosophy, or I have commented below to indicate which version change exemption this PR falls under1.CHANGELOG.mdto add a description of the change, following repository CHANGELOG style, or I have commented below to indicate which CHANGELOG exemption this PR falls under1.///).If you need help, consider asking for advice on the #hackers-new channel on Discord.
Note: The Flutter team is currently trialing the use of Gemini Code Assist for GitHub. Comments from the
gemini-code-assistbot should not be taken as authoritative feedback from the Flutter team. If you find its comments useful you can update your code accordingly, but if you are unsure or disagree with the feedback, please feel free to wait for a Flutter team member's review for guidance on which automated comments should be addressed.Footnotes
Regular contributors who have demonstrated familiarity with the repository guidelines only need to comment if the PR is not auto-exempted by repo tooling. ↩ ↩2 ↩3