Revision control
Copy as Markdown
#!/usr/bin/env bash
# Copyright (C) 2024 The Qt Company Ltd.
# This script will install up-to-date google Chrome needed for Webassembly auto tests.
# problems:
# The jspi browser require --enable-unsafe-swiftshader to work, the original browser don't
# Running the original browser after the jspi browser causes it to crash unless
# we make sure the cachedir is different.
# shellcheck source=../common/unix/DownloadURL.sh
source "${BASH_SOURCE%/*}/../common/unix/SetEnvVar.sh"
# shellcheck source=../common/unix/DownloadURL.sh
source "${BASH_SOURCE%/*}/../common/unix/DownloadURL.sh"
# DownloadURL uses functions with exit status
set +ex
function Install {
sha=$1
cached=$2
official=$3
home=$4
target=$5
if [ -z "$home" ]
then
echo "No home"
exit 1
fi
if [ -z "$target" ]
then
echo "No target"
exit 1
fi
tmp="/tmp/${sha}.zip"
if ! DownloadURL "$cachedUrl" "$officialUrl" "$sha" "$tmp"
then
echo "Download failed"
exit 1
fi
sudo rm -rf "${home}/${target}"
if ! unzip -q "$tmp" -d "${home}"
then
echo "Unzip failed"
exit 1
fi
rm "$tmp"
}
Install \
"006d8e0438980d5ca8809af6f036e2b802b13cc8" \
"chrome/chrome-for-testing-131.zip" \
"131.0.6778.204/linux64/chrome-linux64.zip" \
"${HOME}" \
"chrome-linux64"
Install \
"53007a6778c4ba25763d066f12c598b982e72f74" \
"chromedriver/chrome-for-testing-131.zip" \
"131.0.6778.204/linux64/chromedriver-linux64.zip" \
"${HOME}" \
"chromedriver-linux64"
Install \
"9743a66a4427711e5b0cf1d569c1b893eab3c123" \
"chrome/chrome-for-testing-139.zip" \
"139.0.7258.138/linux64/chrome-linux64.zip" \
"${HOME}/jspi" \
"chrome-linux64"
Install \
"874a7870150ed0b20908ae77a5bd10d8cd5dea11" \
"chromedriver/chrome-for-testing-139.zip" \
"139.0.7258.138/linux64/chromedriver-linux64.zip" \
"${HOME}/jspi" \
"chromedriver-linux64"
chromePath="${HOME}/chrome-linux64/"
chromeDriverPath="${HOME}/chromedriver-linux64/"
chromeJspiPath="${HOME}/jspi/chrome-linux64/"
chromeJspiDriverPath="${HOME}/jspi/chromedriver-linux64/"
cp ${chromeDriverPath}chromedriver ${chromePath}
cp ${chromeJspiDriverPath}chromedriver ${chromeJspiPath}
SetEnvVar "BROWSER_FOR_WASM" "${chromePath}chrome"
SetEnvVar "CHROMEDRIVER_PATH" "${chromePath}chromedriver"
SetEnvVar "WASM_BROWSER_JSPI" "${chromeJspiPath}chrome"
SetEnvVar "WASM_BROWSER_JSPI_ARGS" "\"--headless --password-store=basic --enable-unsafe-swiftshader --user-data-dir=${HOME}/.cache/jspi\""
SetEnvVar "WASM_CHROMEDRIVER_PATH_JSPI" "${chromeJspiPath}chromedriver"
SetEnvVar "WASM_CHROMEDRIVER_PATH_JSPI_ARGS" "\"--headless --password-store=basic --enable-unsafe-swiftshader --user-data-dir=${HOME}/.cache/jspi\""