diff --git a/lib/web_ui/lib/src/engine/canvaskit/fonts.dart b/lib/web_ui/lib/src/engine/canvaskit/fonts.dart index d3692a887283f4b31a3afe5752b352e99cee3e08..4b7b169cc58a3d82e431719799d651373c4a14e7 100644 --- a/lib/web_ui/lib/src/engine/canvaskit/fonts.dart +++ b/lib/web_ui/lib/src/engine/canvaskit/fonts.dart @@ -28,7 +28,7 @@ class SkiaFontCollection { final Map> familyToTypefaceMap = >{}; - final List globalFontFallbacks = []; + final List globalFontFallbacks = ['Roboto']; final Map _fontFallbackCounts = {}; @@ -178,6 +178,7 @@ class SkiaFontCollection { void debugResetFallbackFonts() { _registeredFallbackFonts.clear(); globalFontFallbacks.clear(); + globalFontFallbacks.add('Roboto'); _fontFallbackCounts.clear(); } diff --git a/lib/web_ui/lib/src/engine/canvaskit/text.dart b/lib/web_ui/lib/src/engine/canvaskit/text.dart index 589ca9a46ccab078c913e07e66bf1e1afc46e1c5..3b7735e28408691fdeaee306d1202236d22ae2de 100644 --- a/lib/web_ui/lib/src/engine/canvaskit/text.dart +++ b/lib/web_ui/lib/src/engine/canvaskit/text.dart @@ -814,9 +814,7 @@ enum _ParagraphCommandType { List _getEffectiveFontFamilies(String? fontFamily, [List? fontFamilyFallback]) { List fontFamilies = []; - if (fontFamily == null) { - fontFamilies.add('Roboto'); - } else { + if (fontFamily != null) { fontFamilies.add(fontFamily); } if (fontFamilyFallback != null && diff --git a/lib/web_ui/test/canvaskit/fallback_fonts_golden_test.dart b/lib/web_ui/test/canvaskit/fallback_fonts_golden_test.dart index 7c6a591f94c25c17c431072095d566da9b8ba4c7..955ea4c54e48a7b21a1da5fde9eba2f1a530c4de 100644 --- a/lib/web_ui/test/canvaskit/fallback_fonts_golden_test.dart +++ b/lib/web_ui/test/canvaskit/fallback_fonts_golden_test.dart @@ -51,6 +51,10 @@ void testMain() { ui.window.onPlatformMessage = savedCallback; }); + test('Roboto is always a fallback font', () { + expect(skiaFontCollection.globalFontFallbacks, contains('Roboto')); + }); + test('will download Noto Naskh Arabic if Arabic text is added', () async { final Completer fontChangeCompleter = Completer(); // Intercept the system font change message. @@ -83,7 +87,7 @@ void testMain() { } '''; - expect(skiaFontCollection.globalFontFallbacks, isEmpty); + expect(skiaFontCollection.globalFontFallbacks, ['Roboto']); // Creating this paragraph should cause us to start to download the // fallback font. @@ -123,7 +127,7 @@ void testMain() { 'https://fonts.googleapis.com/css2?family=Noto+Naskh+Arabic+UI'] = 'invalid CSS... this should cause our parser to fail'; - expect(skiaFontCollection.globalFontFallbacks, isEmpty); + expect(skiaFontCollection.globalFontFallbacks, ['Roboto']); // Creating this paragraph should cause us to start to download the // fallback font. @@ -136,7 +140,7 @@ void testMain() { await Future.delayed(Duration.zero); expect(notoDownloadQueue.isPending, isFalse); - expect(skiaFontCollection.globalFontFallbacks, isEmpty); + expect(skiaFontCollection.globalFontFallbacks, ['Roboto']); }); // TODO: https://github.com/flutter/flutter/issues/60040 }, skip: isIosSafari);