[ci] Update Dockerfile (#2642)

diff --git a/.ci/Dockerfile b/.ci/Dockerfile
index c79711d..7c64a94 100644
--- a/.ci/Dockerfile
+++ b/.ci/Dockerfile
@@ -1,30 +1,43 @@
-# Last updated 02/04/2022 (to rebuild the docker image, update this timestamp)
 # The Flutter version is not important here, since the CI scripts update Flutter
 # before running. What matters is that the base image is pinned to minimize
 # unintended changes when modifying this file.
-FROM cirrusci/flutter@sha256:283f328d162adfc345bec5e070f79201edcb28f5483addf238c57d78bad0da23
+# This is the hash for the 3.0.0 image.
+FROM cirrusci/flutter@sha256:0224587bba33241cf908184283ec2b544f1b672d87043ead1c00521c368cf844
 
-RUN sudo apt-get update && \
-    sudo apt-get upgrade --yes && \
-    sudo apt-get install --yes gpg-agent && \
-    sudo apt-get clean --yes
+RUN apt-get update -y
 
-# This must occur after the install of gpg-agent
-RUN wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
+# Set up Firebase Test Lab requirements.
+RUN apt-get install -y --no-install-recommends gnupg
+RUN echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] https://packages.cloud.google.com/apt cloud-sdk main" | \
+    sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list
+RUN curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | \
+    sudo apt-key --keyring /usr/share/keyrings/cloud.google.gpg add -
+RUN apt-get update && apt-get install -y google-cloud-sdk && \
+    gcloud config set core/disable_usage_reporting true && \
+    gcloud config set component_manager/disable_update_check true
 
 # Install formatter for C-based languages.
 RUN apt-get install -y clang-format
 
-# Install Linux desktop build requirements.
-RUN apt-get install -y clang cmake ninja-build file pkg-config libgtk-3-dev 
+# Install Linux desktop requirements:
+# - build tools.
+RUN apt-get install -y clang cmake ninja-build file pkg-config
+# - libraries.
+RUN apt-get install -y libgtk-3-dev libblkid-dev liblzma-dev libgcrypt20-dev
+# - xvfb to allow running headless.
+RUN apt-get install -y xvfb libegl1-mesa
 
-# Needed for web_benchmarks
+# Install Chrome and make it the default browser, for Linux url_launcher tests.
+# IMPORTANT: Web tests should use a pinned version of Chromium, not this, since
+# this isn't pinned, so any time the docker image is re-created the version of
+# Chrome may change.
+RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
+RUN echo 'deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main' | sudo tee /etc/apt/sources.list.d/google-chrome.list
+RUN apt-get update && apt-get install -y --no-install-recommends google-chrome-stable
+# Make Chrome the default for http:, https: and file:.
+RUN apt-get install -y xdg-utils
+RUN xdg-settings set default-web-browser google-chrome.desktop
+RUN xdg-mime default google-chrome.desktop inode/directory
+
+# Needed for web_benchmarks.
 RUN sudo apt-get install -y libgbm-dev
-
-RUN yes | sdkmanager \
-    "platforms;android-27" \
-    "build-tools;27.0.3" \
-    "extras;google;m2repository" \
-    "extras;android;m2repository"
-
-RUN yes | sdkmanager --licenses