KASM-8162 fix firefox default profiles

This commit is contained in:
Teja Swaroop Pothala 2026-02-25 08:54:29 +00:00
parent 2afd833762
commit 1f6e129b49
No known key found for this signature in database
GPG key ID: FA5E53D328E228D2

View file

@ -152,10 +152,21 @@ pref("browser.aboutwelcome.enabled", false);
EOF
fi
# Firefox 147+ introduced XDG base dir support, so profile paths will vary and need to be handled appropriately
FIREFOX_VERSION=$(firefox --version | awk '{print $3}')
FIREFOX_MAJOR=$(echo "$FIREFOX_VERSION" | cut -d. -f1)
if [ "${FIREFOX_MAJOR:-0}" -ge 147 ]; then
FIREFOX_PROFILE_BASE="$HOME/.config/mozilla/firefox"
else
FIREFOX_PROFILE_BASE="$HOME/.mozilla/firefox"
fi
FIREFOX_PROFILE_PATH="$FIREFOX_PROFILE_BASE/kasm"
FIREFOX_PROFILES_INI="$FIREFOX_PROFILE_BASE/profiles.ini"
if [[ "${DISTRO}" == @(oracle8|rockylinux9|rockylinux8|oracle9|rhel9|almalinux9|almalinux8|opensuse|fedora39|fedora40|fedora41) ]]; then
# Creating a default profile
chown -R root:root $HOME
firefox -headless -CreateProfile "kasm $HOME/.mozilla/firefox/kasm"
firefox -headless -CreateProfile "kasm $FIREFOX_PROFILE_PATH"
# Generate a certdb to be detected on squid start
HOME=/root firefox --headless &
mkdir -p /root/.mozilla
@ -168,23 +179,24 @@ if [[ "${DISTRO}" == @(oracle8|rockylinux9|rockylinux8|oracle9|rhel9|almalinux9|
sleep 2
kill $(pgrep firefox)
CERTDIR=$(dirname ${CERTDB})
mv ${CERTDB} $HOME/.mozilla/firefox/kasm/
mv ${CERTDB} $FIREFOX_PROFILE_PATH/
rm -Rf /root/.mozilla
else
# Creating Default Profile
chown -R 0:0 $HOME
firefox -headless -CreateProfile "kasm $HOME/.mozilla/firefox/kasm"
firefox -headless -CreateProfile "kasm $FIREFOX_PROFILE_PATH"
fi
# Silence Firefox security nag "Some of Firefox's features may offer less protection on your current operating system".
echo 'user_pref("security.sandbox.warn_unprivileged_namespaces", false);' > $HOME/.mozilla/firefox/kasm/user.js
chown 1000:1000 $HOME/.mozilla/firefox/kasm/user.js
mkdir -p "$FIREFOX_PROFILE_PATH"
echo 'user_pref("security.sandbox.warn_unprivileged_namespaces", false);' > "$FIREFOX_PROFILE_PATH/user.js"
chown 1000:1000 "$FIREFOX_PROFILE_PATH/user.js"
# configure smartcard support
# note: some firefox versions don't read from the global pkcs11.txt when creating profiles
if [[ ${KASM_SVC_SMARTCARD:-1} == 1 ]] && [ -f "$HOME/.pki/nssdb/pkcs11.txt" ]; then
cp $HOME/.pki/nssdb/pkcs11.txt $HOME/.mozilla/firefox/kasm/pkcs11.txt
chown 1000:1000 $HOME/.mozilla/firefox/kasm/pkcs11.txt
cp "$HOME/.pki/nssdb/pkcs11.txt" "$FIREFOX_PROFILE_PATH/pkcs11.txt"
chown 1000:1000 "$FIREFOX_PROFILE_PATH/pkcs11.txt"
fi
if [[ "${DISTRO}" == @(oracle8|rockylinux9|rockylinux8|oracle9|rhel9|almalinux9|almalinux8|opensuse|fedora39|fedora40|fedora41) ]]; then
@ -195,33 +207,33 @@ fi
# based off the installation path. Because that path will be static for our deployments we can assume the hash
# and thus assign our profile to the default for the installation
if grep -q "ID=kali" /etc/os-release; then
cat >>$HOME/.mozilla/firefox/profiles.ini <<EOL
cat >>$FIREFOX_PROFILES_INI <<EOL
[Install3B6073811A6ABF12]
Default=kasm
Locked=1
EOL
elif grep -q "ID=debian" /etc/os-release || grep -q "ID=parrot" /etc/os-release; then
if [ "${ARCH}" != "amd64" ]; then
cat >>$HOME/.mozilla/firefox/profiles.ini <<EOL
cat >>$FIREFOX_PROFILES_INI <<EOL
[Install3B6073811A6ABF12]
Default=kasm
Locked=1
EOL
else
cat >>$HOME/.mozilla/firefox/profiles.ini <<EOL
cat >>$FIREFOX_PROFILES_INI <<EOL
[Install4F96D1932A9F858E]
Default=kasm
Locked=1
EOL
fi
elif [[ "${DISTRO}" != @(oracle8|rockylinux9|rockylinux8|oracle9|rhel9|almalinux9|almalinux8|opensuse|fedora39|fedora40|fedora41) ]]; then
cat >>$HOME/.mozilla/firefox/profiles.ini <<EOL
cat >>$FIREFOX_PROFILES_INI <<EOL
[Install4F96D1932A9F858E]
Default=kasm
Locked=1
EOL
elif [[ "${DISTRO}" == @(oracle8|rockylinux9|rockylinux8|oracle9|rhel9|almalinux9|almalinux8|opensuse|fedora39|fedora40|fedora41) ]]; then
cat >>$HOME/.mozilla/firefox/profiles.ini <<EOL
cat >>$FIREFOX_PROFILES_INI <<EOL
[Install11457493C5A56847]
Default=kasm
Locked=1
@ -239,5 +251,9 @@ find /usr/share/ -name "icon-theme.cache" -exec rm -f {} \;
if [ -f $HOME/Desktop/firefox.desktop ]; then
chmod +x $HOME/Desktop/firefox.desktop
fi
chown -R 1000:1000 $HOME/.mozilla
if [ -d "$HOME/.mozilla" ]; then
chown -R 1000:1000 "$HOME/.mozilla"
fi
if [ -d "$HOME/.config/mozilla" ]; then
chown -R 1000:1000 "$HOME/.config/mozilla"
fi