Chrome/Chromium: Tilføj/Fjern Udvidelse(r)

Tilføjer/fjerner en eller flere Chrome/Chromium-Udvidelser til/fra browserens ExtensionSettings policy

Source: Download script

Last Updated: 4. December 2024 by Agnete Moos (agms@sonderborg.dk)

Parameters:

Navn Type Standardværdi Påkrævet
Click to see the source code
#! /bin/bash

# Ref: https://chromeenterprise.google/policies/#ExtensionSettings

# This script can:
# 1. Create an ExtensionSettings policy if none exists.
# 2. Add/remove a list(1..*) of Chrome Extensions to/from the ExtensionSettings file.
# 3. Remove the ExtensionSettings policy.

# Authors: Heini Leander Ovason

set -x

if get_os2borgerpc_config os2_product | grep --quiet kiosk; then
  echo "Dette script er ikke designet til at blive anvendt på en kiosk-maskine."
  exit 1
fi

ACTIVATE=$1
EXTENSIONS_ARRAY=$2

POLICIES_DIR="/etc/opt/chrome/policies/managed"
POLICY_FILE="os2borgerpc-extension-settings.json"

if [ "$ACTIVATE" = 'True' ]; then

  if [ ! -d "$(dirname "$POLICY_FILE")" ]; then
    mkdir --parents "$(dirname "$POLICY_FILE")"
  fi

  EXTENSIONS_DICT=""
  if [ -n "$EXTENSIONS_ARRAY" ]; then
    IFS=',' read -ra EXTENSIONS_ARRAY <<< "$EXTENSIONS_ARRAY"
    ARR_LEN="${#EXTENSIONS_ARRAY[@]}"

    C=0
    for EXTENSION in "${EXTENSIONS_ARRAY[@]}"
    do
      DICT_TEMPLATE="\"$EXTENSION\": {
      \"installation_mode\": \"force_installed\",
      \"toolbar_pin\": \"force_pinned\",
      \"update_url\": \"https://clients2.google.com/service/update2/crx\"
    }"
      C=$((C+1))
      if [ "$C" -eq "$ARR_LEN" ]; then
        EXTENSIONS_DICT+="    $DICT_TEMPLATE"
      else
        EXTENSIONS_DICT+="$DICT_TEMPLATE,
"
      fi
    done
  fi

  cat << EOF > "$POLICIES_DIR/$POLICY_FILE"
{
  "ExtensionSettings": {
    $EXTENSIONS_DICT
  }
}
EOF

else
    rm "$POLICIES_DIR/$POLICY_FILE"
fi

Beskrivelse

Udviklet og testet i samarbejde med Aarhus kommune.

  1. Kan tilføje/fjerne en liste af Chrome/Chromium-Udvidelser til/fra browserens ExtensionSettings policy.
  2. Kan slette browserens ExtensionSettings policy.

(Læs det hele inden du kører scriptet)

For installere udvidelser

For installere udvidelser skal scriptet køres med flueben i checkbox’en Aktivér.

Alle Chrome-udvidelser har et unikt ID der fremgår i URL’en i Chrome Web Store.

ID’et er det du finder inden for < >-symbolerne i URL’en herunder: https://chrome.google.com/webstore/detail/ublock-origin/`?hl=en` Dvs. alt efter den sidste `/` og før `?`-symbolet.

Eksempelvis for uBlock Origin vil URL’en se således ud:

https://chrome.google.com/webstore/detail/ublock-origin/cjpalhdlnbpafiamejdnhcphjbkeiagm?hl=en

ID’et for uBlock Origin, som du skal bruge ifm. kørsel af scriptet, er derved: cjpalhdlnbpafiamejdnhcphjbkeiagm

Eksempel på en liste med 3 udvidelser, henholdsvis uBlock Origin, IntoWords, og AppWriter:

cjpalhdlnbpafiamejdnhcphjbkeiagm,nopjifljihndhkfeogabcclpgpceapln,lokadhdaghfjbmailhhenifjejpokche

Ovenstående er den tekststreng man angiver ved kørsel i tekstparameteren “Udvidelser”, hvis man vil installere de tre udvidelser.

Hver gang scriptet køres så overskrives den eksisterende liste med den nye liste.

For at slette udvidelser

For at slette alle udvidelser køres scriptet uden flueben i checkbox’en “Aktivér”.

Dette script er blevet testet og virker på Ubuntu 22.04.

Mulige udvidelser

Nogle kommuner bruger udvidelsen “Adgang for Alle” til oplæsning på dansk: https://chrome.google.com/webstore/detail/adgang-for-alle-opl%C3%A6sning/emlafdcpicmngaecnedehchapmmcjfhb?hl=da

Hvis man er kunde hos AppWriter eller IntoWords kan man overveje deres udvidelser for at øge tilgængeligheden i browser.

Parametre

  1. Aktivér : True/False
  2. Udvidelser : komma-separeret liste af ID’er