From f1b208d8390b457f993523ea04df65c94b515197 Mon Sep 17 00:00:00 2001 From: Ian Tangney Date: Tue, 14 Sep 2021 19:27:30 +0000 Subject: [PATCH] KASM-1362 Update Tor-Browser to support persistent profiles --- dockerfile-kasm-tor-browser | 27 ++-------------- .../install/torbrowser/custom_startup.sh | 29 +++++++++++++++++ .../install/torbrowser/install_torbrowser.sh | 31 ++++++++++++------- 3 files changed, 51 insertions(+), 36 deletions(-) create mode 100644 src/ubuntu/install/torbrowser/custom_startup.sh diff --git a/dockerfile-kasm-tor-browser b/dockerfile-kasm-tor-browser index 6d8430a..8f24c39 100644 --- a/dockerfile-kasm-tor-browser +++ b/dockerfile-kasm-tor-browser @@ -25,31 +25,10 @@ RUN $INST_SCRIPTS/gtk/install_restricted_file_chooser.sh # Setup the custom startup script that will be invoked when the container starts ENV LAUNCH_URL about:blank -RUN echo $' \n\ -set -x \n\ -FORCE=$2 \n\ -URL=${1:-$LAUNCH_URL} \n\ -if [ -n "$URL" ] && ( [ -z "$DISABLE_CUSTOM_STARTUP" ] || [ -n "$FORCE" ] ) ; then \n\ - if [ -f /tmp/custom_startup.lck ] ; then \n\ - echo "custom_startup already running!" \n\ - exit 1 \n\ - fi \n\ - touch /tmp/custom_startup.lck \n\ - while true \n\ - do \n\ - if ! pgrep firefox > /dev/null \n\ - then \n\ - /usr/bin/desktop_ready \n\ - /tmp/tor-browser_en-US/Browser/start-tor-browser --detach --allow-remote --new-tab $URL \n\ - fi \n\ - sleep 1 \n\ - done \n\ - rm /tmp/custom_startup.lck \n\ -fi \n\ -' >$STARTUPDIR/custom_startup.sh -# Ensure the startup script is executable -RUN chmod 755 $STARTUPDIR/custom_startup.sh +COPY ./src/ubuntu/install/torbrowser/custom_startup.sh $STARTUPDIR/custom_startup.sh +RUN chmod +x $STARTUPDIR/custom_startup.sh + ######### End Customizations ########### diff --git a/src/ubuntu/install/torbrowser/custom_startup.sh b/src/ubuntu/install/torbrowser/custom_startup.sh new file mode 100644 index 0000000..72461b9 --- /dev/null +++ b/src/ubuntu/install/torbrowser/custom_startup.sh @@ -0,0 +1,29 @@ +#!/usr/bin/env bash +set -ex +FORCE=$2 +if [ -n "$1" ] ; then + URL=$1 +else + URL=$LAUNCH_URL +fi + +if [ -n "$URL" ] && ( [ -z "$DISABLE_CUSTOM_STARTUP" ] || [ -n "$FORCE" ] ) ; then + if [ -f /tmp/custom_startup.lck ] ; then + echo "custom_startup already running!" + exit 1 + fi + touch /tmp/custom_startup.lck + while true + do + if ! pgrep firefox > /dev/null + then + /usr/bin/filter_ready + /usr/bin/desktop_ready + set +e + $HOME/tor-browser/tor-browser_en-US/Browser/start-tor-browser --detach --allow-remote --new-tab $URL + set -e + fi + sleep 1 + done + rm /tmp/custom_startup.lck +fi \ No newline at end of file diff --git a/src/ubuntu/install/torbrowser/install_torbrowser.sh b/src/ubuntu/install/torbrowser/install_torbrowser.sh index 4cdb11e..4c3def7 100644 --- a/src/ubuntu/install/torbrowser/install_torbrowser.sh +++ b/src/ubuntu/install/torbrowser/install_torbrowser.sh @@ -3,26 +3,33 @@ set -xe echo "Install TorBrowser" apt-get install -y xz-utils curl +TOR_HOME=$HOME/tor-browser/ +mkdir -p $TOR_HOME TOR_URL=$(curl -q https://www.torproject.org/download/ | grep downloadLink | grep linux64 | sed 's/.*href="//g' | cut -d '"' -f1 | head -1) wget --quiet https://www.torproject.org/${TOR_URL} -O /tmp/torbrowser.tar.xz -tar -xJf /tmp/torbrowser.tar.xz -C /tmp/ - -# Patch up the Tor Launcher file so we can move the icon to the deskop but not the folder -cp /tmp/tor-browser_en-US/start-tor-browser.desktop /tmp/tor-browser_en-US/start-tor-browser.desktop.bak -sed -i 's/^Name=.*/Name=Tor Browser/g' /tmp/tor-browser_en-US/start-tor-browser.desktop -sed -i 's/Icon=.*/Icon=\/tmp\/tor-browser_en-US\/Browser\/browser\/chrome\/icons\/default\/default128.png/g' /tmp/tor-browser_en-US/start-tor-browser.desktop -sed -i 's/Exec=.*/Exec=sh -c \x27"\/tmp\/tor-browser_en-US\/Browser\/start-tor-browser" --detach || ([ ! -x "\/tmp\/tor-browser_en-US\/Browser\/start-tor-browser" ] \&\& "$(dirname "$*")"\/Browser\/start-tor-browser --detach)\x27 dummy %k/g' /tmp/tor-browser_en-US/start-tor-browser.desktop +tar -xJf /tmp/torbrowser.tar.xz -C $TOR_HOME +rm /tmp/torbrowser.tar.xz -cat >>/tmp/tor-browser_en-US/Browser/TorBrowser/Data/Browser/profile.default/prefs.js <> $TOR_HOME/tor-browser_en-US/Browser/TorBrowser/Data/Browser/profile.default/prefs.js <