Add ActionInputPrefetcher to ActionExecutionContext

This is more consistent with other values, and removes the need to inject it
into the constructor of the various strategy implementations.

PiperOrigin-RevId: 162729187
diff --git a/src/main/java/com/google/devtools/build/lib/actions/ActionExecutionContext.java b/src/main/java/com/google/devtools/build/lib/actions/ActionExecutionContext.java
index 4359349..816eb10 100644
--- a/src/main/java/com/google/devtools/build/lib/actions/ActionExecutionContext.java
+++ b/src/main/java/com/google/devtools/build/lib/actions/ActionExecutionContext.java
@@ -41,6 +41,7 @@
 
   private final Executor executor;
   private final ActionInputFileCache actionInputFileCache;
+  private final ActionInputPrefetcher actionInputPrefetcher;
   private final MetadataHandler metadataHandler;
   private final FileOutErr fileOutErr;
   private final ImmutableMap<String, String> clientEnv;
@@ -51,12 +52,14 @@
   private ActionExecutionContext(
       Executor executor,
       ActionInputFileCache actionInputFileCache,
+      ActionInputPrefetcher actionInputPrefetcher,
       MetadataHandler metadataHandler,
       FileOutErr fileOutErr,
       Map<String, String> clientEnv,
       @Nullable ArtifactExpander artifactExpander,
       @Nullable SkyFunction.Environment env) {
     this.actionInputFileCache = actionInputFileCache;
+    this.actionInputPrefetcher = actionInputPrefetcher;
     this.metadataHandler = metadataHandler;
     this.fileOutErr = fileOutErr;
     this.clientEnv = ImmutableMap.copyOf(clientEnv);
@@ -68,6 +71,7 @@
   public ActionExecutionContext(
       Executor executor,
       ActionInputFileCache actionInputFileCache,
+      ActionInputPrefetcher actionInputPrefetcher,
       MetadataHandler metadataHandler,
       FileOutErr fileOutErr,
       Map<String, String> clientEnv,
@@ -75,23 +79,7 @@
     this(
         executor,
         actionInputFileCache,
-        metadataHandler,
-        fileOutErr,
-        clientEnv,
-        artifactExpander,
-        null);
-  }
-
-  public static ActionExecutionContext normal(
-      Executor executor,
-      ActionInputFileCache actionInputFileCache,
-      MetadataHandler metadataHandler,
-      FileOutErr fileOutErr,
-      Map<String, String> clientEnv,
-      ArtifactExpander artifactExpander) {
-    return new ActionExecutionContext(
-        executor,
-        actionInputFileCache,
+        actionInputPrefetcher,
         metadataHandler,
         fileOutErr,
         clientEnv,
@@ -102,12 +90,24 @@
   public static ActionExecutionContext forInputDiscovery(
       Executor executor,
       ActionInputFileCache actionInputFileCache,
+      ActionInputPrefetcher actionInputPrefetcher,
       MetadataHandler metadataHandler,
       FileOutErr fileOutErr,
       Map<String, String> clientEnv,
       Environment env) {
     return new ActionExecutionContext(
-        executor, actionInputFileCache, metadataHandler, fileOutErr, clientEnv, null, env);
+        executor,
+        actionInputFileCache,
+        actionInputPrefetcher,
+        metadataHandler,
+        fileOutErr,
+        clientEnv,
+        null,
+        env);
+  }
+
+  public ActionInputPrefetcher getActionInputPrefetcher() {
+    return actionInputPrefetcher;
   }
 
   public ActionInputFileCache getActionInputFileCache() {
@@ -224,6 +224,7 @@
     return new ActionExecutionContext(
         executor,
         actionInputFileCache,
+        actionInputPrefetcher,
         metadataHandler,
         fileOutErr,
         clientEnv,