Move web smoke tests to luci.

Change-Id: Ib2d2052facc1242108ed0efeb1d8813eec25a626
Bug: https://github.com/flutter/flutter/issues/64070
Reviewed-on: https://flutter-review.googlesource.com/c/recipes/+/5841
Commit-Queue: Godofredo Contreras <godofredoc@google.com>
Reviewed-by: Christopher Fujino <fujino@google.com>
Reviewed-by: Nurhan Turgut <nurhan@google.com>
diff --git a/recipe_modules/adhoc_validation/api.py b/recipe_modules/adhoc_validation/api.py
index 90e5261..3f797ae 100644
--- a/recipe_modules/adhoc_validation/api.py
+++ b/recipe_modules/adhoc_validation/api.py
@@ -15,7 +15,10 @@
 
   def available_validations(self):
     """Returns the list of accepted validations."""
-    return ['analyze', 'customer_testing', 'docs', 'fuchsia_precache']
+    return [
+        'analyze', 'customer_testing', 'docs', 'docker_build', 'fuchsia_precache',
+        'web_smoke_test'
+    ]
 
   def run(self, name, validation):
     """Runs a validation as a recipe step.
diff --git a/recipe_modules/adhoc_validation/resources/web_smoke_test.sh b/recipe_modules/adhoc_validation/resources/web_smoke_test.sh
new file mode 100644
index 0000000..aea9eb9
--- /dev/null
+++ b/recipe_modules/adhoc_validation/resources/web_smoke_test.sh
@@ -0,0 +1,12 @@
+#!/bin/bash
+
+# Web smoke tests.
+
+set -e
+
+flutter config --enable-web
+chromedriver --port=4444 &
+sleep 5
+cd examples/hello_world/
+flutter drive --target=test_driver/smoke_web_engine.dart -d web-server --profile --browser-name=chrome
+pkill chromedriver
diff --git a/recipe_modules/flutter_deps/__init__.py b/recipe_modules/flutter_deps/__init__.py
index 64425b0..d800d2d 100644
--- a/recipe_modules/flutter_deps/__init__.py
+++ b/recipe_modules/flutter_deps/__init__.py
@@ -1,5 +1,6 @@
 DEPS = [
     'recipe_engine/cipd',
     'recipe_engine/path',
+    'recipe_engine/platform',
     'recipe_engine/step',
 ]
diff --git a/recipe_modules/flutter_deps/api.py b/recipe_modules/flutter_deps/api.py
index e7a6c53..c970f1f 100644
--- a/recipe_modules/flutter_deps/api.py
+++ b/recipe_modules/flutter_deps/api.py
@@ -21,7 +21,9 @@
       self.m.cipd.ensure(
           java_cache_dir,
           self.m.cipd.EnsureFile().add_package(
-              'flutter_internal/java/openjdk/${platform}', version))
+              'flutter_internal/java/openjdk/${platform}', version
+          )
+      )
       env['JAVA_HOME'] = java_cache_dir
       path = env_prefixes.get('PATH', [])
       path.append(java_cache_dir.join('bin'))
@@ -39,15 +41,17 @@
       env['CHROME_NO_SANDBOX'] = 'true'
       chrome_path = self.m.path['cache'].join('chrome', 'chrome')
       pkgs = self.m.cipd.EnsureFile()
-      pkgs.add_package('flutter_internal/browsers/chrome-linux', version)
+      pkgs.add_package('flutter_internal/browsers/chrome/${platform}', version)
       self.m.cipd.ensure(chrome_path, pkgs)
       chrome_driver_path = self.m.path['cache'].join('chrome', 'drivers')
       pkgdriver = self.m.cipd.EnsureFile()
       pkgdriver.add_package(
-          'flutter_internal/browser-drivers/chromedriver-linux', version)
+          'flutter_internal/browser-drivers/chrome/${platform}', version
+      )
       self.m.cipd.ensure(chrome_driver_path, pkgdriver)
       paths = env_prefixes.get('PATH', [])
       paths.append(chrome_path)
       paths.append(chrome_driver_path)
       env_prefixes['PATH'] = paths
-      env['CHROME_EXECUTABLE'] = chrome_path.join('chrome-linux', 'chrome')
+      binary_name = 'chrome.exe' if self.m.platform.is_win else 'chrome'
+      env['CHROME_EXECUTABLE'] = chrome_path.join(binary_name)
diff --git a/recipe_modules/flutter_deps/examples/full.expected/basic.json b/recipe_modules/flutter_deps/examples/full.expected/basic.json
index 9418b0d..efdf043 100644
--- a/recipe_modules/flutter_deps/examples/full.expected/basic.json
+++ b/recipe_modules/flutter_deps/examples/full.expected/basic.json
@@ -43,7 +43,7 @@
       "-root",
       "[CACHE]/chrome/chrome",
       "-ensure-file",
-      "flutter_internal/browsers/chrome-linux latest",
+      "flutter_internal/browsers/chrome/${platform} latest",
       "-max-threads",
       "0",
       "-json-output",
@@ -57,7 +57,7 @@
       "@@@STEP_LOG_LINE@json.output@    \"\": [@@@",
       "@@@STEP_LOG_LINE@json.output@      {@@@",
       "@@@STEP_LOG_LINE@json.output@        \"instance_id\": \"resolved-instance_id-of-latest----------\", @@@",
-      "@@@STEP_LOG_LINE@json.output@        \"package\": \"flutter_internal/browsers/chrome-linux\"@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"package\": \"flutter_internal/browsers/chrome/resolved-platform\"@@@",
       "@@@STEP_LOG_LINE@json.output@      }@@@",
       "@@@STEP_LOG_LINE@json.output@    ]@@@",
       "@@@STEP_LOG_LINE@json.output@  }@@@",
@@ -72,7 +72,7 @@
       "-root",
       "[CACHE]/chrome/drivers",
       "-ensure-file",
-      "flutter_internal/browser-drivers/chromedriver-linux latest",
+      "flutter_internal/browser-drivers/chrome/${platform} latest",
       "-max-threads",
       "0",
       "-json-output",
@@ -86,7 +86,7 @@
       "@@@STEP_LOG_LINE@json.output@    \"\": [@@@",
       "@@@STEP_LOG_LINE@json.output@      {@@@",
       "@@@STEP_LOG_LINE@json.output@        \"instance_id\": \"resolved-instance_id-of-latest----------\", @@@",
-      "@@@STEP_LOG_LINE@json.output@        \"package\": \"flutter_internal/browser-drivers/chromedriver-linux\"@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"package\": \"flutter_internal/browser-drivers/chrome/resolved-platform\"@@@",
       "@@@STEP_LOG_LINE@json.output@      }@@@",
       "@@@STEP_LOG_LINE@json.output@    ]@@@",
       "@@@STEP_LOG_LINE@json.output@  }@@@",
diff --git a/recipes/flutter/flutter.expected/validators.json b/recipes/flutter/flutter.expected/validators.json
index 615592c..0b8cebe 100644
--- a/recipes/flutter/flutter.expected/validators.json
+++ b/recipes/flutter/flutter.expected/validators.json
@@ -112,6 +112,68 @@
   },
   {
     "cmd": [],
+    "name": "Chrome and driver dependency"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/chrome/chrome",
+      "-ensure-file",
+      "flutter_internal/browsers/chrome/${platform} latest",
+      "-max-threads",
+      "0",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "name": "Chrome and driver dependency.ensure_installed",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LOG_LINE@json.output@{@@@",
+      "@@@STEP_LOG_LINE@json.output@  \"result\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"\": [@@@",
+      "@@@STEP_LOG_LINE@json.output@      {@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"instance_id\": \"resolved-instance_id-of-latest----------\", @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"package\": \"flutter_internal/browsers/chrome/resolved-platform\"@@@",
+      "@@@STEP_LOG_LINE@json.output@      }@@@",
+      "@@@STEP_LOG_LINE@json.output@    ]@@@",
+      "@@@STEP_LOG_LINE@json.output@  }@@@",
+      "@@@STEP_LOG_LINE@json.output@}@@@",
+      "@@@STEP_LOG_END@json.output@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/chrome/drivers",
+      "-ensure-file",
+      "flutter_internal/browser-drivers/chrome/${platform} latest",
+      "-max-threads",
+      "0",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "name": "Chrome and driver dependency.ensure_installed (2)",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LOG_LINE@json.output@{@@@",
+      "@@@STEP_LOG_LINE@json.output@  \"result\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"\": [@@@",
+      "@@@STEP_LOG_LINE@json.output@      {@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"instance_id\": \"resolved-instance_id-of-latest----------\", @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"package\": \"flutter_internal/browser-drivers/chrome/resolved-platform\"@@@",
+      "@@@STEP_LOG_LINE@json.output@      }@@@",
+      "@@@STEP_LOG_LINE@json.output@    ]@@@",
+      "@@@STEP_LOG_LINE@json.output@  }@@@",
+      "@@@STEP_LOG_LINE@json.output@}@@@",
+      "@@@STEP_LOG_END@json.output@@@"
+    ]
+  },
+  {
+    "cmd": [],
     "name": "prepare environment"
   },
   {
@@ -121,13 +183,17 @@
     ],
     "cwd": "[START_DIR]/flutter",
     "env": {
+      "CHROME_EXECUTABLE": "[CACHE]/chrome/chrome/chrome",
+      "CHROME_NO_SANDBOX": "true",
       "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
       "PUB_CACHE": "[CACHE]/.pub-cache"
     },
     "env_prefixes": {
       "PATH": [
         "[START_DIR]/flutter/bin",
-        "[START_DIR]/flutter/bin/cache/dart-sdk/bin"
+        "[START_DIR]/flutter/bin/cache/dart-sdk/bin",
+        "[CACHE]/chrome/chrome",
+        "[CACHE]/chrome/drivers"
       ]
     },
     "name": "prepare environment.flutter doctor",
@@ -142,13 +208,17 @@
     ],
     "cwd": "[START_DIR]/flutter",
     "env": {
+      "CHROME_EXECUTABLE": "[CACHE]/chrome/chrome/chrome",
+      "CHROME_NO_SANDBOX": "true",
       "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
       "PUB_CACHE": "[CACHE]/.pub-cache"
     },
     "env_prefixes": {
       "PATH": [
         "[START_DIR]/flutter/bin",
-        "[START_DIR]/flutter/bin/cache/dart-sdk/bin"
+        "[START_DIR]/flutter/bin/cache/dart-sdk/bin",
+        "[CACHE]/chrome/chrome",
+        "[CACHE]/chrome/drivers"
       ]
     },
     "name": "prepare environment.download dependencies",
@@ -171,13 +241,17 @@
     ],
     "cwd": "[START_DIR]/flutter",
     "env": {
+      "CHROME_EXECUTABLE": "[CACHE]/chrome/chrome/chrome",
+      "CHROME_NO_SANDBOX": "true",
       "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
       "PUB_CACHE": "[CACHE]/.pub-cache"
     },
     "env_prefixes": {
       "PATH": [
         "[START_DIR]/flutter/bin",
-        "[START_DIR]/flutter/bin/cache/dart-sdk/bin"
+        "[START_DIR]/flutter/bin/cache/dart-sdk/bin",
+        "[CACHE]/chrome/chrome",
+        "[CACHE]/chrome/drivers"
       ]
     },
     "name": "prepare environment.dart analyze.Set execute permission",
@@ -191,13 +265,17 @@
     ],
     "cwd": "[START_DIR]/flutter",
     "env": {
+      "CHROME_EXECUTABLE": "[CACHE]/chrome/chrome/chrome",
+      "CHROME_NO_SANDBOX": "true",
       "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
       "PUB_CACHE": "[CACHE]/.pub-cache"
     },
     "env_prefixes": {
       "PATH": [
         "[START_DIR]/flutter/bin",
-        "[START_DIR]/flutter/bin/cache/dart-sdk/bin"
+        "[START_DIR]/flutter/bin/cache/dart-sdk/bin",
+        "[CACHE]/chrome/chrome",
+        "[CACHE]/chrome/drivers"
       ]
     },
     "name": "prepare environment.dart analyze.analyze",
diff --git a/recipes/flutter/flutter.py b/recipes/flutter/flutter.py
index 1512266..8a0b008 100644
--- a/recipes/flutter/flutter.py
+++ b/recipes/flutter/flutter.py
@@ -15,6 +15,7 @@
     'flutter/adhoc_validation',
     'flutter/repo_util',
     'flutter/shard_util',
+    'flutter/flutter_deps',
     'flutter/display_util',
     'recipe_engine/buildbucket',
     'recipe_engine/context',
@@ -48,6 +49,7 @@
         ref=api.properties.get('git_ref')
     )
   env, env_prefixes = api.repo_util.flutter_environment(checkout_path)
+  api.flutter_deps.chrome_and_driver(env, env_prefixes)
   with api.context(env=env, env_prefixes=env_prefixes, cwd=checkout_path):
     with api.step.nest('prepare environment'):
       api.step('flutter doctor', ['flutter', 'doctor'])
diff --git a/recipes/flutter/flutter_1_20_0.expected/validators.json b/recipes/flutter/flutter_1_20_0.expected/validators.json
index 615592c..0b8cebe 100644
--- a/recipes/flutter/flutter_1_20_0.expected/validators.json
+++ b/recipes/flutter/flutter_1_20_0.expected/validators.json
@@ -112,6 +112,68 @@
   },
   {
     "cmd": [],
+    "name": "Chrome and driver dependency"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/chrome/chrome",
+      "-ensure-file",
+      "flutter_internal/browsers/chrome/${platform} latest",
+      "-max-threads",
+      "0",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "name": "Chrome and driver dependency.ensure_installed",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LOG_LINE@json.output@{@@@",
+      "@@@STEP_LOG_LINE@json.output@  \"result\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"\": [@@@",
+      "@@@STEP_LOG_LINE@json.output@      {@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"instance_id\": \"resolved-instance_id-of-latest----------\", @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"package\": \"flutter_internal/browsers/chrome/resolved-platform\"@@@",
+      "@@@STEP_LOG_LINE@json.output@      }@@@",
+      "@@@STEP_LOG_LINE@json.output@    ]@@@",
+      "@@@STEP_LOG_LINE@json.output@  }@@@",
+      "@@@STEP_LOG_LINE@json.output@}@@@",
+      "@@@STEP_LOG_END@json.output@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/chrome/drivers",
+      "-ensure-file",
+      "flutter_internal/browser-drivers/chrome/${platform} latest",
+      "-max-threads",
+      "0",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "name": "Chrome and driver dependency.ensure_installed (2)",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LOG_LINE@json.output@{@@@",
+      "@@@STEP_LOG_LINE@json.output@  \"result\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"\": [@@@",
+      "@@@STEP_LOG_LINE@json.output@      {@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"instance_id\": \"resolved-instance_id-of-latest----------\", @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"package\": \"flutter_internal/browser-drivers/chrome/resolved-platform\"@@@",
+      "@@@STEP_LOG_LINE@json.output@      }@@@",
+      "@@@STEP_LOG_LINE@json.output@    ]@@@",
+      "@@@STEP_LOG_LINE@json.output@  }@@@",
+      "@@@STEP_LOG_LINE@json.output@}@@@",
+      "@@@STEP_LOG_END@json.output@@@"
+    ]
+  },
+  {
+    "cmd": [],
     "name": "prepare environment"
   },
   {
@@ -121,13 +183,17 @@
     ],
     "cwd": "[START_DIR]/flutter",
     "env": {
+      "CHROME_EXECUTABLE": "[CACHE]/chrome/chrome/chrome",
+      "CHROME_NO_SANDBOX": "true",
       "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
       "PUB_CACHE": "[CACHE]/.pub-cache"
     },
     "env_prefixes": {
       "PATH": [
         "[START_DIR]/flutter/bin",
-        "[START_DIR]/flutter/bin/cache/dart-sdk/bin"
+        "[START_DIR]/flutter/bin/cache/dart-sdk/bin",
+        "[CACHE]/chrome/chrome",
+        "[CACHE]/chrome/drivers"
       ]
     },
     "name": "prepare environment.flutter doctor",
@@ -142,13 +208,17 @@
     ],
     "cwd": "[START_DIR]/flutter",
     "env": {
+      "CHROME_EXECUTABLE": "[CACHE]/chrome/chrome/chrome",
+      "CHROME_NO_SANDBOX": "true",
       "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
       "PUB_CACHE": "[CACHE]/.pub-cache"
     },
     "env_prefixes": {
       "PATH": [
         "[START_DIR]/flutter/bin",
-        "[START_DIR]/flutter/bin/cache/dart-sdk/bin"
+        "[START_DIR]/flutter/bin/cache/dart-sdk/bin",
+        "[CACHE]/chrome/chrome",
+        "[CACHE]/chrome/drivers"
       ]
     },
     "name": "prepare environment.download dependencies",
@@ -171,13 +241,17 @@
     ],
     "cwd": "[START_DIR]/flutter",
     "env": {
+      "CHROME_EXECUTABLE": "[CACHE]/chrome/chrome/chrome",
+      "CHROME_NO_SANDBOX": "true",
       "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
       "PUB_CACHE": "[CACHE]/.pub-cache"
     },
     "env_prefixes": {
       "PATH": [
         "[START_DIR]/flutter/bin",
-        "[START_DIR]/flutter/bin/cache/dart-sdk/bin"
+        "[START_DIR]/flutter/bin/cache/dart-sdk/bin",
+        "[CACHE]/chrome/chrome",
+        "[CACHE]/chrome/drivers"
       ]
     },
     "name": "prepare environment.dart analyze.Set execute permission",
@@ -191,13 +265,17 @@
     ],
     "cwd": "[START_DIR]/flutter",
     "env": {
+      "CHROME_EXECUTABLE": "[CACHE]/chrome/chrome/chrome",
+      "CHROME_NO_SANDBOX": "true",
       "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
       "PUB_CACHE": "[CACHE]/.pub-cache"
     },
     "env_prefixes": {
       "PATH": [
         "[START_DIR]/flutter/bin",
-        "[START_DIR]/flutter/bin/cache/dart-sdk/bin"
+        "[START_DIR]/flutter/bin/cache/dart-sdk/bin",
+        "[CACHE]/chrome/chrome",
+        "[CACHE]/chrome/drivers"
       ]
     },
     "name": "prepare environment.dart analyze.analyze",
diff --git a/recipes/flutter/flutter_1_20_0.py b/recipes/flutter/flutter_1_20_0.py
index 1512266..8a0b008 100644
--- a/recipes/flutter/flutter_1_20_0.py
+++ b/recipes/flutter/flutter_1_20_0.py
@@ -15,6 +15,7 @@
     'flutter/adhoc_validation',
     'flutter/repo_util',
     'flutter/shard_util',
+    'flutter/flutter_deps',
     'flutter/display_util',
     'recipe_engine/buildbucket',
     'recipe_engine/context',
@@ -48,6 +49,7 @@
         ref=api.properties.get('git_ref')
     )
   env, env_prefixes = api.repo_util.flutter_environment(checkout_path)
+  api.flutter_deps.chrome_and_driver(env, env_prefixes)
   with api.context(env=env, env_prefixes=env_prefixes, cwd=checkout_path):
     with api.step.nest('prepare environment'):
       api.step('flutter doctor', ['flutter', 'doctor'])
diff --git a/recipes/flutter/flutter_1_21_0.expected/validators.json b/recipes/flutter/flutter_1_21_0.expected/validators.json
index 615592c..0b8cebe 100644
--- a/recipes/flutter/flutter_1_21_0.expected/validators.json
+++ b/recipes/flutter/flutter_1_21_0.expected/validators.json
@@ -112,6 +112,68 @@
   },
   {
     "cmd": [],
+    "name": "Chrome and driver dependency"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/chrome/chrome",
+      "-ensure-file",
+      "flutter_internal/browsers/chrome/${platform} latest",
+      "-max-threads",
+      "0",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "name": "Chrome and driver dependency.ensure_installed",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LOG_LINE@json.output@{@@@",
+      "@@@STEP_LOG_LINE@json.output@  \"result\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"\": [@@@",
+      "@@@STEP_LOG_LINE@json.output@      {@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"instance_id\": \"resolved-instance_id-of-latest----------\", @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"package\": \"flutter_internal/browsers/chrome/resolved-platform\"@@@",
+      "@@@STEP_LOG_LINE@json.output@      }@@@",
+      "@@@STEP_LOG_LINE@json.output@    ]@@@",
+      "@@@STEP_LOG_LINE@json.output@  }@@@",
+      "@@@STEP_LOG_LINE@json.output@}@@@",
+      "@@@STEP_LOG_END@json.output@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/chrome/drivers",
+      "-ensure-file",
+      "flutter_internal/browser-drivers/chrome/${platform} latest",
+      "-max-threads",
+      "0",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "name": "Chrome and driver dependency.ensure_installed (2)",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LOG_LINE@json.output@{@@@",
+      "@@@STEP_LOG_LINE@json.output@  \"result\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"\": [@@@",
+      "@@@STEP_LOG_LINE@json.output@      {@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"instance_id\": \"resolved-instance_id-of-latest----------\", @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"package\": \"flutter_internal/browser-drivers/chrome/resolved-platform\"@@@",
+      "@@@STEP_LOG_LINE@json.output@      }@@@",
+      "@@@STEP_LOG_LINE@json.output@    ]@@@",
+      "@@@STEP_LOG_LINE@json.output@  }@@@",
+      "@@@STEP_LOG_LINE@json.output@}@@@",
+      "@@@STEP_LOG_END@json.output@@@"
+    ]
+  },
+  {
+    "cmd": [],
     "name": "prepare environment"
   },
   {
@@ -121,13 +183,17 @@
     ],
     "cwd": "[START_DIR]/flutter",
     "env": {
+      "CHROME_EXECUTABLE": "[CACHE]/chrome/chrome/chrome",
+      "CHROME_NO_SANDBOX": "true",
       "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
       "PUB_CACHE": "[CACHE]/.pub-cache"
     },
     "env_prefixes": {
       "PATH": [
         "[START_DIR]/flutter/bin",
-        "[START_DIR]/flutter/bin/cache/dart-sdk/bin"
+        "[START_DIR]/flutter/bin/cache/dart-sdk/bin",
+        "[CACHE]/chrome/chrome",
+        "[CACHE]/chrome/drivers"
       ]
     },
     "name": "prepare environment.flutter doctor",
@@ -142,13 +208,17 @@
     ],
     "cwd": "[START_DIR]/flutter",
     "env": {
+      "CHROME_EXECUTABLE": "[CACHE]/chrome/chrome/chrome",
+      "CHROME_NO_SANDBOX": "true",
       "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
       "PUB_CACHE": "[CACHE]/.pub-cache"
     },
     "env_prefixes": {
       "PATH": [
         "[START_DIR]/flutter/bin",
-        "[START_DIR]/flutter/bin/cache/dart-sdk/bin"
+        "[START_DIR]/flutter/bin/cache/dart-sdk/bin",
+        "[CACHE]/chrome/chrome",
+        "[CACHE]/chrome/drivers"
       ]
     },
     "name": "prepare environment.download dependencies",
@@ -171,13 +241,17 @@
     ],
     "cwd": "[START_DIR]/flutter",
     "env": {
+      "CHROME_EXECUTABLE": "[CACHE]/chrome/chrome/chrome",
+      "CHROME_NO_SANDBOX": "true",
       "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
       "PUB_CACHE": "[CACHE]/.pub-cache"
     },
     "env_prefixes": {
       "PATH": [
         "[START_DIR]/flutter/bin",
-        "[START_DIR]/flutter/bin/cache/dart-sdk/bin"
+        "[START_DIR]/flutter/bin/cache/dart-sdk/bin",
+        "[CACHE]/chrome/chrome",
+        "[CACHE]/chrome/drivers"
       ]
     },
     "name": "prepare environment.dart analyze.Set execute permission",
@@ -191,13 +265,17 @@
     ],
     "cwd": "[START_DIR]/flutter",
     "env": {
+      "CHROME_EXECUTABLE": "[CACHE]/chrome/chrome/chrome",
+      "CHROME_NO_SANDBOX": "true",
       "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
       "PUB_CACHE": "[CACHE]/.pub-cache"
     },
     "env_prefixes": {
       "PATH": [
         "[START_DIR]/flutter/bin",
-        "[START_DIR]/flutter/bin/cache/dart-sdk/bin"
+        "[START_DIR]/flutter/bin/cache/dart-sdk/bin",
+        "[CACHE]/chrome/chrome",
+        "[CACHE]/chrome/drivers"
       ]
     },
     "name": "prepare environment.dart analyze.analyze",
diff --git a/recipes/flutter/flutter_1_21_0.py b/recipes/flutter/flutter_1_21_0.py
index 1512266..8a0b008 100644
--- a/recipes/flutter/flutter_1_21_0.py
+++ b/recipes/flutter/flutter_1_21_0.py
@@ -15,6 +15,7 @@
     'flutter/adhoc_validation',
     'flutter/repo_util',
     'flutter/shard_util',
+    'flutter/flutter_deps',
     'flutter/display_util',
     'recipe_engine/buildbucket',
     'recipe_engine/context',
@@ -48,6 +49,7 @@
         ref=api.properties.get('git_ref')
     )
   env, env_prefixes = api.repo_util.flutter_environment(checkout_path)
+  api.flutter_deps.chrome_and_driver(env, env_prefixes)
   with api.context(env=env, env_prefixes=env_prefixes, cwd=checkout_path):
     with api.step.nest('prepare environment'):
       api.step('flutter doctor', ['flutter', 'doctor'])
diff --git a/recipes/flutter/flutter_drone.expected/android_sdk.json b/recipes/flutter/flutter_drone.expected/android_sdk.json
index 53b1dbc..7a54ea0 100644
--- a/recipes/flutter/flutter_drone.expected/android_sdk.json
+++ b/recipes/flutter/flutter_drone.expected/android_sdk.json
@@ -98,7 +98,7 @@
       "-root",
       "[CACHE]/chrome/chrome",
       "-ensure-file",
-      "flutter_internal/browsers/chrome-linux latest",
+      "flutter_internal/browsers/chrome/${platform} latest",
       "-max-threads",
       "0",
       "-json-output",
@@ -112,7 +112,7 @@
       "@@@STEP_LOG_LINE@json.output@    \"\": [@@@",
       "@@@STEP_LOG_LINE@json.output@      {@@@",
       "@@@STEP_LOG_LINE@json.output@        \"instance_id\": \"resolved-instance_id-of-latest----------\", @@@",
-      "@@@STEP_LOG_LINE@json.output@        \"package\": \"flutter_internal/browsers/chrome-linux\"@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"package\": \"flutter_internal/browsers/chrome/resolved-platform\"@@@",
       "@@@STEP_LOG_LINE@json.output@      }@@@",
       "@@@STEP_LOG_LINE@json.output@    ]@@@",
       "@@@STEP_LOG_LINE@json.output@  }@@@",
@@ -127,7 +127,7 @@
       "-root",
       "[CACHE]/chrome/drivers",
       "-ensure-file",
-      "flutter_internal/browser-drivers/chromedriver-linux latest",
+      "flutter_internal/browser-drivers/chrome/${platform} latest",
       "-max-threads",
       "0",
       "-json-output",
@@ -141,7 +141,7 @@
       "@@@STEP_LOG_LINE@json.output@    \"\": [@@@",
       "@@@STEP_LOG_LINE@json.output@      {@@@",
       "@@@STEP_LOG_LINE@json.output@        \"instance_id\": \"resolved-instance_id-of-latest----------\", @@@",
-      "@@@STEP_LOG_LINE@json.output@        \"package\": \"flutter_internal/browser-drivers/chromedriver-linux\"@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"package\": \"flutter_internal/browser-drivers/chrome/resolved-platform\"@@@",
       "@@@STEP_LOG_LINE@json.output@      }@@@",
       "@@@STEP_LOG_LINE@json.output@    ]@@@",
       "@@@STEP_LOG_LINE@json.output@  }@@@",
@@ -189,7 +189,7 @@
     ],
     "cwd": "[START_DIR]/flutter",
     "env": {
-      "CHROME_EXECUTABLE": "[CACHE]/chrome/chrome/chrome-linux/chrome",
+      "CHROME_EXECUTABLE": "[CACHE]/chrome/chrome/chrome",
       "CHROME_NO_SANDBOX": "true",
       "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
       "JAVA_HOME": "[CACHE]/java",
@@ -215,7 +215,7 @@
     ],
     "cwd": "[START_DIR]/flutter",
     "env": {
-      "CHROME_EXECUTABLE": "[CACHE]/chrome/chrome/chrome-linux/chrome",
+      "CHROME_EXECUTABLE": "[CACHE]/chrome/chrome/chrome",
       "CHROME_NO_SANDBOX": "true",
       "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
       "JAVA_HOME": "[CACHE]/java",
@@ -253,7 +253,7 @@
     ],
     "cwd": "[START_DIR]/flutter",
     "env": {
-      "CHROME_EXECUTABLE": "[CACHE]/chrome/chrome/chrome-linux/chrome",
+      "CHROME_EXECUTABLE": "[CACHE]/chrome/chrome/chrome",
       "CHROME_NO_SANDBOX": "true",
       "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
       "JAVA_HOME": "[CACHE]/java",
@@ -301,7 +301,7 @@
     ],
     "cwd": "[START_DIR]/flutter",
     "env": {
-      "CHROME_EXECUTABLE": "[CACHE]/chrome/chrome/chrome-linux/chrome",
+      "CHROME_EXECUTABLE": "[CACHE]/chrome/chrome/chrome",
       "CHROME_NO_SANDBOX": "true",
       "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
       "JAVA_HOME": "[CACHE]/java",
@@ -349,7 +349,7 @@
     ],
     "cwd": "[START_DIR]/flutter",
     "env": {
-      "CHROME_EXECUTABLE": "[CACHE]/chrome/chrome/chrome-linux/chrome",
+      "CHROME_EXECUTABLE": "[CACHE]/chrome/chrome/chrome",
       "CHROME_NO_SANDBOX": "true",
       "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
       "JAVA_HOME": "[CACHE]/java",
@@ -397,7 +397,7 @@
     ],
     "cwd": "[START_DIR]/flutter",
     "env": {
-      "CHROME_EXECUTABLE": "[CACHE]/chrome/chrome/chrome-linux/chrome",
+      "CHROME_EXECUTABLE": "[CACHE]/chrome/chrome/chrome",
       "CHROME_NO_SANDBOX": "true",
       "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
       "JAVA_HOME": "[CACHE]/java",
@@ -448,7 +448,7 @@
     ],
     "cwd": "[START_DIR]/flutter",
     "env": {
-      "CHROME_EXECUTABLE": "[CACHE]/chrome/chrome/chrome-linux/chrome",
+      "CHROME_EXECUTABLE": "[CACHE]/chrome/chrome/chrome",
       "CHROME_NO_SANDBOX": "true",
       "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
       "JAVA_HOME": "[CACHE]/java",
@@ -484,7 +484,7 @@
     ],
     "cwd": "[START_DIR]/flutter",
     "env": {
-      "CHROME_EXECUTABLE": "[CACHE]/chrome/chrome/chrome-linux/chrome",
+      "CHROME_EXECUTABLE": "[CACHE]/chrome/chrome/chrome",
       "CHROME_NO_SANDBOX": "true",
       "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
       "JAVA_HOME": "[CACHE]/java",
@@ -522,7 +522,7 @@
     ],
     "cwd": "[START_DIR]/flutter",
     "env": {
-      "CHROME_EXECUTABLE": "[CACHE]/chrome/chrome/chrome-linux/chrome",
+      "CHROME_EXECUTABLE": "[CACHE]/chrome/chrome/chrome",
       "CHROME_NO_SANDBOX": "true",
       "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
       "JAVA_HOME": "[CACHE]/java",
@@ -555,7 +555,7 @@
     "cwd": "[START_DIR]/flutter",
     "env": {
       "ANDROID_SDK_ROOT": "[CACHE]/android29",
-      "CHROME_EXECUTABLE": "[CACHE]/chrome/chrome/chrome-linux/chrome",
+      "CHROME_EXECUTABLE": "[CACHE]/chrome/chrome/chrome",
       "CHROME_NO_SANDBOX": "true",
       "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
       "JAVA_HOME": "[CACHE]/java",
diff --git a/recipes/flutter/flutter_drone.expected/no_requirements.json b/recipes/flutter/flutter_drone.expected/no_requirements.json
index a9114a7..e652a4a 100644
--- a/recipes/flutter/flutter_drone.expected/no_requirements.json
+++ b/recipes/flutter/flutter_drone.expected/no_requirements.json
@@ -98,7 +98,7 @@
       "-root",
       "[CACHE]/chrome/chrome",
       "-ensure-file",
-      "flutter_internal/browsers/chrome-linux latest",
+      "flutter_internal/browsers/chrome/${platform} latest",
       "-max-threads",
       "0",
       "-json-output",
@@ -112,7 +112,7 @@
       "@@@STEP_LOG_LINE@json.output@    \"\": [@@@",
       "@@@STEP_LOG_LINE@json.output@      {@@@",
       "@@@STEP_LOG_LINE@json.output@        \"instance_id\": \"resolved-instance_id-of-latest----------\", @@@",
-      "@@@STEP_LOG_LINE@json.output@        \"package\": \"flutter_internal/browsers/chrome-linux\"@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"package\": \"flutter_internal/browsers/chrome/resolved-platform\"@@@",
       "@@@STEP_LOG_LINE@json.output@      }@@@",
       "@@@STEP_LOG_LINE@json.output@    ]@@@",
       "@@@STEP_LOG_LINE@json.output@  }@@@",
@@ -127,7 +127,7 @@
       "-root",
       "[CACHE]/chrome/drivers",
       "-ensure-file",
-      "flutter_internal/browser-drivers/chromedriver-linux latest",
+      "flutter_internal/browser-drivers/chrome/${platform} latest",
       "-max-threads",
       "0",
       "-json-output",
@@ -141,7 +141,7 @@
       "@@@STEP_LOG_LINE@json.output@    \"\": [@@@",
       "@@@STEP_LOG_LINE@json.output@      {@@@",
       "@@@STEP_LOG_LINE@json.output@        \"instance_id\": \"resolved-instance_id-of-latest----------\", @@@",
-      "@@@STEP_LOG_LINE@json.output@        \"package\": \"flutter_internal/browser-drivers/chromedriver-linux\"@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"package\": \"flutter_internal/browser-drivers/chrome/resolved-platform\"@@@",
       "@@@STEP_LOG_LINE@json.output@      }@@@",
       "@@@STEP_LOG_LINE@json.output@    ]@@@",
       "@@@STEP_LOG_LINE@json.output@  }@@@",
@@ -189,7 +189,7 @@
     ],
     "cwd": "[START_DIR]/flutter",
     "env": {
-      "CHROME_EXECUTABLE": "[CACHE]/chrome/chrome/chrome-linux/chrome",
+      "CHROME_EXECUTABLE": "[CACHE]/chrome/chrome/chrome",
       "CHROME_NO_SANDBOX": "true",
       "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
       "JAVA_HOME": "[CACHE]/java",
@@ -215,7 +215,7 @@
     ],
     "cwd": "[START_DIR]/flutter",
     "env": {
-      "CHROME_EXECUTABLE": "[CACHE]/chrome/chrome/chrome-linux/chrome",
+      "CHROME_EXECUTABLE": "[CACHE]/chrome/chrome/chrome",
       "CHROME_NO_SANDBOX": "true",
       "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
       "JAVA_HOME": "[CACHE]/java",
@@ -241,7 +241,7 @@
     ],
     "cwd": "[START_DIR]/flutter",
     "env": {
-      "CHROME_EXECUTABLE": "[CACHE]/chrome/chrome/chrome-linux/chrome",
+      "CHROME_EXECUTABLE": "[CACHE]/chrome/chrome/chrome",
       "CHROME_NO_SANDBOX": "true",
       "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
       "JAVA_HOME": "[CACHE]/java",
diff --git a/recipes/flutter/flutter_drone_1_21_0.expected/android_sdk.json b/recipes/flutter/flutter_drone_1_21_0.expected/android_sdk.json
index 53b1dbc..7a54ea0 100644
--- a/recipes/flutter/flutter_drone_1_21_0.expected/android_sdk.json
+++ b/recipes/flutter/flutter_drone_1_21_0.expected/android_sdk.json
@@ -98,7 +98,7 @@
       "-root",
       "[CACHE]/chrome/chrome",
       "-ensure-file",
-      "flutter_internal/browsers/chrome-linux latest",
+      "flutter_internal/browsers/chrome/${platform} latest",
       "-max-threads",
       "0",
       "-json-output",
@@ -112,7 +112,7 @@
       "@@@STEP_LOG_LINE@json.output@    \"\": [@@@",
       "@@@STEP_LOG_LINE@json.output@      {@@@",
       "@@@STEP_LOG_LINE@json.output@        \"instance_id\": \"resolved-instance_id-of-latest----------\", @@@",
-      "@@@STEP_LOG_LINE@json.output@        \"package\": \"flutter_internal/browsers/chrome-linux\"@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"package\": \"flutter_internal/browsers/chrome/resolved-platform\"@@@",
       "@@@STEP_LOG_LINE@json.output@      }@@@",
       "@@@STEP_LOG_LINE@json.output@    ]@@@",
       "@@@STEP_LOG_LINE@json.output@  }@@@",
@@ -127,7 +127,7 @@
       "-root",
       "[CACHE]/chrome/drivers",
       "-ensure-file",
-      "flutter_internal/browser-drivers/chromedriver-linux latest",
+      "flutter_internal/browser-drivers/chrome/${platform} latest",
       "-max-threads",
       "0",
       "-json-output",
@@ -141,7 +141,7 @@
       "@@@STEP_LOG_LINE@json.output@    \"\": [@@@",
       "@@@STEP_LOG_LINE@json.output@      {@@@",
       "@@@STEP_LOG_LINE@json.output@        \"instance_id\": \"resolved-instance_id-of-latest----------\", @@@",
-      "@@@STEP_LOG_LINE@json.output@        \"package\": \"flutter_internal/browser-drivers/chromedriver-linux\"@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"package\": \"flutter_internal/browser-drivers/chrome/resolved-platform\"@@@",
       "@@@STEP_LOG_LINE@json.output@      }@@@",
       "@@@STEP_LOG_LINE@json.output@    ]@@@",
       "@@@STEP_LOG_LINE@json.output@  }@@@",
@@ -189,7 +189,7 @@
     ],
     "cwd": "[START_DIR]/flutter",
     "env": {
-      "CHROME_EXECUTABLE": "[CACHE]/chrome/chrome/chrome-linux/chrome",
+      "CHROME_EXECUTABLE": "[CACHE]/chrome/chrome/chrome",
       "CHROME_NO_SANDBOX": "true",
       "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
       "JAVA_HOME": "[CACHE]/java",
@@ -215,7 +215,7 @@
     ],
     "cwd": "[START_DIR]/flutter",
     "env": {
-      "CHROME_EXECUTABLE": "[CACHE]/chrome/chrome/chrome-linux/chrome",
+      "CHROME_EXECUTABLE": "[CACHE]/chrome/chrome/chrome",
       "CHROME_NO_SANDBOX": "true",
       "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
       "JAVA_HOME": "[CACHE]/java",
@@ -253,7 +253,7 @@
     ],
     "cwd": "[START_DIR]/flutter",
     "env": {
-      "CHROME_EXECUTABLE": "[CACHE]/chrome/chrome/chrome-linux/chrome",
+      "CHROME_EXECUTABLE": "[CACHE]/chrome/chrome/chrome",
       "CHROME_NO_SANDBOX": "true",
       "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
       "JAVA_HOME": "[CACHE]/java",
@@ -301,7 +301,7 @@
     ],
     "cwd": "[START_DIR]/flutter",
     "env": {
-      "CHROME_EXECUTABLE": "[CACHE]/chrome/chrome/chrome-linux/chrome",
+      "CHROME_EXECUTABLE": "[CACHE]/chrome/chrome/chrome",
       "CHROME_NO_SANDBOX": "true",
       "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
       "JAVA_HOME": "[CACHE]/java",
@@ -349,7 +349,7 @@
     ],
     "cwd": "[START_DIR]/flutter",
     "env": {
-      "CHROME_EXECUTABLE": "[CACHE]/chrome/chrome/chrome-linux/chrome",
+      "CHROME_EXECUTABLE": "[CACHE]/chrome/chrome/chrome",
       "CHROME_NO_SANDBOX": "true",
       "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
       "JAVA_HOME": "[CACHE]/java",
@@ -397,7 +397,7 @@
     ],
     "cwd": "[START_DIR]/flutter",
     "env": {
-      "CHROME_EXECUTABLE": "[CACHE]/chrome/chrome/chrome-linux/chrome",
+      "CHROME_EXECUTABLE": "[CACHE]/chrome/chrome/chrome",
       "CHROME_NO_SANDBOX": "true",
       "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
       "JAVA_HOME": "[CACHE]/java",
@@ -448,7 +448,7 @@
     ],
     "cwd": "[START_DIR]/flutter",
     "env": {
-      "CHROME_EXECUTABLE": "[CACHE]/chrome/chrome/chrome-linux/chrome",
+      "CHROME_EXECUTABLE": "[CACHE]/chrome/chrome/chrome",
       "CHROME_NO_SANDBOX": "true",
       "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
       "JAVA_HOME": "[CACHE]/java",
@@ -484,7 +484,7 @@
     ],
     "cwd": "[START_DIR]/flutter",
     "env": {
-      "CHROME_EXECUTABLE": "[CACHE]/chrome/chrome/chrome-linux/chrome",
+      "CHROME_EXECUTABLE": "[CACHE]/chrome/chrome/chrome",
       "CHROME_NO_SANDBOX": "true",
       "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
       "JAVA_HOME": "[CACHE]/java",
@@ -522,7 +522,7 @@
     ],
     "cwd": "[START_DIR]/flutter",
     "env": {
-      "CHROME_EXECUTABLE": "[CACHE]/chrome/chrome/chrome-linux/chrome",
+      "CHROME_EXECUTABLE": "[CACHE]/chrome/chrome/chrome",
       "CHROME_NO_SANDBOX": "true",
       "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
       "JAVA_HOME": "[CACHE]/java",
@@ -555,7 +555,7 @@
     "cwd": "[START_DIR]/flutter",
     "env": {
       "ANDROID_SDK_ROOT": "[CACHE]/android29",
-      "CHROME_EXECUTABLE": "[CACHE]/chrome/chrome/chrome-linux/chrome",
+      "CHROME_EXECUTABLE": "[CACHE]/chrome/chrome/chrome",
       "CHROME_NO_SANDBOX": "true",
       "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
       "JAVA_HOME": "[CACHE]/java",
diff --git a/recipes/flutter/flutter_drone_1_21_0.expected/no_requirements.json b/recipes/flutter/flutter_drone_1_21_0.expected/no_requirements.json
index a9114a7..e652a4a 100644
--- a/recipes/flutter/flutter_drone_1_21_0.expected/no_requirements.json
+++ b/recipes/flutter/flutter_drone_1_21_0.expected/no_requirements.json
@@ -98,7 +98,7 @@
       "-root",
       "[CACHE]/chrome/chrome",
       "-ensure-file",
-      "flutter_internal/browsers/chrome-linux latest",
+      "flutter_internal/browsers/chrome/${platform} latest",
       "-max-threads",
       "0",
       "-json-output",
@@ -112,7 +112,7 @@
       "@@@STEP_LOG_LINE@json.output@    \"\": [@@@",
       "@@@STEP_LOG_LINE@json.output@      {@@@",
       "@@@STEP_LOG_LINE@json.output@        \"instance_id\": \"resolved-instance_id-of-latest----------\", @@@",
-      "@@@STEP_LOG_LINE@json.output@        \"package\": \"flutter_internal/browsers/chrome-linux\"@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"package\": \"flutter_internal/browsers/chrome/resolved-platform\"@@@",
       "@@@STEP_LOG_LINE@json.output@      }@@@",
       "@@@STEP_LOG_LINE@json.output@    ]@@@",
       "@@@STEP_LOG_LINE@json.output@  }@@@",
@@ -127,7 +127,7 @@
       "-root",
       "[CACHE]/chrome/drivers",
       "-ensure-file",
-      "flutter_internal/browser-drivers/chromedriver-linux latest",
+      "flutter_internal/browser-drivers/chrome/${platform} latest",
       "-max-threads",
       "0",
       "-json-output",
@@ -141,7 +141,7 @@
       "@@@STEP_LOG_LINE@json.output@    \"\": [@@@",
       "@@@STEP_LOG_LINE@json.output@      {@@@",
       "@@@STEP_LOG_LINE@json.output@        \"instance_id\": \"resolved-instance_id-of-latest----------\", @@@",
-      "@@@STEP_LOG_LINE@json.output@        \"package\": \"flutter_internal/browser-drivers/chromedriver-linux\"@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"package\": \"flutter_internal/browser-drivers/chrome/resolved-platform\"@@@",
       "@@@STEP_LOG_LINE@json.output@      }@@@",
       "@@@STEP_LOG_LINE@json.output@    ]@@@",
       "@@@STEP_LOG_LINE@json.output@  }@@@",
@@ -189,7 +189,7 @@
     ],
     "cwd": "[START_DIR]/flutter",
     "env": {
-      "CHROME_EXECUTABLE": "[CACHE]/chrome/chrome/chrome-linux/chrome",
+      "CHROME_EXECUTABLE": "[CACHE]/chrome/chrome/chrome",
       "CHROME_NO_SANDBOX": "true",
       "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
       "JAVA_HOME": "[CACHE]/java",
@@ -215,7 +215,7 @@
     ],
     "cwd": "[START_DIR]/flutter",
     "env": {
-      "CHROME_EXECUTABLE": "[CACHE]/chrome/chrome/chrome-linux/chrome",
+      "CHROME_EXECUTABLE": "[CACHE]/chrome/chrome/chrome",
       "CHROME_NO_SANDBOX": "true",
       "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
       "JAVA_HOME": "[CACHE]/java",
@@ -241,7 +241,7 @@
     ],
     "cwd": "[START_DIR]/flutter",
     "env": {
-      "CHROME_EXECUTABLE": "[CACHE]/chrome/chrome/chrome-linux/chrome",
+      "CHROME_EXECUTABLE": "[CACHE]/chrome/chrome/chrome",
       "CHROME_NO_SANDBOX": "true",
       "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
       "JAVA_HOME": "[CACHE]/java",