diff --git a/dev/devicelab/bin/tasks/commands_test.dart b/dev/devicelab/bin/tasks/commands_test.dart index 19d6f64023a..c12b4dbede4 100644 --- a/dev/devicelab/bin/tasks/commands_test.dart +++ b/dev/devicelab/bin/tasks/commands_test.dart @@ -26,8 +26,7 @@ void main() { print('run: starting...'); final Process run = await startProcess( path.join(flutterDirectory.path, 'bin', 'flutter'), - // Fast start is disabled due to https://github.com/flutter/flutter/issues/48971. - ['run', '--verbose', '--disable-service-auth-codes', '-d', device.deviceId, 'lib/commands.dart', '--no-fast-start'], + ['run', '--verbose', '--disable-service-auth-codes', '-d', device.deviceId, 'lib/commands.dart'], ); final StreamController stdout = StreamController.broadcast(); run.stdout diff --git a/dev/devicelab/bin/tasks/named_isolates_test.dart b/dev/devicelab/bin/tasks/named_isolates_test.dart index d038d17e755..ff2feb64779 100644 --- a/dev/devicelab/bin/tasks/named_isolates_test.dart +++ b/dev/devicelab/bin/tasks/named_isolates_test.dart @@ -25,9 +25,8 @@ void main() { section('Compile and run the tester app'); Completer firstNameFound = Completer(); Completer secondNameFound = Completer(); - // Fast start is disabled due to https://github.com/flutter/flutter/issues/48971. final Process runProcess = await _run(device: device, command: - ['run', '--disable-service-auth-codes', '--no-fast-start'], stdoutListener: (String line) { + ['run', '--disable-service-auth-codes'], stdoutListener: (String line) { if (line.contains(_kFirstIsolateName)) { firstNameFound.complete(); } else if (line.contains(_kSecondIsolateName)) { diff --git a/dev/devicelab/bin/tasks/run_machine_concurrent_hot_reload.dart b/dev/devicelab/bin/tasks/run_machine_concurrent_hot_reload.dart index f60a2c247c3..80fb3fc638f 100644 --- a/dev/devicelab/bin/tasks/run_machine_concurrent_hot_reload.dart +++ b/dev/devicelab/bin/tasks/run_machine_concurrent_hot_reload.dart @@ -48,8 +48,6 @@ void main() { 'run', '--machine', '--verbose', - // Fast start is disabled due to https://github.com/flutter/flutter/issues/48971. - '--no-fast-start', '-d', device.deviceId, 'lib/commands.dart', diff --git a/dev/devicelab/lib/tasks/perf_tests.dart b/dev/devicelab/lib/tasks/perf_tests.dart index 06f02c6d784..9e9aaf0f418 100644 --- a/dev/devicelab/lib/tasks/perf_tests.dart +++ b/dev/devicelab/lib/tasks/perf_tests.dart @@ -719,8 +719,6 @@ class ReportedDurationTest { print('launching $project$test on device...'); await flutter('run', options: [ '--verbose', - // Fast start is disabled due to https://github.com/flutter/flutter/issues/48971. - '--no-fast-start', '--${_reportedDurationTestToString(flavor)}', '--no-resident', '-d', device.deviceId, diff --git a/packages/flutter_tools/lib/src/commands/run.dart b/packages/flutter_tools/lib/src/commands/run.dart index 10ae7f4e689..006d5210b95 100644 --- a/packages/flutter_tools/lib/src/commands/run.dart +++ b/packages/flutter_tools/lib/src/commands/run.dart @@ -189,7 +189,8 @@ class RunCommand extends RunCommandBase { ) ..addFlag('fast-start', negatable: true, - defaultsTo: true, + defaultsTo: false, + hide: true, help: 'Whether to quickly bootstrap applications with a minimal app. ' 'Currently this is only supported on Android devices. This option ' 'cannot be paired with --use-application-binary.' @@ -318,6 +319,10 @@ class RunCommand extends RunCommandBase { await super.validateCommand(); } + if (boolArg('fast-start') && runningWithPrebuiltApplication) { + throwToolExit('--fast-start is not supported with --use-application-binary'); + } + devices = await findAllTargetDevices(); if (devices == null) { throwToolExit(null); @@ -360,9 +365,7 @@ class RunCommand extends RunCommandBase { vmserviceOutFile: stringArg('vmservice-out-file'), // Allow forcing fast-start to off to prevent doing more work on devices that // don't support it. - fastStart: boolArg('fast-start') - && !runningWithPrebuiltApplication - && devices.every((Device device) => device.supportsFastStart), + fastStart: boolArg('fast-start') && devices.every((Device device) => device.supportsFastStart), ); } } @@ -425,6 +428,12 @@ class RunCommand extends RunCommandBase { } for (final Device device in devices) { + if (!device.supportsFastStart && boolArg('fast-start')) { + globals.printStatus( + 'Using --fast-start option with device ${device.name}, but this device ' + 'does not support it. Overriding the setting to false.' + ); + } if (await device.isLocalEmulator) { if (await device.supportsHardwareRendering) { final bool enableSoftwareRendering = boolArg('enable-software-rendering') == true; diff --git a/packages/flutter_tools/test/commands.shard/hermetic/run_test.dart b/packages/flutter_tools/test/commands.shard/hermetic/run_test.dart index ccf8b2fad57..466f4c8c632 100644 --- a/packages/flutter_tools/test/commands.shard/hermetic/run_test.dart +++ b/packages/flutter_tools/test/commands.shard/hermetic/run_test.dart @@ -77,7 +77,7 @@ void main() { ]); fail('Expect exception'); } catch (e) { - expect(e.toString(), isNot(contains('--fast-start is not supported with --use-application-binary'))); + expect(e.toString(), contains('--fast-start is not supported with --use-application-binary')); } }, overrides: { FileSystem: () => MemoryFileSystem(), @@ -115,10 +115,10 @@ void main() { } final BufferLogger bufferLogger = globals.logger as BufferLogger; - expect(bufferLogger.statusText, isNot(contains( + expect(bufferLogger.statusText, contains( 'Using --fast-start option with device mockdevice, but this device ' 'does not support it. Overriding the setting to false.' - ))); + )); }, overrides: { FileSystem: () => MemoryFileSystem(), ProcessManager: () => FakeProcessManager.any(),