[tool] Removes deprecated --web-renderer parameter. (#159314)
Removes the `--web-renderer` option. Flutter tool users won't be able to select their web renderer. In order to not drop test coverage, tests are still run with the HTML Renderer, until its code is fully removed from the engine. Part of https://github.com/flutter/flutter/issues/145954 ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [x] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement]. - [x] I signed the [CLA]. - [x] I listed at least one issue that this PR fixes in the description above. - [x] I updated/added relevant documentation (doc comments with `///`). - [x] I added new tests to check the change I am making, or this PR is [test-exempt]. - [x] I followed the [breaking change policy] and added [Data Driven Fixes] where supported. - [x] All existing and new tests are passing. If you need help, consider asking for advice on the #hackers-new channel on [Discord]. <!-- Links --> [Contributor Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview [Tree Hygiene]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md [test-exempt]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests [Flutter Style Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md [Features we expect every widget to implement]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement [CLA]: https://cla.developers.google.com/ [flutter/tests]: https://github.com/flutter/tests [breaking change policy]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes [Discord]: https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md [Data Driven Fixes]: https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
This commit is contained in:
parent
6a68c9b62a
commit
1e1b5271f4
@ -105,7 +105,7 @@ class WebTestsSuite {
|
||||
testAppDirectory: path.join('packages', 'integration_test', 'example'),
|
||||
target: path.join('test_driver', 'failure.dart'),
|
||||
buildMode: buildMode,
|
||||
renderer: 'canvaskit',
|
||||
webRenderer: 'canvaskit',
|
||||
// This test intentionally fails and prints stack traces in the browser
|
||||
// logs. To avoid confusion, silence browser output.
|
||||
silenceBrowserOutput: true,
|
||||
@ -115,7 +115,7 @@ class WebTestsSuite {
|
||||
target: path.join('integration_test', 'example_test.dart'),
|
||||
driver: path.join('test_driver', 'integration_test.dart'),
|
||||
buildMode: buildMode,
|
||||
renderer: 'canvaskit',
|
||||
webRenderer: 'canvaskit',
|
||||
expectWriteResponseFile: true,
|
||||
expectResponseFileContent: 'null',
|
||||
),
|
||||
@ -124,7 +124,7 @@ class WebTestsSuite {
|
||||
target: path.join('integration_test', 'extended_test.dart'),
|
||||
driver: path.join('test_driver', 'extended_integration_test.dart'),
|
||||
buildMode: buildMode,
|
||||
renderer: 'canvaskit',
|
||||
webRenderer: 'canvaskit',
|
||||
expectWriteResponseFile: true,
|
||||
expectResponseFileContent: '''
|
||||
{
|
||||
@ -177,7 +177,7 @@ class WebTestsSuite {
|
||||
testAppDirectory: path.join(flutterRoot, 'examples', 'hello_world'),
|
||||
target: 'test_driver/smoke_web_engine.dart',
|
||||
buildMode: 'profile',
|
||||
renderer: 'auto',
|
||||
webRenderer: 'auto',
|
||||
),
|
||||
() => _runGalleryE2eWebTest('debug'),
|
||||
() => _runGalleryE2eWebTest('debug', canvasKit: true),
|
||||
@ -278,7 +278,7 @@ class WebTestsSuite {
|
||||
await _runFlutterDriverWebTest(
|
||||
target: path.join('test_driver', '$name.dart'),
|
||||
buildMode: buildMode,
|
||||
renderer: renderer,
|
||||
webRenderer: renderer,
|
||||
testAppDirectory: path.join(flutterRoot, 'dev', 'integration_tests', 'web_e2e_tests'),
|
||||
);
|
||||
}
|
||||
@ -286,7 +286,7 @@ class WebTestsSuite {
|
||||
Future<void> _runFlutterDriverWebTest({
|
||||
required String target,
|
||||
required String buildMode,
|
||||
required String renderer,
|
||||
required String webRenderer,
|
||||
required String testAppDirectory,
|
||||
String? driver,
|
||||
bool expectFailure = false,
|
||||
@ -318,7 +318,24 @@ class WebTestsSuite {
|
||||
'-d',
|
||||
'web-server',
|
||||
'--$buildMode',
|
||||
'--web-renderer=$renderer',
|
||||
// '--web-renderer=$webRenderer',
|
||||
'--dart-define=FLUTTER_WEB_AUTO_DETECT=false',
|
||||
if (webRenderer == 'skwasm') ...<String>[
|
||||
// See: WebRendererMode.dartDefines[skwasm]
|
||||
'--dart-define=FLUTTER_WEB_USE_SKIA=false',
|
||||
'--dart-define=FLUTTER_WEB_USE_SKWASM=true',
|
||||
],
|
||||
if (webRenderer == 'canvaskit') ...<String>[
|
||||
// See: WebRendererMode.dartDefines[canvaskit]
|
||||
'--dart-define=FLUTTER_WEB_USE_SKIA=true',
|
||||
'--dart-define=FLUTTER_WEB_USE_SKWASM=false',
|
||||
],
|
||||
if (webRenderer == 'html') ...<String>[
|
||||
// See: WebRendererMode.dartDefines[html]
|
||||
'--dart-define=FLUTTER_WEB_USE_SKIA=false',
|
||||
'--dart-define=FLUTTER_WEB_USE_SKWASM=false',
|
||||
],
|
||||
|
||||
],
|
||||
expectNonZeroExit: expectFailure,
|
||||
workingDirectory: testAppDirectory,
|
||||
@ -695,7 +712,23 @@ class WebTestsSuite {
|
||||
'-v',
|
||||
'--platform=chrome',
|
||||
if (useWasm) '--wasm',
|
||||
'--web-renderer=$webRenderer',
|
||||
'--dart-define=FLUTTER_WEB_AUTO_DETECT=false',
|
||||
// '--web-renderer=$webRenderer',
|
||||
if (webRenderer == 'skwasm') ...<String>[
|
||||
// See: WebRendererMode.dartDefines[skwasm]
|
||||
'--dart-define=FLUTTER_WEB_USE_SKIA=false',
|
||||
'--dart-define=FLUTTER_WEB_USE_SKWASM=true',
|
||||
],
|
||||
if (webRenderer == 'canvaskit') ...<String>[
|
||||
// See: WebRendererMode.dartDefines[canvaskit]
|
||||
'--dart-define=FLUTTER_WEB_USE_SKIA=true',
|
||||
'--dart-define=FLUTTER_WEB_USE_SKWASM=false',
|
||||
],
|
||||
if (webRenderer == 'html') ...<String>[
|
||||
// See: WebRendererMode.dartDefines[html]
|
||||
'--dart-define=FLUTTER_WEB_USE_SKIA=false',
|
||||
'--dart-define=FLUTTER_WEB_USE_SKWASM=false',
|
||||
],
|
||||
'--dart-define=DART_HHH_BOT=$runningInDartHHHBot',
|
||||
...flutterTestArgs,
|
||||
...tests,
|
||||
|
@ -51,7 +51,6 @@ class BuildWebCommand extends BuildSubCommand {
|
||||
allowed: ServiceWorkerStrategy.values.map((ServiceWorkerStrategy e) => e.cliName),
|
||||
allowedHelp: CliEnum.allowedHelp(ServiceWorkerStrategy.values),
|
||||
);
|
||||
usesWebRendererOption();
|
||||
usesWebResourcesCdnFlag();
|
||||
|
||||
//
|
||||
@ -141,20 +140,23 @@ class BuildWebCommand extends BuildSubCommand {
|
||||
? int.parse(dart2jsOptimizationLevelValue.substring(1))
|
||||
: optimizationLevel;
|
||||
|
||||
final String? webRendererString = stringArg(FlutterOptions.kWebRendererFlag);
|
||||
final WebRendererMode? webRenderer = webRendererString == null
|
||||
? null
|
||||
: WebRendererMode.values.byName(webRendererString);
|
||||
final List<String> dartDefines = extractDartDefines(
|
||||
defineConfigJsonMap: extractDartDefineConfigJsonMap()
|
||||
);
|
||||
final bool useWasm = boolArg(FlutterOptions.kWebWasmFlag);
|
||||
// See also: RunCommandBase.webRenderer and TestCommand.webRenderer.
|
||||
final WebRendererMode webRenderer = WebRendererMode.fromDartDefines(dartDefines, useWasm: useWasm);
|
||||
|
||||
final bool sourceMaps = boolArg('source-maps');
|
||||
|
||||
final List<WebCompilerConfig> compilerConfigs;
|
||||
if (webRenderer != null && webRenderer.isDeprecated) {
|
||||
if (webRenderer.isDeprecated) {
|
||||
globals.logger.printWarning(webRenderer.deprecationWarning);
|
||||
}
|
||||
if (boolArg(FlutterOptions.kWebWasmFlag)) {
|
||||
if (webRenderer != null) {
|
||||
throwToolExit('"--${FlutterOptions.kWebRendererFlag}" cannot be combined with "--${FlutterOptions.kWebWasmFlag}"');
|
||||
|
||||
if (useWasm) {
|
||||
if (webRenderer != WebRendererMode.getDefault(useWasm: true)) {
|
||||
throwToolExit('Do not attempt to set a web renderer when using "--${FlutterOptions.kWebWasmFlag}"');
|
||||
}
|
||||
globals.logger.printBox(
|
||||
title: 'New feature',
|
||||
@ -185,7 +187,7 @@ class BuildWebCommand extends BuildSubCommand {
|
||||
nativeNullAssertions: boolArg('native-null-assertions'),
|
||||
noFrequencyBasedMinification: boolArg('no-frequency-based-minification'),
|
||||
sourceMaps: sourceMaps,
|
||||
renderer: webRenderer ?? WebRendererMode.defaultForJs,
|
||||
renderer: webRenderer,
|
||||
)];
|
||||
}
|
||||
|
||||
|
@ -39,7 +39,6 @@ abstract class RunCommandBase extends FlutterCommand with DeviceBasedDevelopment
|
||||
addBuildModeFlags(verboseHelp: verboseHelp, defaultToRelease: false);
|
||||
usesDartDefineOption();
|
||||
usesFlavorOption();
|
||||
usesWebRendererOption();
|
||||
usesWebResourcesCdnFlag();
|
||||
addNativeNullAssertions(hide: !verboseHelp);
|
||||
addBundleSkSLPathOption(hide: !verboseHelp);
|
||||
@ -234,10 +233,13 @@ abstract class RunCommandBase extends FlutterCommand with DeviceBasedDevelopment
|
||||
|
||||
bool get useWasm => boolArg(FlutterOptions.kWebWasmFlag);
|
||||
|
||||
WebRendererMode get webRenderer => WebRendererMode.fromCliOption(
|
||||
stringArg(FlutterOptions.kWebRendererFlag),
|
||||
useWasm: useWasm
|
||||
// Keep in sync with the [TestCommand.webRenderer] getter.
|
||||
WebRendererMode get webRenderer {
|
||||
final List<String> dartDefines = extractDartDefines(
|
||||
defineConfigJsonMap: extractDartDefineConfigJsonMap()
|
||||
);
|
||||
return WebRendererMode.fromDartDefines(dartDefines, useWasm: useWasm);
|
||||
}
|
||||
|
||||
/// Create a debugging options instance for the current `run` or `drive` invocation.
|
||||
@visibleForTesting
|
||||
|
@ -76,7 +76,6 @@ class TestCommand extends FlutterCommand with DeviceBasedDevelopmentArtifacts {
|
||||
usesTrackWidgetCreation(verboseHelp: verboseHelp);
|
||||
addEnableExperimentation(hide: !verboseHelp);
|
||||
usesDartDefineOption();
|
||||
usesWebRendererOption();
|
||||
usesDeviceUserOption();
|
||||
usesFlavorOption();
|
||||
addEnableImpellerFlag(verboseHelp: verboseHelp);
|
||||
@ -336,10 +335,13 @@ class TestCommand extends FlutterCommand with DeviceBasedDevelopmentArtifacts {
|
||||
return super.verifyThenRunCommand(commandPath);
|
||||
}
|
||||
|
||||
WebRendererMode get webRenderer => WebRendererMode.fromCliOption(
|
||||
stringArg(FlutterOptions.kWebRendererFlag),
|
||||
useWasm: useWasm
|
||||
// Keep in sync with the [RunCommandBase.webRenderer] getter.
|
||||
WebRendererMode get webRenderer {
|
||||
final List<String> dartDefines = extractDartDefines(
|
||||
defineConfigJsonMap: extractDartDefineConfigJsonMap()
|
||||
);
|
||||
return WebRendererMode.fromDartDefines(dartDefines, useWasm: useWasm);
|
||||
}
|
||||
|
||||
@override
|
||||
Future<FlutterCommandResult> runCommand() async {
|
||||
|
@ -31,7 +31,6 @@ import '../preview_device.dart';
|
||||
import '../project.dart';
|
||||
import '../reporting/reporting.dart';
|
||||
import '../reporting/unified_analytics.dart';
|
||||
import '../web/compile.dart';
|
||||
import 'flutter_command_runner.dart';
|
||||
import 'target_devices.dart';
|
||||
|
||||
@ -154,7 +153,6 @@ abstract final class FlutterOptions {
|
||||
static const String kFatalWarnings = 'fatal-warnings';
|
||||
static const String kUseApplicationBinary = 'use-application-binary';
|
||||
static const String kWebBrowserFlag = 'web-browser-flag';
|
||||
static const String kWebRendererFlag = 'web-renderer';
|
||||
static const String kWebResourcesCdnFlag = 'web-resources-cdn';
|
||||
static const String kWebWasmFlag = 'wasm';
|
||||
}
|
||||
@ -707,32 +705,6 @@ abstract class FlutterCommand extends Command<void> {
|
||||
);
|
||||
}
|
||||
|
||||
// This option is deprecated and is no longer publicly supported, and
|
||||
// therefore is hidden.
|
||||
//
|
||||
// The option still exists for internal testing, and to give existing users
|
||||
// time to migrate off the HTML renderer, but it is no longer advertised as a
|
||||
// supported mode.
|
||||
//
|
||||
// See also:
|
||||
// * https://github.com/flutter/flutter/issues/151786
|
||||
// * https://github.com/flutter/flutter/issues/145954
|
||||
void usesWebRendererOption() {
|
||||
argParser.addOption(
|
||||
hide: true,
|
||||
FlutterOptions.kWebRendererFlag,
|
||||
allowed: WebRendererMode.values.map((WebRendererMode e) => e.name),
|
||||
help: 'This option is deprecated and will be removed in a future Flutter '
|
||||
'release.\n'
|
||||
'Selects the renderer implementation to use when building for the '
|
||||
'web. The supported renderers are "canvaskit" when compiling to '
|
||||
'JavaScript, and "skwasm" when compiling to WebAssembly. Other '
|
||||
'renderer and compiler combinations are no longer supported. '
|
||||
'Consider migrating your app to a supported renderer.',
|
||||
allowedHelp: CliEnum.allowedHelp(WebRendererMode.values)
|
||||
);
|
||||
}
|
||||
|
||||
void usesWebResourcesCdnFlag() {
|
||||
argParser.addFlag(
|
||||
FlutterOptions.kWebResourcesCdnFlag,
|
||||
|
@ -11,7 +11,6 @@ import '../base/file_system.dart';
|
||||
import '../base/logger.dart';
|
||||
import '../base/project_migrator.dart';
|
||||
import '../base/terminal.dart';
|
||||
import '../base/utils.dart';
|
||||
import '../build_info.dart';
|
||||
import '../build_system/build_system.dart';
|
||||
import '../cache.dart';
|
||||
@ -179,7 +178,7 @@ class WebBuilder {
|
||||
}
|
||||
|
||||
/// Web rendering backend mode.
|
||||
enum WebRendererMode implements CliEnum {
|
||||
enum WebRendererMode {
|
||||
/// Auto detects which rendering backend to use.
|
||||
auto,
|
||||
|
||||
@ -192,12 +191,22 @@ enum WebRendererMode implements CliEnum {
|
||||
/// Always use skwasm.
|
||||
skwasm;
|
||||
|
||||
factory WebRendererMode.fromCliOption(String? webRendererString,
|
||||
{required bool useWasm}) {
|
||||
if (webRendererString == null) {
|
||||
return getDefault(useWasm: useWasm);
|
||||
factory WebRendererMode.fromDartDefines(Iterable<String> defines, {
|
||||
required bool useWasm,
|
||||
}) {
|
||||
if (defines.contains('FLUTTER_WEB_AUTO_DETECT=true')) {
|
||||
return auto;
|
||||
} else if (defines.contains('FLUTTER_WEB_USE_SKIA=false')
|
||||
&& defines.contains('FLUTTER_WEB_USE_SKWASM=true')) {
|
||||
return skwasm;
|
||||
} else if (defines.contains('FLUTTER_WEB_USE_SKIA=true')
|
||||
&& defines.contains('FLUTTER_WEB_USE_SKWASM=false')) {
|
||||
return canvaskit;
|
||||
} else if (defines.contains('FLUTTER_WEB_USE_SKIA=false')
|
||||
&& defines.contains('FLUTTER_WEB_USE_SKWASM=false')) {
|
||||
return html; // The horror!
|
||||
}
|
||||
return WebRendererMode.values.byName(webRendererString);
|
||||
return getDefault(useWasm: useWasm);
|
||||
}
|
||||
|
||||
static WebRendererMode getDefault({required bool useWasm}) {
|
||||
@ -219,13 +228,9 @@ enum WebRendererMode implements CliEnum {
|
||||
|
||||
/// Returns a consistent deprecation warning for the WebRendererMode.
|
||||
String get deprecationWarning =>
|
||||
'The HTML Renderer is deprecated. Do not use "--web-renderer=$name".'
|
||||
'The HTML Renderer is deprecated and will be removed. Please, stop using it.'
|
||||
'\nSee: https://docs.flutter.dev/to/web-html-renderer-deprecation';
|
||||
|
||||
@override
|
||||
String get cliName => kebabCase(name);
|
||||
|
||||
@override
|
||||
String get helpText => switch (this) {
|
||||
auto =>
|
||||
'Use the HTML renderer on mobile devices, and CanvasKit on desktop devices.',
|
||||
@ -236,34 +241,45 @@ enum WebRendererMode implements CliEnum {
|
||||
skwasm => 'Always use the experimental skwasm renderer.'
|
||||
};
|
||||
|
||||
/// Returns [dartDefines] in a way usable from the CLI.
|
||||
///
|
||||
/// This is used to start integration tests.
|
||||
Iterable<String> get toCliDartDefines => dartDefines.map(
|
||||
(String define) => '--dart-define=$define');
|
||||
|
||||
Iterable<String> get dartDefines => switch (this) {
|
||||
auto => <String>[
|
||||
auto => const <String>{
|
||||
'FLUTTER_WEB_AUTO_DETECT=true',
|
||||
],
|
||||
canvaskit => <String>[
|
||||
},
|
||||
canvaskit => const <String>{
|
||||
'FLUTTER_WEB_AUTO_DETECT=false',
|
||||
'FLUTTER_WEB_USE_SKIA=true',
|
||||
],
|
||||
html => <String>[
|
||||
'FLUTTER_WEB_USE_SKWASM=false',
|
||||
},
|
||||
html => const <String>{
|
||||
'FLUTTER_WEB_AUTO_DETECT=false',
|
||||
'FLUTTER_WEB_USE_SKIA=false',
|
||||
],
|
||||
skwasm => <String>[
|
||||
'FLUTTER_WEB_USE_SKWASM=false',
|
||||
},
|
||||
skwasm => const <String>{
|
||||
'FLUTTER_WEB_AUTO_DETECT=false',
|
||||
'FLUTTER_WEB_USE_SKIA=false',
|
||||
'FLUTTER_WEB_USE_SKWASM=true',
|
||||
],
|
||||
},
|
||||
};
|
||||
|
||||
/// Sets the dart defines for the currently selected WebRendererMode
|
||||
List<String> updateDartDefines(List<String> inputDefines) {
|
||||
final Set<String> dartDefinesSet = inputDefines.toSet();
|
||||
if (!inputDefines
|
||||
.any((String d) => d.startsWith('FLUTTER_WEB_AUTO_DETECT=')) &&
|
||||
inputDefines.any((String d) => d.startsWith('FLUTTER_WEB_USE_SKIA='))) {
|
||||
|
||||
dartDefinesSet
|
||||
.removeWhere((String d) => d.startsWith('FLUTTER_WEB_USE_SKIA='));
|
||||
}
|
||||
dartDefinesSet.addAll(dartDefines);
|
||||
..removeWhere((String d) {
|
||||
return d.startsWith('FLUTTER_WEB_AUTO_DETECT=') ||
|
||||
d.startsWith('FLUTTER_WEB_USE_SKIA=') ||
|
||||
d.startsWith('FLUTTER_WEB_USE_SKWASM=');
|
||||
})
|
||||
..addAll(dartDefines);
|
||||
|
||||
return dartDefinesSet.toList();
|
||||
}
|
||||
}
|
||||
|
@ -371,7 +371,7 @@ void main() {
|
||||
'build',
|
||||
'web',
|
||||
'--no-pub',
|
||||
'--web-renderer=${webRenderer.name}',
|
||||
...webRenderer.toCliDartDefines,
|
||||
]);
|
||||
} on ToolExit catch (error) {
|
||||
expect(error, isA<ToolExit>());
|
||||
@ -402,12 +402,6 @@ void main() {
|
||||
expect(command.usage, contains(option));
|
||||
}
|
||||
|
||||
void expectHidden(String option) {
|
||||
expect(command.argParser.options.keys, contains(option));
|
||||
expect(command.argParser.options[option]!.hide, isTrue);
|
||||
expect(command.usage, isNot(contains(option)));
|
||||
}
|
||||
|
||||
expectVisible('pwa-strategy');
|
||||
expectVisible('web-resources-cdn');
|
||||
expectVisible('optimization-level');
|
||||
@ -419,8 +413,6 @@ void main() {
|
||||
expectVisible('wasm');
|
||||
expectVisible('strip-wasm');
|
||||
expectVisible('base-href');
|
||||
|
||||
expectHidden('web-renderer');
|
||||
}, overrides: <Type, Generator>{
|
||||
Platform: () => fakePlatform,
|
||||
FileSystem: () => fileSystem,
|
||||
|
@ -1012,7 +1012,7 @@ void main() {
|
||||
() => createTestCommandRunner(command).run(<String>[
|
||||
'run',
|
||||
'--no-pub',
|
||||
'--web-renderer=skwasm',
|
||||
...WebRendererMode.skwasm.toCliDartDefines,
|
||||
]), throwsToolExit(message: 'Skwasm renderer requires --wasm'));
|
||||
}, overrides: <Type, Generator>{
|
||||
FileSystem: () => fileSystem,
|
||||
@ -1030,7 +1030,7 @@ void main() {
|
||||
await createTestCommandRunner(RunCommand()).run(<String>[
|
||||
'run',
|
||||
'--no-pub',
|
||||
'--web-renderer=${webRenderer.name}',
|
||||
...webRenderer.toCliDartDefines,
|
||||
]);
|
||||
} on ToolExit catch (error) {
|
||||
expect(error, isA<ToolExit>());
|
||||
|
@ -1395,11 +1395,11 @@ dev_dependencies:
|
||||
final TestCommand testCommand = TestCommand(testRunner: testRunner);
|
||||
final CommandRunner<void> commandRunner = createTestCommandRunner(testCommand);
|
||||
|
||||
await commandRunner.run(const <String>[
|
||||
await commandRunner.run(<String>[
|
||||
'test',
|
||||
'--no-pub',
|
||||
'--platform=chrome',
|
||||
'--web-renderer=canvaskit',
|
||||
...WebRendererMode.canvaskit.toCliDartDefines,
|
||||
]);
|
||||
expect(testRunner.lastDebuggingOptionsValue.webRenderer, WebRendererMode.canvaskit);
|
||||
}, overrides: <Type, Generator>{
|
||||
@ -1440,7 +1440,7 @@ dev_dependencies:
|
||||
'web',
|
||||
'--no-pub',
|
||||
'--platform=chrome',
|
||||
'--web-renderer=${webRenderer.name}',
|
||||
...webRenderer.toCliDartDefines,
|
||||
]);
|
||||
} on ToolExit catch (error) {
|
||||
expect(error, isA<ToolExit>());
|
||||
@ -1459,7 +1459,6 @@ dev_dependencies:
|
||||
.where((WebRendererMode mode) => mode.isDeprecated)
|
||||
.forEach(testWebRendererDeprecationMessage);
|
||||
|
||||
|
||||
testUsingContext('Can test in a pub workspace',
|
||||
() async {
|
||||
final String root = fs.path.rootPrefix(fs.currentDirectory.absolute.path);
|
||||
|
@ -232,7 +232,6 @@ void verifyOptions(String? command, Iterable<Option> options) {
|
||||
const List<String> deprecatedOptions = <String>[
|
||||
FlutterOptions.kNullSafety,
|
||||
FlutterOptions.kNullAssertions,
|
||||
FlutterOptions.kWebRendererFlag,
|
||||
];
|
||||
final bool isOptionDeprecated = deprecatedOptions.contains(option.name);
|
||||
if (!isOptionDeprecated) {
|
||||
|
@ -21,12 +21,20 @@ void main() {
|
||||
|
||||
test('canvaskit web-renderer with no dart-defines', () {
|
||||
dartDefines = WebRendererMode.canvaskit.updateDartDefines(dartDefines);
|
||||
expect(dartDefines, <String>['FLUTTER_WEB_AUTO_DETECT=false','FLUTTER_WEB_USE_SKIA=true']);
|
||||
expect(dartDefines, <String>[
|
||||
'FLUTTER_WEB_AUTO_DETECT=false',
|
||||
'FLUTTER_WEB_USE_SKIA=true',
|
||||
'FLUTTER_WEB_USE_SKWASM=false',
|
||||
]);
|
||||
});
|
||||
|
||||
test('html web-renderer with no dart-defines', () {
|
||||
dartDefines = WebRendererMode.html.updateDartDefines(dartDefines);
|
||||
expect(dartDefines, <String>['FLUTTER_WEB_AUTO_DETECT=false','FLUTTER_WEB_USE_SKIA=false']);
|
||||
expect(dartDefines, <String>[
|
||||
'FLUTTER_WEB_AUTO_DETECT=false',
|
||||
'FLUTTER_WEB_USE_SKIA=false',
|
||||
'FLUTTER_WEB_USE_SKWASM=false',
|
||||
]);
|
||||
});
|
||||
|
||||
test('auto web-renderer with existing dart-defines', () {
|
||||
@ -38,13 +46,31 @@ void main() {
|
||||
test('canvaskit web-renderer with existing dart-defines', () {
|
||||
dartDefines = <String>['FLUTTER_WEB_USE_SKIA=false'];
|
||||
dartDefines = WebRendererMode.canvaskit.updateDartDefines(dartDefines);
|
||||
expect(dartDefines, <String>['FLUTTER_WEB_AUTO_DETECT=false','FLUTTER_WEB_USE_SKIA=true']);
|
||||
expect(dartDefines, <String>[
|
||||
'FLUTTER_WEB_AUTO_DETECT=false',
|
||||
'FLUTTER_WEB_USE_SKIA=true',
|
||||
'FLUTTER_WEB_USE_SKWASM=false',
|
||||
]);
|
||||
});
|
||||
|
||||
test('html web-renderer with existing dart-defines', () {
|
||||
dartDefines = <String>['FLUTTER_WEB_USE_SKIA=true'];
|
||||
dartDefines = WebRendererMode.html.updateDartDefines(dartDefines);
|
||||
expect(dartDefines, <String>['FLUTTER_WEB_AUTO_DETECT=false','FLUTTER_WEB_USE_SKIA=false']);
|
||||
expect(dartDefines, <String>[
|
||||
'FLUTTER_WEB_AUTO_DETECT=false',
|
||||
'FLUTTER_WEB_USE_SKIA=false',
|
||||
'FLUTTER_WEB_USE_SKWASM=false',
|
||||
]);
|
||||
});
|
||||
|
||||
test('skwasm web-renderer with existing dart-defines', () {
|
||||
dartDefines = <String>['FLUTTER_WEB_USE_SKWASM=false'];
|
||||
dartDefines = WebRendererMode.skwasm.updateDartDefines(dartDefines);
|
||||
expect(dartDefines, <String>[
|
||||
'FLUTTER_WEB_AUTO_DETECT=false',
|
||||
'FLUTTER_WEB_USE_SKIA=false',
|
||||
'FLUTTER_WEB_USE_SKWASM=true',
|
||||
]);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
@ -401,6 +401,7 @@ void main() {
|
||||
'-Ddart.vm.profile=true',
|
||||
'-DFLUTTER_WEB_AUTO_DETECT=false',
|
||||
'-DFLUTTER_WEB_USE_SKIA=true',
|
||||
'-DFLUTTER_WEB_USE_SKWASM=false',
|
||||
'-DFLUTTER_WEB_CANVASKIT_URL=https://www.gstatic.com/flutter-canvaskit/abcdefghijklmnopqrstuvwxyz/',
|
||||
'--no-source-maps',
|
||||
'-o',
|
||||
@ -416,6 +417,7 @@ void main() {
|
||||
'-Ddart.vm.profile=true',
|
||||
'-DFLUTTER_WEB_AUTO_DETECT=false',
|
||||
'-DFLUTTER_WEB_USE_SKIA=true',
|
||||
'-DFLUTTER_WEB_USE_SKWASM=false',
|
||||
'-DFLUTTER_WEB_CANVASKIT_URL=https://www.gstatic.com/flutter-canvaskit/abcdefghijklmnopqrstuvwxyz/',
|
||||
'--no-minify',
|
||||
'--no-source-maps',
|
||||
@ -446,6 +448,7 @@ void main() {
|
||||
'-Ddart.vm.profile=true',
|
||||
'-DFLUTTER_WEB_AUTO_DETECT=false',
|
||||
'-DFLUTTER_WEB_USE_SKIA=true',
|
||||
'-DFLUTTER_WEB_USE_SKWASM=false',
|
||||
'-DFLUTTER_WEB_CANVASKIT_URL=https://www.gstatic.com/flutter-canvaskit/abcdefghijklmnopqrstuvwxyz/',
|
||||
'--no-source-maps',
|
||||
'-o',
|
||||
@ -461,6 +464,7 @@ void main() {
|
||||
'-Ddart.vm.profile=true',
|
||||
'-DFLUTTER_WEB_AUTO_DETECT=false',
|
||||
'-DFLUTTER_WEB_USE_SKIA=true',
|
||||
'-DFLUTTER_WEB_USE_SKWASM=false',
|
||||
'-DFLUTTER_WEB_CANVASKIT_URL=https://www.gstatic.com/flutter-canvaskit/abcdefghijklmnopqrstuvwxyz/',
|
||||
'--no-minify',
|
||||
'--no-source-maps',
|
||||
@ -490,6 +494,7 @@ void main() {
|
||||
'-Ddart.vm.profile=true',
|
||||
'-DFLUTTER_WEB_AUTO_DETECT=false',
|
||||
'-DFLUTTER_WEB_USE_SKIA=true',
|
||||
'-DFLUTTER_WEB_USE_SKWASM=false',
|
||||
'-DFLUTTER_WEB_CANVASKIT_URL=https://www.gstatic.com/flutter-canvaskit/abcdefghijklmnopqrstuvwxyz/',
|
||||
'--no-source-maps',
|
||||
'-o',
|
||||
@ -506,6 +511,7 @@ void main() {
|
||||
'-Ddart.vm.profile=true',
|
||||
'-DFLUTTER_WEB_AUTO_DETECT=false',
|
||||
'-DFLUTTER_WEB_USE_SKIA=true',
|
||||
'-DFLUTTER_WEB_USE_SKWASM=false',
|
||||
'-DFLUTTER_WEB_CANVASKIT_URL=https://www.gstatic.com/flutter-canvaskit/abcdefghijklmnopqrstuvwxyz/',
|
||||
'--no-minify',
|
||||
'--no-source-maps',
|
||||
@ -533,6 +539,7 @@ void main() {
|
||||
'-Ddart.vm.profile=true',
|
||||
'-DFLUTTER_WEB_AUTO_DETECT=false',
|
||||
'-DFLUTTER_WEB_USE_SKIA=true',
|
||||
'-DFLUTTER_WEB_USE_SKWASM=false',
|
||||
'-DFLUTTER_WEB_CANVASKIT_URL=https://www.gstatic.com/flutter-canvaskit/abcdefghijklmnopqrstuvwxyz/',
|
||||
'--no-source-maps',
|
||||
'-o',
|
||||
@ -548,6 +555,7 @@ void main() {
|
||||
'-Ddart.vm.profile=true',
|
||||
'-DFLUTTER_WEB_AUTO_DETECT=false',
|
||||
'-DFLUTTER_WEB_USE_SKIA=true',
|
||||
'-DFLUTTER_WEB_USE_SKWASM=false',
|
||||
'-DFLUTTER_WEB_CANVASKIT_URL=https://www.gstatic.com/flutter-canvaskit/abcdefghijklmnopqrstuvwxyz/',
|
||||
'--no-minify',
|
||||
'--no-source-maps',
|
||||
@ -575,6 +583,7 @@ void main() {
|
||||
'-Ddart.vm.product=true',
|
||||
'-DFLUTTER_WEB_AUTO_DETECT=false',
|
||||
'-DFLUTTER_WEB_USE_SKIA=true',
|
||||
'-DFLUTTER_WEB_USE_SKWASM=false',
|
||||
'-DFLUTTER_WEB_CANVASKIT_URL=https://www.gstatic.com/flutter-canvaskit/abcdefghijklmnopqrstuvwxyz/',
|
||||
'--no-source-maps',
|
||||
'-o',
|
||||
@ -590,6 +599,7 @@ void main() {
|
||||
'-Ddart.vm.product=true',
|
||||
'-DFLUTTER_WEB_AUTO_DETECT=false',
|
||||
'-DFLUTTER_WEB_USE_SKIA=true',
|
||||
'-DFLUTTER_WEB_USE_SKWASM=false',
|
||||
'-DFLUTTER_WEB_CANVASKIT_URL=https://www.gstatic.com/flutter-canvaskit/abcdefghijklmnopqrstuvwxyz/',
|
||||
'--no-source-maps',
|
||||
'-O4',
|
||||
@ -617,6 +627,7 @@ void main() {
|
||||
'-Ddart.vm.product=true',
|
||||
'-DFLUTTER_WEB_AUTO_DETECT=false',
|
||||
'-DFLUTTER_WEB_USE_SKIA=true',
|
||||
'-DFLUTTER_WEB_USE_SKWASM=false',
|
||||
'-DFLUTTER_WEB_CANVASKIT_URL=https://www.gstatic.com/flutter-canvaskit/abcdefghijklmnopqrstuvwxyz/',
|
||||
'--native-null-assertions',
|
||||
'--no-source-maps',
|
||||
@ -633,6 +644,7 @@ void main() {
|
||||
'-Ddart.vm.product=true',
|
||||
'-DFLUTTER_WEB_AUTO_DETECT=false',
|
||||
'-DFLUTTER_WEB_USE_SKIA=true',
|
||||
'-DFLUTTER_WEB_USE_SKWASM=false',
|
||||
'-DFLUTTER_WEB_CANVASKIT_URL=https://www.gstatic.com/flutter-canvaskit/abcdefghijklmnopqrstuvwxyz/',
|
||||
'--native-null-assertions',
|
||||
'--no-source-maps',
|
||||
@ -661,6 +673,7 @@ void main() {
|
||||
'-Ddart.vm.product=true',
|
||||
'-DFLUTTER_WEB_AUTO_DETECT=false',
|
||||
'-DFLUTTER_WEB_USE_SKIA=true',
|
||||
'-DFLUTTER_WEB_USE_SKWASM=false',
|
||||
'-DFLUTTER_WEB_CANVASKIT_URL=https://www.gstatic.com/flutter-canvaskit/abcdefghijklmnopqrstuvwxyz/',
|
||||
'--no-source-maps',
|
||||
'-o',
|
||||
@ -676,6 +689,7 @@ void main() {
|
||||
'-Ddart.vm.product=true',
|
||||
'-DFLUTTER_WEB_AUTO_DETECT=false',
|
||||
'-DFLUTTER_WEB_USE_SKIA=true',
|
||||
'-DFLUTTER_WEB_USE_SKWASM=false',
|
||||
'-DFLUTTER_WEB_CANVASKIT_URL=https://www.gstatic.com/flutter-canvaskit/abcdefghijklmnopqrstuvwxyz/',
|
||||
'--no-source-maps',
|
||||
'-O3',
|
||||
@ -703,6 +717,7 @@ void main() {
|
||||
'-Ddart.vm.product=true',
|
||||
'-DFLUTTER_WEB_AUTO_DETECT=false',
|
||||
'-DFLUTTER_WEB_USE_SKIA=true',
|
||||
'-DFLUTTER_WEB_USE_SKWASM=false',
|
||||
'-DFLUTTER_WEB_CANVASKIT_URL=https://www.gstatic.com/flutter-canvaskit/abcdefghijklmnopqrstuvwxyz/',
|
||||
'--no-source-maps',
|
||||
'-o',
|
||||
@ -721,6 +736,7 @@ void main() {
|
||||
'-Ddart.vm.product=true',
|
||||
'-DFLUTTER_WEB_AUTO_DETECT=false',
|
||||
'-DFLUTTER_WEB_USE_SKIA=true',
|
||||
'-DFLUTTER_WEB_USE_SKWASM=false',
|
||||
'-DFLUTTER_WEB_CANVASKIT_URL=https://www.gstatic.com/flutter-canvaskit/abcdefghijklmnopqrstuvwxyz/',
|
||||
'--no-source-maps',
|
||||
'-O4',
|
||||
@ -757,6 +773,7 @@ void main() {
|
||||
'-DBAZ=qux',
|
||||
'-DFLUTTER_WEB_AUTO_DETECT=false',
|
||||
'-DFLUTTER_WEB_USE_SKIA=true',
|
||||
'-DFLUTTER_WEB_USE_SKWASM=false',
|
||||
'-DFLUTTER_WEB_CANVASKIT_URL=https://www.gstatic.com/flutter-canvaskit/abcdefghijklmnopqrstuvwxyz/',
|
||||
'--no-source-maps',
|
||||
'-o',
|
||||
@ -774,6 +791,7 @@ void main() {
|
||||
'-DBAZ=qux',
|
||||
'-DFLUTTER_WEB_AUTO_DETECT=false',
|
||||
'-DFLUTTER_WEB_USE_SKIA=true',
|
||||
'-DFLUTTER_WEB_USE_SKWASM=false',
|
||||
'-DFLUTTER_WEB_CANVASKIT_URL=https://www.gstatic.com/flutter-canvaskit/abcdefghijklmnopqrstuvwxyz/',
|
||||
'--no-source-maps',
|
||||
'-O4',
|
||||
@ -801,6 +819,7 @@ void main() {
|
||||
'-Ddart.vm.product=true',
|
||||
'-DFLUTTER_WEB_AUTO_DETECT=false',
|
||||
'-DFLUTTER_WEB_USE_SKIA=true',
|
||||
'-DFLUTTER_WEB_USE_SKWASM=false',
|
||||
'-DFLUTTER_WEB_CANVASKIT_URL=https://www.gstatic.com/flutter-canvaskit/abcdefghijklmnopqrstuvwxyz/',
|
||||
'-o',
|
||||
environment.buildDir.childFile('app.dill').absolute.path,
|
||||
@ -815,6 +834,7 @@ void main() {
|
||||
'-Ddart.vm.product=true',
|
||||
'-DFLUTTER_WEB_AUTO_DETECT=false',
|
||||
'-DFLUTTER_WEB_USE_SKIA=true',
|
||||
'-DFLUTTER_WEB_USE_SKWASM=false',
|
||||
'-DFLUTTER_WEB_CANVASKIT_URL=https://www.gstatic.com/flutter-canvaskit/abcdefghijklmnopqrstuvwxyz/',
|
||||
'-O4',
|
||||
'-o',
|
||||
@ -842,6 +862,7 @@ void main() {
|
||||
'-DBAZ=qux',
|
||||
'-DFLUTTER_WEB_AUTO_DETECT=false',
|
||||
'-DFLUTTER_WEB_USE_SKIA=true',
|
||||
'-DFLUTTER_WEB_USE_SKWASM=false',
|
||||
'-DFLUTTER_WEB_CANVASKIT_URL=https://www.gstatic.com/flutter-canvaskit/abcdefghijklmnopqrstuvwxyz/',
|
||||
'--no-source-maps',
|
||||
'-o',
|
||||
@ -859,6 +880,7 @@ void main() {
|
||||
'-DBAZ=qux',
|
||||
'-DFLUTTER_WEB_AUTO_DETECT=false',
|
||||
'-DFLUTTER_WEB_USE_SKIA=true',
|
||||
'-DFLUTTER_WEB_USE_SKWASM=false',
|
||||
'-DFLUTTER_WEB_CANVASKIT_URL=https://www.gstatic.com/flutter-canvaskit/abcdefghijklmnopqrstuvwxyz/',
|
||||
'--no-minify',
|
||||
'--no-source-maps',
|
||||
@ -888,6 +910,7 @@ void main() {
|
||||
'-DBAZ=qux',
|
||||
'-DFLUTTER_WEB_AUTO_DETECT=false',
|
||||
'-DFLUTTER_WEB_USE_SKIA=true',
|
||||
'-DFLUTTER_WEB_USE_SKWASM=false',
|
||||
'-DFLUTTER_WEB_CANVASKIT_URL=https://www.gstatic.com/flutter-canvaskit/abcdefghijklmnopqrstuvwxyz/',
|
||||
'--no-source-maps',
|
||||
'--enable-asserts',
|
||||
@ -905,6 +928,7 @@ void main() {
|
||||
'-DBAZ=qux',
|
||||
'-DFLUTTER_WEB_AUTO_DETECT=false',
|
||||
'-DFLUTTER_WEB_USE_SKIA=true',
|
||||
'-DFLUTTER_WEB_USE_SKWASM=false',
|
||||
'-DFLUTTER_WEB_CANVASKIT_URL=https://www.gstatic.com/flutter-canvaskit/abcdefghijklmnopqrstuvwxyz/',
|
||||
'--no-minify',
|
||||
'--no-source-maps',
|
||||
@ -935,6 +959,7 @@ void main() {
|
||||
'-Ddart.vm.profile=true',
|
||||
'-DFLUTTER_WEB_AUTO_DETECT=false',
|
||||
'-DFLUTTER_WEB_USE_SKIA=true',
|
||||
'-DFLUTTER_WEB_USE_SKWASM=false',
|
||||
'-DFLUTTER_WEB_CANVASKIT_URL=https://www.gstatic.com/flutter-canvaskit/abcdefghijklmnopqrstuvwxyz/',
|
||||
'--no-source-maps',
|
||||
'-o',
|
||||
@ -950,6 +975,7 @@ void main() {
|
||||
'-Ddart.vm.profile=true',
|
||||
'-DFLUTTER_WEB_AUTO_DETECT=false',
|
||||
'-DFLUTTER_WEB_USE_SKIA=true',
|
||||
'-DFLUTTER_WEB_USE_SKWASM=false',
|
||||
'-DFLUTTER_WEB_CANVASKIT_URL=https://www.gstatic.com/flutter-canvaskit/abcdefghijklmnopqrstuvwxyz/',
|
||||
'--no-minify',
|
||||
'--no-source-maps',
|
||||
@ -980,6 +1006,7 @@ void main() {
|
||||
'-Ddart.vm.profile=true',
|
||||
'-DFLUTTER_WEB_AUTO_DETECT=false',
|
||||
'-DFLUTTER_WEB_USE_SKIA=true',
|
||||
'-DFLUTTER_WEB_USE_SKWASM=false',
|
||||
'-DFLUTTER_WEB_CANVASKIT_URL=https://www.gstatic.com/flutter-canvaskit/abcdefghijklmnopqrstuvwxyz/',
|
||||
'--no-source-maps',
|
||||
'-o',
|
||||
@ -995,6 +1022,7 @@ void main() {
|
||||
'-Ddart.vm.profile=true',
|
||||
'-DFLUTTER_WEB_AUTO_DETECT=false',
|
||||
'-DFLUTTER_WEB_USE_SKIA=true',
|
||||
'-DFLUTTER_WEB_USE_SKWASM=false',
|
||||
'-DFLUTTER_WEB_CANVASKIT_URL=https://www.gstatic.com/flutter-canvaskit/abcdefghijklmnopqrstuvwxyz/',
|
||||
'--no-minify',
|
||||
'--no-source-maps',
|
||||
@ -1051,6 +1079,7 @@ void main() {
|
||||
if (renderer == WebRendererMode.canvaskit) ...<String>[
|
||||
'-DFLUTTER_WEB_AUTO_DETECT=false',
|
||||
'-DFLUTTER_WEB_USE_SKIA=true',
|
||||
'-DFLUTTER_WEB_USE_SKWASM=false',
|
||||
],
|
||||
'-DFLUTTER_WEB_CANVASKIT_URL=https://www.gstatic.com/flutter-canvaskit/abcdefghijklmnopqrstuvwxyz/',
|
||||
'--extra-compiler-option=--depfile=${depFile.absolute.path}',
|
||||
|
@ -46,6 +46,7 @@ void main() {
|
||||
'--experimental-emit-debug-metadata',
|
||||
'-DFLUTTER_WEB_AUTO_DETECT=false',
|
||||
'-DFLUTTER_WEB_USE_SKIA=true',
|
||||
'-DFLUTTER_WEB_USE_SKWASM=false',
|
||||
'--output-dill',
|
||||
'build/out',
|
||||
'--packages',
|
||||
|
@ -181,4 +181,32 @@ void main() {
|
||||
}, overrides: <Type, Generator>{
|
||||
ProcessManager: () => FakeProcessManager.any(),
|
||||
});
|
||||
|
||||
Future<void> testRendererModeFromDartDefines(WebRendererMode webRenderer) async {
|
||||
testUsingContext('WebRendererMode.${webRenderer.name} can be initialized from dart defines', () {
|
||||
final WebRendererMode computed = WebRendererMode.fromDartDefines(
|
||||
webRenderer.dartDefines,
|
||||
useWasm: true,
|
||||
);
|
||||
|
||||
expect(computed, webRenderer);
|
||||
|
||||
}, overrides: <Type, Generator>{
|
||||
ProcessManager: () => FakeProcessManager.any(),
|
||||
});
|
||||
}
|
||||
WebRendererMode.values
|
||||
.forEach(testRendererModeFromDartDefines);
|
||||
|
||||
testUsingContext('WebRendererMode.fromDartDefines sets a wasm-aware default for unknown dart defines.', () async {
|
||||
WebRendererMode computed = WebRendererMode.fromDartDefines(
|
||||
<String>{}, useWasm: false,
|
||||
);
|
||||
expect(computed, WebRendererMode.getDefault(useWasm: false));
|
||||
|
||||
computed = WebRendererMode.fromDartDefines(
|
||||
<String>{}, useWasm: true,
|
||||
);
|
||||
expect(computed, WebRendererMode.getDefault(useWasm: true));
|
||||
});
|
||||
}
|
||||
|
@ -28,7 +28,7 @@ void main() {
|
||||
|
||||
await flutter.run(
|
||||
withDebugger: true, startPaused: true, chrome: true,
|
||||
additionalCommandArgs: <String>['--verbose', '--web-renderer=html']);
|
||||
additionalCommandArgs: <String>['--verbose']);
|
||||
await flutter.addBreakpoint(project.breakpointUri, project.breakpointLine);
|
||||
await flutter.resume(waitForNextPause: true); // Now we should be on the breakpoint.
|
||||
expect((await flutter.getSourceLocation())!.line, equals(project.breakpointLine));
|
||||
|
@ -41,7 +41,7 @@ void main() {
|
||||
await flutter.run(
|
||||
withDebugger: true, chrome: true,
|
||||
expressionEvaluation: expressionEvaluation,
|
||||
additionalCommandArgs: <String>['--verbose', '--web-renderer=html']);
|
||||
additionalCommandArgs: <String>['--verbose']);
|
||||
}
|
||||
|
||||
Future<void> breakInBuildMethod(FlutterTestDriver flutter) async {
|
||||
@ -148,7 +148,7 @@ void main() {
|
||||
withDebugger: true, chrome: true,
|
||||
expressionEvaluation: expressionEvaluation,
|
||||
startPaused: true, script: project.testFilePath,
|
||||
additionalCommandArgs: <String>['--verbose', '--web-renderer=html']);
|
||||
additionalCommandArgs: <String>['--verbose']);
|
||||
}
|
||||
|
||||
testWithoutContext('cannot evaluate expressions if feature is disabled', () async {
|
||||
|
@ -8,6 +8,7 @@ library;
|
||||
import 'dart:async';
|
||||
|
||||
import 'package:file/file.dart';
|
||||
import 'package:flutter_tools/src/web/compile.dart';
|
||||
|
||||
import '../integration.shard/test_data/hot_reload_project.dart';
|
||||
import '../integration.shard/test_driver.dart';
|
||||
@ -48,11 +49,11 @@ Future<void> _testProject(HotReloadProject project, {String name = 'Default'}) a
|
||||
|
||||
testWithoutContext('$testName: hot restart works without error', () async {
|
||||
flutter.stdout.listen(printOnFailure);
|
||||
await flutter.run(chrome: true, additionalCommandArgs: <String>['--verbose', '--web-renderer=html']);
|
||||
await flutter.run(chrome: true, additionalCommandArgs: <String>['--verbose']);
|
||||
await flutter.hotRestart();
|
||||
});
|
||||
|
||||
testWithoutContext('$testName: newly added code executes during hot restart', () async {
|
||||
testWithoutContext('$testName: newly added code executes during hot restart - html (legacy)', () async {
|
||||
final Completer<void> completer = Completer<void>();
|
||||
final StreamSubscription<String> subscription = flutter.stdout.listen((String line) {
|
||||
printOnFailure(line);
|
||||
@ -60,7 +61,10 @@ Future<void> _testProject(HotReloadProject project, {String name = 'Default'}) a
|
||||
completer.complete();
|
||||
}
|
||||
});
|
||||
await flutter.run(chrome: true, additionalCommandArgs: <String>['--verbose', '--web-renderer=html']);
|
||||
await flutter.run(chrome: true, additionalCommandArgs: <String>[
|
||||
'--verbose',
|
||||
...WebRendererMode.html.toCliDartDefines,
|
||||
]);
|
||||
project.uncommentHotReloadPrint();
|
||||
try {
|
||||
await flutter.hotRestart();
|
||||
@ -78,7 +82,7 @@ Future<void> _testProject(HotReloadProject project, {String name = 'Default'}) a
|
||||
completer.complete();
|
||||
}
|
||||
});
|
||||
await flutter.run(chrome: true, additionalCommandArgs: <String>['--verbose', '--web-renderer=canvaskit']);
|
||||
await flutter.run(chrome: true, additionalCommandArgs: <String>['--verbose']);
|
||||
project.uncommentHotReloadPrint();
|
||||
try {
|
||||
await flutter.hotRestart();
|
||||
|
@ -38,7 +38,6 @@ void main() {
|
||||
chrome: true,
|
||||
additionalCommandArgs: <String>[
|
||||
if (verbose) '--verbose',
|
||||
'--web-renderer=html',
|
||||
]);
|
||||
}
|
||||
|
||||
|
@ -38,7 +38,7 @@ void main() {
|
||||
testWithoutContext('can validate flutter version', () async {
|
||||
await flutter.run(
|
||||
withDebugger: true, chrome: true,
|
||||
additionalCommandArgs: <String>['--verbose', '--web-renderer=html']);
|
||||
additionalCommandArgs: <String>['--verbose']);
|
||||
|
||||
expect(flutter.vmServiceWsUri, isNotNull);
|
||||
|
||||
@ -50,7 +50,7 @@ void main() {
|
||||
testWithoutContext('can validate flutter version in parallel', () async {
|
||||
await flutter.run(
|
||||
withDebugger: true, chrome: true,
|
||||
additionalCommandArgs: <String>['--verbose', '--web-renderer=html']);
|
||||
additionalCommandArgs: <String>['--verbose']);
|
||||
|
||||
expect(flutter.vmServiceWsUri, isNotNull);
|
||||
|
||||
@ -82,7 +82,7 @@ void main() {
|
||||
testWithoutContext('can validate flutter version', () async {
|
||||
await flutter.run(
|
||||
withDebugger: true, chrome: true,
|
||||
additionalCommandArgs: <String>['--verbose', '--web-renderer=html']);
|
||||
additionalCommandArgs: <String>['--verbose']);
|
||||
|
||||
expect(flutter.vmServiceWsUri, isNotNull);
|
||||
|
||||
|
@ -30,6 +30,6 @@ void main() {
|
||||
});
|
||||
|
||||
testWithoutContext('flutter run works on web devices with a unary main function', () async {
|
||||
await flutter.run(chrome: true, additionalCommandArgs: <String>['--verbose', '--web-renderer=html']);
|
||||
await flutter.run(chrome: true, additionalCommandArgs: <String>['--verbose']);
|
||||
});
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user