[flutter_tools] Ensure that global variables are easily identifiable (#47398)

diff --git a/packages/flutter_tools/lib/src/artifacts.dart b/packages/flutter_tools/lib/src/artifacts.dart
index 5f11a8c..60f6ef6 100644
--- a/packages/flutter_tools/lib/src/artifacts.dart
+++ b/packages/flutter_tools/lib/src/artifacts.dart
@@ -4,14 +4,11 @@
 
 import 'package:meta/meta.dart';
 
-import 'base/context.dart';
 import 'base/file_system.dart';
-import 'base/platform.dart';
-import 'base/process_manager.dart';
 import 'base/utils.dart';
 import 'build_info.dart';
 import 'dart/sdk.dart';
-import 'globals.dart';
+import 'globals.dart' as globals;
 
 enum Artifact {
   /// The tool which compiles a dart kernel file into native code.
@@ -158,8 +155,6 @@
 
 // Manages the engine artifacts of Flutter.
 abstract class Artifacts {
-  static Artifacts get instance => context.get<Artifacts>();
-
   static LocalEngineArtifacts getLocalEngine(String engineSrcPath, EngineBuildPaths engineBuildPaths) {
     return LocalEngineArtifacts(engineSrcPath, engineBuildPaths.targetEngine, engineBuildPaths.hostEngine);
   }
@@ -173,13 +168,13 @@
 }
 
 TargetPlatform get _currentHostPlatform {
-  if (platform.isMacOS) {
+  if (globals.platform.isMacOS) {
     return TargetPlatform.darwin_x64;
   }
-  if (platform.isLinux) {
+  if (globals.platform.isLinux) {
     return TargetPlatform.linux_x64;
   }
-  if (platform.isWindows) {
+  if (globals.platform.isWindows) {
     return TargetPlatform.windows_x64;
   }
   throw UnimplementedError('Host OS not supported.');
@@ -214,7 +209,7 @@
 
   @override
   String getEngineType(TargetPlatform platform, [ BuildMode mode ]) {
-    return fs.path.basename(_getEngineArtifactsPath(platform, mode));
+    return globals.fs.path.basename(_getEngineArtifactsPath(platform, mode));
   }
 
   String _getDarwinArtifactPath(Artifact artifact, TargetPlatform platform, BuildMode mode) {
@@ -222,7 +217,7 @@
     // and not the gen_snapshot for darwin as a target platform.
     if (platform != null && artifact == Artifact.genSnapshot) {
       final String engineDir = _getEngineArtifactsPath(platform, mode);
-      return fs.path.join(engineDir, _artifactToFileName(artifact));
+      return globals.fs.path.join(engineDir, _artifactToFileName(artifact));
     }
     return _getHostArtifactPath(artifact, platform ?? _currentHostPlatform, mode);
   }
@@ -232,11 +227,11 @@
     switch (artifact) {
       case Artifact.frontendServerSnapshotForEngineDartSdk:
         assert(mode != BuildMode.debug, 'Artifact $artifact only available in non-debug mode.');
-        return fs.path.join(engineDir, _artifactToFileName(artifact));
+        return globals.fs.path.join(engineDir, _artifactToFileName(artifact));
       case Artifact.genSnapshot:
         assert(mode != BuildMode.debug, 'Artifact $artifact only available in non-debug mode.');
         final String hostPlatform = getNameForHostPlatform(getCurrentHostPlatform());
-        return fs.path.join(engineDir, hostPlatform, _artifactToFileName(artifact));
+        return globals.fs.path.join(engineDir, hostPlatform, _artifactToFileName(artifact));
       default:
         return _getHostArtifactPath(artifact, platform, mode);
     }
@@ -250,31 +245,31 @@
       case Artifact.frontendServerSnapshotForEngineDartSdk:
         final String artifactFileName = _artifactToFileName(artifact);
         final String engineDir = _getEngineArtifactsPath(platform, mode);
-        return fs.path.join(engineDir, artifactFileName);
+        return globals.fs.path.join(engineDir, artifactFileName);
       case Artifact.ideviceId:
       case Artifact.ideviceinfo:
       case Artifact.idevicescreenshot:
       case Artifact.idevicesyslog:
       case Artifact.idevicename:
         final String artifactFileName = _artifactToFileName(artifact);
-        return cache.getArtifactDirectory('libimobiledevice').childFile(artifactFileName).path;
+        return globals.cache.getArtifactDirectory('libimobiledevice').childFile(artifactFileName).path;
       case Artifact.iosDeploy:
         final String artifactFileName = _artifactToFileName(artifact);
-        return cache.getArtifactDirectory('ios-deploy').childFile(artifactFileName).path;
+        return globals.cache.getArtifactDirectory('ios-deploy').childFile(artifactFileName).path;
       case Artifact.ideviceinstaller:
         final String artifactFileName = _artifactToFileName(artifact);
-        return cache.getArtifactDirectory('ideviceinstaller').childFile(artifactFileName).path;
+        return globals.cache.getArtifactDirectory('ideviceinstaller').childFile(artifactFileName).path;
       case Artifact.iproxy:
         final String artifactFileName = _artifactToFileName(artifact);
-        return cache.getArtifactDirectory('usbmuxd').childFile(artifactFileName).path;
+        return globals.cache.getArtifactDirectory('usbmuxd').childFile(artifactFileName).path;
       default:
         return _getHostArtifactPath(artifact, platform, mode);
     }
   }
 
   String _getFuchsiaArtifactPath(Artifact artifact, TargetPlatform platform, BuildMode mode) {
-    final String root = fs.path.join(
-      cache.getArtifactDirectory('flutter_runner').path,
+    final String root = globals.fs.path.join(
+      globals.cache.getArtifactDirectory('flutter_runner').path,
       'flutter',
       fuchsiaArchForTargetPlatform(platform),
       mode.isRelease ? 'release' : mode.toString(),
@@ -283,32 +278,32 @@
     switch (artifact) {
       case Artifact.genSnapshot:
         final String genSnapshot = mode.isRelease ? 'gen_snapshot_product' : 'gen_snapshot';
-        return fs.path.join(root, runtime, 'dart_binaries', genSnapshot);
+        return globals.fs.path.join(root, runtime, 'dart_binaries', genSnapshot);
       case Artifact.flutterPatchedSdkPath:
         const String artifactFileName = 'flutter_runner_patched_sdk';
-        return fs.path.join(root, runtime, artifactFileName);
+        return globals.fs.path.join(root, runtime, artifactFileName);
       case Artifact.platformKernelDill:
         final String artifactFileName = _artifactToFileName(artifact, platform, mode);
-        return fs.path.join(root, runtime, 'flutter_runner_patched_sdk', artifactFileName);
+        return globals.fs.path.join(root, runtime, 'flutter_runner_patched_sdk', artifactFileName);
       case Artifact.fuchsiaKernelCompiler:
         final String artifactFileName = _artifactToFileName(artifact, platform, mode);
-        return fs.path.join(root, runtime, 'dart_binaries', artifactFileName);
+        return globals.fs.path.join(root, runtime, 'dart_binaries', artifactFileName);
       case Artifact.fuchsiaFlutterRunner:
         final String artifactFileName = _artifactToFileName(artifact, platform, mode);
-        return fs.path.join(root, runtime, artifactFileName);
+        return globals.fs.path.join(root, runtime, artifactFileName);
       default:
         return _getHostArtifactPath(artifact, platform, mode);
     }
   }
 
   String _getFlutterPatchedSdkPath(BuildMode mode) {
-    final String engineArtifactsPath = cache.getArtifactDirectory('engine').path;
-    return fs.path.join(engineArtifactsPath, 'common',
+    final String engineArtifactsPath = globals.cache.getArtifactDirectory('engine').path;
+    return globals.fs.path.join(engineArtifactsPath, 'common',
         mode == BuildMode.release ? 'flutter_patched_sdk_product' : 'flutter_patched_sdk');
   }
 
   String _getFlutterWebSdkPath() {
-    return cache.getWebSdkDirectory().path;
+    return globals.cache.getWebSdkDirectory().path;
   }
 
   String _getHostArtifactPath(Artifact artifact, TargetPlatform platform, BuildMode mode) {
@@ -322,29 +317,29 @@
       case Artifact.vmSnapshotData:
       case Artifact.isolateSnapshotData:
       case Artifact.frontendServerSnapshotForEngineDartSdk:
-        final String engineArtifactsPath = cache.getArtifactDirectory('engine').path;
+        final String engineArtifactsPath = globals.cache.getArtifactDirectory('engine').path;
         final String platformDirName = getNameForTargetPlatform(platform);
-        return fs.path.join(engineArtifactsPath, platformDirName, _artifactToFileName(artifact, platform, mode));
+        return globals.fs.path.join(engineArtifactsPath, platformDirName, _artifactToFileName(artifact, platform, mode));
       case Artifact.engineDartSdkPath:
         return dartSdkPath;
       case Artifact.engineDartBinary:
-        return fs.path.join(dartSdkPath, 'bin', _artifactToFileName(artifact, platform));
+        return globals.fs.path.join(dartSdkPath, 'bin', _artifactToFileName(artifact, platform));
       case Artifact.platformKernelDill:
-        return fs.path.join(_getFlutterPatchedSdkPath(mode), _artifactToFileName(artifact));
+        return globals.fs.path.join(_getFlutterPatchedSdkPath(mode), _artifactToFileName(artifact));
       case Artifact.platformLibrariesJson:
-        return fs.path.join(_getFlutterPatchedSdkPath(mode), 'lib', _artifactToFileName(artifact));
+        return globals.fs.path.join(_getFlutterPatchedSdkPath(mode), 'lib', _artifactToFileName(artifact));
       case Artifact.flutterPatchedSdkPath:
         return _getFlutterPatchedSdkPath(mode);
       case Artifact.flutterWebSdk:
         return _getFlutterWebSdkPath();
       case Artifact.webPlatformKernelDill:
-        return fs.path.join(_getFlutterWebSdkPath(), 'kernel', _artifactToFileName(artifact));
+        return globals.fs.path.join(_getFlutterWebSdkPath(), 'kernel', _artifactToFileName(artifact));
       case Artifact.dart2jsSnapshot:
-        return fs.path.join(dartSdkPath, 'bin', 'snapshots', _artifactToFileName(artifact));
+        return globals.fs.path.join(dartSdkPath, 'bin', 'snapshots', _artifactToFileName(artifact));
       case Artifact.dartdevcSnapshot:
-        return fs.path.join(dartSdkPath, 'bin', 'snapshots', _artifactToFileName(artifact));
+        return globals.fs.path.join(dartSdkPath, 'bin', 'snapshots', _artifactToFileName(artifact));
       case Artifact.kernelWorkerSnapshot:
-        return fs.path.join(dartSdkPath, 'bin', 'snapshots', _artifactToFileName(artifact));
+        return globals.fs.path.join(dartSdkPath, 'bin', 'snapshots', _artifactToFileName(artifact));
       case Artifact.flutterMacOSFramework:
       case Artifact.linuxDesktopPath:
       case Artifact.windowsDesktopPath:
@@ -356,11 +351,11 @@
         if (mode == BuildMode.profile || mode == BuildMode.release) {
           platformDirName = '$platformDirName-${getNameForBuildMode(mode)}';
         }
-        final String engineArtifactsPath = cache.getArtifactDirectory('engine').path;
-        return fs.path.join(engineArtifactsPath, platformDirName, _artifactToFileName(artifact, platform, mode));
+        final String engineArtifactsPath = globals.cache.getArtifactDirectory('engine').path;
+        return globals.fs.path.join(engineArtifactsPath, platformDirName, _artifactToFileName(artifact, platform, mode));
       case Artifact.skyEnginePath:
-        final Directory dartPackageDirectory = cache.getCacheDir('pkg');
-        return fs.path.join(dartPackageDirectory.path,  _artifactToFileName(artifact));
+        final Directory dartPackageDirectory = globals.cache.getCacheDir('pkg');
+        return globals.fs.path.join(dartPackageDirectory.path,  _artifactToFileName(artifact));
       default:
         assert(false, 'Artifact $artifact not available for platform $platform.');
         return null;
@@ -368,7 +363,7 @@
   }
 
   String _getEngineArtifactsPath(TargetPlatform platform, [ BuildMode mode ]) {
-    final String engineDir = cache.getArtifactDirectory('engine').path;
+    final String engineDir = globals.cache.getArtifactDirectory('engine').path;
     final String platformName = getNameForTargetPlatform(platform);
     switch (platform) {
       case TargetPlatform.linux_x64:
@@ -378,16 +373,16 @@
         // under a separate directory from the host artifacts.
         // https://github.com/flutter/flutter/issues/38935
         if (mode == BuildMode.debug || mode == null) {
-          return fs.path.join(engineDir, platformName);
+          return globals.fs.path.join(engineDir, platformName);
         }
         final String suffix = mode != BuildMode.debug ? '-${snakeCase(getModeName(mode), '-')}' : '';
-        return fs.path.join(engineDir, platformName + suffix);
+        return globals.fs.path.join(engineDir, platformName + suffix);
       case TargetPlatform.fuchsia_arm64:
       case TargetPlatform.fuchsia_x64:
       case TargetPlatform.tester:
       case TargetPlatform.web_javascript:
         assert(mode == null, 'Platform $platform does not support different build modes.');
-        return fs.path.join(engineDir, platformName);
+        return globals.fs.path.join(engineDir, platformName);
       case TargetPlatform.ios:
       case TargetPlatform.android_arm:
       case TargetPlatform.android_arm64:
@@ -395,7 +390,7 @@
       case TargetPlatform.android_x86:
         assert(mode != null, 'Need to specify a build mode for platform $platform.');
         final String suffix = mode != BuildMode.debug ? '-${snakeCase(getModeName(mode), '-')}' : '';
-        return fs.path.join(engineDir, platformName + suffix);
+        return globals.fs.path.join(engineDir, platformName + suffix);
       case TargetPlatform.android:
         assert(false, 'cannot use TargetPlatform.android to look up artifacts');
         return null;
@@ -419,79 +414,79 @@
     final String artifactFileName = _artifactToFileName(artifact, platform, mode);
     switch (artifact) {
       case Artifact.snapshotDart:
-        return fs.path.join(_engineSrcPath, 'flutter', 'lib', 'snapshot', artifactFileName);
+        return globals.fs.path.join(_engineSrcPath, 'flutter', 'lib', 'snapshot', artifactFileName);
       case Artifact.genSnapshot:
         return _genSnapshotPath();
       case Artifact.flutterTester:
         return _flutterTesterPath(platform);
       case Artifact.isolateSnapshotData:
       case Artifact.vmSnapshotData:
-        return fs.path.join(engineOutPath, 'gen', 'flutter', 'lib', 'snapshot', artifactFileName);
+        return globals.fs.path.join(engineOutPath, 'gen', 'flutter', 'lib', 'snapshot', artifactFileName);
       case Artifact.platformKernelDill:
         if (platform == TargetPlatform.fuchsia_x64 || platform == TargetPlatform.fuchsia_arm64) {
-          return fs.path.join(engineOutPath, 'flutter_runner_patched_sdk', artifactFileName);
+          return globals.fs.path.join(engineOutPath, 'flutter_runner_patched_sdk', artifactFileName);
         }
-        return fs.path.join(_getFlutterPatchedSdkPath(mode), artifactFileName);
+        return globals.fs.path.join(_getFlutterPatchedSdkPath(mode), artifactFileName);
       case Artifact.platformLibrariesJson:
-        return fs.path.join(_getFlutterPatchedSdkPath(mode), 'lib', artifactFileName);
+        return globals.fs.path.join(_getFlutterPatchedSdkPath(mode), 'lib', artifactFileName);
       case Artifact.flutterFramework:
-        return fs.path.join(engineOutPath, artifactFileName);
+        return globals.fs.path.join(engineOutPath, artifactFileName);
       case Artifact.flutterMacOSFramework:
-        return fs.path.join(engineOutPath, artifactFileName);
+        return globals.fs.path.join(engineOutPath, artifactFileName);
       case Artifact.flutterPatchedSdkPath:
         // When using local engine always use [BuildMode.debug] regardless of
         // what was specified in [mode] argument because local engine will
         // have only one flutter_patched_sdk in standard location, that
         // is happen to be what debug(non-release) mode is using.
         if (platform == TargetPlatform.fuchsia_x64 || platform == TargetPlatform.fuchsia_arm64) {
-          return fs.path.join(engineOutPath, 'flutter_runner_patched_sdk');
+          return globals.fs.path.join(engineOutPath, 'flutter_runner_patched_sdk');
         }
         return _getFlutterPatchedSdkPath(BuildMode.debug);
       case Artifact.flutterWebSdk:
         return _getFlutterWebSdkPath();
       case Artifact.frontendServerSnapshotForEngineDartSdk:
-        return fs.path.join(_hostEngineOutPath, 'gen', artifactFileName);
+        return globals.fs.path.join(_hostEngineOutPath, 'gen', artifactFileName);
       case Artifact.engineDartSdkPath:
-        return fs.path.join(_hostEngineOutPath, 'dart-sdk');
+        return globals.fs.path.join(_hostEngineOutPath, 'dart-sdk');
       case Artifact.engineDartBinary:
-        return fs.path.join(_hostEngineOutPath, 'dart-sdk', 'bin', artifactFileName);
+        return globals.fs.path.join(_hostEngineOutPath, 'dart-sdk', 'bin', artifactFileName);
       case Artifact.dart2jsSnapshot:
-        return fs.path.join(_hostEngineOutPath, 'dart-sdk', 'bin', 'snapshots', artifactFileName);
+        return globals.fs.path.join(_hostEngineOutPath, 'dart-sdk', 'bin', 'snapshots', artifactFileName);
       case Artifact.dartdevcSnapshot:
-        return fs.path.join(dartSdkPath, 'bin', 'snapshots', artifactFileName);
+        return globals.fs.path.join(dartSdkPath, 'bin', 'snapshots', artifactFileName);
       case Artifact.kernelWorkerSnapshot:
-        return fs.path.join(_hostEngineOutPath, 'dart-sdk', 'bin', 'snapshots', artifactFileName);
+        return globals.fs.path.join(_hostEngineOutPath, 'dart-sdk', 'bin', 'snapshots', artifactFileName);
       case Artifact.ideviceId:
       case Artifact.ideviceinfo:
       case Artifact.idevicename:
       case Artifact.idevicescreenshot:
       case Artifact.idevicesyslog:
-        return cache.getArtifactDirectory('libimobiledevice').childFile(artifactFileName).path;
+        return globals.cache.getArtifactDirectory('libimobiledevice').childFile(artifactFileName).path;
       case Artifact.ideviceinstaller:
-        return cache.getArtifactDirectory('ideviceinstaller').childFile(artifactFileName).path;
+        return globals.cache.getArtifactDirectory('ideviceinstaller').childFile(artifactFileName).path;
       case Artifact.iosDeploy:
-        return cache.getArtifactDirectory('ios-deploy').childFile(artifactFileName).path;
+        return globals.cache.getArtifactDirectory('ios-deploy').childFile(artifactFileName).path;
       case Artifact.iproxy:
-        return cache.getArtifactDirectory('usbmuxd').childFile(artifactFileName).path;
+        return globals.cache.getArtifactDirectory('usbmuxd').childFile(artifactFileName).path;
       case Artifact.linuxDesktopPath:
-        return fs.path.join(_hostEngineOutPath, artifactFileName);
+        return globals.fs.path.join(_hostEngineOutPath, artifactFileName);
       case Artifact.windowsDesktopPath:
-        return fs.path.join(_hostEngineOutPath, artifactFileName);
+        return globals.fs.path.join(_hostEngineOutPath, artifactFileName);
       case Artifact.skyEnginePath:
-        return fs.path.join(_hostEngineOutPath, 'gen', 'dart-pkg', artifactFileName);
+        return globals.fs.path.join(_hostEngineOutPath, 'gen', 'dart-pkg', artifactFileName);
       case Artifact.flutterMacOSPodspec:
-        return fs.path.join(_hostEngineOutPath, _artifactToFileName(artifact));
+        return globals.fs.path.join(_hostEngineOutPath, _artifactToFileName(artifact));
       case Artifact.webPlatformKernelDill:
-        return fs.path.join(_getFlutterWebSdkPath(), 'kernel', _artifactToFileName(artifact));
+        return globals.fs.path.join(_getFlutterWebSdkPath(), 'kernel', _artifactToFileName(artifact));
       case Artifact.fuchsiaKernelCompiler:
         final String hostPlatform = getNameForHostPlatform(getCurrentHostPlatform());
         final String modeName = mode.isRelease ? 'release' : mode.toString();
         final String dartBinaries = 'dart_binaries-$modeName-$hostPlatform';
-        return fs.path.join(engineOutPath, 'host_bundle', dartBinaries, 'kernel_compiler.dart.snapshot');
+        return globals.fs.path.join(engineOutPath, 'host_bundle', dartBinaries, 'kernel_compiler.dart.snapshot');
       case Artifact.fuchsiaFlutterRunner:
         final String jitOrAot = mode.isJit ? '_jit' : '_aot';
         final String productOrNo = mode.isRelease ? '_product' : '';
-        return fs.path.join(engineOutPath, 'flutter$jitOrAot${productOrNo}_runner-0.far');
+        return globals.fs.path.join(engineOutPath, 'flutter$jitOrAot${productOrNo}_runner-0.far');
     }
     assert(false, 'Invalid artifact $artifact.');
     return null;
@@ -499,24 +494,24 @@
 
   @override
   String getEngineType(TargetPlatform platform, [ BuildMode mode ]) {
-    return fs.path.basename(engineOutPath);
+    return globals.fs.path.basename(engineOutPath);
   }
 
   String _getFlutterPatchedSdkPath(BuildMode buildMode) {
-    return fs.path.join(engineOutPath,
+    return globals.fs.path.join(engineOutPath,
         buildMode == BuildMode.release ? 'flutter_patched_sdk_product' : 'flutter_patched_sdk');
   }
 
   String _getFlutterWebSdkPath() {
-    return fs.path.join(engineOutPath, 'flutter_web_sdk');
+    return globals.fs.path.join(engineOutPath, 'flutter_web_sdk');
   }
 
   String _genSnapshotPath() {
     const List<String> clangDirs = <String>['.', 'clang_x64', 'clang_x86', 'clang_i386'];
     final String genSnapshotName = _artifactToFileName(Artifact.genSnapshot);
     for (String clangDir in clangDirs) {
-      final String genSnapshotPath = fs.path.join(engineOutPath, clangDir, genSnapshotName);
-      if (processManager.canRun(genSnapshotPath)) {
+      final String genSnapshotPath = globals.fs.path.join(engineOutPath, clangDir, genSnapshotName);
+      if (globals.processManager.canRun(genSnapshotPath)) {
         return genSnapshotPath;
       }
     }
@@ -525,11 +520,11 @@
 
   String _flutterTesterPath(TargetPlatform platform) {
     if (getCurrentHostPlatform() == HostPlatform.linux_x64) {
-      return fs.path.join(engineOutPath, _artifactToFileName(Artifact.flutterTester));
+      return globals.fs.path.join(engineOutPath, _artifactToFileName(Artifact.flutterTester));
     } else if (getCurrentHostPlatform() == HostPlatform.darwin_x64) {
-      return fs.path.join(engineOutPath, 'flutter_tester');
+      return globals.fs.path.join(engineOutPath, 'flutter_tester');
     } else if (getCurrentHostPlatform() == HostPlatform.windows_x64) {
-      return fs.path.join(engineOutPath, 'flutter_tester.exe');
+      return globals.fs.path.join(engineOutPath, 'flutter_tester.exe');
     }
     throw Exception('Unsupported platform $platform.');
   }