[web] Fix reading of the --local-web-sdk flag and remove the copy of useLocalWebSdk in DebuggingOptions (#152642)
This commit is contained in:
parent
14cd5fa30a
commit
d23be7a07d
@ -235,19 +235,6 @@ abstract class RunCommandBase extends FlutterCommand with DeviceBasedDevelopment
|
||||
|
||||
bool get useWasm => boolArg(FlutterOptions.kWebWasmFlag);
|
||||
|
||||
bool get useLocalCanvasKit {
|
||||
// If we have specified not to use CDN, use local CanvasKit
|
||||
if (!boolArg(FlutterOptions.kWebResourcesCdnFlag)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// If we are using a locally built web sdk, we should use local CanvasKit
|
||||
if (stringArg(FlutterGlobalOptions.kLocalWebSDKOption, global: true) != null) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
WebRendererMode get webRenderer => WebRendererMode.fromCliOption(
|
||||
stringArg(FlutterOptions.kWebRendererFlag),
|
||||
useWasm: useWasm
|
||||
@ -287,7 +274,6 @@ abstract class RunCommandBase extends FlutterCommand with DeviceBasedDevelopment
|
||||
webHeaders: webHeaders,
|
||||
webRenderer: webRenderer,
|
||||
webUseWasm: useWasm,
|
||||
webUseLocalCanvaskit: useLocalCanvasKit,
|
||||
enableImpeller: enableImpeller,
|
||||
enableVulkanValidation: enableVulkanValidation,
|
||||
uninstallFirst: uninstallFirst,
|
||||
@ -339,7 +325,6 @@ abstract class RunCommandBase extends FlutterCommand with DeviceBasedDevelopment
|
||||
webHeaders: webHeaders,
|
||||
webRenderer: webRenderer,
|
||||
webUseWasm: useWasm,
|
||||
webUseLocalCanvaskit: useLocalCanvasKit,
|
||||
vmserviceOutFile: stringArg('vmservice-out-file'),
|
||||
fastStart: argParser.options.containsKey('fast-start')
|
||||
&& boolArg('fast-start')
|
||||
|
@ -356,7 +356,10 @@ class TestCommand extends FlutterCommand with DeviceBasedDevelopmentArtifacts {
|
||||
final List<String> plainNames = stringsArg('plain-name');
|
||||
final String? tags = stringArg('tags');
|
||||
final String? excludeTags = stringArg('exclude-tags');
|
||||
final BuildInfo buildInfo = await getBuildInfo(forcedBuildMode: BuildMode.debug);
|
||||
final BuildInfo buildInfo = await getBuildInfo(
|
||||
forcedBuildMode: BuildMode.debug,
|
||||
forcedUseLocalCanvasKit: true
|
||||
);
|
||||
|
||||
TestTimeRecorder? testTimeRecorder;
|
||||
if (verbose) {
|
||||
@ -414,7 +417,6 @@ class TestCommand extends FlutterCommand with DeviceBasedDevelopmentArtifacts {
|
||||
webRenderer: webRenderer,
|
||||
printDtd: boolArg(FlutterGlobalOptions.kPrintDtd, global: true),
|
||||
webUseWasm: useWasm,
|
||||
webUseLocalCanvaskit: true,
|
||||
);
|
||||
|
||||
String? testAssetDirectory;
|
||||
|
@ -994,7 +994,6 @@ class DebuggingOptions {
|
||||
this.webLaunchUrl,
|
||||
WebRendererMode? webRenderer,
|
||||
this.webUseWasm = false,
|
||||
this.webUseLocalCanvaskit = false,
|
||||
this.vmserviceOutFile,
|
||||
this.fastStart = false,
|
||||
this.nullAssertions = false,
|
||||
@ -1031,7 +1030,6 @@ class DebuggingOptions {
|
||||
this.webHeaders = const <String, String>{},
|
||||
WebRendererMode? webRenderer,
|
||||
this.webUseWasm = false,
|
||||
this.webUseLocalCanvaskit = false,
|
||||
this.cacheSkSL = false,
|
||||
this.traceAllowlist,
|
||||
this.enableImpeller = ImpellerStatus.platformDefault,
|
||||
@ -1118,7 +1116,6 @@ class DebuggingOptions {
|
||||
required this.webLaunchUrl,
|
||||
required this.webRenderer,
|
||||
required this.webUseWasm,
|
||||
required this.webUseLocalCanvaskit,
|
||||
required this.vmserviceOutFile,
|
||||
required this.fastStart,
|
||||
required this.nullAssertions,
|
||||
@ -1217,9 +1214,6 @@ class DebuggingOptions {
|
||||
/// Whether to compile to webassembly
|
||||
final bool webUseWasm;
|
||||
|
||||
/// If true, serve CanvasKit assets locally rather than using the CDN.
|
||||
final bool webUseLocalCanvaskit;
|
||||
|
||||
/// A file where the VM Service URL should be written after the application is started.
|
||||
final String? vmserviceOutFile;
|
||||
final bool fastStart;
|
||||
@ -1329,7 +1323,6 @@ class DebuggingOptions {
|
||||
'webHeaders': webHeaders,
|
||||
'webRenderer': webRenderer.name,
|
||||
'webUseWasm': webUseWasm,
|
||||
'webUseLocalCanvaskit': webUseLocalCanvaskit,
|
||||
'vmserviceOutFile': vmserviceOutFile,
|
||||
'fastStart': fastStart,
|
||||
'nullAssertions': nullAssertions,
|
||||
@ -1345,6 +1338,10 @@ class DebuggingOptions {
|
||||
'ipv6': ipv6,
|
||||
'google3WorkspaceRoot': google3WorkspaceRoot,
|
||||
'printDtd': printDtd,
|
||||
// TODO(jsimmons): This field is required for backward compatibility with
|
||||
// the flutter_tools binary that is currently checked into Google3.
|
||||
// Remove this when that binary has been updated.
|
||||
'webUseLocalCanvaskit': false,
|
||||
};
|
||||
|
||||
static DebuggingOptions fromJson(Map<String, Object?> json, BuildInfo buildInfo) =>
|
||||
@ -1391,7 +1388,6 @@ class DebuggingOptions {
|
||||
webLaunchUrl: json['webLaunchUrl'] as String?,
|
||||
webRenderer: WebRendererMode.values.byName(json['webRenderer']! as String),
|
||||
webUseWasm: json['webUseWasm']! as bool,
|
||||
webUseLocalCanvaskit: json['webUseLocalCanvaskit']! as bool,
|
||||
vmserviceOutFile: json['vmserviceOutFile'] as String?,
|
||||
fastStart: json['fastStart']! as bool,
|
||||
nullAssertions: json['nullAssertions']! as bool,
|
||||
|
@ -78,7 +78,6 @@ class WebDriverService extends DriverService {
|
||||
hostname: debuggingOptions.hostname,
|
||||
webRenderer: debuggingOptions.webRenderer,
|
||||
webUseWasm: debuggingOptions.webUseWasm,
|
||||
webUseLocalCanvaskit: debuggingOptions.webUseLocalCanvaskit,
|
||||
)
|
||||
: DebuggingOptions.enabled(
|
||||
buildInfo,
|
||||
@ -87,7 +86,6 @@ class WebDriverService extends DriverService {
|
||||
disablePortPublication: debuggingOptions.disablePortPublication,
|
||||
webRenderer: debuggingOptions.webRenderer,
|
||||
webUseWasm: debuggingOptions.webUseWasm,
|
||||
webUseLocalCanvaskit: debuggingOptions.webUseLocalCanvaskit,
|
||||
),
|
||||
stayResident: true,
|
||||
flutterProject: FlutterProject.current(),
|
||||
|
@ -319,7 +319,7 @@ Please provide a valid TCP port (an integer between 0 and 65535, inclusive).
|
||||
ddcModuleSystem: debuggingOptions.buildInfo.ddcModuleFormat == DdcModuleFormat.ddc,
|
||||
webRenderer: debuggingOptions.webRenderer,
|
||||
isWasm: debuggingOptions.webUseWasm,
|
||||
useLocalCanvasKit: debuggingOptions.webUseLocalCanvaskit,
|
||||
useLocalCanvasKit: debuggingOptions.buildInfo.useLocalCanvasKit,
|
||||
rootDirectory: fileSystem.directory(projectRootPath),
|
||||
);
|
||||
Uri url = await device!.devFS!.create();
|
||||
|
@ -1191,7 +1191,11 @@ abstract class FlutterCommand extends Command<void> {
|
||||
///
|
||||
/// Throws a [ToolExit] if the current set of options is not compatible with
|
||||
/// each other.
|
||||
Future<BuildInfo> getBuildInfo({BuildMode? forcedBuildMode, File? forcedTargetFile}) async {
|
||||
Future<BuildInfo> getBuildInfo({
|
||||
BuildMode? forcedBuildMode,
|
||||
File? forcedTargetFile,
|
||||
bool? forcedUseLocalCanvasKit,
|
||||
}) async {
|
||||
final bool trackWidgetCreation = argParser.options.containsKey('track-widget-creation') &&
|
||||
boolArg('track-widget-creation');
|
||||
|
||||
@ -1308,9 +1312,12 @@ abstract class FlutterCommand extends Command<void> {
|
||||
|
||||
final bool useCdn = !argParser.options.containsKey(FlutterOptions.kWebResourcesCdnFlag)
|
||||
|| boolArg(FlutterOptions.kWebResourcesCdnFlag);
|
||||
final bool useLocalWebSdk = argParser.options.containsKey(FlutterGlobalOptions.kLocalWebSDKOption)
|
||||
&& stringArg(FlutterGlobalOptions.kLocalWebSDKOption, global: true) != null;
|
||||
final bool useLocalCanvasKit = !useCdn || useLocalWebSdk;
|
||||
bool useLocalWebSdk = false;
|
||||
if (globalResults?.wasParsed(FlutterGlobalOptions.kLocalWebSDKOption) ?? false) {
|
||||
useLocalWebSdk = stringArg(FlutterGlobalOptions.kLocalWebSDKOption, global: true) != null;
|
||||
}
|
||||
final bool useLocalCanvasKit = forcedUseLocalCanvasKit
|
||||
?? (!useCdn || useLocalWebSdk);
|
||||
|
||||
final String? defaultFlavor = project.manifest.defaultFlavor;
|
||||
final String? cliFlavor = argParser.options.containsKey('flavor') ? stringArg('flavor') : null;
|
||||
|
@ -1459,7 +1459,7 @@ class TestRunCommandForUsageValues extends RunCommand {
|
||||
}
|
||||
|
||||
@override
|
||||
Future<BuildInfo> getBuildInfo({FlutterProject? project, BuildMode? forcedBuildMode, File? forcedTargetFile}) async {
|
||||
Future<BuildInfo> getBuildInfo({FlutterProject? project, BuildMode? forcedBuildMode, File? forcedTargetFile, bool? forcedUseLocalCanvasKit}) async {
|
||||
return const BuildInfo(BuildMode.debug, null, treeShakeIcons: false, packageConfigPath: '.dart_tool/package_config.json');
|
||||
}
|
||||
}
|
||||
|
@ -700,6 +700,18 @@ void main() {
|
||||
ProcessManager: () => processManager,
|
||||
});
|
||||
|
||||
testUsingContext('sets useLocalCanvasKit in BuildInfo', () async {
|
||||
final DummyFlutterCommand flutterCommand = DummyFlutterCommand();
|
||||
final CommandRunner<void> runner = createTestCommandRunner(flutterCommand);
|
||||
fileSystem.directory('engine/src/out/wasm_release').createSync(recursive: true);
|
||||
await runner.run(<String>['--local-web-sdk=wasm_release', '--local-engine-src-path=engine/src', 'dummy']);
|
||||
final BuildInfo buildInfo = await flutterCommand.getBuildInfo(forcedBuildMode: BuildMode.debug);
|
||||
expect(buildInfo.useLocalCanvasKit, isTrue);
|
||||
}, overrides: <Type, Generator>{
|
||||
FileSystem: () => fileSystem,
|
||||
ProcessManager: () => processManager,
|
||||
});
|
||||
|
||||
testUsingContext('dds options', () async {
|
||||
final FakeDdsCommand ddsCommand = FakeDdsCommand();
|
||||
final CommandRunner<void> runner = createTestCommandRunner(ddsCommand);
|
||||
|
Loading…
x
Reference in New Issue
Block a user