Skip to content

Commit cfe4fed

Browse files
authored
rename generated asset manifest file back to AssetManifest.bin (from AssetManifest.smcbin) (#128529)
Closes flutter/flutter#128456, which is now linked to in a code comment in this change. Reopens flutter/flutter#124883. This effectively reverts flutter/flutter#126077 and is intended to be cherry-picked into stable.
1 parent af7a8f6 commit cfe4fed

File tree

12 files changed

+45
-36
lines changed

12 files changed

+45
-36
lines changed

packages/flutter/lib/src/services/asset_manifest.dart

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,12 @@ import 'package:flutter/foundation.dart';
77
import 'asset_bundle.dart';
88
import 'message_codecs.dart';
99

10-
const String _kAssetManifestFilename = 'AssetManifest.smcbin';
10+
// We use .bin as the extension since it is well-known to represent
11+
// data in some arbitrary binary format. Using a well-known extension here
12+
// is important for web, because some web servers will not serve files with
13+
// unrecognized file extensions by default.
14+
// See https://github.com/flutter/flutter/issues/128456.
15+
const String _kAssetManifestFilename = 'AssetManifest.bin';
1116

1217
/// Contains details about available assets and their variants.
1318
/// See [Asset variants](https://docs.flutter.dev/development/ui/assets-and-images#asset-variants)

packages/flutter/test/painting/image_resolution_test.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ class TestAssetBundle extends CachingAssetBundle {
1818

1919
@override
2020
Future<ByteData> load(String key) async {
21-
if (key == 'AssetManifest.smcbin') {
21+
if (key == 'AssetManifest.bin') {
2222
return const StandardMessageCodec().encodeMessage(_assetBundleMap)!;
2323
}
2424

packages/flutter/test/services/asset_bundle_test.dart

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ class TestAssetBundle extends CachingAssetBundle {
1919
return ByteData.view(Uint8List.fromList(const Utf8Encoder().convert('{"one": ["one"]}')).buffer);
2020
}
2121

22-
if (key == 'AssetManifest.smcbin') {
22+
if (key == 'AssetManifest.bin') {
2323
return const StandardMessageCodec().encodeMessage(<String, Object>{
2424
'one': <Object>[]
2525
})!;
@@ -76,8 +76,8 @@ void main() {
7676
expect(firstLoadStructuredDataResult, 'one');
7777
expect(secondLoadStructuredDataResult, 'one');
7878

79-
final String firstLoadStructuredBinaryDataResult = await bundle.loadStructuredBinaryData('AssetManifest.smcbin', (ByteData value) => Future<String>.value('one'));
80-
final String secondLoadStructuredBinaryDataResult = await bundle.loadStructuredBinaryData('AssetManifest.smcbin', (ByteData value) => Future<String>.value('two'));
79+
final String firstLoadStructuredBinaryDataResult = await bundle.loadStructuredBinaryData('AssetManifest.bin', (ByteData value) => Future<String>.value('one'));
80+
final String secondLoadStructuredBinaryDataResult = await bundle.loadStructuredBinaryData('AssetManifest.bin', (ByteData value) => Future<String>.value('two'));
8181
expect(firstLoadStructuredBinaryDataResult, 'one');
8282
expect(secondLoadStructuredBinaryDataResult, 'one');
8383
});
@@ -95,9 +95,9 @@ void main() {
9595
final String secondLoadStructuredDataResult = await bundle.loadStructuredData('AssetManifest.json', (String value) => Future<String>.value('two'));
9696
expect(secondLoadStructuredDataResult, 'two');
9797

98-
await bundle.loadStructuredBinaryData('AssetManifest.smcbin', (ByteData value) => Future<String>.value('one'));
98+
await bundle.loadStructuredBinaryData('AssetManifest.bin', (ByteData value) => Future<String>.value('one'));
9999
bundle.clear();
100-
final String secondLoadStructuredBinaryDataResult = await bundle.loadStructuredBinaryData('AssetManifest.smcbin', (ByteData value) => Future<String>.value('two'));
100+
final String secondLoadStructuredBinaryDataResult = await bundle.loadStructuredBinaryData('AssetManifest.bin', (ByteData value) => Future<String>.value('two'));
101101
expect(secondLoadStructuredBinaryDataResult, 'two');
102102
});
103103

@@ -114,9 +114,9 @@ void main() {
114114
final String secondLoadStructuredDataResult = await bundle.loadStructuredData('AssetManifest.json', (String value) => Future<String>.value('two'));
115115
expect(secondLoadStructuredDataResult, 'two');
116116

117-
await bundle.loadStructuredBinaryData('AssetManifest.smcbin', (ByteData value) => Future<String>.value('one'));
118-
bundle.evict('AssetManifest.smcbin');
119-
final String secondLoadStructuredBinaryDataResult = await bundle.loadStructuredBinaryData('AssetManifest.smcbin', (ByteData value) => Future<String>.value('two'));
117+
await bundle.loadStructuredBinaryData('AssetManifest.bin', (ByteData value) => Future<String>.value('one'));
118+
bundle.evict('AssetManifest.bin');
119+
final String secondLoadStructuredBinaryDataResult = await bundle.loadStructuredBinaryData('AssetManifest.bin', (ByteData value) => Future<String>.value('two'));
120120
expect(secondLoadStructuredBinaryDataResult, 'two');
121121
});
122122

@@ -191,7 +191,7 @@ void main() {
191191
test('loadStructuredBinaryData correctly loads ByteData', () async {
192192
final TestAssetBundle bundle = TestAssetBundle();
193193
final Map<Object?, Object?> assetManifest =
194-
await bundle.loadStructuredBinaryData('AssetManifest.smcbin', (ByteData data) => const StandardMessageCodec().decodeMessage(data) as Map<Object?, Object?>);
194+
await bundle.loadStructuredBinaryData('AssetManifest.bin', (ByteData data) => const StandardMessageCodec().decodeMessage(data) as Map<Object?, Object?>);
195195
expect(assetManifest.keys.toList(), equals(<String>['one']));
196196
expect(assetManifest['one'], <Object>[]);
197197
});

packages/flutter/test/services/asset_manifest_test.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import 'package:flutter_test/flutter_test.dart';
1010
class TestAssetBundle extends AssetBundle {
1111
@override
1212
Future<ByteData> load(String key) async {
13-
if (key == 'AssetManifest.smcbin') {
13+
if (key == 'AssetManifest.bin') {
1414
final Map<String, List<Object>> binManifestData = <String, List<Object>>{
1515
'assets/foo.png': <Object>[
1616
<String, Object>{

packages/flutter/test/widgets/image_resolution_test.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ class TestAssetBundle extends CachingAssetBundle {
4040
Future<ByteData> load(String key) {
4141
late ByteData data;
4242
switch (key) {
43-
case 'AssetManifest.smcbin':
43+
case 'AssetManifest.bin':
4444
data = manifest;
4545
case 'assets/image.png':
4646
data = testByteData(1.0);

packages/flutter_tools/lib/src/asset.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ class ManifestAssetBundle implements AssetBundle {
167167

168168
// We assume the main asset is designed for a device pixel ratio of 1.0.
169169
static const String _kAssetManifestJsonFilename = 'AssetManifest.json';
170-
static const String _kAssetManifestBinFilename = 'AssetManifest.smcbin';
170+
static const String _kAssetManifestBinFilename = 'AssetManifest.bin';
171171

172172
static const String _kNoticeFile = 'NOTICES';
173173
// Comically, this can't be name with the more common .gz file extension

packages/flutter_tools/lib/src/commands/test.dart

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -541,7 +541,11 @@ class TestCommand extends FlutterCommand with DeviceBasedDevelopmentArtifacts {
541541
}
542542

543543
bool _needRebuild(Map<String, DevFSContent> entries) {
544-
final File manifest = globals.fs.file(globals.fs.path.join('build', 'unit_test_assets', 'AssetManifest.json'));
544+
// TODO(andrewkolos): This logic might fail in the future if we change the
545+
// schema of the contents of the asset manifest file and the user does not
546+
// perform a `flutter clean` after upgrading.
547+
// See https://github.com/flutter/flutter/issues/128563.
548+
final File manifest = globals.fs.file(globals.fs.path.join('build', 'unit_test_assets', 'AssetManifest.bin'));
545549
if (!manifest.existsSync()) {
546550
return true;
547551
}

packages/flutter_tools/test/commands.shard/hermetic/test_test.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -743,7 +743,7 @@ dev_dependencies:
743743
'--no-pub',
744744
]);
745745

746-
final bool fileExists = await fs.isFile(globals.fs.path.join('build', 'unit_test_assets', 'AssetManifest.json'));
746+
final bool fileExists = await fs.isFile(globals.fs.path.join('build', 'unit_test_assets', 'AssetManifest.bin'));
747747
expect(fileExists, true);
748748

749749
}, overrides: <Type, Generator>{
@@ -764,7 +764,7 @@ dev_dependencies:
764764
'--no-test-assets',
765765
]);
766766

767-
final bool fileExists = await fs.isFile(globals.fs.path.join('build', 'unit_test_assets', 'AssetManifest.json'));
767+
final bool fileExists = await fs.isFile(globals.fs.path.join('build', 'unit_test_assets', 'AssetManifest.bin'));
768768
expect(fileExists, false);
769769

770770
}, overrides: <Type, Generator>{

packages/flutter_tools/test/general.shard/asset_bundle_package_fonts_test.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ $fontsSection
111111

112112
final AssetBundle bundle = AssetBundleFactory.instance.createBundle();
113113
await bundle.build(packagesPath: '.packages');
114-
expect(bundle.entries.keys, unorderedEquals(<String>['AssetManifest.smcbin',
114+
expect(bundle.entries.keys, unorderedEquals(<String>['AssetManifest.bin',
115115
'AssetManifest.json', 'FontManifest.json', 'NOTICES.Z']));
116116
}, overrides: <Type, Generator>{
117117
FileSystem: () => testFileSystem,

packages/flutter_tools/test/general.shard/asset_bundle_package_test.dart

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ $assetsSection
9595
final Map<Object?, Object?> assetManifest = const StandardMessageCodec().decodeMessage(
9696
ByteData.sublistView(
9797
Uint8List.fromList(
98-
await bundle.entries['AssetManifest.smcbin']!.contentsAsBytes()
98+
await bundle.entries['AssetManifest.bin']!.contentsAsBytes()
9999
)
100100
)
101101
) as Map<Object?, Object?>;
@@ -140,7 +140,7 @@ $assetsSection
140140
final AssetBundle bundle = AssetBundleFactory.instance.createBundle();
141141
await bundle.build(packagesPath: '.packages');
142142
expect(bundle.entries.keys, unorderedEquals(
143-
<String>['NOTICES.Z', 'AssetManifest.json', 'AssetManifest.smcbin', 'FontManifest.json']));
143+
<String>['NOTICES.Z', 'AssetManifest.json', 'AssetManifest.bin', 'FontManifest.json']));
144144
const String expectedAssetManifest = '{}';
145145
expect(
146146
utf8.decode(await bundle.entries['AssetManifest.json']!.contentsAsBytes()),
@@ -166,7 +166,7 @@ $assetsSection
166166
final AssetBundle bundle = AssetBundleFactory.instance.createBundle();
167167
await bundle.build(packagesPath: '.packages');
168168
expect(bundle.entries.keys, unorderedEquals(
169-
<String>['NOTICES.Z', 'AssetManifest.json', 'AssetManifest.smcbin', 'FontManifest.json']));
169+
<String>['NOTICES.Z', 'AssetManifest.json', 'AssetManifest.bin', 'FontManifest.json']));
170170
const String expectedAssetManifest = '{}';
171171
expect(
172172
utf8.decode(await bundle.entries['AssetManifest.json']!.contentsAsBytes()),

0 commit comments

Comments
 (0)