Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Commit ef618de

Browse files
Revert "Skwasm Font Loading (#41246)"
This reverts commit 2393e69.
1 parent e206c74 commit ef618de

File tree

117 files changed

+913
-1401
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

117 files changed

+913
-1401
lines changed

ci/licenses_golden/licenses_flutter

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1949,7 +1949,6 @@ ORIGIN: ../../../flutter/lib/web_ui/lib/src/engine/html_image_codec.dart + ../..
19491949
ORIGIN: ../../../flutter/lib/web_ui/lib/src/engine/initialization.dart + ../../../flutter/LICENSE
19501950
ORIGIN: ../../../flutter/lib/web_ui/lib/src/engine/js_interop/js_loader.dart + ../../../flutter/LICENSE
19511951
ORIGIN: ../../../flutter/lib/web_ui/lib/src/engine/js_interop/js_promise.dart + ../../../flutter/LICENSE
1952-
ORIGIN: ../../../flutter/lib/web_ui/lib/src/engine/js_interop/js_typed_data.dart + ../../../flutter/LICENSE
19531952
ORIGIN: ../../../flutter/lib/web_ui/lib/src/engine/key_map.g.dart + ../../../flutter/LICENSE
19541953
ORIGIN: ../../../flutter/lib/web_ui/lib/src/engine/keyboard_binding.dart + ../../../flutter/LICENSE
19551954
ORIGIN: ../../../flutter/lib/web_ui/lib/src/engine/mouse_cursor.dart + ../../../flutter/LICENSE
@@ -2002,19 +2001,16 @@ ORIGIN: ../../../flutter/lib/web_ui/lib/src/engine/skwasm/skwasm_impl/paragraph.
20022001
ORIGIN: ../../../flutter/lib/web_ui/lib/src/engine/skwasm/skwasm_impl/path.dart + ../../../flutter/LICENSE
20032002
ORIGIN: ../../../flutter/lib/web_ui/lib/src/engine/skwasm/skwasm_impl/path_metrics.dart + ../../../flutter/LICENSE
20042003
ORIGIN: ../../../flutter/lib/web_ui/lib/src/engine/skwasm/skwasm_impl/picture.dart + ../../../flutter/LICENSE
2004+
ORIGIN: ../../../flutter/lib/web_ui/lib/src/engine/skwasm/skwasm_impl/raw/js_functions.dart + ../../../flutter/LICENSE
20052005
ORIGIN: ../../../flutter/lib/web_ui/lib/src/engine/skwasm/skwasm_impl/raw/raw_canvas.dart + ../../../flutter/LICENSE
2006-
ORIGIN: ../../../flutter/lib/web_ui/lib/src/engine/skwasm/skwasm_impl/raw/raw_fonts.dart + ../../../flutter/LICENSE
20072006
ORIGIN: ../../../flutter/lib/web_ui/lib/src/engine/skwasm/skwasm_impl/raw/raw_geometry.dart + ../../../flutter/LICENSE
20082007
ORIGIN: ../../../flutter/lib/web_ui/lib/src/engine/skwasm/skwasm_impl/raw/raw_memory.dart + ../../../flutter/LICENSE
20092008
ORIGIN: ../../../flutter/lib/web_ui/lib/src/engine/skwasm/skwasm_impl/raw/raw_paint.dart + ../../../flutter/LICENSE
20102009
ORIGIN: ../../../flutter/lib/web_ui/lib/src/engine/skwasm/skwasm_impl/raw/raw_path.dart + ../../../flutter/LICENSE
20112010
ORIGIN: ../../../flutter/lib/web_ui/lib/src/engine/skwasm/skwasm_impl/raw/raw_path_metrics.dart + ../../../flutter/LICENSE
20122011
ORIGIN: ../../../flutter/lib/web_ui/lib/src/engine/skwasm/skwasm_impl/raw/raw_picture.dart + ../../../flutter/LICENSE
20132012
ORIGIN: ../../../flutter/lib/web_ui/lib/src/engine/skwasm/skwasm_impl/raw/raw_shaders.dart + ../../../flutter/LICENSE
2014-
ORIGIN: ../../../flutter/lib/web_ui/lib/src/engine/skwasm/skwasm_impl/raw/raw_skdata.dart + ../../../flutter/LICENSE
2015-
ORIGIN: ../../../flutter/lib/web_ui/lib/src/engine/skwasm/skwasm_impl/raw/raw_skstring.dart + ../../../flutter/LICENSE
20162013
ORIGIN: ../../../flutter/lib/web_ui/lib/src/engine/skwasm/skwasm_impl/raw/raw_surface.dart + ../../../flutter/LICENSE
2017-
ORIGIN: ../../../flutter/lib/web_ui/lib/src/engine/skwasm/skwasm_impl/raw/skwasm_module.dart + ../../../flutter/LICENSE
20182014
ORIGIN: ../../../flutter/lib/web_ui/lib/src/engine/skwasm/skwasm_impl/renderer.dart + ../../../flutter/LICENSE
20192015
ORIGIN: ../../../flutter/lib/web_ui/lib/src/engine/skwasm/skwasm_impl/scene_builder.dart + ../../../flutter/LICENSE
20202016
ORIGIN: ../../../flutter/lib/web_ui/lib/src/engine/skwasm/skwasm_impl/shaders.dart + ../../../flutter/LICENSE
@@ -2064,15 +2060,12 @@ ORIGIN: ../../../flutter/lib/web_ui/lib/ui_web/src/ui_web/url_strategy.dart + ..
20642060
ORIGIN: ../../../flutter/lib/web_ui/lib/window.dart + ../../../flutter/LICENSE
20652061
ORIGIN: ../../../flutter/lib/web_ui/skwasm/canvas.cpp + ../../../flutter/LICENSE
20662062
ORIGIN: ../../../flutter/lib/web_ui/skwasm/contour_measure.cpp + ../../../flutter/LICENSE
2067-
ORIGIN: ../../../flutter/lib/web_ui/skwasm/data.cpp + ../../../flutter/LICENSE
20682063
ORIGIN: ../../../flutter/lib/web_ui/skwasm/export.h + ../../../flutter/LICENSE
2069-
ORIGIN: ../../../flutter/lib/web_ui/skwasm/fonts.cpp + ../../../flutter/LICENSE
20702064
ORIGIN: ../../../flutter/lib/web_ui/skwasm/helpers.h + ../../../flutter/LICENSE
20712065
ORIGIN: ../../../flutter/lib/web_ui/skwasm/paint.cpp + ../../../flutter/LICENSE
20722066
ORIGIN: ../../../flutter/lib/web_ui/skwasm/path.cpp + ../../../flutter/LICENSE
20732067
ORIGIN: ../../../flutter/lib/web_ui/skwasm/picture.cpp + ../../../flutter/LICENSE
20742068
ORIGIN: ../../../flutter/lib/web_ui/skwasm/shaders.cpp + ../../../flutter/LICENSE
2075-
ORIGIN: ../../../flutter/lib/web_ui/skwasm/string.cpp + ../../../flutter/LICENSE
20762069
ORIGIN: ../../../flutter/lib/web_ui/skwasm/surface.cpp + ../../../flutter/LICENSE
20772070
ORIGIN: ../../../flutter/lib/web_ui/skwasm/wrappers.h + ../../../flutter/LICENSE
20782071
ORIGIN: ../../../flutter/runtime/dart_isolate.cc + ../../../flutter/LICENSE
@@ -4552,7 +4545,6 @@ FILE: ../../../flutter/lib/web_ui/lib/src/engine/html_image_codec.dart
45524545
FILE: ../../../flutter/lib/web_ui/lib/src/engine/initialization.dart
45534546
FILE: ../../../flutter/lib/web_ui/lib/src/engine/js_interop/js_loader.dart
45544547
FILE: ../../../flutter/lib/web_ui/lib/src/engine/js_interop/js_promise.dart
4555-
FILE: ../../../flutter/lib/web_ui/lib/src/engine/js_interop/js_typed_data.dart
45564548
FILE: ../../../flutter/lib/web_ui/lib/src/engine/key_map.g.dart
45574549
FILE: ../../../flutter/lib/web_ui/lib/src/engine/keyboard_binding.dart
45584550
FILE: ../../../flutter/lib/web_ui/lib/src/engine/mouse_cursor.dart
@@ -4605,19 +4597,16 @@ FILE: ../../../flutter/lib/web_ui/lib/src/engine/skwasm/skwasm_impl/paragraph.da
46054597
FILE: ../../../flutter/lib/web_ui/lib/src/engine/skwasm/skwasm_impl/path.dart
46064598
FILE: ../../../flutter/lib/web_ui/lib/src/engine/skwasm/skwasm_impl/path_metrics.dart
46074599
FILE: ../../../flutter/lib/web_ui/lib/src/engine/skwasm/skwasm_impl/picture.dart
4600+
FILE: ../../../flutter/lib/web_ui/lib/src/engine/skwasm/skwasm_impl/raw/js_functions.dart
46084601
FILE: ../../../flutter/lib/web_ui/lib/src/engine/skwasm/skwasm_impl/raw/raw_canvas.dart
4609-
FILE: ../../../flutter/lib/web_ui/lib/src/engine/skwasm/skwasm_impl/raw/raw_fonts.dart
46104602
FILE: ../../../flutter/lib/web_ui/lib/src/engine/skwasm/skwasm_impl/raw/raw_geometry.dart
46114603
FILE: ../../../flutter/lib/web_ui/lib/src/engine/skwasm/skwasm_impl/raw/raw_memory.dart
46124604
FILE: ../../../flutter/lib/web_ui/lib/src/engine/skwasm/skwasm_impl/raw/raw_paint.dart
46134605
FILE: ../../../flutter/lib/web_ui/lib/src/engine/skwasm/skwasm_impl/raw/raw_path.dart
46144606
FILE: ../../../flutter/lib/web_ui/lib/src/engine/skwasm/skwasm_impl/raw/raw_path_metrics.dart
46154607
FILE: ../../../flutter/lib/web_ui/lib/src/engine/skwasm/skwasm_impl/raw/raw_picture.dart
46164608
FILE: ../../../flutter/lib/web_ui/lib/src/engine/skwasm/skwasm_impl/raw/raw_shaders.dart
4617-
FILE: ../../../flutter/lib/web_ui/lib/src/engine/skwasm/skwasm_impl/raw/raw_skdata.dart
4618-
FILE: ../../../flutter/lib/web_ui/lib/src/engine/skwasm/skwasm_impl/raw/raw_skstring.dart
46194609
FILE: ../../../flutter/lib/web_ui/lib/src/engine/skwasm/skwasm_impl/raw/raw_surface.dart
4620-
FILE: ../../../flutter/lib/web_ui/lib/src/engine/skwasm/skwasm_impl/raw/skwasm_module.dart
46214610
FILE: ../../../flutter/lib/web_ui/lib/src/engine/skwasm/skwasm_impl/renderer.dart
46224611
FILE: ../../../flutter/lib/web_ui/lib/src/engine/skwasm/skwasm_impl/scene_builder.dart
46234612
FILE: ../../../flutter/lib/web_ui/lib/src/engine/skwasm/skwasm_impl/shaders.dart
@@ -4667,15 +4656,12 @@ FILE: ../../../flutter/lib/web_ui/lib/ui_web/src/ui_web/url_strategy.dart
46674656
FILE: ../../../flutter/lib/web_ui/lib/window.dart
46684657
FILE: ../../../flutter/lib/web_ui/skwasm/canvas.cpp
46694658
FILE: ../../../flutter/lib/web_ui/skwasm/contour_measure.cpp
4670-
FILE: ../../../flutter/lib/web_ui/skwasm/data.cpp
46714659
FILE: ../../../flutter/lib/web_ui/skwasm/export.h
4672-
FILE: ../../../flutter/lib/web_ui/skwasm/fonts.cpp
46734660
FILE: ../../../flutter/lib/web_ui/skwasm/helpers.h
46744661
FILE: ../../../flutter/lib/web_ui/skwasm/paint.cpp
46754662
FILE: ../../../flutter/lib/web_ui/skwasm/path.cpp
46764663
FILE: ../../../flutter/lib/web_ui/skwasm/picture.cpp
46774664
FILE: ../../../flutter/lib/web_ui/skwasm/shaders.cpp
4678-
FILE: ../../../flutter/lib/web_ui/skwasm/string.cpp
46794665
FILE: ../../../flutter/lib/web_ui/skwasm/surface.cpp
46804666
FILE: ../../../flutter/lib/web_ui/skwasm/wrappers.h
46814667
FILE: ../../../flutter/runtime/dart_isolate.cc

lib/web_ui/lib/src/engine.dart

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,6 @@ export 'engine/html_image_codec.dart';
108108
export 'engine/initialization.dart';
109109
export 'engine/js_interop/js_loader.dart';
110110
export 'engine/js_interop/js_promise.dart';
111-
export 'engine/js_interop/js_typed_data.dart';
112111
export 'engine/key_map.g.dart';
113112
export 'engine/keyboard_binding.dart';
114113
export 'engine/mouse_cursor.dart';

lib/web_ui/lib/src/engine/assets.dart

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,20 @@ import 'dart:typed_data';
88
import 'dom.dart';
99
import 'util.dart';
1010

11+
const String ahemFontFamily = 'Ahem';
12+
const String ahemFontUrl = '/assets/fonts/ahem.ttf';
13+
const String robotoFontFamily = 'Roboto';
14+
const String robotoTestFontUrl = '/assets/fonts/Roboto-Regular.ttf';
15+
16+
/// The list of test fonts, in the form of font family name - font file url pairs.
17+
/// This list does not include embedded test fonts, which need to be loaded and
18+
/// registered separately in [FontCollection.debugDownloadTestFonts].
19+
const Map<String, String> testFontUrls = <String, String>{
20+
ahemFontFamily: ahemFontUrl,
21+
robotoFontFamily: robotoTestFontUrl,
22+
'RobotoVariable': '/assets/fonts/RobotoSlab-VariableFont_wght.ttf',
23+
};
24+
1125
/// This class downloads assets over the network.
1226
///
1327
/// Assets are resolved relative to [assetsDir] inside the absolute base
@@ -96,3 +110,79 @@ class AssetManager {
96110
return (await response.payload.asByteBuffer()).asByteData();
97111
}
98112
}
113+
114+
/// An asset manager that gives fake empty responses for assets.
115+
class WebOnlyMockAssetManager extends AssetManager {
116+
/// Mock asset directory relative to base url.
117+
String defaultAssetsDir = '';
118+
119+
/// Mock empty asset manifest.
120+
String defaultAssetManifest = '{}';
121+
122+
/// Mock font manifest overridable for unit testing.
123+
String defaultFontManifest = '''
124+
[
125+
{
126+
"family":"$robotoFontFamily",
127+
"fonts":[{"asset":"$robotoTestFontUrl"}]
128+
},
129+
{
130+
"family":"$ahemFontFamily",
131+
"fonts":[{"asset":"$ahemFontUrl"}]
132+
}
133+
]''';
134+
135+
@override
136+
String get assetsDir => defaultAssetsDir;
137+
138+
@override
139+
String getAssetUrl(String asset) => asset;
140+
141+
@override
142+
Future<HttpFetchResponse> loadAsset(String asset) async {
143+
if (asset == getAssetUrl('AssetManifest.json')) {
144+
return MockHttpFetchResponse(
145+
url: asset,
146+
status: 200,
147+
payload: MockHttpFetchPayload(
148+
byteBuffer: _toByteData(utf8.encode(defaultAssetManifest)).buffer,
149+
),
150+
);
151+
}
152+
if (asset == getAssetUrl('FontManifest.json')) {
153+
return MockHttpFetchResponse(
154+
url: asset,
155+
status: 200,
156+
payload: MockHttpFetchPayload(
157+
byteBuffer: _toByteData(utf8.encode(defaultFontManifest)).buffer,
158+
),
159+
);
160+
}
161+
162+
return MockHttpFetchResponse(
163+
url: asset,
164+
status: 404,
165+
);
166+
}
167+
168+
@override
169+
Future<ByteData> load(String asset) {
170+
if (asset == getAssetUrl('AssetManifest.json')) {
171+
return Future<ByteData>.value(
172+
_toByteData(utf8.encode(defaultAssetManifest)));
173+
}
174+
if (asset == getAssetUrl('FontManifest.json')) {
175+
return Future<ByteData>.value(
176+
_toByteData(utf8.encode(defaultFontManifest)));
177+
}
178+
throw HttpFetchNoPayloadError(asset, status: 404);
179+
}
180+
181+
ByteData _toByteData(List<int> bytes) {
182+
final ByteData byteData = ByteData(bytes.length);
183+
for (int i = 0; i < bytes.length; i++) {
184+
byteData.setUint8(i, bytes[i]);
185+
}
186+
return byteData;
187+
}
188+
}

lib/web_ui/lib/src/engine/canvaskit/font_fallbacks.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -456,7 +456,7 @@ class FallbackFontDownloadQueue {
456456
final Uint8List bytes = downloadedData[url]!;
457457
FontFallbackData.instance.registerFallbackFont(font.name, bytes);
458458
if (pendingFonts.isEmpty) {
459-
(renderer.fontCollection as SkiaFontCollection).registerDownloadedFonts();
459+
renderer.fontCollection.registerDownloadedFonts();
460460
sendFontChangeMessage();
461461
}
462462
}

0 commit comments

Comments
 (0)