[flutter_tool] Fix 'q' for Fuchsia profile/debug mode (#33846)

diff --git a/packages/flutter_tools/lib/src/commands/daemon.dart b/packages/flutter_tools/lib/src/commands/daemon.dart
index 9283e4f..efb257c 100644
--- a/packages/flutter_tools/lib/src/commands/daemon.dart
+++ b/packages/flutter_tools/lib/src/commands/daemon.dart
@@ -863,7 +863,7 @@
     return runner.restart(fullRestart: fullRestart, pauseAfterRestart: pauseAfterRestart, reason: reason);
   }
 
-  Future<void> stop() => runner.stop();
+  Future<void> stop() => runner.exit();
   Future<void> detach() => runner.detach();
 
   void closeLogger() {
diff --git a/packages/flutter_tools/lib/src/device.dart b/packages/flutter_tools/lib/src/device.dart
index 01aca67..394befb 100644
--- a/packages/flutter_tools/lib/src/device.dart
+++ b/packages/flutter_tools/lib/src/device.dart
@@ -307,7 +307,7 @@
 
   /// Whether flutter applications running on this device can be terminated
   /// from the vmservice.
-  bool get supportsStopApp => true;
+  bool get supportsFlutterExit => true;
 
   /// Whether the device supports taking screenshots of a running flutter
   /// application.
diff --git a/packages/flutter_tools/lib/src/fuchsia/fuchsia_device.dart b/packages/flutter_tools/lib/src/fuchsia/fuchsia_device.dart
index 4630907..db36649 100644
--- a/packages/flutter_tools/lib/src/fuchsia/fuchsia_device.dart
+++ b/packages/flutter_tools/lib/src/fuchsia/fuchsia_device.dart
@@ -184,7 +184,7 @@
   bool get supportsHotRestart => false;
 
   @override
-  bool get supportsStopApp => false;
+  bool get supportsFlutterExit => false;
 
   @override
   final String name;
diff --git a/packages/flutter_tools/lib/src/resident_runner.dart b/packages/flutter_tools/lib/src/resident_runner.dart
index eca8c28..4047fc0 100644
--- a/packages/flutter_tools/lib/src/resident_runner.dart
+++ b/packages/flutter_tools/lib/src/resident_runner.dart
@@ -11,7 +11,7 @@
 import 'asset.dart';
 import 'base/common.dart';
 import 'base/file_system.dart';
-import 'base/io.dart';
+import 'base/io.dart' as io;
 import 'base/logger.dart';
 import 'base/terminal.dart';
 import 'base/utils.dart';
@@ -166,8 +166,9 @@
       await service.getVM();
   }
 
-  Future<void> stopApps() async {
-    if (!device.supportsStopApp) {
+  Future<void> exitApps() async {
+    if (!device.supportsFlutterExit) {
+      await device.stopApp(package);
       return;
     }
     final List<FlutterView> flutterViews = views;
@@ -530,7 +531,7 @@
   final bool stayResident;
   final bool ipv6;
   final Completer<int> _finished = Completer<int>();
-  bool _stopped = false;
+  bool _exited = false;
   String _packagesFilePath;
   String get packagesFilePath => _packagesFilePath;
   String _projectRootPath;
@@ -582,18 +583,18 @@
     throw '${fullRestart ? 'Restart' : 'Reload'} is not supported in $mode mode';
   }
 
-  Future<void> stop() async {
-    _stopped = true;
+  Future<void> exit() async {
+    _exited = true;
     if (saveCompilationTrace)
       await _debugSaveCompilationTrace();
     await stopEchoingDeviceLog();
-    await preStop();
-    await stopApp();
+    await preExit();
+    await exitApp();
   }
 
   Future<void> detach() async {
     await stopEchoingDeviceLog();
-    await preStop();
+    await preExit();
     appFinished();
   }
 
@@ -743,29 +744,29 @@
 
   void registerSignalHandlers() {
     assert(stayResident);
-    ProcessSignal.SIGINT.watch().listen(_cleanUpAndExit);
-    ProcessSignal.SIGTERM.watch().listen(_cleanUpAndExit);
+    io.ProcessSignal.SIGINT.watch().listen(_cleanUpAndExit);
+    io.ProcessSignal.SIGTERM.watch().listen(_cleanUpAndExit);
     if (!supportsServiceProtocol || !supportsRestart)
       return;
-    ProcessSignal.SIGUSR1.watch().listen(_handleSignal);
-    ProcessSignal.SIGUSR2.watch().listen(_handleSignal);
+    io.ProcessSignal.SIGUSR1.watch().listen(_handleSignal);
+    io.ProcessSignal.SIGUSR2.watch().listen(_handleSignal);
   }
 
-  Future<void> _cleanUpAndExit(ProcessSignal signal) async {
+  Future<void> _cleanUpAndExit(io.ProcessSignal signal) async {
     _resetTerminal();
     await cleanupAfterSignal();
-    exit(0);
+    io.exit(0);
   }
 
   bool _processingUserRequest = false;
-  Future<void> _handleSignal(ProcessSignal signal) async {
+  Future<void> _handleSignal(io.ProcessSignal signal) async {
     if (_processingUserRequest) {
       printTrace('Ignoring signal: "$signal" because we are busy.');
       return;
     }
     _processingUserRequest = true;
 
-    final bool fullRestart = signal == ProcessSignal.SIGUSR2;
+    final bool fullRestart = signal == io.ProcessSignal.SIGUSR2;
 
     try {
       await restart(fullRestart: fullRestart);
@@ -903,7 +904,7 @@
       }
     } else if (lower == 'q') {
       // exit
-      await stop();
+      await exit();
       return true;
     } else if (lower == 'd') {
       await detach();
@@ -937,7 +938,7 @@
   }
 
   void _serviceDisconnected() {
-    if (_stopped) {
+    if (_exited) {
       // User requested the application exit.
       return;
     }
@@ -980,12 +981,12 @@
     return exitCode;
   }
 
-  Future<void> preStop() async { }
+  Future<void> preExit() async { }
 
-  Future<void> stopApp() async {
+  Future<void> exitApp() async {
     final List<Future<void>> futures = <Future<void>>[];
     for (FlutterDevice device in flutterDevices)
-      futures.add(device.stopApps());
+      futures.add(device.exitApps());
     await Future.wait(futures);
     appFinished();
   }
diff --git a/packages/flutter_tools/lib/src/run_cold.dart b/packages/flutter_tools/lib/src/run_cold.dart
index a6ef97a..1ef2600 100644
--- a/packages/flutter_tools/lib/src/run_cold.dart
+++ b/packages/flutter_tools/lib/src/run_cold.dart
@@ -160,10 +160,8 @@
     await stopEchoingDeviceLog();
     if (_didAttach) {
       appFinished();
-    } else {
-      await stopApp();
     }
-    await stopApp();
+    await exitApp();
   }
 
   @override
@@ -207,7 +205,7 @@
   }
 
   @override
-  Future<void> preStop() async {
+  Future<void> preExit() async {
     for (FlutterDevice device in flutterDevices) {
       // If we're running in release mode, stop the app using the device logic.
       if (device.vmServices == null || device.vmServices.isEmpty)
diff --git a/packages/flutter_tools/lib/src/run_hot.dart b/packages/flutter_tools/lib/src/run_hot.dart
index 91339ca..3ff0dc1 100644
--- a/packages/flutter_tools/lib/src/run_hot.dart
+++ b/packages/flutter_tools/lib/src/run_hot.dart
@@ -218,7 +218,7 @@
         printStatus('Benchmark completed. Exiting application.');
         await _cleanupDevFS();
         await stopEchoingDeviceLog();
-        await stopApp();
+        await exitApp();
       }
       final File benchmarkOutput = fs.file('hot_benchmark.json');
       benchmarkOutput.writeAsStringSync(toPrettyJson(benchmarkData));
@@ -922,12 +922,12 @@
     if (_didAttach) {
       appFinished();
     } else {
-      await stopApp();
+      await exitApp();
     }
   }
 
   @override
-  Future<void> preStop() async {
+  Future<void> preExit() async {
     await _cleanupDevFS();
     await hotRunnerConfig.runPreShutdownOperations();
   }
diff --git a/packages/flutter_tools/lib/src/web/web_device.dart b/packages/flutter_tools/lib/src/web/web_device.dart
index 7da626a..b824343 100644
--- a/packages/flutter_tools/lib/src/web/web_device.dart
+++ b/packages/flutter_tools/lib/src/web/web_device.dart
@@ -49,7 +49,7 @@
   bool get supportsStartPaused => true;
 
   @override
-  bool get supportsStopApp => true;
+  bool get supportsFlutterExit => true;
 
   @override
   bool get supportsScreenshot => false;