Roll flutter to 2fd8904afdf5438d7aee6065d550cec670ab0423

Roller-URL: https://cr-buildbucket.appspot.com/build/8666214942869287073
CQ-Do-Not-Cancel-Tryjobs: true
Change-Id: Ic35e8ec6a06426006241f913d6f4f84c66726037
Reviewed-on: https://flutter-review.googlesource.com/c/infra/+/86462
Bot-Commit: flutter-prod-builder@chops-service-accounts.iam.gserviceaccount.com <flutter-prod-builder@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: flutter-prod-builder@chops-service-accounts.iam.gserviceaccount.com <flutter-prod-builder@chops-service-accounts.iam.gserviceaccount.com>
diff --git a/config/generated/ci_yaml/engine_config.json b/config/generated/ci_yaml/engine_config.json
index efbfd52..7153f99 100644
--- a/config/generated/ci_yaml/engine_config.json
+++ b/config/generated/ci_yaml/engine_config.json
@@ -1 +1 @@
-{"targets":[{"name":"Linux local_engine_builds","timeout":180,"properties":{"config_name":"local_engine"},"enabledBranches":["master"],"recipe":"engine_v2/engine_v2"},{"name":"Linux linux_android_emulator_tests","timeout":90,"properties":{"config_name":"linux_android_emulator","dependencies":"[\n  {\"dependency\": \"goldctl\", \"version\": \"git_revision:7f66c9b9efb2826e72c61bb2f50cdc20b635dea7\"}\n]"},"enabledBranches":["master"],"recipe":"engine_v2/engine_v2"},{"name":"Linux builder_cache","timeout":60,"properties":{"cache_name":"builder","cache_paths":"[\n  \"builder\",\n  \"git\"\n]","ignore_cache_paths":"[\n  \"builder/engine/src/third_party/fuchsia-sdk/sdk/.build-id\"\n]","gclient_variables":"{\n  \"download_emsdk\": \"true\",\n  \"download_android_deps\": \"true\"\n}"},"presubmit":false,"enabledBranches":["master"],"recipe":"engine_v2/cache"},{"name":"Windows builder_cache","timeout":60,"properties":{"cache_name":"builder","cache_paths":"[\n  \"builder\",\n  \"git\"\n]","ignore_cache_paths":"[\n  \"builder/engine/src/third_party/fuchsia-sdk/sdk/.build-id\"\n]","gclient_variables":"{\n  \"download_android_deps\": \"true\"\n}"},"presubmit":false,"enabledBranches":["master"],"recipe":"engine_v2/cache"},{"name":"Mac builder_cache","timeout":60,"properties":{"cache_name":"builder","cache_paths":"[\n  \"builder\",\n  \"git\"\n]","ignore_cache_paths":"[\n  \"builder/engine/src/third_party/fuchsia-sdk/sdk/.build-id\",\n  \"builder/src/flutter/prebuilts/SDKs\",\n  \"builder/src/flutter/prebuilts/Library\"\n]","gclient_variables":"{\n  \"download_android_deps\": \"true\"\n}"},"presubmit":false,"enabledBranches":["master"],"recipe":"engine_v2/cache"},{"name":"Linux linux_benchmarks","timeout":60,"properties":{"config_name":"linux_benchmarks"},"presubmit":false,"enabledBranches":["master"],"recipe":"engine_v2/builder"},{"name":"Linux linux_fuchsia","timeout":120,"properties":{"release_build":"true","config_name":"linux_fuchsia"},"enabledBranches":["master"],"recipe":"engine_v2/engine_v2","dimensions":{"cores":"8"},"droneDimensions":["os=Linux"]},{"name":"Linux linux_fuchsia_tests","timeout":90,"properties":{"config_name":"linux_fuchsia_tests"},"enabledBranches":["master"],"recipe":"engine_v2/engine_v2","droneDimensions":["os=Linux"]},{"name":"Linux linux_clang_tidy","timeout":120,"properties":{"config_name":"linux_clang_tidy"},"runIf":["DEPS","engine/src/flutter/.ci.yaml","engine/src/flutter/tools/clang_tidy/**","engine/src/flutter/ci/builders/**","engine/src/flutter/ci/clang_tidy.sh","engine/src/flutter/**.h","engine/src/flutter/**.c","engine/src/flutter/**.cc","engine/src/flutter/**.fbs","engine/src/flutter/**.frag","engine/src/flutter/**.vert"],"recipe":"engine_v2/engine_v2"},{"name":"Linux linux_arm_host_engine","timeout":120,"properties":{"add_recipes_cq":"true","release_build":"true","config_name":"linux_arm_host_engine"},"recipe":"engine_v2/engine_v2","dimensions":{"cores":"8"},"droneDimensions":["os=Linux"]},{"name":"Linux linux_arm_host_desktop_engine","timeout":120,"properties":{"add_recipes_cq":"true","release_build":"true","config_name":"linux_arm_host_desktop_engine"},"recipe":"engine_v2/engine_v2","dimensions":{"cores":"8"},"droneDimensions":["os=Linux"]},{"name":"Linux linux_host_engine","timeout":120,"properties":{"add_recipes_cq":"true","release_build":"true","config_name":"linux_host_engine","dependencies":"[\n  {\"dependency\": \"goldctl\", \"version\": \"git_revision:7f66c9b9efb2826e72c61bb2f50cdc20b635dea7\"}\n]"},"recipe":"engine_v2/engine_v2","dimensions":{"cores":"8"},"droneDimensions":["os=Linux"]},{"name":"Linux linux_host_engine_ddm","timeout":120,"properties":{"release_build":"true","add_recipes_cq":"true","config_name":"linux_host_engine_ddm"},"enabledBranches":["master"],"recipe":"engine_v2/engine_v2","dimensions":{"cores":"8"},"droneDimensions":["os=Linux"]},{"name":"Linux linux_host_engine_test","timeout":120,"properties":{"config_name":"linux_host_engine_test","dependencies":"[\n  {\"dependency\": \"goldctl\", \"version\": \"git_revision:7f66c9b9efb2826e72c61bb2f50cdc20b635dea7\"}\n]"},"recipe":"engine_v2/engine_v2","droneDimensions":["os=Linux"]},{"name":"Linux linux_host_desktop_engine","timeout":120,"properties":{"add_recipes_cq":"true","release_build":"true","config_name":"linux_host_desktop_engine"},"recipe":"engine_v2/engine_v2","dimensions":{"cores":"8"},"droneDimensions":["os=Linux"]},{"name":"Linux linux_android_aot_engine","timeout":120,"properties":{"add_recipes_cq":"true","release_build":"true","config_name":"linux_android_aot_engine"},"recipe":"engine_v2/engine_v2","dimensions":{"cores":"8"},"droneDimensions":["os=Linux"]},{"name":"Linux linux_android_aot_engine_ddm","timeout":120,"properties":{"release_build":"true","config_name":"linux_android_aot_engine_ddm"},"enabledBranches":["master"],"recipe":"engine_v2/engine_v2","dimensions":{"cores":"8"},"droneDimensions":["os=Linux"]},{"name":"Linux linux_android_debug_engine","timeout":120,"properties":{"add_recipes_cq":"true","release_build":"true","config_name":"linux_android_debug_engine"},"recipe":"engine_v2/engine_v2","dimensions":{"cores":"8"},"droneDimensions":["os=Linux"]},{"name":"Linux linux_android_debug_engine_ddm","timeout":120,"properties":{"release_build":"true","config_name":"linux_android_debug_engine_ddm"},"enabledBranches":["master"],"recipe":"engine_v2/engine_v2","dimensions":{"cores":"8"},"droneDimensions":["os=Linux"]},{"name":"Linux linux_license","timeout":120,"properties":{"add_recipes_cq":"true","config_name":"linux_license","clobber":"true"},"recipe":"engine_v2/builder"},{"name":"Linux linux_web_engine","timeout":120,"properties":{"release_build":"true","config_name":"linux_web_engine_build"},"recipe":"engine_v2/engine_v2","dimensions":{"cores":"8"},"droneDimensions":["os=Linux"]},{"name":"Linux linux_web_engine_tests","timeout":120,"properties":{"config_name":"linux_web_engine_test"},"recipe":"engine_v2/engine_v2","dimensions":{"cores":"8"},"droneDimensions":["os=Linux"]},{"name":"Linux clangd","properties":{"config_name":"linux_clangd"},"recipe":"engine_v2/builder"},{"name":"Linux linux_unopt","timeout":120,"properties":{"config_name":"linux_unopt"},"recipe":"engine_v2/engine_v2"},{"name":"Linux mac_android_aot_engine","timeout":240,"properties":{"add_recipes_cq":"true","release_build":"true","config_name":"mac_android_aot_engine"},"recipe":"engine_v2/engine_v2","dimensions":{"cores":"8"},"droneDimensions":["os=Linux"]},{"name":"Linux mac_clang_tidy","timeout":120,"properties":{"config_name":"mac_clang_tidy"},"runIf":["DEPS","engine/src/flutter/.ci.yaml","engine/src/flutter/**.(h|c|cc|fbs|frag|vert|m|mm)"],"recipe":"engine_v2/engine_v2","dimensions":{"cores":"8"},"droneDimensions":["os=Linux"]},{"name":"Mac mac_host_engine","timeout":240,"properties":{"add_recipes_cq":"true","release_build":"true","cpu":"arm64","config_name":"mac_host_engine","dependencies":"[\n  {\"dependency\": \"goldctl\", \"version\": \"git_revision:7f66c9b9efb2826e72c61bb2f50cdc20b635dea7\"}\n]","$flutter/osx_sdk":"{\n  \"sdk_version\": \"17c52\"\n}"},"recipe":"engine_v2/engine_v2","droneDimensions":["os=Mac-15.7|Mac-26.6"]},{"name":"Mac clangd","properties":{"config_name":"mac_clangd","cpu":"arm64"},"recipe":"engine_v2/builder"},{"name":"Mac mac_unopt","timeout":120,"properties":{"config_name":"mac_unopt","add_recipes_cq":"true"},"recipe":"engine_v2/engine_v2"},{"name":"Mac mac_ios_engine","timeout":240,"properties":{"add_recipes_cq":"true","release_build":"true","config_name":"mac_ios_engine","$flutter/osx_sdk":"{\n  \"sdk_version\": \"17c52\"\n}"},"recipe":"engine_v2/engine_v2","droneDimensions":["os=Mac-15.7|Mac-26.6","cpu=x86"]},{"name":"Mac mac_ios_engine_ddm","timeout":240,"properties":{"release_build":"true","add_recipes_cq":"true","config_name":"mac_ios_engine_ddm","$flutter/osx_sdk":"{\n  \"sdk_version\": \"17c52\"\n}"},"enabledBranches":["master"],"recipe":"engine_v2/engine_v2","droneDimensions":["os=Mac-15.7|Mac-26.6","cpu=x86"]},{"name":"Linux windows_android_aot_engine","timeout":120,"properties":{"add_recipes_cq":"true","release_build":"true","config_name":"windows_android_aot_engine"},"recipe":"engine_v2/engine_v2","droneDimensions":["os=Linux"]},{"name":"Linux windows_host_engine","timeout":120,"properties":{"add_recipes_cq":"true","release_build":"true","config_name":"windows_host_engine"},"recipe":"engine_v2/engine_v2","droneDimensions":["os=Linux"]},{"name":"Windows windows_host_engine_test","timeout":120,"properties":{"config_name":"windows_host_engine_test"},"recipe":"engine_v2/engine_v2","droneDimensions":["os=Windows"]},{"name":"Linux windows_arm_host_engine","timeout":120,"properties":{"release_build":"true","add_recipes_cq":"true","config_name":"windows_arm_host_engine"},"recipe":"engine_v2/engine_v2","droneDimensions":["os=Linux"]},{"name":"Windows windows_unopt","timeout":120,"properties":{"config_name":"windows_unopt"},"recipe":"engine_v2/builder"},{"name":"Linux linux_android_aot_engine_size_exp","timeout":120,"properties":{"release_build":"false","config_name":"linux_android_aot_engine_size_exp"},"presubmit":false,"enabledBranches":["master"],"recipe":"engine_v2/engine_v2","dimensions":{"cores":"8"},"droneDimensions":["os=Linux"]}],"enabledBranches":["master","flutter-\\d+\\.\\d+-candidate\\.\\d+","fuchsia_f\\d+[a-z]*"],"platformProperties":{"linux":{"properties":{"dependencies":"[\n  {\"dependency\": \"open_jdk\", \"version\": \"version:25.0.2\"},\n  {\"dependency\": \"gradle_cache\", \"version\": \"none\"}\n]","device_type":"none","os":"Ubuntu","cores":"8","cpu":"x86"}},"mac":{"properties":{"dependencies":"[\n  {\"dependency\": \"open_jdk\", \"version\": \"version:25.0.2\"}\n]","device_type":"none","os":"Mac-15.7|Mac-26.6","$flutter/osx_sdk":"{\n  \"sdk_version\": \"17c52\"\n}"}},"windows":{"properties":{"dependencies":"[\n  {\"dependency\": \"open_jdk\", \"version\": \"version:25.0.2\"}\n]","device_type":"none","os":"Windows-10"}}}}
+{"targets":[{"name":"Linux local_engine_builds","timeout":180,"properties":{"config_name":"local_engine"},"presubmit":false,"enabledBranches":["master"],"recipe":"engine_v2/engine_v2"},{"name":"Linux local_engine_builds_common","bringup":true,"timeout":180,"properties":{"config_name":"local_engine_common"},"enabledBranches":["master"],"recipe":"engine_v2/engine_v2"},{"name":"Linux linux_android_emulator_tests","timeout":90,"properties":{"config_name":"linux_android_emulator","dependencies":"[\n  {\"dependency\": \"goldctl\", \"version\": \"git_revision:7f66c9b9efb2826e72c61bb2f50cdc20b635dea7\"}\n]"},"enabledBranches":["master"],"recipe":"engine_v2/engine_v2"},{"name":"Linux builder_cache","timeout":60,"properties":{"cache_name":"builder","cache_paths":"[\n  \"builder\",\n  \"git\"\n]","ignore_cache_paths":"[\n  \"builder/engine/src/third_party/fuchsia-sdk/sdk/.build-id\"\n]","gclient_variables":"{\n  \"download_emsdk\": \"true\",\n  \"download_android_deps\": \"true\"\n}"},"presubmit":false,"enabledBranches":["master"],"recipe":"engine_v2/cache"},{"name":"Windows builder_cache","timeout":60,"properties":{"cache_name":"builder","cache_paths":"[\n  \"builder\",\n  \"git\"\n]","ignore_cache_paths":"[\n  \"builder/engine/src/third_party/fuchsia-sdk/sdk/.build-id\"\n]","gclient_variables":"{\n  \"download_android_deps\": \"true\"\n}"},"presubmit":false,"enabledBranches":["master"],"recipe":"engine_v2/cache"},{"name":"Mac builder_cache","timeout":60,"properties":{"cache_name":"builder","cache_paths":"[\n  \"builder\",\n  \"git\"\n]","ignore_cache_paths":"[\n  \"builder/engine/src/third_party/fuchsia-sdk/sdk/.build-id\",\n  \"builder/src/flutter/prebuilts/SDKs\",\n  \"builder/src/flutter/prebuilts/Library\"\n]","gclient_variables":"{\n  \"download_android_deps\": \"true\"\n}"},"presubmit":false,"enabledBranches":["master"],"recipe":"engine_v2/cache"},{"name":"Linux linux_benchmarks","timeout":60,"properties":{"config_name":"linux_benchmarks"},"presubmit":false,"enabledBranches":["master"],"recipe":"engine_v2/builder"},{"name":"Linux linux_fuchsia","timeout":120,"properties":{"release_build":"true","config_name":"linux_fuchsia"},"enabledBranches":["master"],"recipe":"engine_v2/engine_v2","dimensions":{"cores":"8"},"droneDimensions":["os=Linux"]},{"name":"Linux linux_fuchsia_tests","timeout":90,"properties":{"config_name":"linux_fuchsia_tests"},"enabledBranches":["master"],"recipe":"engine_v2/engine_v2","droneDimensions":["os=Linux"]},{"name":"Linux linux_clang_tidy","timeout":120,"properties":{"config_name":"linux_clang_tidy"},"runIf":["DEPS","engine/src/flutter/.ci.yaml","engine/src/flutter/tools/clang_tidy/**","engine/src/flutter/ci/builders/**","engine/src/flutter/ci/clang_tidy.sh","engine/src/flutter/**.h","engine/src/flutter/**.c","engine/src/flutter/**.cc","engine/src/flutter/**.fbs","engine/src/flutter/**.frag","engine/src/flutter/**.vert"],"recipe":"engine_v2/engine_v2"},{"name":"Linux linux_arm_host_engine","timeout":120,"properties":{"add_recipes_cq":"true","release_build":"true","config_name":"linux_arm_host_engine"},"recipe":"engine_v2/engine_v2","dimensions":{"cores":"8"},"droneDimensions":["os=Linux"]},{"name":"Linux linux_arm_host_desktop_engine","timeout":120,"properties":{"add_recipes_cq":"true","release_build":"true","config_name":"linux_arm_host_desktop_engine"},"recipe":"engine_v2/engine_v2","dimensions":{"cores":"8"},"droneDimensions":["os=Linux"]},{"name":"Linux linux_host_engine","timeout":120,"properties":{"add_recipes_cq":"true","release_build":"true","config_name":"linux_host_engine","dependencies":"[\n  {\"dependency\": \"goldctl\", \"version\": \"git_revision:7f66c9b9efb2826e72c61bb2f50cdc20b635dea7\"}\n]"},"recipe":"engine_v2/engine_v2","dimensions":{"cores":"8"},"droneDimensions":["os=Linux"]},{"name":"Linux linux_host_engine_ddm","timeout":120,"properties":{"release_build":"true","add_recipes_cq":"true","config_name":"linux_host_engine_ddm"},"enabledBranches":["master"],"recipe":"engine_v2/engine_v2","dimensions":{"cores":"8"},"droneDimensions":["os=Linux"]},{"name":"Linux linux_host_engine_test","timeout":120,"properties":{"config_name":"linux_host_engine_test","dependencies":"[\n  {\"dependency\": \"goldctl\", \"version\": \"git_revision:7f66c9b9efb2826e72c61bb2f50cdc20b635dea7\"}\n]"},"recipe":"engine_v2/engine_v2","droneDimensions":["os=Linux"]},{"name":"Linux linux_host_desktop_engine","timeout":120,"properties":{"add_recipes_cq":"true","release_build":"true","config_name":"linux_host_desktop_engine"},"recipe":"engine_v2/engine_v2","dimensions":{"cores":"8"},"droneDimensions":["os=Linux"]},{"name":"Linux linux_android_aot_engine","timeout":120,"properties":{"add_recipes_cq":"true","release_build":"true","config_name":"linux_android_aot_engine"},"recipe":"engine_v2/engine_v2","dimensions":{"cores":"8"},"droneDimensions":["os=Linux"]},{"name":"Linux linux_android_aot_engine_ddm","timeout":120,"properties":{"release_build":"true","config_name":"linux_android_aot_engine_ddm"},"enabledBranches":["master"],"recipe":"engine_v2/engine_v2","dimensions":{"cores":"8"},"droneDimensions":["os=Linux"]},{"name":"Linux linux_android_debug_engine","timeout":120,"properties":{"add_recipes_cq":"true","release_build":"true","config_name":"linux_android_debug_engine"},"recipe":"engine_v2/engine_v2","dimensions":{"cores":"8"},"droneDimensions":["os=Linux"]},{"name":"Linux linux_android_debug_engine_ddm","timeout":120,"properties":{"release_build":"true","config_name":"linux_android_debug_engine_ddm"},"enabledBranches":["master"],"recipe":"engine_v2/engine_v2","dimensions":{"cores":"8"},"droneDimensions":["os=Linux"]},{"name":"Linux linux_license","timeout":120,"properties":{"add_recipes_cq":"true","config_name":"linux_license","clobber":"true"},"recipe":"engine_v2/builder"},{"name":"Linux linux_web_engine","timeout":120,"properties":{"release_build":"true","config_name":"linux_web_engine_build"},"recipe":"engine_v2/engine_v2","dimensions":{"cores":"8"},"droneDimensions":["os=Linux"]},{"name":"Linux linux_web_engine_tests","timeout":120,"properties":{"config_name":"linux_web_engine_test"},"recipe":"engine_v2/engine_v2","dimensions":{"cores":"8"},"droneDimensions":["os=Linux"]},{"name":"Linux clangd","properties":{"config_name":"linux_clangd"},"recipe":"engine_v2/builder"},{"name":"Linux linux_unopt","timeout":120,"properties":{"config_name":"linux_unopt"},"recipe":"engine_v2/engine_v2"},{"name":"Linux mac_android_aot_engine","timeout":240,"properties":{"add_recipes_cq":"true","release_build":"true","config_name":"mac_android_aot_engine"},"recipe":"engine_v2/engine_v2","dimensions":{"cores":"8"},"droneDimensions":["os=Linux"]},{"name":"Linux mac_clang_tidy","timeout":120,"properties":{"config_name":"mac_clang_tidy"},"runIf":["DEPS","engine/src/flutter/.ci.yaml","engine/src/flutter/**.(h|c|cc|fbs|frag|vert|m|mm)"],"recipe":"engine_v2/engine_v2","dimensions":{"cores":"8"},"droneDimensions":["os=Linux"]},{"name":"Mac mac_host_engine","timeout":240,"properties":{"add_recipes_cq":"true","release_build":"true","cpu":"arm64","config_name":"mac_host_engine","dependencies":"[\n  {\"dependency\": \"goldctl\", \"version\": \"git_revision:7f66c9b9efb2826e72c61bb2f50cdc20b635dea7\"}\n]","$flutter/osx_sdk":"{\n  \"sdk_version\": \"17c52\"\n}"},"recipe":"engine_v2/engine_v2","droneDimensions":["os=Mac-15.7|Mac-26.6"]},{"name":"Mac clangd","properties":{"config_name":"mac_clangd","cpu":"arm64"},"recipe":"engine_v2/builder"},{"name":"Mac mac_unopt","timeout":120,"properties":{"config_name":"mac_unopt","add_recipes_cq":"true"},"recipe":"engine_v2/engine_v2"},{"name":"Mac mac_ios_engine","timeout":240,"properties":{"add_recipes_cq":"true","release_build":"true","config_name":"mac_ios_engine","$flutter/osx_sdk":"{\n  \"sdk_version\": \"17c52\"\n}"},"recipe":"engine_v2/engine_v2","droneDimensions":["os=Mac-15.7|Mac-26.6","cpu=x86"]},{"name":"Mac mac_ios_engine_ddm","timeout":240,"properties":{"release_build":"true","add_recipes_cq":"true","config_name":"mac_ios_engine_ddm","$flutter/osx_sdk":"{\n  \"sdk_version\": \"17c52\"\n}"},"enabledBranches":["master"],"recipe":"engine_v2/engine_v2","droneDimensions":["os=Mac-15.7|Mac-26.6","cpu=x86"]},{"name":"Linux windows_android_aot_engine","timeout":120,"properties":{"add_recipes_cq":"true","release_build":"true","config_name":"windows_android_aot_engine"},"recipe":"engine_v2/engine_v2","droneDimensions":["os=Linux"]},{"name":"Linux windows_host_engine","timeout":120,"properties":{"add_recipes_cq":"true","release_build":"true","config_name":"windows_host_engine"},"recipe":"engine_v2/engine_v2","droneDimensions":["os=Linux"]},{"name":"Windows windows_host_engine_test","timeout":120,"properties":{"config_name":"windows_host_engine_test"},"recipe":"engine_v2/engine_v2","droneDimensions":["os=Windows"]},{"name":"Linux windows_arm_host_engine","timeout":120,"properties":{"release_build":"true","add_recipes_cq":"true","config_name":"windows_arm_host_engine"},"recipe":"engine_v2/engine_v2","droneDimensions":["os=Linux"]},{"name":"Windows windows_unopt","timeout":120,"properties":{"config_name":"windows_unopt"},"recipe":"engine_v2/builder"},{"name":"Linux linux_android_aot_engine_size_exp","timeout":120,"properties":{"release_build":"false","config_name":"linux_android_aot_engine_size_exp"},"presubmit":false,"enabledBranches":["master"],"recipe":"engine_v2/engine_v2","dimensions":{"cores":"8"},"droneDimensions":["os=Linux"]}],"enabledBranches":["master","flutter-\\d+\\.\\d+-candidate\\.\\d+","fuchsia_f\\d+[a-z]*"],"platformProperties":{"linux":{"properties":{"dependencies":"[\n  {\"dependency\": \"open_jdk\", \"version\": \"version:25.0.2\"},\n  {\"dependency\": \"gradle_cache\", \"version\": \"none\"}\n]","device_type":"none","os":"Ubuntu","cores":"8","cpu":"x86"}},"mac":{"properties":{"dependencies":"[\n  {\"dependency\": \"open_jdk\", \"version\": \"version:25.0.2\"}\n]","device_type":"none","os":"Mac-15.7|Mac-26.6","$flutter/osx_sdk":"{\n  \"sdk_version\": \"17c52\"\n}"}},"windows":{"properties":{"dependencies":"[\n  {\"dependency\": \"open_jdk\", \"version\": \"version:25.0.2\"}\n]","device_type":"none","os":"Windows-10"}}}}
diff --git a/config/generated/flutter/luci/cr-buildbucket.cfg b/config/generated/flutter/luci/cr-buildbucket.cfg
index 2b056dc..e21bdcb 100644
--- a/config/generated/flutter/luci/cr-buildbucket.cfg
+++ b/config/generated/flutter/luci/cr-buildbucket.cfg
@@ -10101,6 +10101,121 @@
       }
     }
     builders {
+      name: "Linux local_engine_builds_common"
+      swarming_host: "chromium-swarm.appspot.com"
+      dimensions: "cores:8"
+      dimensions: "cpu:x86"
+      dimensions: "device_type:none"
+      dimensions: "os:Ubuntu"
+      dimensions: "pool:luci.flutter.prod"
+      exe {
+        cipd_package: "flutter/recipe_bundles/flutter.googlesource.com/recipes"
+        cipd_version: "refs/heads/main"
+        cmd: "luciexe"
+      }
+      properties:
+        '{'
+        '  "$flutter/goma": {'
+        '    "server": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog"'
+        '  },'
+        '  "$flutter/rbe": {'
+        '    "instance": "projects/flutter-rbe-prod/instances/default",'
+        '    "platform": "container-image=docker://gcr.io/cloud-marketplace/google/debian11@sha256:69e2789c9f3d28c6a0f13b25062c240ee7772be1f5e6d41bb4680b63eae6b304"'
+        '  },'
+        '  "$kitchen": {'
+        '    "emulate_gce": true'
+        '  },'
+        '  "$recipe_engine/isolated": {'
+        '    "server": "https://isolateserver.appspot.com"'
+        '  },'
+        '  "$recipe_engine/swarming": {'
+        '    "server": "https://chromium-swarm.appspot.com"'
+        '  },'
+        '  "bringup": true,'
+        '  "clobber": false,'
+        '  "cpu": "x86",'
+        '  "dependencies": ['
+        '    {'
+        '      "dependency": "open_jdk",'
+        '      "version": "version:25.0.2"'
+        '    },'
+        '    {'
+        '      "dependency": "gradle_cache",'
+        '      "version": "none"'
+        '    }'
+        '  ],'
+        '  "gcs_goldens_bucket": "",'
+        '  "git_branch": "main",'
+        '  "git_repo": "flutter",'
+        '  "gold_tryjob": false,'
+        '  "goma_jobs": "200",'
+        '  "is_fusion": true,'
+        '  "mastername": "client.flutter",'
+        '  "rbe_jobs": "200",'
+        '  "recipe": "engine_v2/engine_v2",'
+        '  "upload_packages": true,'
+        '  "use_cas": true'
+        '}'
+      allowed_property_overrides: "bringup"
+      allowed_property_overrides: "clobber"
+      allowed_property_overrides: "cpu"
+      allowed_property_overrides: "dependencies"
+      allowed_property_overrides: "git_branch"
+      allowed_property_overrides: "subshard"
+      allowed_property_overrides: "upload_metrics"
+      allowed_property_overrides: "upload_packages"
+      priority: 30
+      execution_timeout_secs: 10800
+      caches {
+        name: "engine_main_builder"
+        path: "builder"
+      }
+      caches {
+        name: "engine_main_git"
+        path: "git"
+      }
+      caches {
+        name: "engine_main_gradle_cache_none"
+        path: "gradle_cache"
+      }
+      caches {
+        name: "engine_main_open_jdk_version_25_0_2"
+        path: "open_jdk"
+      }
+      caches {
+        name: "gradle"
+        path: "gradle"
+      }
+      caches {
+        name: "pub_cache"
+        path: ".pub-cache"
+      }
+      build_numbers: YES
+      service_account: "flutter-prod-builder@chops-service-accounts.iam.gserviceaccount.com"
+      experiments {
+        key: "luci.recipes.use_python3"
+        value: 100
+      }
+      resultdb {
+        enable: true
+        bq_exports {
+          project: "flutter-infra-staging"
+          dataset: "resultdb"
+          table: "prod"
+          test_results {}
+        }
+        bq_exports {
+          project: "flutter-infra-staging"
+          dataset: "resultdb"
+          table: "artifacts_prod"
+          text_artifacts {}
+        }
+        history_options {
+          use_invocation_timestamp: true
+        }
+      }
+    }
+    builders {
       name: "Linux mac_android_aot_engine"
       swarming_host: "chromium-swarm.appspot.com"
       dimensions: "cores:8"
@@ -88849,6 +88964,119 @@
       }
     }
     builders {
+      name: "Linux local_engine_builds_common"
+      swarming_host: "chromium-swarm.appspot.com"
+      dimensions: "cores:8"
+      dimensions: "cpu:x86"
+      dimensions: "device_type:none"
+      dimensions: "os:Ubuntu"
+      dimensions: "pool:luci.flutter.staging"
+      exe {
+        cipd_package: "flutter/recipe_bundles/flutter.googlesource.com/recipes"
+        cipd_version: "refs/heads/main"
+        cmd: "luciexe"
+      }
+      properties:
+        '{'
+        '  "$flutter/goma": {'
+        '    "server": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog"'
+        '  },'
+        '  "$flutter/rbe": {'
+        '    "instance": "projects/flutter-rbe-prod/instances/default",'
+        '    "platform": "container-image=docker://gcr.io/cloud-marketplace/google/debian11@sha256:69e2789c9f3d28c6a0f13b25062c240ee7772be1f5e6d41bb4680b63eae6b304"'
+        '  },'
+        '  "$kitchen": {'
+        '    "emulate_gce": true'
+        '  },'
+        '  "$recipe_engine/isolated": {'
+        '    "server": "https://isolateserver.appspot.com"'
+        '  },'
+        '  "$recipe_engine/swarming": {'
+        '    "server": "https://chromium-swarm.appspot.com"'
+        '  },'
+        '  "bringup": true,'
+        '  "clobber": false,'
+        '  "cpu": "x86",'
+        '  "dependencies": ['
+        '    {'
+        '      "dependency": "open_jdk",'
+        '      "version": "version:25.0.2"'
+        '    },'
+        '    {'
+        '      "dependency": "gradle_cache",'
+        '      "version": "none"'
+        '    }'
+        '  ],'
+        '  "gcs_goldens_bucket": "",'
+        '  "git_branch": "main",'
+        '  "git_repo": "flutter",'
+        '  "gold_tryjob": false,'
+        '  "goma_jobs": "200",'
+        '  "is_fusion": true,'
+        '  "mastername": "client.flutter",'
+        '  "rbe_jobs": "200",'
+        '  "recipe": "engine_v2/engine_v2",'
+        '  "upload_packages": true,'
+        '  "use_cas": true'
+        '}'
+      allowed_property_overrides: "bringup"
+      allowed_property_overrides: "clobber"
+      allowed_property_overrides: "cpu"
+      allowed_property_overrides: "dependencies"
+      allowed_property_overrides: "git_branch"
+      allowed_property_overrides: "subshard"
+      allowed_property_overrides: "upload_metrics"
+      allowed_property_overrides: "upload_packages"
+      priority: 30
+      execution_timeout_secs: 10800
+      expiration_secs: 86400
+      caches {
+        name: "engine_main_builder"
+        path: "builder"
+      }
+      caches {
+        name: "engine_main_git"
+        path: "git"
+      }
+      caches {
+        name: "engine_main_gradle_cache_none"
+        path: "gradle_cache"
+      }
+      caches {
+        name: "engine_main_open_jdk_version_25_0_2"
+        path: "open_jdk"
+      }
+      caches {
+        name: "gradle"
+        path: "gradle"
+      }
+      caches {
+        name: "pub_cache"
+        path: ".pub-cache"
+      }
+      build_numbers: YES
+      service_account: "flutter-staging-builder@chops-service-accounts.iam.gserviceaccount.com"
+      experiments {
+        key: "luci.recipes.use_python3"
+        value: 100
+      }
+      resultdb {
+        enable: true
+        bq_exports {
+          project: "flutter-infra-staging"
+          dataset: "resultdb"
+          table: "staging"
+          test_results {}
+        }
+        bq_exports {
+          project: "flutter-infra-staging"
+          dataset: "resultdb"
+          table: "artifacts_staging"
+          text_artifacts {}
+        }
+      }
+    }
+    builders {
       name: "Linux mac_android_aot_engine"
       swarming_host: "chromium-swarm.appspot.com"
       dimensions: "cores:8"
@@ -165728,6 +165956,118 @@
       }
     }
     builders {
+      name: "Linux local_engine_builds_common"
+      swarming_host: "chromium-swarm.appspot.com"
+      dimensions: "cores:8"
+      dimensions: "cpu:x86"
+      dimensions: "device_type:none"
+      dimensions: "os:Ubuntu"
+      dimensions: "pool:luci.flutter.try"
+      exe {
+        cipd_package: "flutter/recipe_bundles/flutter.googlesource.com/recipes"
+        cipd_version: "refs/heads/main"
+        cmd: "luciexe"
+      }
+      properties:
+        '{'
+        '  "$flutter/goma": {'
+        '    "server": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog"'
+        '  },'
+        '  "$flutter/rbe": {'
+        '    "instance": "projects/flutter-rbe-prod/instances/default",'
+        '    "platform": "container-image=docker://gcr.io/cloud-marketplace/google/debian11@sha256:69e2789c9f3d28c6a0f13b25062c240ee7772be1f5e6d41bb4680b63eae6b304"'
+        '  },'
+        '  "$kitchen": {'
+        '    "emulate_gce": true'
+        '  },'
+        '  "$recipe_engine/isolated": {'
+        '    "server": "https://isolateserver.appspot.com"'
+        '  },'
+        '  "$recipe_engine/swarming": {'
+        '    "server": "https://chromium-swarm.appspot.com"'
+        '  },'
+        '  "bringup": true,'
+        '  "clobber": false,'
+        '  "cpu": "x86",'
+        '  "dependencies": ['
+        '    {'
+        '      "dependency": "open_jdk",'
+        '      "version": "version:25.0.2"'
+        '    },'
+        '    {'
+        '      "dependency": "gradle_cache",'
+        '      "version": "none"'
+        '    }'
+        '  ],'
+        '  "gcs_goldens_bucket": "",'
+        '  "git_branch": "main",'
+        '  "git_repo": "flutter",'
+        '  "gold_tryjob": true,'
+        '  "goma_jobs": "200",'
+        '  "is_fusion": true,'
+        '  "mastername": "client.flutter",'
+        '  "no_lto": true,'
+        '  "rbe_jobs": "200",'
+        '  "recipe": "engine_v2/engine_v2",'
+        '  "upload_packages": false,'
+        '  "use_cas": true'
+        '}'
+      allowed_property_overrides: "bringup"
+      allowed_property_overrides: "clobber"
+      allowed_property_overrides: "cpu"
+      allowed_property_overrides: "dependencies"
+      allowed_property_overrides: "git_branch"
+      allowed_property_overrides: "subshard"
+      allowed_property_overrides: "upload_metrics"
+      allowed_property_overrides: "upload_packages"
+      execution_timeout_secs: 10800
+      caches {
+        name: "engine_main_builder"
+        path: "builder"
+      }
+      caches {
+        name: "engine_main_git"
+        path: "git"
+      }
+      caches {
+        name: "engine_main_gradle_cache_none"
+        path: "gradle_cache"
+      }
+      caches {
+        name: "engine_main_open_jdk_version_25_0_2"
+        path: "open_jdk"
+      }
+      caches {
+        name: "gradle"
+        path: "gradle"
+      }
+      caches {
+        name: "pub_cache"
+        path: ".pub-cache"
+      }
+      build_numbers: YES
+      service_account: "flutter-try-builder@chops-service-accounts.iam.gserviceaccount.com"
+      experiments {
+        key: "luci.recipes.use_python3"
+        value: 100
+      }
+      resultdb {
+        enable: true
+        bq_exports {
+          project: "flutter-infra-staging"
+          dataset: "resultdb"
+          table: "try"
+          test_results {}
+        }
+        bq_exports {
+          project: "flutter-infra-staging"
+          dataset: "resultdb"
+          table: "artifacts_try"
+          text_artifacts {}
+        }
+      }
+    }
+    builders {
       name: "Linux mac_android_aot_engine"
       swarming_host: "chromium-swarm.appspot.com"
       dimensions: "cores:8"
diff --git a/config/generated/flutter/luci/luci-milo.cfg b/config/generated/flutter/luci/luci-milo.cfg
index 80950d7..536e849 100644
--- a/config/generated/flutter/luci/luci-milo.cfg
+++ b/config/generated/flutter/luci/luci-milo.cfg
@@ -6516,6 +6516,9 @@
     name: "buildbucket/luci.flutter.try/Linux local_engine_builds"
   }
   builders {
+    name: "buildbucket/luci.flutter.try/Linux local_engine_builds_common"
+  }
+  builders {
     name: "buildbucket/luci.flutter.try/Linux linux_android_emulator_tests"
   }
   builders {
@@ -6665,6 +6668,11 @@
     short_name: "lleb"
   }
   builders {
+    name: "buildbucket/luci.flutter.staging/Linux local_engine_builds_common"
+    category: "Linux"
+    short_name: "llebc"
+  }
+  builders {
     name: "buildbucket/luci.flutter.staging/Linux linux_android_emulator_tests"
     category: "Linux"
     short_name: "llaet"
@@ -6858,6 +6866,11 @@
     short_name: "lleb"
   }
   builders {
+    name: "buildbucket/luci.flutter.prod/Linux local_engine_builds_common"
+    category: "Linux"
+    short_name: "llebc"
+  }
+  builders {
     name: "buildbucket/luci.flutter.prod/Linux linux_android_emulator_tests"
     category: "Linux"
     short_name: "llaet"
diff --git a/config/generated/flutter/luci/luci-notify.cfg b/config/generated/flutter/luci/luci-notify.cfg
index e8e1457..d36cfdb 100644
--- a/config/generated/flutter/luci/luci-notify.cfg
+++ b/config/generated/flutter/luci/luci-notify.cfg
@@ -576,6 +576,30 @@
   }
   builders {
     bucket: "prod"
+    name: "Linux local_engine_builds_common"
+    repository: "https://flutter.googlesource.com/mirrors/engine"
+  }
+}
+notifiers {
+  notifications {
+    on_occurrence: INFRA_FAILURE
+    on_occurrence: FAILURE
+    failed_step_regexp: "(^build|.*test:).*"
+    email {
+      recipients: "flutter-engine@grotations.appspotmail.com"
+    }
+    template: "test_build_failure"
+  }
+  notifications {
+    on_occurrence: SUCCESS
+    failed_step_regexp: "(.*test:).*"
+    email {
+      recipients: "flutter-engine@grotations.appspotmail.com"
+    }
+    template: "test_flake"
+  }
+  builders {
+    bucket: "prod"
     name: "Linux mac_android_aot_engine"
     repository: "https://flutter.googlesource.com/mirrors/engine"
   }
@@ -1464,6 +1488,30 @@
   }
   builders {
     bucket: "staging"
+    name: "Linux local_engine_builds_common"
+    repository: "https://flutter.googlesource.com/mirrors/engine"
+  }
+}
+notifiers {
+  notifications {
+    on_occurrence: INFRA_FAILURE
+    on_occurrence: FAILURE
+    failed_step_regexp: "(^build|.*test:).*"
+    email {
+      recipients: "flutter-engine@grotations.appspotmail.com"
+    }
+    template: "test_build_failure"
+  }
+  notifications {
+    on_occurrence: SUCCESS
+    failed_step_regexp: "(.*test:).*"
+    email {
+      recipients: "flutter-engine@grotations.appspotmail.com"
+    }
+    template: "test_flake"
+  }
+  builders {
+    bucket: "staging"
     name: "Linux mac_android_aot_engine"
     repository: "https://flutter.googlesource.com/mirrors/engine"
   }