Unverified Commit b81b1e28 authored by Chris Yang's avatar Chris Yang Committed by GitHub

[flutter_tool] add enable-embedder-api flag (#121895)

[flutter_tool] add enable-embedder-api flag
parent d5513047
......@@ -183,6 +183,7 @@ abstract class RunCommandBase extends FlutterCommand with DeviceBasedDevelopment
addAndroidSpecificBuildOptions(hide: !verboseHelp);
usesFatalWarningsOption(verboseHelp: verboseHelp);
addEnableImpellerFlag(verboseHelp: verboseHelp);
addEnableEmbedderApiFlag(verboseHelp: verboseHelp);
}
bool get traceStartup => boolArgDeprecated('trace-startup');
......@@ -196,6 +197,7 @@ abstract class RunCommandBase extends FlutterCommand with DeviceBasedDevelopment
bool get trackWidgetCreation => boolArgDeprecated('track-widget-creation');
bool get enableImpeller => boolArgDeprecated('enable-impeller');
bool get uninstallFirst => boolArgDeprecated('uninstall-first');
bool get enableEmbedderApi => boolArgDeprecated('enable-embedder-api');
@override
bool get reportNullSafety => true;
......@@ -234,6 +236,7 @@ abstract class RunCommandBase extends FlutterCommand with DeviceBasedDevelopment
enableImpeller: enableImpeller,
uninstallFirst: uninstallFirst,
enableDartProfiling: enableDartProfiling,
enableEmbedderApi: enableEmbedderApi,
);
} else {
return DebuggingOptions.enabled(
......@@ -282,6 +285,7 @@ abstract class RunCommandBase extends FlutterCommand with DeviceBasedDevelopment
uninstallFirst: uninstallFirst,
serveObservatory: boolArgDeprecated('serve-observatory'),
enableDartProfiling: enableDartProfiling,
enableEmbedderApi: enableEmbedderApi,
);
}
}
......
......@@ -967,6 +967,7 @@ class DebuggingOptions {
this.uninstallFirst = false,
this.serveObservatory = true,
this.enableDartProfiling = true,
this.enableEmbedderApi = false,
}) : debuggingEnabled = true;
DebuggingOptions.disabled(this.buildInfo, {
......@@ -986,6 +987,7 @@ class DebuggingOptions {
this.enableImpeller = false,
this.uninstallFirst = false,
this.enableDartProfiling = true,
this.enableEmbedderApi = false,
}) : debuggingEnabled = false,
useTestFonts = false,
startPaused = false,
......@@ -1059,6 +1061,7 @@ class DebuggingOptions {
required this.uninstallFirst,
required this.serveObservatory,
required this.enableDartProfiling,
required this.enableEmbedderApi,
});
final bool debuggingEnabled;
......@@ -1096,6 +1099,7 @@ class DebuggingOptions {
final bool enableImpeller;
final bool serveObservatory;
final bool enableDartProfiling;
final bool enableEmbedderApi;
/// Whether the tool should try to uninstall a previously installed version of the app.
///
......@@ -1179,6 +1183,7 @@ class DebuggingOptions {
// Tell the VM service to listen on all interfaces, don't restrict to the loopback.
if (interfaceType == IOSDeviceConnectionInterface.network)
'--vm-service-host=${ipv6 ? '::0' : '0.0.0.0'}',
if (enableEmbedderApi) '--enable-embedder-api',
];
}
......@@ -1225,6 +1230,7 @@ class DebuggingOptions {
'enableImpeller': enableImpeller,
'serveObservatory': serveObservatory,
'enableDartProfiling': enableDartProfiling,
'enableEmbedderApi': enableEmbedderApi,
};
static DebuggingOptions fromJson(Map<String, Object?> json, BuildInfo buildInfo) =>
......@@ -1273,6 +1279,7 @@ class DebuggingOptions {
uninstallFirst: (json['uninstallFirst'] as bool?) ?? false,
serveObservatory: (json['serveObservatory'] as bool?) ?? false,
enableDartProfiling: (json['enableDartProfiling'] as bool?) ?? true,
enableEmbedderApi: (json['enableEmbedderApi'] as bool?) ?? false,
);
}
......
......@@ -1043,6 +1043,13 @@ abstract class FlutterCommand extends Command<void> {
);
}
void addEnableEmbedderApiFlag({required bool verboseHelp}) {
argParser.addFlag('enable-embedder-api',
hide: !verboseHelp,
help: 'Whether to enable the experimental embedder API on iOS.',
);
}
/// Compute the [BuildInfo] for the current flutter command.
/// Commands that build multiple build modes can pass in a [forcedBuildMode]
/// to be used instead of parsing flags.
......
......@@ -388,6 +388,7 @@ void main() {
'--trace-systrace',
'--enable-software-rendering',
'--skia-deterministic-rendering',
'--enable-embedder-api',
]), throwsToolExit());
final DebuggingOptions options = await command.createDebuggingOptions(false);
......
......@@ -938,6 +938,7 @@ void main() {
'--trace-systrace',
'--enable-software-rendering',
'--skia-deterministic-rendering',
'--enable-embedder-api',
]), throwsToolExit());
final DebuggingOptions options = await command.createDebuggingOptions(false);
......
......@@ -737,6 +737,7 @@ void main() {
deviceVmServicePort: 1234,
enableImpeller: true,
enableDartProfiling: false,
enableEmbedderApi: true,
);
final String jsonString = json.encode(original.toJson());
final Map<String, dynamic> decoded = castStringKeyedMap(json.decode(jsonString))!;
......@@ -749,6 +750,7 @@ void main() {
expect(deserialized.deviceVmServicePort, original.deviceVmServicePort);
expect(deserialized.enableImpeller, original.enableImpeller);
expect(deserialized.enableDartProfiling, original.enableDartProfiling);
expect(deserialized.enableEmbedderApi, original.enableEmbedderApi);
});
});
......
......@@ -353,6 +353,7 @@ void main() {
'--cache-sksl',
'--purge-persistent-cache',
'--enable-impeller',
'--enable-embedder-api',
].join(' '),
],
environment: const <String, String>{
......@@ -405,6 +406,7 @@ void main() {
verboseSystemLogs: true,
nullAssertions: true,
enableImpeller: true,
enableEmbedderApi: true,
),
platformArgs: <String, dynamic>{},
);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment