Setup de navegadores web 2/2 - Chromium

2018/12/24

A continuación se describen los pasos para configurar Chromium utilizando tomb para almacenar los datos de forma privada.

Este post está relacionado al post Setup de navegadores web 1/2 - Firefox.

Creación de archivo tomb

Se utilizará el mismo archivo tomb para los navegadores Firefox y Chromium. Ver post [Setup de navegadores web 1/2 - Firefox][3].

Copia del profile (user data) de Chromium

A continuación se copiarán los archivos utilizados por Chromium dentro del archivo tomb. Esto se hará en el directorio chromium-private.

Nota: en esta etapa debe cerrarse el navegador para no tener problemas al mover los archivos.

La copia es sencilla, ya que simplemente se moverá el directorio ~/.config/chromium:

$ mv ~/.config/chromium /run/media/$USER/browsers/chromium-private

También se borra el caché que se encuentra en ~/.cache/chromium y corresponde al profile por defecto que será recreado nuevamente:

$ rm -fr ~/.cache/chromium

Nota: a pesar de mover el profile del navegador al archivo tomb y borrar el directorio caché la información puede quedar en el disco, por lo que si esta desea borrarse definitivamente deberán seguirse otros pasos no detallados aquí.

Creación de bind-hooks en archivo tomb

Para independizarse del punto de montaje del archivo tomb, se agregará un bind-hook para montar el directorios del profile en ~/.chromium-private:

$ cat >> /run/media/$USER/browsers/bind-hooks <<'END'
chromium-private    .chromium-private
END

Nota: aquí se está agregando el bind-hook al archivo tomb que ya posee el profile de Firefox.

Tambien nos aseguramos de que exista el punto de montaje:

$ mkdir -p ~/.chromium-private

Para probar que los bind-hooks funcionan correctamente cerrar y volver a abrir el archivo tomb:

$ tomb close browsers
$ tomb open -f -k ~/browsers.tomb.key ~/graveyard/browsers.tomb /run/media/$USER/browsers
$ mount | grep browsers
/dev/mapper/tomb.browsers.1545659868.loop0 on /run/media/jmpc/browsers type ext4 (rw,nodev,noatime)
/dev/mapper/tomb.browsers.1545659868.loop0 on /home/jmpc/.chromium-private type ext4 (rw,nodev,noatime)
/dev/mapper/tomb.browsers.1545659868.loop0 on /home/jmpc/.firefox-private type ext4 (rw,nodev,noatime)

Creación de script y archivo .desktop para utilizar el profile privado

En los pasos anteriores se movió el profile de Chromium al archivo tomb. Resta crear scripts para utilizar dichos profiles junto a los archivos .desktop para que sean agregados al menú del sistema.

Nota: en lo que sigue se almacenará el script en el directorio ~/bin (se supone que dicho directorio se encuentra en $PATH) y el archivo .desktop en el directorio ~/.local/share/applications. Como alternativa podrían utilizarse los directorios de sistema /usr/local/bin y /usr/local/share/applications para que el uso de la configuración esté disponible para todos los usuarios.

Uso del profile privado de Chromium

El script y el archivo .desktop de Chromium son similares a los de Firefox descriptos en el post [Setup de navegadores web 1/2 - Firefox][3].

La opción para especificar el profile es --user-data-dir. También se agregará la opción --incognito, ya que por defecto se desea utilizar Chromium para navegar en modo incógnito. Por último se realizarán chequeos similares a los realizados en el script de Firefox.

A continuación el archivo ~/bin/chromium-private que puede descargarse [aquí][script chromium-private]:

#!/bin/bash
set -e
show_error() {
    if [[ $(readlink -f /proc/$(ps -o ppid:1= -p $$)/exe) = $(readlink -f "$SHELL") ]]; then
        echo -e "$1"
    elif [ -x /usr/bin/zenity ]; then
        zenity --warning --width=500 --text "$1"
    fi
}

if [ ! -d "$HOME/.chromium-private" ]; then
    show_error "Directory $HOME/.chromium-private don't exist\nCreate it and reopen tomb file\n"
    exit 1
elif ! mountpoint -q "$HOME/.chromium-private"; then
    show_error "Directory $HOME/.chromium-private is not a mount point\nTry open tomb file\n"
    exit 1
elif [ ! -x /usr/bin/chromium ]; then
    show_error "Missing binary /usr/bin/chromium\nTry installing chromium package\n"
    exit 1
fi
/usr/bin/chromium --incognito --user-data-dir="$HOME/.chromium-private" "$@"

El archivo ~/.local/share/applications/chromium-private.desktop se copia a continuación y puede descargarse [aquí][desktop chromium-private]:

[Desktop Entry]
Version=1.0
Name=Chromium private
GenericName=Web Browser
Comment=Access the Internet
Exec=bin/chromium-private %U
Terminal=false
X-MultipleArgs=false
Type=Application
Icon=chromium
Categories=Network;WebBrowser;
MimeType=text/html;text/xml;application/xhtml_xml;application/x-mimearchive;x-scheme-handler/http;x-scheme-handler/https;
StartupWMClass=chromium-private
StartupNotify=true