From e706d54abf6e3067a3464d0999b6a6706ac688e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jesu=CC=81s=20S=20Guerrero?= Date: Tue, 24 May 2022 16:48:36 -0700 Subject: [PATCH 1/8] add needsFullRestart flag --- packages/flutter_tools/lib/src/run_hot.dart | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/flutter_tools/lib/src/run_hot.dart b/packages/flutter_tools/lib/src/run_hot.dart index 42bfe908100ee..385ba214c00ed 100644 --- a/packages/flutter_tools/lib/src/run_hot.dart +++ b/packages/flutter_tools/lib/src/run_hot.dart @@ -228,6 +228,7 @@ class HotRunner extends ResidentRunner { Completer appStartedCompleter, bool allowExistingDdsInstance = false, bool enableDevTools = false, + bool needsFullRestart = true, }) async { _didAttach = true; try { @@ -276,7 +277,8 @@ class HotRunner extends ResidentRunner { } final Stopwatch initialUpdateDevFSsTimer = Stopwatch()..start(); - final UpdateFSReport devfsResult = await _updateDevFS(fullRestart: true); + logger.printBox('updateDevFS: $needsFullRestart'); + final UpdateFSReport devfsResult = await _updateDevFS(fullRestart: needsFullRestart); _addBenchmarkData( 'hotReloadInitialDevFSSyncMilliseconds', initialUpdateDevFSsTimer.elapsed.inMilliseconds, @@ -436,6 +438,7 @@ class HotRunner extends ResidentRunner { connectionInfoCompleter: connectionInfoCompleter, appStartedCompleter: appStartedCompleter, enableDevTools: enableDevTools, + needsFullRestart: false ); } From 0b7ac8087849a6625c92e4ad40e98540f022668a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jesu=CC=81s=20S=20Guerrero?= Date: Wed, 25 May 2022 11:11:52 -0700 Subject: [PATCH 2/8] fix FakeHotRunner --- .../flutter_tools/test/commands.shard/hermetic/attach_test.dart | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/flutter_tools/test/commands.shard/hermetic/attach_test.dart b/packages/flutter_tools/test/commands.shard/hermetic/attach_test.dart index d4f96a5bfbce7..0ba574a9aac12 100644 --- a/packages/flutter_tools/test/commands.shard/hermetic/attach_test.dart +++ b/packages/flutter_tools/test/commands.shard/hermetic/attach_test.dart @@ -498,6 +498,7 @@ class FakeHotRunner extends Fake implements HotRunner { Completer appStartedCompleter, bool allowExistingDdsInstance = false, bool enableDevTools = false, + bool needsFullRestart = true, }) { return onAttach(connectionInfoCompleter, appStartedCompleter, allowExistingDdsInstance, enableDevTools); } From 91878c9576546365a34ad71f4d4a5441f686ebb8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jesu=CC=81s=20S=20Guerrero?= Date: Wed, 25 May 2022 12:57:35 -0700 Subject: [PATCH 3/8] remove unused printBox --- packages/flutter_tools/lib/src/run_hot.dart | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/flutter_tools/lib/src/run_hot.dart b/packages/flutter_tools/lib/src/run_hot.dart index 385ba214c00ed..18fb67be1367b 100644 --- a/packages/flutter_tools/lib/src/run_hot.dart +++ b/packages/flutter_tools/lib/src/run_hot.dart @@ -277,7 +277,6 @@ class HotRunner extends ResidentRunner { } final Stopwatch initialUpdateDevFSsTimer = Stopwatch()..start(); - logger.printBox('updateDevFS: $needsFullRestart'); final UpdateFSReport devfsResult = await _updateDevFS(fullRestart: needsFullRestart); _addBenchmarkData( 'hotReloadInitialDevFSSyncMilliseconds', From 0bfe68039e385cbd9457c74065917836a7afcd6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jesu=CC=81s=20S=20Guerrero?= Date: Thu, 26 May 2022 10:01:14 -0700 Subject: [PATCH 4/8] add needsFullRestart false in test --- packages/flutter_tools/lib/src/run_hot.dart | 2 +- packages/flutter_tools/test/general.shard/hot_test.dart | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/flutter_tools/lib/src/run_hot.dart b/packages/flutter_tools/lib/src/run_hot.dart index 18fb67be1367b..9f0106f927327 100644 --- a/packages/flutter_tools/lib/src/run_hot.dart +++ b/packages/flutter_tools/lib/src/run_hot.dart @@ -437,7 +437,7 @@ class HotRunner extends ResidentRunner { connectionInfoCompleter: connectionInfoCompleter, appStartedCompleter: appStartedCompleter, enableDevTools: enableDevTools, - needsFullRestart: false + needsFullRestart: false, ); } diff --git a/packages/flutter_tools/test/general.shard/hot_test.dart b/packages/flutter_tools/test/general.shard/hot_test.dart index be33212b34396..28100e8347139 100644 --- a/packages/flutter_tools/test/general.shard/hot_test.dart +++ b/packages/flutter_tools/test/general.shard/hot_test.dart @@ -548,7 +548,7 @@ void main() { final int exitCode = await HotRunner(devices, debuggingOptions: DebuggingOptions.enabled(BuildInfo.debug), target: 'main.dart', - ).attach(); + ).attach(needsFullRestart: false); expect(exitCode, 2); }, overrides: { HotRunnerConfig: () => TestHotRunnerConfig(), From 60c74c91af91217221c1aedadaad4163acaa27f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jesu=CC=81s=20S=20Guerrero?= Date: Fri, 27 May 2022 10:41:00 -0700 Subject: [PATCH 5/8] add new flag to resident_runner base class --- packages/flutter_tools/lib/src/isolated/resident_web_runner.dart | 1 + packages/flutter_tools/lib/src/resident_runner.dart | 1 + packages/flutter_tools/lib/src/run_cold.dart | 1 + .../flutter_tools/test/general.shard/terminal_handler_test.dart | 1 + 4 files changed, 4 insertions(+) diff --git a/packages/flutter_tools/lib/src/isolated/resident_web_runner.dart b/packages/flutter_tools/lib/src/isolated/resident_web_runner.dart index 7ec9748f6b5a1..9a5e3c90f8fde 100644 --- a/packages/flutter_tools/lib/src/isolated/resident_web_runner.dart +++ b/packages/flutter_tools/lib/src/isolated/resident_web_runner.dart @@ -518,6 +518,7 @@ class ResidentWebRunner extends ResidentRunner { Completer appStartedCompleter, bool allowExistingDdsInstance = false, bool enableDevTools = false, // ignored, we don't yet support devtools for web + bool needsFullRestart = true, }) async { if (_chromiumLauncher != null) { final Chromium chrome = await _chromiumLauncher.connectedInstance; diff --git a/packages/flutter_tools/lib/src/resident_runner.dart b/packages/flutter_tools/lib/src/resident_runner.dart index b5bbac33c7e16..05d14ded75f42 100644 --- a/packages/flutter_tools/lib/src/resident_runner.dart +++ b/packages/flutter_tools/lib/src/resident_runner.dart @@ -1183,6 +1183,7 @@ abstract class ResidentRunner extends ResidentHandlers { Completer appStartedCompleter, bool allowExistingDdsInstance = false, bool enableDevTools = false, + bool needsFullRestart = true, }); @override diff --git a/packages/flutter_tools/lib/src/run_cold.dart b/packages/flutter_tools/lib/src/run_cold.dart index 153e3b34849c2..ebbcb57ac7e66 100644 --- a/packages/flutter_tools/lib/src/run_cold.dart +++ b/packages/flutter_tools/lib/src/run_cold.dart @@ -152,6 +152,7 @@ class ColdRunner extends ResidentRunner { Completer appStartedCompleter, bool allowExistingDdsInstance = false, bool enableDevTools = false, + bool needsFullRestart = true, }) async { _didAttach = true; try { diff --git a/packages/flutter_tools/test/general.shard/terminal_handler_test.dart b/packages/flutter_tools/test/general.shard/terminal_handler_test.dart index b821ec8ab43f0..8ab16ac213595 100644 --- a/packages/flutter_tools/test/general.shard/terminal_handler_test.dart +++ b/packages/flutter_tools/test/general.shard/terminal_handler_test.dart @@ -1482,6 +1482,7 @@ class TestRunner extends Fake implements ResidentRunner { Completer appStartedCompleter, bool allowExistingDdsInstance = false, bool enableDevTools = false, + bool needsFullRestart = true, }) async => null; } From 54c1080e0ea253832bf42d374db2fa1027f175c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jesu=CC=81s=20S=20Guerrero?= Date: Tue, 31 May 2022 12:06:08 -0700 Subject: [PATCH 6/8] dart doc on why the new flag is needed --- packages/flutter_tools/lib/src/resident_runner.dart | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/flutter_tools/lib/src/resident_runner.dart b/packages/flutter_tools/lib/src/resident_runner.dart index 05d14ded75f42..cae3f06688cd2 100644 --- a/packages/flutter_tools/lib/src/resident_runner.dart +++ b/packages/flutter_tools/lib/src/resident_runner.dart @@ -1183,6 +1183,8 @@ abstract class ResidentRunner extends ResidentHandlers { Completer appStartedCompleter, bool allowExistingDdsInstance = false, bool enableDevTools = false, + /// The first time we do a run hot a full restart is not needed + /// (full dill already compiled) as opposed when doing attach bool needsFullRestart = true, }); From cc74d47713d32f937ae177bd9bddf7b037fbe94b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jesu=CC=81s=20S=20Guerrero?= Date: Tue, 31 May 2022 13:06:45 -0700 Subject: [PATCH 7/8] move dart doc on top of function --- packages/flutter_tools/lib/src/resident_runner.dart | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/flutter_tools/lib/src/resident_runner.dart b/packages/flutter_tools/lib/src/resident_runner.dart index cae3f06688cd2..c5b24b925c5fd 100644 --- a/packages/flutter_tools/lib/src/resident_runner.dart +++ b/packages/flutter_tools/lib/src/resident_runner.dart @@ -1178,13 +1178,13 @@ abstract class ResidentRunner extends ResidentHandlers { String route, }); + /// The first time we do a run hot a full restart is not needed + /// (full dill already compiled) as opposed when doing attach. Future attach({ Completer connectionInfoCompleter, Completer appStartedCompleter, bool allowExistingDdsInstance = false, bool enableDevTools = false, - /// The first time we do a run hot a full restart is not needed - /// (full dill already compiled) as opposed when doing attach bool needsFullRestart = true, }); From 5369fe6353818540e2b3b711868c1c9bbd9df3e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jesu=CC=81s=20S=20Guerrero?= Date: Wed, 1 Jun 2022 09:58:32 -0700 Subject: [PATCH 8/8] update comment --- packages/flutter_tools/lib/src/resident_runner.dart | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/flutter_tools/lib/src/resident_runner.dart b/packages/flutter_tools/lib/src/resident_runner.dart index c5b24b925c5fd..f55e6aeef1d9a 100644 --- a/packages/flutter_tools/lib/src/resident_runner.dart +++ b/packages/flutter_tools/lib/src/resident_runner.dart @@ -1178,8 +1178,10 @@ abstract class ResidentRunner extends ResidentHandlers { String route, }); - /// The first time we do a run hot a full restart is not needed - /// (full dill already compiled) as opposed when doing attach. + /// Connect to a flutter application. + /// + /// [needsFullRestart] defaults to `true`, and controls if the frontend server should + /// compile a full dill. This should be set to `false` if this is called in [ResidentRunner.run], since that method already perfoms an initial compilation. Future attach({ Completer connectionInfoCompleter, Completer appStartedCompleter,