Start removing unsound null safety from the web SDK tools. (#162850)

On an internal chat, I asked:

> Is there a reason I don't understand why `flutter` should still
support "unsound" null-safety modes?

@jonahwilliams:

> I don't believe its possible to have non-null safe flutter code.

---

There is quite a bit of code and branches, so to keep the PRs
understandable/approachable, this first PR removes the ability to have
the `DevFS` implementations for the web SDK choose between sound and
unsound null safety, and removes the mapping accordingly.

The enums still exist, but can be cleaned up in a follow-up PR (you'd
want to rename to remove "sound" as well, ideally).
This commit is contained in:
Matan Lurey 2025-02-07 12:40:41 -08:00 committed by GitHub
parent 8ca08577a5
commit 2d30cae396
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
7 changed files with 48 additions and 184 deletions

View File

@ -92,6 +92,8 @@ enum HostArtifact {
/// Folder that contains platform dill files for the web sdk.
webPlatformKernelFolder,
// TODO(matanlurey): Remove the non-Sound variants, and rename the Sound variants, https://github.com/flutter/flutter/issues/162846.
/// The summary dill for the dartdevc target.
webPlatformDDCKernelDill,

View File

@ -127,7 +127,6 @@ class WebAssetServer implements AssetReader {
this.internetAddress,
this._modules,
this._digests,
this._nullSafetyMode,
this._ddcModuleSystem,
this._canaryFeatures, {
required this.webRenderer,
@ -250,8 +249,7 @@ class WebAssetServer implements AssetReader {
bool enableDds,
Uri entrypoint,
ExpressionCompiler? expressionCompiler,
Map<String, String> extraHeaders,
NullSafetyMode nullSafetyMode, {
Map<String, String> extraHeaders, {
required WebRendererMode webRenderer,
required bool isWasm,
required bool useLocalCanvasKit,
@ -311,7 +309,6 @@ class WebAssetServer implements AssetReader {
address,
modules,
digests,
nullSafetyMode,
ddcModuleSystem,
canaryFeatures,
webRenderer: webRenderer,
@ -432,7 +429,6 @@ class WebAssetServer implements AssetReader {
return server;
}
final NullSafetyMode _nullSafetyMode;
final bool _ddcModuleSystem;
final bool _canaryFeatures;
final HttpServer _httpServer;
@ -752,19 +748,15 @@ _flutter.buildConfig = ${jsonEncode(buildConfig)};
}
File get _resolveDartSdkJsFile {
final Map<WebRendererMode, Map<NullSafetyMode, HostArtifact>> dartSdkArtifactMap =
final Map<WebRendererMode, HostArtifact> dartSdkArtifactMap =
_ddcModuleSystem ? kDdcLibraryBundleDartSdkJsArtifactMap : kAmdDartSdkJsArtifactMap;
return globals.fs.file(
globals.artifacts!.getHostArtifact(dartSdkArtifactMap[webRenderer]![_nullSafetyMode]!),
);
return globals.fs.file(globals.artifacts!.getHostArtifact(dartSdkArtifactMap[webRenderer]!));
}
File get _resolveDartSdkJsMapFile {
final Map<WebRendererMode, Map<NullSafetyMode, HostArtifact>> dartSdkArtifactMap =
final Map<WebRendererMode, HostArtifact> dartSdkArtifactMap =
_ddcModuleSystem ? kDdcLibraryBundleDartSdkJsMapArtifactMap : kAmdDartSdkJsMapArtifactMap;
return globals.fs.file(
globals.artifacts!.getHostArtifact(dartSdkArtifactMap[webRenderer]![_nullSafetyMode]!),
);
return globals.fs.file(globals.artifacts!.getHostArtifact(dartSdkArtifactMap[webRenderer]!));
}
@override
@ -839,7 +831,6 @@ class WebDevFS implements DevFS {
required this.chromiumLauncher,
required this.nullAssertions,
required this.nativeNullAssertions,
required this.nullSafetyMode,
required this.ddcModuleSystem,
required this.canaryFeatures,
required this.webRenderer,
@ -875,7 +866,6 @@ class WebDevFS implements DevFS {
final bool nullAssertions;
final bool nativeNullAssertions;
final int _port;
final NullSafetyMode nullSafetyMode;
final String? tlsCertPath;
final String? tlsCertKeyPath;
final WebRendererMode webRenderer;
@ -977,7 +967,6 @@ class WebDevFS implements DevFS {
entrypoint,
expressionCompiler,
extraHeaders,
nullSafetyMode,
webRenderer: webRenderer,
isWasm: isWasm,
useLocalCanvasKit: useLocalCanvasKit,

View File

@ -306,7 +306,6 @@ Please provide a valid TCP port (an integer between 0 and 65535, inclusive).
extraHeaders: debuggingOptions.webHeaders,
chromiumLauncher: _chromiumLauncher,
nullAssertions: debuggingOptions.nullAssertions,
nullSafetyMode: debuggingOptions.buildInfo.nullSafetyMode,
nativeNullAssertions: debuggingOptions.nativeNullAssertions,
ddcModuleSystem: debuggingOptions.buildInfo.ddcModuleFormat == DdcModuleFormat.ddc,
canaryFeatures: debuggingOptions.buildInfo.canaryFeatures ?? false,

View File

@ -228,12 +228,6 @@ class FlutterWebPlatform extends PlatformPlugin {
bool get _closed => _closeMemo.hasRun;
NullSafetyMode get _nullSafetyMode {
return buildInfo.nullSafetyMode == NullSafetyMode.sound
? NullSafetyMode.sound
: NullSafetyMode.unsound;
}
final Configuration _config;
final shelf.Server _server;
Uri get url => _server.url;
@ -298,13 +292,11 @@ class FlutterWebPlatform extends PlatformPlugin {
if (buildInfo.ddcModuleFormat == DdcModuleFormat.ddc) {
assert(buildInfo.canaryFeatures ?? true);
}
final Map<WebRendererMode, Map<NullSafetyMode, HostArtifact>> dartSdkArtifactMap =
final Map<WebRendererMode, HostArtifact> dartSdkArtifactMap =
buildInfo.ddcModuleFormat == DdcModuleFormat.ddc
? kDdcLibraryBundleDartSdkJsArtifactMap
: kAmdDartSdkJsArtifactMap;
return _fileSystem.file(
_artifacts!.getHostArtifact(dartSdkArtifactMap[webRenderer]![_nullSafetyMode]!),
);
return _fileSystem.file(_artifacts!.getHostArtifact(dartSdkArtifactMap[webRenderer]!));
}
File get _dartSdkSourcemaps {
@ -313,13 +305,11 @@ class FlutterWebPlatform extends PlatformPlugin {
if (buildInfo.ddcModuleFormat == DdcModuleFormat.ddc) {
assert(buildInfo.canaryFeatures ?? true);
}
final Map<WebRendererMode, Map<NullSafetyMode, HostArtifact>> dartSdkArtifactMap =
final Map<WebRendererMode, HostArtifact> dartSdkArtifactMap =
buildInfo.ddcModuleFormat == DdcModuleFormat.ddc
? kDdcLibraryBundleDartSdkJsMapArtifactMap
: kAmdDartSdkJsMapArtifactMap;
return _fileSystem.file(
_artifacts!.getHostArtifact(dartSdkArtifactMap[webRenderer]![_nullSafetyMode]!),
);
return _fileSystem.file(_artifacts!.getHostArtifact(dartSdkArtifactMap[webRenderer]!));
}
File _canvasKitFile(String relativePath) {

View File

@ -250,72 +250,42 @@ enum WebRendererMode {
/// The correct precompiled artifact to use for each build and render mode for DDC with AMD modules.
// TODO(markzipan): delete this when DDC's AMD module system is deprecated, https://github.com/flutter/flutter/issues/142060.
const Map<WebRendererMode, Map<NullSafetyMode, HostArtifact>> kAmdDartSdkJsArtifactMap =
<WebRendererMode, Map<NullSafetyMode, HostArtifact>>{
WebRendererMode.auto: <NullSafetyMode, HostArtifact>{
NullSafetyMode.sound: HostArtifact.webPrecompiledAmdCanvaskitAndHtmlSoundSdk,
NullSafetyMode.unsound: HostArtifact.webPrecompiledAmdCanvaskitAndHtmlSdk,
},
WebRendererMode.canvaskit: <NullSafetyMode, HostArtifact>{
NullSafetyMode.sound: HostArtifact.webPrecompiledAmdCanvaskitSoundSdk,
NullSafetyMode.unsound: HostArtifact.webPrecompiledAmdCanvaskitSdk,
},
WebRendererMode.html: <NullSafetyMode, HostArtifact>{
NullSafetyMode.sound: HostArtifact.webPrecompiledAmdSoundSdk,
NullSafetyMode.unsound: HostArtifact.webPrecompiledAmdSdk,
},
};
const Map<WebRendererMode, HostArtifact> kAmdDartSdkJsArtifactMap = <WebRendererMode, HostArtifact>{
WebRendererMode.auto: HostArtifact.webPrecompiledAmdCanvaskitAndHtmlSoundSdk,
WebRendererMode.canvaskit: HostArtifact.webPrecompiledAmdCanvaskitSoundSdk,
WebRendererMode.html: HostArtifact.webPrecompiledAmdSoundSdk,
};
/// The correct source map artifact to use for each build and render mode for DDC with AMD modules.
// TODO(markzipan): delete this when DDC's AMD module system is deprecated, https://github.com/flutter/flutter/issues/142060.
const Map<WebRendererMode, Map<NullSafetyMode, HostArtifact>> kAmdDartSdkJsMapArtifactMap =
<WebRendererMode, Map<NullSafetyMode, HostArtifact>>{
WebRendererMode.auto: <NullSafetyMode, HostArtifact>{
NullSafetyMode.sound: HostArtifact.webPrecompiledAmdCanvaskitAndHtmlSoundSdkSourcemaps,
NullSafetyMode.unsound: HostArtifact.webPrecompiledAmdCanvaskitAndHtmlSdkSourcemaps,
},
WebRendererMode.canvaskit: <NullSafetyMode, HostArtifact>{
NullSafetyMode.sound: HostArtifact.webPrecompiledAmdCanvaskitSoundSdkSourcemaps,
NullSafetyMode.unsound: HostArtifact.webPrecompiledAmdCanvaskitSdkSourcemaps,
},
WebRendererMode.html: <NullSafetyMode, HostArtifact>{
NullSafetyMode.sound: HostArtifact.webPrecompiledAmdSoundSdkSourcemaps,
NullSafetyMode.unsound: HostArtifact.webPrecompiledAmdSdkSourcemaps,
},
const Map<WebRendererMode, HostArtifact> kAmdDartSdkJsMapArtifactMap =
<WebRendererMode, HostArtifact>{
WebRendererMode.auto: HostArtifact.webPrecompiledAmdCanvaskitAndHtmlSoundSdkSourcemaps,
WebRendererMode.canvaskit: HostArtifact.webPrecompiledAmdCanvaskitSoundSdkSourcemaps,
WebRendererMode.html: HostArtifact.webPrecompiledAmdSoundSdkSourcemaps,
};
/// The correct precompiled artifact to use for each build and render mode for
/// DDC with DDC library bundle module format. Only artifacts with sound
/// null-safety are provided.
const Map<WebRendererMode, Map<NullSafetyMode, HostArtifact>>
kDdcLibraryBundleDartSdkJsArtifactMap = <WebRendererMode, Map<NullSafetyMode, HostArtifact>>{
WebRendererMode.auto: <NullSafetyMode, HostArtifact>{
NullSafetyMode.sound: HostArtifact.webPrecompiledDdcLibraryBundleCanvaskitAndHtmlSoundSdk,
},
WebRendererMode.canvaskit: <NullSafetyMode, HostArtifact>{
NullSafetyMode.sound: HostArtifact.webPrecompiledDdcLibraryBundleCanvaskitSoundSdk,
},
WebRendererMode.html: <NullSafetyMode, HostArtifact>{
NullSafetyMode.sound: HostArtifact.webPrecompiledDdcLibraryBundleSoundSdk,
},
};
const Map<WebRendererMode, HostArtifact> kDdcLibraryBundleDartSdkJsArtifactMap =
<WebRendererMode, HostArtifact>{
WebRendererMode.auto: HostArtifact.webPrecompiledDdcLibraryBundleCanvaskitAndHtmlSoundSdk,
WebRendererMode.canvaskit: HostArtifact.webPrecompiledDdcLibraryBundleCanvaskitSoundSdk,
WebRendererMode.html: HostArtifact.webPrecompiledDdcLibraryBundleSoundSdk,
};
/// The correct source map artifact to use for each build and render mode for
/// DDC with DDC library bundle module format. Only artifacts with sound
/// null-safety are provided.
const Map<WebRendererMode, Map<NullSafetyMode, HostArtifact>>
kDdcLibraryBundleDartSdkJsMapArtifactMap = <WebRendererMode, Map<NullSafetyMode, HostArtifact>>{
WebRendererMode.auto: <NullSafetyMode, HostArtifact>{
NullSafetyMode.sound:
HostArtifact.webPrecompiledDdcLibraryBundleCanvaskitAndHtmlSoundSdkSourcemaps,
},
WebRendererMode.canvaskit: <NullSafetyMode, HostArtifact>{
NullSafetyMode.sound: HostArtifact.webPrecompiledDdcLibraryBundleCanvaskitSoundSdkSourcemaps,
},
WebRendererMode.html: <NullSafetyMode, HostArtifact>{
NullSafetyMode.sound: HostArtifact.webPrecompiledDdcLibraryBundleSoundSdkSourcemaps,
},
};
const Map<WebRendererMode, HostArtifact> kDdcLibraryBundleDartSdkJsMapArtifactMap =
<WebRendererMode, HostArtifact>{
WebRendererMode.auto:
HostArtifact.webPrecompiledDdcLibraryBundleCanvaskitAndHtmlSoundSdkSourcemaps,
WebRendererMode.canvaskit:
HostArtifact.webPrecompiledDdcLibraryBundleCanvaskitSoundSdkSourcemaps,
WebRendererMode.html: HostArtifact.webPrecompiledDdcLibraryBundleSoundSdkSourcemaps,
};
String _buildEventAnalyticsSettings({required List<WebCompilerConfig> configs}) {
final Map<String, Object> values = <String, Object>{};

View File

@ -72,7 +72,6 @@ void main() {
InternetAddress.loopbackIPv4,
<String, String>{},
<String, String>{},
NullSafetyMode.unsound,
usesDdcModuleSystem,
canaryFeatures,
webRenderer: WebRendererMode.canvaskit,
@ -318,7 +317,6 @@ void main() {
InternetAddress.loopbackIPv4,
<String, String>{},
<String, String>{},
NullSafetyMode.unsound,
usesDdcModuleSystem,
canaryFeatures,
webRenderer: WebRendererMode.canvaskit,
@ -339,7 +337,6 @@ void main() {
InternetAddress.loopbackIPv4,
<String, String>{},
<String, String>{},
NullSafetyMode.unsound,
usesDdcModuleSystem,
canaryFeatures,
webRenderer: WebRendererMode.canvaskit,
@ -363,7 +360,6 @@ void main() {
InternetAddress.loopbackIPv4,
<String, String>{},
<String, String>{},
NullSafetyMode.unsound,
usesDdcModuleSystem,
canaryFeatures,
webRenderer: WebRendererMode.canvaskit,
@ -386,7 +382,6 @@ void main() {
InternetAddress.loopbackIPv4,
<String, String>{},
<String, String>{},
NullSafetyMode.unsound,
usesDdcModuleSystem,
canaryFeatures,
webRenderer: WebRendererMode.canvaskit,
@ -810,7 +805,6 @@ void main() {
expressionCompiler: null,
extraHeaders: const <String, String>{},
chromiumLauncher: null,
nullSafetyMode: NullSafetyMode.sound,
ddcModuleSystem: usesDdcModuleSystem,
canaryFeatures: canaryFeatures,
webRenderer: WebRendererMode.html,
@ -938,7 +932,6 @@ void main() {
expressionCompiler: null,
extraHeaders: const <String, String>{},
chromiumLauncher: null,
nullSafetyMode: NullSafetyMode.sound,
ddcModuleSystem: usesDdcModuleSystem,
canaryFeatures: canaryFeatures,
webRenderer: WebRendererMode.canvaskit,
@ -1014,7 +1007,6 @@ void main() {
chromiumLauncher: null,
nullAssertions: true,
nativeNullAssertions: true,
nullSafetyMode: NullSafetyMode.sound,
ddcModuleSystem: usesDdcModuleSystem,
canaryFeatures: canaryFeatures,
webRenderer: WebRendererMode.canvaskit,
@ -1065,7 +1057,6 @@ void main() {
expressionCompiler: null,
extraHeaders: const <String, String>{},
chromiumLauncher: null,
nullSafetyMode: NullSafetyMode.sound,
ddcModuleSystem: usesDdcModuleSystem,
canaryFeatures: canaryFeatures,
webRenderer: WebRendererMode.canvaskit,
@ -1117,7 +1108,6 @@ void main() {
expressionCompiler: null,
extraHeaders: const <String, String>{},
chromiumLauncher: null,
nullSafetyMode: NullSafetyMode.sound,
ddcModuleSystem: usesDdcModuleSystem,
canaryFeatures: canaryFeatures,
webRenderer: WebRendererMode.auto,
@ -1169,7 +1159,6 @@ void main() {
expressionCompiler: null,
extraHeaders: const <String, String>{},
chromiumLauncher: null,
nullSafetyMode: NullSafetyMode.unsound,
ddcModuleSystem: usesDdcModuleSystem,
canaryFeatures: canaryFeatures,
webRenderer: WebRendererMode.canvaskit,
@ -1211,7 +1200,6 @@ void main() {
Uri.base,
null,
const <String, String>{},
NullSafetyMode.unsound,
webRenderer: WebRendererMode.canvaskit,
isWasm: false,
useLocalCanvasKit: false,
@ -1246,7 +1234,6 @@ void main() {
Uri.base,
null,
const <String, String>{extraHeaderKey: extraHeaderValue},
NullSafetyMode.unsound,
webRenderer: WebRendererMode.canvaskit,
isWasm: false,
useLocalCanvasKit: false,
@ -1284,7 +1271,6 @@ void main() {
InternetAddress.anyIPv4,
<String, String>{},
<String, String>{},
NullSafetyMode.sound,
usesDdcModuleSystem,
canaryFeatures,
webRenderer: WebRendererMode.canvaskit,
@ -1334,7 +1320,6 @@ void main() {
expressionCompiler: null,
extraHeaders: const <String, String>{},
chromiumLauncher: null,
nullSafetyMode: NullSafetyMode.unsound,
ddcModuleSystem: usesDdcModuleSystem,
canaryFeatures: canaryFeatures,
webRenderer: WebRendererMode.canvaskit,

View File

@ -30,70 +30,14 @@ import '../../src/common.dart';
import '../../src/testbed.dart';
const List<int> kTransparentImage = <int>[
0x89,
0x50,
0x4E,
0x47,
0x0D,
0x0A,
0x1A,
0x0A,
0x00,
0x00,
0x00,
0x0D,
0x49,
0x48,
0x44,
0x52,
0x00,
0x00,
0x00,
0x01,
0x00,
0x00,
0x00,
0x01,
0x08,
0x06,
0x00,
0x00,
0x00,
0x1F,
0x15,
0xC4,
0x89,
0x00,
0x00,
0x00,
0x0A,
0x49,
0x44,
0x41,
0x54,
0x78,
0x9C,
0x63,
0x00,
0x01,
0x00,
0x00,
0x05,
0x00,
0x01,
0x0D,
0x0A,
0x2D,
0xB4,
0x00,
0x00,
0x00,
0x00,
0x49,
0x45,
0x4E,
0x44,
0xAE,
0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, //
0x00, 0x00, 0x00, 0x0D, 0x49, 0x48, 0x44, 0x52,
0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01,
0x08, 0x06, 0x00, 0x00, 0x00, 0x1F, 0x15, 0xC4,
0x89, 0x00, 0x00, 0x00, 0x0A, 0x49, 0x44, 0x41,
0x54, 0x78, 0x9C, 0x63, 0x00, 0x01, 0x00, 0x00,
0x05, 0x00, 0x01, 0x0D, 0x0A, 0x2D, 0xB4, 0x00,
0x00, 0x00, 0x00, 0x49, 0x45, 0x4E, 0x44, 0xAE,
];
void main() {
@ -127,7 +71,6 @@ void main() {
InternetAddress.loopbackIPv4,
<String, String>{},
<String, String>{},
NullSafetyMode.unsound,
usesDdcModuleSystem,
canaryFeatures,
webRenderer: WebRendererMode.canvaskit,
@ -395,7 +338,6 @@ void main() {
InternetAddress.loopbackIPv4,
<String, String>{},
<String, String>{},
NullSafetyMode.unsound,
usesDdcModuleSystem,
canaryFeatures,
webRenderer: WebRendererMode.canvaskit,
@ -419,7 +361,6 @@ void main() {
InternetAddress.loopbackIPv4,
<String, String>{},
<String, String>{},
NullSafetyMode.unsound,
usesDdcModuleSystem,
canaryFeatures,
webRenderer: WebRendererMode.canvaskit,
@ -446,7 +387,6 @@ void main() {
InternetAddress.loopbackIPv4,
<String, String>{},
<String, String>{},
NullSafetyMode.unsound,
usesDdcModuleSystem,
canaryFeatures,
webRenderer: WebRendererMode.canvaskit,
@ -472,7 +412,6 @@ void main() {
InternetAddress.loopbackIPv4,
<String, String>{},
<String, String>{},
NullSafetyMode.unsound,
usesDdcModuleSystem,
canaryFeatures,
webRenderer: WebRendererMode.canvaskit,
@ -545,7 +484,6 @@ void main() {
InternetAddress.loopbackIPv4,
<String, String>{},
<String, String>{},
NullSafetyMode.unsound,
usesDdcModuleSystem,
canaryFeatures,
webRenderer: WebRendererMode.canvaskit,
@ -988,7 +926,6 @@ void main() {
expressionCompiler: null,
extraHeaders: const <String, String>{},
chromiumLauncher: null,
nullSafetyMode: NullSafetyMode.unsound,
ddcModuleSystem: usesDdcModuleSystem,
canaryFeatures: canaryFeatures,
webRenderer: WebRendererMode.html,
@ -1004,11 +941,13 @@ void main() {
final Uri uri = await webDevFS.create();
webDevFS.webAssetServer.entrypointCacheDirectory = globals.fs.currentDirectory;
final String webPrecompiledSdk =
globals.artifacts!.getHostArtifact(HostArtifact.webPrecompiledAmdSdk).path;
globals.artifacts!.getHostArtifact(HostArtifact.webPrecompiledAmdSoundSdk).path;
final String webPrecompiledSdkSourcemaps =
globals.artifacts!.getHostArtifact(HostArtifact.webPrecompiledAmdSdkSourcemaps).path;
globals.artifacts!.getHostArtifact(HostArtifact.webPrecompiledAmdSoundSdkSourcemaps).path;
final String webPrecompiledCanvaskitSdk =
globals.artifacts!.getHostArtifact(HostArtifact.webPrecompiledAmdCanvaskitSdk).path;
globals.artifacts!
.getHostArtifact(HostArtifact.webPrecompiledAmdCanvaskitSdkSourcemaps)
.path;
final String webPrecompiledCanvaskitSdkSourcemaps =
globals.artifacts!
.getHostArtifact(HostArtifact.webPrecompiledAmdCanvaskitSdkSourcemaps)
@ -1108,7 +1047,6 @@ void main() {
expressionCompiler: null,
extraHeaders: const <String, String>{},
chromiumLauncher: null,
nullSafetyMode: NullSafetyMode.sound,
ddcModuleSystem: usesDdcModuleSystem,
canaryFeatures: canaryFeatures,
webRenderer: WebRendererMode.html,
@ -1234,7 +1172,6 @@ void main() {
expressionCompiler: null,
extraHeaders: const <String, String>{},
chromiumLauncher: null,
nullSafetyMode: NullSafetyMode.sound,
ddcModuleSystem: usesDdcModuleSystem,
canaryFeatures: canaryFeatures,
webRenderer: WebRendererMode.canvaskit,
@ -1313,7 +1250,6 @@ void main() {
chromiumLauncher: null,
nullAssertions: true,
nativeNullAssertions: true,
nullSafetyMode: NullSafetyMode.sound,
ddcModuleSystem: usesDdcModuleSystem,
canaryFeatures: canaryFeatures,
webRenderer: WebRendererMode.canvaskit,
@ -1367,7 +1303,6 @@ void main() {
expressionCompiler: null,
extraHeaders: const <String, String>{},
chromiumLauncher: null,
nullSafetyMode: NullSafetyMode.sound,
ddcModuleSystem: usesDdcModuleSystem,
canaryFeatures: canaryFeatures,
webRenderer: WebRendererMode.canvaskit,
@ -1422,7 +1357,6 @@ void main() {
expressionCompiler: null,
extraHeaders: const <String, String>{},
chromiumLauncher: null,
nullSafetyMode: NullSafetyMode.sound,
ddcModuleSystem: usesDdcModuleSystem,
canaryFeatures: canaryFeatures,
webRenderer: WebRendererMode.auto,
@ -1477,7 +1411,6 @@ void main() {
expressionCompiler: null,
extraHeaders: const <String, String>{},
chromiumLauncher: null,
nullSafetyMode: NullSafetyMode.unsound,
ddcModuleSystem: usesDdcModuleSystem,
canaryFeatures: canaryFeatures,
webRenderer: WebRendererMode.canvaskit,
@ -1520,7 +1453,6 @@ void main() {
Uri.base,
null,
const <String, String>{},
NullSafetyMode.unsound,
webRenderer: WebRendererMode.canvaskit,
isWasm: false,
useLocalCanvasKit: false,
@ -1555,7 +1487,6 @@ void main() {
Uri.base,
null,
const <String, String>{extraHeaderKey: extraHeaderValue},
NullSafetyMode.unsound,
webRenderer: WebRendererMode.canvaskit,
isWasm: false,
useLocalCanvasKit: false,
@ -1601,7 +1532,6 @@ void main() {
InternetAddress.anyIPv4,
<String, String>{},
<String, String>{},
NullSafetyMode.sound,
usesDdcModuleSystem,
canaryFeatures,
webRenderer: WebRendererMode.canvaskit,
@ -1652,7 +1582,6 @@ void main() {
expressionCompiler: null,
extraHeaders: const <String, String>{},
chromiumLauncher: null,
nullSafetyMode: NullSafetyMode.unsound,
ddcModuleSystem: usesDdcModuleSystem,
canaryFeatures: canaryFeatures,
webRenderer: WebRendererMode.canvaskit,