[flutter_releases] Flutter beta 2.5.0-5.0.pre Framework Cherrypicks (#88062)

* Update to latest published DevTools 2.5.0. (#87692)
* 'Update Engine revision to fbeb7e22bd6d594a16c487cc138970fbd2a77d40 for beta release 2.5.0-5.0.pre'
* update .ci.yaml

Co-authored-by: Terry Lucas <terry@google.com>
diff --git a/.ci.yaml b/.ci.yaml
index 46dea3b..99dfb59 100644
--- a/.ci.yaml
+++ b/.ci.yaml
@@ -10,13 +10,19 @@
   - dev
   - beta
   - stable
+  - flutter-2.5-candidate.5
 
 platform_properties:
   linux:
     properties:
       caches: >-
         [
-          {"name":"builder_linux_framework","path":"builder"}
+          {"name":"builder_linux_framework","path":"builder"},
+          {"name":"android_sdk","path":"android"},
+          {"name":"chrome_and_driver","path":"chrome"},
+          {"name":"flutter_sdk","path":"flutter sdk"},
+          {"name":"openjdk","path":"java"},
+          {"name":"pub_cache","path":".pub-cache"}
         ]
       dependencies: >-
         [
@@ -29,10 +35,18 @@
       caches: >-
         [
           {"name":"builder_linux_devicelab","path":"builder"},
+          {"name":"android_sdk","path":"android"},
+          {"name":"chrome_and_driver","path":"chrome"},
+          {"name":"flutter_sdk","path":"flutter sdk"},
+          {"name":"gradle","path":"gradle"},
+          {"name":"openjdk","path":"java"},
+          {"name":"pub_cache","path":".pub-cache"}
         ]
       dependencies: >-
         [
-          {"dependency": "curl"}
+          {"dependency": "android_sdk"},
+          {"dependency": "curl"},
+          {"dependency": "open_jdk"}
         ]
       os: Android
       device_os: "N"
@@ -40,47 +54,100 @@
     properties:
       caches: >-
         [
-          {"name":"builder_mac_framework","path":"builder"}
+          {"name":"builder_mac_framework","path":"builder"},
+          {"name":"android_sdk","path":"android"},
+          {"name":"chrome_and_driver","path":"chrome"},
+          {"name":"flutter_sdk","path":"flutter sdk"},
+          {"name":"openjdk","path":"java"},
+          {"name":"osx_sdk","path":"osx_sdk"},
+          {"name":"pub_cache","path":".pub-cache"},
+          {"name":"xcode_binary","path":"xcode_binary"}
         ]
+      dependencies: >-
+        []
       os: Mac-10.15
       device_type: none
       mac_model: Macmini8,1
-      xcode: 12a7209
+      xcode: 12c33
   mac_android:
     properties:
       caches: >-
           [
             {"name":"builder_mac_devicelab","path":"builder"},
+            {"name":"android_sdk","path":"android"},
+            {"name":"chrome_and_driver","path":"chrome"},
+            {"name":"flutter_sdk","path":"flutter sdk"},
+            {"name":"gradle","path":"gradle"},
+            {"name":"openjdk","path":"java"},
+            {"name":"pub_cache","path":".pub-cache"}
           ]
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "chrome_and_driver"},
+          {"dependency": "open_jdk"}
+        ]
       os: Mac-10.15
       device_os: N
   mac_ios:
     properties:
       caches: >-
           [
-            {"name":"builder_mac_devicelab","path":"builder"}
+            {"name":"builder_mac_devicelab","path":"builder"},
+            {"name":"chrome_and_driver","path":"chrome"},
+            {"name":"flutter_sdk","path":"flutter sdk"},
+            {"name":"gradle","path":"gradle"},
+            {"name":"openjdk","path":"java"},
+            {"name":"pub_cache","path":".pub-cache"},
+            {"name":"xcode_binary","path":"xcode_binary"},
+            {"name":"osx_sdk","path":"osx_sdk"}
           ]
+      dependencies: >-
+        [
+          {"dependency": "xcode"},
+          {"dependency": "gems"},
+          {"dependency": "ios_signing"}
+        ]
       os: Mac-10.15
       device_os: iOS-14.4.2
-      xcode: 12a7209
+      xcode: 12c33
   mac_ios32:
     properties:
       caches: >-
           [
-            {"name":"builder_mac_devicelab","path":"builder"}
+            {"name":"builder_mac_devicelab","path":"builder"},
+            {"name":"chrome_and_driver","path":"chrome"},
+            {"name":"flutter_sdk","path":"flutter sdk"},
+            {"name":"gradle","path":"gradle"},
+            {"name":"openjdk","path":"java"},
+            {"name":"pub_cache","path":".pub-cache"},
+            {"name":"xcode_binary","path":"xcode_binary"},
+            {"name":"osx_sdk","path":"osx_sdk"}
           ]
+      dependencies: >-
+        [
+          {"dependency": "xcode"},
+          {"dependency": "gems"},
+          {"dependency": "ios_signing"}
+        ]
       os: Mac-10.15
       device_os: iOS-9.3.6
-      xcode: 12a7209
+      xcode: 12c33
   windows:
     properties:
       caches: >-
           [
-            {"name":"builder_win_framework","path":"builder"}
+            {"name":"builder_win_framework","path":"builder"},
+            {"name":"android_sdk","path":"android"},
+            {"name":"chrome_and_driver","path":"chrome"},
+            {"name":"flutter_sdk","path":"flutter sdk"},
+            {"name":"openjdk","path":"java"},
+            {"name":"pub_cache","path":".pub-cache"},
+            {"name":"vsbuild","path":"vsbuild"}
           ]
       dependencies: >-
           [
-            {"dependency": "certs"},
+            {"dependency": "certs"}
           ]
       os: Windows-10
       device_type: none
@@ -88,11 +155,20 @@
     properties:
       caches: >-
           [
-            {"name":"builder_win_devicelab","path":"builder"}
+            {"name":"builder_win_devicelab","path":"builder"},
+            {"name":"android_sdk","path":"android"},
+            {"name":"chrome_and_driver","path":"chrome"},
+            {"name":"flutter_sdk","path":"flutter sdk"},
+            {"name":"gradle","path":"gradle"},
+            {"name":"openjdk","path":"java"},
+            {"name":"pub_cache","path":".pub-cache"}
           ]
       dependencies: >-
           [
+            {"dependency": "android_sdk"},
             {"dependency": "certs"},
+            {"dependency": "chrome_and_driver"},
+            {"dependency": "open_jdk"}
           ]
       os: Windows-10
       device_os: N
@@ -113,6 +189,15 @@
     timeout: 60
     properties:
       add_recipes_cq: "true"
+      caches: >-
+        [
+          {"name":"gradle","path":"gradle"}
+        ]
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "chrome_and_driver"}
+        ]
       tags: >
         ["devicelab","hostonly"]
       task_name: build_aar_module_test
@@ -126,6 +211,16 @@
     recipe: flutter/flutter_drone
     timeout: 60
     properties:
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "chrome_and_driver"},
+          {"dependency": "open_jdk"},
+          {"dependency": "goldctl"},
+          {"dependency": "clang"},
+          {"dependency": "cmake"},
+          {"dependency": "ninja"}
+        ]
       shard: build_tests
       subshard: "1_2"
       tags: >
@@ -136,6 +231,16 @@
     recipe: flutter/flutter_drone
     timeout: 60
     properties:
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "chrome_and_driver"},
+          {"dependency": "open_jdk"},
+          {"dependency": "goldctl"},
+          {"dependency": "clang"},
+          {"dependency": "cmake"},
+          {"dependency": "ninja"}
+        ]
       shard: build_tests
       subshard: "2_2"
       tags: >
@@ -159,6 +264,11 @@
     presubmit: false
     timeout: 60
     properties:
+      dependencies: >-
+        [
+          {"dependency": "dashing"},
+          {"dependency": "firebase"}
+        ]
       tags: >
         ["framework","hostonly"]
       validation: docs
@@ -171,6 +281,12 @@
     recipe: flutter/flutter
     timeout: 60
     properties:
+      dependencies: >-
+        [
+          {"dependency": "dashing"}
+        ]
+      firebase_project: ""
+      release_ref: ""
       tags: >
         ["framework","hostonly"]
       validation: docs
@@ -185,27 +301,39 @@
       - bin/
 
   - name: Linux firebase_abstract_method_smoke_test
-    recipe: firebaselab
+    recipe: firebaselab/firebaselab
     timeout: 60
     properties:
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"}
+        ]
       tags: >
         ["firebaselab"]
       task_name: abstract_method_smoke_test
     scheduler: luci
 
   - name: Linux firebase_android_embedding_v2_smoke_test
-    recipe: firebaselab
+    recipe: firebaselab/firebaselab
     timeout: 60
     properties:
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"}
+        ]
       tags: >
         ["firebaselab"]
       task_name: android_embedding_v2_smoke_test
     scheduler: luci
 
   - name: Linux firebase_release_smoke_test
-    recipe: firebaselab
+    recipe: firebaselab/firebaselab
     timeout: 60
     properties:
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"}
+        ]
       tags: >
         ["firebaselab"]
       task_name: release_smoke_test
@@ -225,6 +353,10 @@
     recipe: flutter/flutter_drone
     timeout: 60
     properties:
+      dependencies: >-
+        [
+          {"dependency": "goldctl"}
+        ]
       shard: framework_tests
       subshard: libraries
       tags: >
@@ -246,6 +378,10 @@
     recipe: flutter/flutter_drone
     timeout: 60
     properties:
+      dependencies: >-
+        [
+          {"dependency": "goldctl"}
+        ]
       shard: framework_tests
       subshard: misc
       tags: >
@@ -267,6 +403,10 @@
     recipe: flutter/flutter_drone
     timeout: 60
     properties:
+      dependencies: >-
+        [
+          {"dependency": "goldctl"}
+        ]
       shard: framework_tests
       subshard: widgets
       tags: >
@@ -298,6 +438,15 @@
     recipe: devicelab/devicelab_drone
     timeout: 60
     properties:
+      caches: >-
+        [
+          {"name":"gradle","path":"gradle"}
+        ]
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "chrome_and_driver"}
+        ]
       tags: >
         ["devicelab","hostonly"]
       task_name: gradle_desugar_classes_test
@@ -310,6 +459,15 @@
     recipe: devicelab/devicelab_drone
     timeout: 60
     properties:
+      caches: >-
+        [
+          {"name":"gradle","path":"gradle"}
+        ]
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "chrome_and_driver"}
+        ]
       tags: >
         ["devicelab","hostonly"]
       task_name: gradle_java8_compile_test
@@ -322,6 +480,15 @@
     recipe: devicelab/devicelab_drone
     timeout: 60
     properties:
+      caches: >-
+        [
+          {"name":"gradle","path":"gradle"}
+        ]
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "chrome_and_driver"}
+        ]
       tags: >
         ["devicelab","hostonly"]
       task_name: gradle_plugin_bundle_test
@@ -334,6 +501,15 @@
     recipe: devicelab/devicelab_drone
     timeout: 60
     properties:
+      caches: >-
+        [
+          {"name":"gradle","path":"gradle"}
+        ]
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "chrome_and_driver"}
+        ]
       tags: >
         ["devicelab","hostonly"]
       task_name: gradle_plugin_fat_apk_test
@@ -346,6 +522,15 @@
     recipe: devicelab/devicelab_drone
     timeout: 60
     properties:
+      caches: >-
+        [
+          {"name":"gradle","path":"gradle"}
+        ]
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "chrome_and_driver"}
+        ]
       tags: >
         ["devicelab","hostonly"]
       task_name: gradle_plugin_light_apk_test
@@ -358,6 +543,15 @@
     recipe: devicelab/devicelab_drone
     timeout: 60
     properties:
+      caches: >-
+        [
+          {"name":"gradle","path":"gradle"}
+        ]
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "chrome_and_driver"}
+        ]
       tags: >
         ["devicelab","hostonly"]
       task_name: module_custom_host_app_name_test
@@ -371,6 +565,15 @@
     recipe: devicelab/devicelab_drone
     timeout: 60
     properties:
+      caches: >-
+        [
+          {"name":"gradle","path":"gradle"}
+        ]
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "chrome_and_driver"}
+        ]
       tags: >
         ["devicelab","hostonly"]
       task_name: module_host_with_custom_build_test
@@ -384,6 +587,15 @@
     recipe: devicelab/devicelab_drone
     timeout: 60
     properties:
+      caches: >-
+        [
+          {"name":"gradle","path":"gradle"}
+        ]
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "chrome_and_driver"}
+        ]
       tags: >
         ["devicelab","hostonly"]
       task_name: module_test
@@ -397,6 +609,15 @@
     recipe: devicelab/devicelab_drone
     timeout: 60
     properties:
+      caches: >-
+        [
+          {"name":"gradle","path":"gradle"}
+        ]
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "chrome_and_driver"}
+        ]
       tags: >
         ["devicelab","hostonly"]
       task_name: plugin_dependencies_test
@@ -410,6 +631,15 @@
     recipe: devicelab/devicelab_drone
     timeout: 60
     properties:
+      caches: >-
+        [
+          {"name":"gradle","path":"gradle"}
+        ]
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "chrome_and_driver"}
+        ]
       tags: >
         ["devicelab","hostonly"]
       task_name: plugin_test
@@ -441,14 +671,21 @@
     presubmit: false
     timeout: 60
     properties:
+      caches: >-
+        [
+          {"name":"gradle","path":"gradle"}
+        ]
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "chrome_and_driver"}
+        ]
       tags: >
         ["devicelab","hostonly"]
       task_name: technical_debt__cost
     scheduler: luci
 
   - name: Linux test_ownership
-    enabled_branches:
-      - master
     recipe: infra/test_ownership
     bringup: true
     timeout: 60
@@ -464,6 +701,14 @@
     timeout: 60
     properties:
       add_recipes_cq: "true"
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "chrome_and_driver"},
+          {"dependency": "clang"},
+          {"dependency": "open_jdk"},
+          {"dependency": "goldctl"}
+        ]
       shard: tool_integration_tests
       subshard: "1_4"
       tags: >
@@ -480,10 +725,19 @@
     timeout: 60
     properties:
       add_recipes_cq: "true"
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "chrome_and_driver"},
+          {"dependency": "clang"},
+          {"dependency": "open_jdk"},
+          {"dependency": "goldctl"}
+        ]
       shard: tool_integration_tests
       subshard: "2_4"
       tags: >
         ["framework","hostonly","shard"]
+      test_timeout_secs: "2700"
     scheduler: luci
     runIf:
       - dev/
@@ -495,10 +749,19 @@
     timeout: 60
     properties:
       add_recipes_cq: "true"
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "chrome_and_driver"},
+          {"dependency": "clang"},
+          {"dependency": "open_jdk"},
+          {"dependency": "goldctl"}
+        ]
       shard: tool_integration_tests
       subshard: "3_4"
       tags: >
         ["framework","hostonly","shard"]
+      test_timeout_secs: "2700"
     scheduler: luci
     runIf:
       - dev/
@@ -510,10 +773,19 @@
     timeout: 60
     properties:
       add_recipes_cq: "true"
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "chrome_and_driver"},
+          {"dependency": "clang"},
+          {"dependency": "open_jdk"},
+          {"dependency": "goldctl"}
+        ]
       shard: tool_integration_tests
       subshard: "4_4"
       tags: >
         ["framework","hostonly","shard"]
+      test_timeout_secs: "2700"
     scheduler: luci
     runIf:
       - dev/
@@ -525,6 +797,11 @@
     timeout: 60
     properties:
       add_recipes_cq: "true"
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "open_jdk"}
+        ]
       shard: tool_tests
       subshard: commands
       tags: >
@@ -540,6 +817,11 @@
     timeout: 60
     properties:
       add_recipes_cq: "true"
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "open_jdk"}
+        ]
       shard: tool_tests
       subshard: general
       tags: >
@@ -555,6 +837,15 @@
     presubmit: false
     timeout: 60
     properties:
+      caches: >-
+        [
+          {"name":"gradle","path":"gradle"}
+        ]
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "chrome_and_driver"}
+        ]
       tags: >
         ["devicelab","hostonly"]
       task_name: web_benchmarks_canvaskit
@@ -564,8 +855,18 @@
     recipe: devicelab/devicelab_drone
     timeout: 60
     properties:
+      caches: >-
+        [
+          {"name":"gradle","path":"gradle"}
+        ]
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "chrome_and_driver"}
+        ]
       tags: >
         ["devicelab"]
+      task_name: web_benchmarks_html
     scheduler: luci
     runIf:
       - dev/**
@@ -575,6 +876,12 @@
     recipe: flutter/flutter_drone
     timeout: 60
     properties:
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "chrome_and_driver"},
+          {"dependency": "goldctl"}
+        ]
       shard: web_long_running_tests
       subshard: "1_5"
       tags: >
@@ -589,6 +896,12 @@
     recipe: flutter/flutter_drone
     timeout: 60
     properties:
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "chrome_and_driver"},
+          {"dependency": "goldctl"}
+        ]
       shard: web_long_running_tests
       subshard: "2_5"
       tags: >
@@ -603,6 +916,12 @@
     recipe: flutter/flutter_drone
     timeout: 60
     properties:
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "chrome_and_driver"},
+          {"dependency": "goldctl"}
+        ]
       shard: web_long_running_tests
       subshard: "3_5"
       tags: >
@@ -617,6 +936,12 @@
     recipe: flutter/flutter_drone
     timeout: 60
     properties:
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "chrome_and_driver"},
+          {"dependency": "goldctl"}
+        ]
       shard: web_long_running_tests
       subshard: "4_5"
       tags: >
@@ -631,6 +956,12 @@
     recipe: flutter/flutter_drone
     timeout: 60
     properties:
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "chrome_and_driver"},
+          {"dependency": "goldctl"}
+        ]
       shard: web_long_running_tests
       subshard: "5_5"
       tags: >
@@ -645,6 +976,12 @@
     recipe: flutter/flutter_drone
     timeout: 60
     properties:
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "chrome_and_driver"},
+          {"dependency": "goldctl"}
+        ]
       shard: web_tests
       subshard: "0"
       tags: >
@@ -659,6 +996,12 @@
     recipe: flutter/flutter_drone
     timeout: 60
     properties:
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "chrome_and_driver"},
+          {"dependency": "goldctl"}
+        ]
       shard: web_tests
       subshard: "1"
       tags: >
@@ -673,6 +1016,12 @@
     recipe: flutter/flutter_drone
     timeout: 60
     properties:
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "chrome_and_driver"},
+          {"dependency": "goldctl"}
+        ]
       shard: web_tests
       subshard: "2"
       tags: >
@@ -687,6 +1036,12 @@
     recipe: flutter/flutter_drone
     timeout: 60
     properties:
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "chrome_and_driver"},
+          {"dependency": "goldctl"}
+        ]
       shard: web_tests
       subshard: "3"
       tags: >
@@ -701,6 +1056,12 @@
     recipe: flutter/flutter_drone
     timeout: 60
     properties:
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "chrome_and_driver"},
+          {"dependency": "goldctl"}
+        ]
       shard: web_tests
       subshard: "4"
       tags: >
@@ -715,6 +1076,12 @@
     recipe: flutter/flutter_drone
     timeout: 60
     properties:
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "chrome_and_driver"},
+          {"dependency": "goldctl"}
+        ]
       shard: web_tests
       subshard: "5"
       tags: >
@@ -729,6 +1096,12 @@
     recipe: flutter/flutter_drone
     timeout: 60
     properties:
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "chrome_and_driver"},
+          {"dependency": "goldctl"}
+        ]
       shard: web_tests
       subshard: "6"
       tags: >
@@ -743,6 +1116,12 @@
     recipe: flutter/flutter_drone
     timeout: 60
     properties:
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "chrome_and_driver"},
+          {"dependency": "goldctl"}
+        ]
       shard: web_tests
       subshard: "7_last"
       tags: >
@@ -757,6 +1136,13 @@
     recipe: flutter/flutter_drone
     timeout: 60
     properties:
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "chrome_and_driver"},
+          {"dependency": "open_jdk"},
+          {"dependency": "goldctl"}
+        ]
       shard: web_tool_tests
       subshard: web
       tags: >
@@ -1025,6 +1411,7 @@
     properties:
       tags: >
         ["devicelab"]
+      task_name: flutter_gallery__transition_perf_e2e
     scheduler: luci
 
   - name: Linux_android flutter_gallery__transition_perf_hybrid
@@ -1253,6 +1640,17 @@
     timeout: 60
     properties:
       add_recipes_cq: "true"
+      caches: >-
+        [
+          {"name":"gradle","path":"gradle"}
+        ]
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "gems"},
+          {"dependency": "open_jdk"},
+          {"dependency": "xcode"}
+        ]
       tags: >
         ["devicelab","hostonly"]
       task_name: build_aar_module_test
@@ -1266,6 +1664,17 @@
     recipe: devicelab/devicelab_drone
     timeout: 60
     properties:
+      caches: >-
+        [
+          {"name":"gradle","path":"gradle"}
+        ]
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "open_jdk"},
+          {"dependency": "xcode"},
+          {"dependency": "gems"}
+        ]
       tags: >
         ["devicelab","hostonly"]
       task_name: build_ios_framework_module_test
@@ -1280,6 +1689,15 @@
     timeout: 60
     properties:
       add_recipes_cq: "true"
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "chrome_and_driver"},
+          {"dependency": "open_jdk"},
+          {"dependency": "xcode"},
+          {"dependency": "gems"},
+          {"dependency": "goldctl"}
+        ]
       shard: build_tests
       subshard: "1_4"
       tags: >
@@ -1291,6 +1709,15 @@
     timeout: 60
     properties:
       add_recipes_cq: "true"
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "chrome_and_driver"},
+          {"dependency": "open_jdk"},
+          {"dependency": "xcode"},
+          {"dependency": "gems"},
+          {"dependency": "goldctl"}
+        ]
       shard: build_tests
       subshard: "2_4"
       tags: >
@@ -1302,6 +1729,15 @@
     timeout: 60
     properties:
       add_recipes_cq: "true"
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "chrome_and_driver"},
+          {"dependency": "open_jdk"},
+          {"dependency": "xcode"},
+          {"dependency": "gems"},
+          {"dependency": "goldctl"}
+        ]
       shard: build_tests
       subshard: "3_4"
       tags: >
@@ -1313,6 +1749,15 @@
     timeout: 60
     properties:
       add_recipes_cq: "true"
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "chrome_and_driver"},
+          {"dependency": "open_jdk"},
+          {"dependency": "xcode"},
+          {"dependency": "gems"},
+          {"dependency": "goldctl"}
+        ]
       shard: build_tests
       subshard: "4_4"
       tags: >
@@ -1334,6 +1779,15 @@
     recipe: devicelab/devicelab_drone
     timeout: 60
     properties:
+      caches: >-
+        [
+          {"name":"gradle","path":"gradle"}
+        ]
+      dependencies: >-
+        [
+          {"dependency": "xcode"},
+          {"dependency": "gems"}
+        ]
       tags: >
         ["devicelab","hostonly"]
       task_name: dart_plugin_registry_test
@@ -1347,6 +1801,10 @@
     recipe: flutter/flutter_drone
     timeout: 60
     properties:
+      dependencies: >-
+        [
+          {"dependency": "goldctl"}
+        ]
       shard: framework_tests
       subshard: libraries
       tags: >
@@ -1368,6 +1826,10 @@
     recipe: flutter/flutter_drone
     timeout: 60
     properties:
+      dependencies: >-
+        [
+          {"dependency": "goldctl"}
+        ]
       shard: framework_tests
       subshard: misc
       tags: >
@@ -1389,6 +1851,10 @@
     recipe: flutter/flutter_drone
     timeout: 60
     properties:
+      dependencies: >-
+        [
+          {"dependency": "goldctl"}
+        ]
       shard: framework_tests
       subshard: widgets
       tags: >
@@ -1410,6 +1876,17 @@
     recipe: devicelab/devicelab_drone
     timeout: 60
     properties:
+      caches: >-
+        [
+          {"name":"gradle","path":"gradle"}
+        ]
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "open_jdk"},
+          {"dependency": "xcode"},
+          {"dependency": "gems"}
+        ]
       tags: >
         ["devicelab","hostonly"]
       task_name: gradle_plugin_bundle_test
@@ -1422,6 +1899,17 @@
     recipe: devicelab/devicelab_drone
     timeout: 60
     properties:
+      caches: >-
+        [
+          {"name":"gradle","path":"gradle"}
+        ]
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "open_jdk"},
+          {"dependency": "xcode"},
+          {"dependency": "gems"}
+        ]
       tags: >
         ["devicelab","hostonly"]
       task_name: gradle_plugin_fat_apk_test
@@ -1434,6 +1922,17 @@
     recipe: devicelab/devicelab_drone
     timeout: 60
     properties:
+      caches: >-
+        [
+          {"name":"gradle","path":"gradle"}
+        ]
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "open_jdk"},
+          {"dependency": "xcode"},
+          {"dependency": "gems"}
+        ]
       tags: >
         ["devicelab","hostonly"]
       task_name: gradle_plugin_light_apk_test
@@ -1446,6 +1945,17 @@
     recipe: devicelab/devicelab_drone
     timeout: 60
     properties:
+      caches: >-
+        [
+          {"name":"gradle","path":"gradle"}
+        ]
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "open_jdk"},
+          {"dependency": "xcode"},
+          {"dependency": "gems"}
+        ]
       tags: >
         ["devicelab","hostonly"]
       task_name: module_custom_host_app_name_test
@@ -1459,6 +1969,17 @@
     recipe: devicelab/devicelab_drone
     timeout: 60
     properties:
+      caches: >-
+        [
+          {"name":"gradle","path":"gradle"}
+        ]
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "open_jdk"},
+          {"dependency": "xcode"},
+          {"dependency": "gems"}
+        ]
       tags: >
         ["devicelab","hostonly"]
       task_name: module_host_with_custom_build_test
@@ -1472,6 +1993,17 @@
     recipe: devicelab/devicelab_drone
     timeout: 60
     properties:
+      caches: >-
+        [
+          {"name":"gradle","path":"gradle"}
+        ]
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "open_jdk"},
+          {"dependency": "xcode"},
+          {"dependency": "gems"}
+        ]
       tags: >
         ["devicelab","hostonly"]
       task_name: module_test
@@ -1486,6 +2018,17 @@
     bringup: true
     timeout: 60
     properties:
+      caches: >-
+        [
+          {"name":"gradle","path":"gradle"}
+        ]
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "open_jdk"},
+          {"dependency": "xcode"},
+          {"dependency": "gems"}
+        ]
       tags: >
         ["devicelab","hostonly"]
       task_name: module_test_ios
@@ -1499,6 +2042,17 @@
     recipe: devicelab/devicelab_drone
     timeout: 60
     properties:
+      caches: >-
+        [
+          {"name":"gradle","path":"gradle"}
+        ]
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "open_jdk"},
+          {"dependency": "xcode"},
+          {"dependency": "gems"}
+        ]
       tags: >
         ["devicelab","hostonly"]
       task_name: plugin_dependencies_test
@@ -1512,6 +2066,17 @@
     recipe: devicelab/devicelab_drone
     timeout: 60
     properties:
+      caches: >-
+        [
+          {"name":"gradle","path":"gradle"}
+        ]
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "open_jdk"},
+          {"dependency": "xcode"},
+          {"dependency": "gems"}
+        ]
       tags: >
         ["devicelab","hostonly"]
       task_name: plugin_lint_mac
@@ -1524,6 +2089,17 @@
     recipe: devicelab/devicelab_drone
     timeout: 60
     properties:
+      caches: >-
+        [
+          {"name":"gradle","path":"gradle"}
+        ]
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "open_jdk"},
+          {"dependency": "xcode"},
+          {"dependency": "gems"}
+        ]
       tags: >
         ["devicelab","hostonly"]
       task_name: plugin_test
@@ -1538,6 +2114,15 @@
     timeout: 60
     properties:
       add_recipes_cq: "true"
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "chrome_and_driver"},
+          {"dependency": "open_jdk"},
+          {"dependency": "xcode"},
+          {"dependency": "gems"},
+          {"dependency": "goldctl"}
+        ]
       shard: tool_integration_tests
       subshard: "1_4"
       tags: >
@@ -1553,6 +2138,15 @@
     timeout: 60
     properties:
       add_recipes_cq: "true"
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "chrome_and_driver"},
+          {"dependency": "open_jdk"},
+          {"dependency": "xcode"},
+          {"dependency": "gems"},
+          {"dependency": "goldctl"}
+        ]
       shard: tool_integration_tests
       subshard: "2_4"
       tags: >
@@ -1568,6 +2162,15 @@
     timeout: 60
     properties:
       add_recipes_cq: "true"
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "chrome_and_driver"},
+          {"dependency": "open_jdk"},
+          {"dependency": "xcode"},
+          {"dependency": "gems"},
+          {"dependency": "goldctl"}
+        ]
       shard: tool_integration_tests
       subshard: "3_4"
       tags: >
@@ -1583,6 +2186,15 @@
     timeout: 60
     properties:
       add_recipes_cq: "true"
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "chrome_and_driver"},
+          {"dependency": "open_jdk"},
+          {"dependency": "xcode"},
+          {"dependency": "gems"},
+          {"dependency": "goldctl"}
+        ]
       shard: tool_integration_tests
       subshard: "4_4"
       tags: >
@@ -1598,6 +2210,11 @@
     timeout: 60
     properties:
       add_recipes_cq: "true"
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "open_jdk"}
+        ]
       shard: tool_tests
       subshard: commands
       tags: >
@@ -1609,6 +2226,11 @@
     timeout: 60
     properties:
       add_recipes_cq: "true"
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "open_jdk"}
+        ]
       shard: tool_tests
       subshard: general
       tags: >
@@ -1627,6 +2249,10 @@
     recipe: flutter/flutter
     timeout: 60
     properties:
+      dependencies: >-
+        [
+          {"dependency": "xcode"}
+        ]
       tags: >
         ["framework","hostonly","shard"]
       validation: verify_binaries_codesigned
@@ -1636,6 +2262,14 @@
     recipe: flutter/flutter_drone
     timeout: 60
     properties:
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "chrome_and_driver"},
+          {"dependency": "open_jdk"},
+          {"dependency": "xcode"},
+          {"dependency": "goldctl"}
+        ]
       shard: web_tool_tests
       subshard: web
       tags: >
@@ -2504,6 +3138,16 @@
     timeout: 60
     properties:
       add_recipes_cq: "true"
+      caches: >-
+        [
+          {"name":"gradle","path":"gradle"}
+        ]
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "chrome_and_driver"},
+          {"dependency": "open_jdk"}
+        ]
       tags: >
         ["devicelab","hostonly"]
       task_name: build_aar_module_test
@@ -2518,6 +3162,14 @@
     timeout: 60
     properties:
       add_recipes_cq: "true"
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "chrome_and_driver"},
+          {"dependency": "open_jdk"},
+          {"dependency": "goldctl"},
+          {"dependency": "vs_build"}
+        ]
       shard: build_tests
       subshard: "1_3"
       tags: >
@@ -2529,6 +3181,14 @@
     timeout: 60
     properties:
       add_recipes_cq: "true"
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "chrome_and_driver"},
+          {"dependency": "open_jdk"},
+          {"dependency": "goldctl"},
+          {"dependency": "vs_build"}
+        ]
       shard: build_tests
       subshard: "2_3"
       tags: >
@@ -2540,6 +3200,14 @@
     timeout: 60
     properties:
       add_recipes_cq: "true"
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "chrome_and_driver"},
+          {"dependency": "open_jdk"},
+          {"dependency": "goldctl"},
+          {"dependency": "vs_build"}
+        ]
       shard: build_tests
       subshard: "3_3"
       tags: >
@@ -2561,6 +3229,10 @@
     recipe: flutter/flutter_drone
     timeout: 60
     properties:
+      dependencies: >-
+        [
+          {"dependency": "goldctl"}
+        ]
       shard: framework_tests
       subshard: libraries
       tags: >
@@ -2582,6 +3254,10 @@
     recipe: flutter/flutter_drone
     timeout: 60
     properties:
+      dependencies: >-
+        [
+          {"dependency": "goldctl"}
+        ]
       shard: framework_tests
       subshard: misc
       tags: >
@@ -2603,6 +3279,10 @@
     recipe: flutter/flutter_drone
     timeout: 60
     properties:
+      dependencies: >-
+        [
+          {"dependency": "goldctl"}
+        ]
       shard: framework_tests
       subshard: widgets
       tags: >
@@ -2624,6 +3304,16 @@
     recipe: devicelab/devicelab_drone
     timeout: 60
     properties:
+      caches: >-
+        [
+          {"name":"gradle","path":"gradle"}
+        ]
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "chrome_and_driver"},
+          {"dependency": "open_jdk"}
+        ]
       tags: >
         ["devicelab","hostonly"]
       task_name: gradle_plugin_bundle_test
@@ -2637,6 +3327,16 @@
     presubmit: false
     timeout: 60
     properties:
+      caches: >-
+        [
+          {"name":"gradle","path":"gradle"}
+        ]
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "chrome_and_driver"},
+          {"dependency": "open_jdk"}
+        ]
       tags: >
         ["devicelab","hostonly"]
       task_name: gradle_plugin_fat_apk_test
@@ -2646,6 +3346,16 @@
     recipe: devicelab/devicelab_drone
     timeout: 60
     properties:
+      caches: >-
+        [
+          {"name":"gradle","path":"gradle"}
+        ]
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "chrome_and_driver"},
+          {"dependency": "open_jdk"}
+        ]
       tags: >
         ["devicelab","hostonly"]
       task_name: gradle_plugin_light_apk_test
@@ -2660,6 +3370,10 @@
     presubmit: false
     timeout: 60
     properties:
+      caches: >-
+        [
+          {"name":"gradle","path":"gradle"}
+        ]
       tags: >
         ["devicelab","hostonly"]
       task_name: hot_mode_dev_cycle_win_target__benchmark
@@ -2669,6 +3383,12 @@
     recipe: devicelab/devicelab_drone
     timeout: 60
     properties:
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "chrome_and_driver"},
+          {"dependency": "open_jdk"}
+        ]
       tags: >
         ["devicelab","hostonly"]
       task_name: module_custom_host_app_name_test
@@ -2682,6 +3402,16 @@
     recipe: devicelab/devicelab_drone
     timeout: 60
     properties:
+      caches: >-
+        [
+          {"name":"gradle","path":"gradle"}
+        ]
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "chrome_and_driver"},
+          {"dependency": "open_jdk"}
+        ]
       tags: >
         ["devicelab","hostonly"]
       task_name: module_host_with_custom_build_test
@@ -2695,6 +3425,16 @@
     recipe: devicelab/devicelab_drone
     timeout: 60
     properties:
+      caches: >-
+        [
+          {"name":"gradle","path":"gradle"}
+        ]
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "chrome_and_driver"},
+          {"dependency": "open_jdk"}
+        ]
       tags: >
         ["devicelab","hostonly"]
       task_name: module_test
@@ -2708,6 +3448,16 @@
     recipe: devicelab/devicelab_drone
     timeout: 60
     properties:
+      caches: >-
+        [
+          {"name":"gradle","path":"gradle"}
+        ]
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "chrome_and_driver"},
+          {"dependency": "open_jdk"}
+        ]
       tags: >
         ["devicelab","hostonly"]
       task_name: plugin_dependencies_test
@@ -2721,6 +3471,16 @@
     recipe: devicelab/devicelab_drone
     timeout: 60
     properties:
+      caches: >-
+        [
+          {"name":"gradle","path":"gradle"}
+        ]
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "chrome_and_driver"},
+          {"dependency": "open_jdk"}
+        ]
       tags: >
         ["devicelab","hostonly"]
       task_name: plugin_test
@@ -2735,6 +3495,14 @@
     timeout: 60
     properties:
       add_recipes_cq: "true"
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "chrome_and_driver"},
+          {"dependency": "open_jdk"},
+          {"dependency": "goldctl"},
+          {"dependency": "vs_build"}
+        ]
       shard: tool_integration_tests
       subshard: "1_5"
       tags: >
@@ -2750,6 +3518,14 @@
     timeout: 60
     properties:
       add_recipes_cq: "true"
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "chrome_and_driver"},
+          {"dependency": "open_jdk"},
+          {"dependency": "goldctl"},
+          {"dependency": "vs_build"}
+        ]
       shard: tool_integration_tests
       subshard: "2_5"
       tags: >
@@ -2765,6 +3541,14 @@
     timeout: 60
     properties:
       add_recipes_cq: "true"
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "chrome_and_driver"},
+          {"dependency": "open_jdk"},
+          {"dependency": "goldctl"},
+          {"dependency": "vs_build"}
+        ]
       shard: tool_integration_tests
       subshard: "3_5"
       tags: >
@@ -2780,6 +3564,14 @@
     timeout: 60
     properties:
       add_recipes_cq: "true"
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "chrome_and_driver"},
+          {"dependency": "open_jdk"},
+          {"dependency": "goldctl"},
+          {"dependency": "vs_build"}
+        ]
       shard: tool_integration_tests
       subshard: "4_5"
       tags: >
@@ -2795,6 +3587,14 @@
     timeout: 60
     properties:
       add_recipes_cq: "true"
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "chrome_and_driver"},
+          {"dependency": "open_jdk"},
+          {"dependency": "goldctl"},
+          {"dependency": "vs_build"}
+        ]
       shard: tool_integration_tests
       subshard: "5_5"
       tags: >
@@ -2810,6 +3610,11 @@
     timeout: 60
     properties:
       add_recipes_cq: "true"
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "open_jdk"}
+        ]
       shard: tool_tests
       subshard: commands
       tags: >
@@ -2825,6 +3630,11 @@
     timeout: 60
     properties:
       add_recipes_cq: "true"
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "open_jdk"}
+        ]
       shard: tool_tests
       subshard: general
       tags: >
@@ -2839,6 +3649,13 @@
     recipe: flutter/flutter_drone
     timeout: 60
     properties:
+      dependencies: >-
+        [
+          {"dependency": "android_sdk"},
+          {"dependency": "chrome_and_driver"},
+          {"dependency": "open_jdk"},
+          {"dependency": "goldctl"}
+        ]
       shard: web_tool_tests
       subshard: web
       tags: >
diff --git a/bin/internal/devtools.version b/bin/internal/devtools.version
index 9183195..437459c 100644
--- a/bin/internal/devtools.version
+++ b/bin/internal/devtools.version
@@ -1 +1 @@
-2.4.0
\ No newline at end of file
+2.5.0
diff --git a/bin/internal/engine.version b/bin/internal/engine.version
index c90ff40..ff2c18c 100644
--- a/bin/internal/engine.version
+++ b/bin/internal/engine.version
@@ -1 +1 @@
-a0d89b1a543d3db982744179d846fb8e8397e889
+fbeb7e22bd6d594a16c487cc138970fbd2a77d40